Code Monkey home page Code Monkey logo

meson-py's Introduction

MesonPY

Backend Side (Py)

from MesonPy.BackendApplication import BackendApplication
from MesonPy import Constants

import controllers
import services.local as localServices
import services.shared as sharedServices

if __name__ == '__main__':
    # Init the backend application service
    app = BackendApplication(id='[APP ID]', server_secret='XXXX', client_secret='YYYY')

    # The RPC is a low-level service that will serve function to clients.
    # rpcService = app.getSharedService('com.rpc')

    # By using __session__ as a karg, the application will automatically inject the session
    # of the client who's calling the method
    # rpcService.register('hello', lambda __session__: print('hello from {}'.format(__session__.id)))
    # rpcService.register('add2', lambda x, y: x + y)

    # The service injector will inject local services to each instance,
    # and give access to shared services across the application
    serviceInjector = app.getSharedService(Constants.SERVICE_SERVICE_INJECTOR)

    # Define our to-be-injected local services, each local service get its instance context
    logger.info('Searching for local services in {}'.format(localServices.__name__))
    serviceInjector.addLocalServiceClasses(
        localServices
    )
    # Define our shared services, each shared service get its application context
    logger.info('Searching for shared services in {}'.format(sharedServices.__name__))
    serviceInjector.addSharedServiceClasses(
        sharedServices
    )
    # Load controllers
    # Controllers are built on top of RPC services to provide more
    # functionality and more context persistency accross the application.
    # Sessions are wrapped within instance contexts. Each instance context holds its local
    # memory pool, its local services and have access to a shared memory pool and services.
    logger.info('Searching for controllers in {}'.format(controllers.__name__))
    app.loadControllers(controllers)

    # Serve our application
    app.run()

controllers/FooController.py

import asyncio

class FooController:
    @asyncio.coroutine
    def actionBar(self, instanceContext):
    	instanceContext.emit('hello.world')
	localService = instanceContext.getLocalService('services.local.MyLocalService')
        var = localService.HelloWorld()
	return var

services/local/MyLocalService.py

class MyLocalService:
    def __init__(self, instanceContext):
        self.instanceContext = instanceContext
	self.instanceContext.on('hello.world', self.log)
    def HelloWorld(self):
    	return 'Hello world!'
    def log(self):
    	print('Event!')

meson-py's People

Contributors

bartpab avatar

Stargazers

Yuri Kachanyuk avatar

Watchers

 avatar James Cloos avatar Yuri Kachanyuk avatar

Forkers

vernondcole

meson-py's Issues

Transfer use of MesonPy name to the meson-python project?

Hi @Bartpab, your MesonPy package seems abandoned since 2018, and the single release on PyPI (0.0.1) does not seem to be installable with pip. The meson-python package has a very similar name, and uses a mesonpy import name rather than package name. As a result, some users are getting confused, as can be seen from recent activity on this repo: gh-3, gh-5.

Would you consider transferring the use of the MesonPy name on PyPI to the meson-python project? That would be much appreciated - it would allow us to give users an informative error message when they try do something like pip install mesonpy when they meant pip install meson-python.

Thanks in advance for considering this!

0.0.1: pep517 build fails (missing requirements.txt in sdist tar ball)

As long as there is no got tag for 0.0.1 I've tested sdist pypi tar ball.

* Getting dependencies for wheel...
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
    main()
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
    return hook(config_settings)
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 338, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=['wheel'])
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
    self.run_setup()
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 482, in run_setup
    super(_BuildMetaLegacyBackend,
  File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 4, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.