コード例 #1
0
def load_view(app):
    import enaml
    import enamlnative
    with enamlnative.imports():
        with enaml.imports():
            from view import ContentView
            app.view = ContentView()
    app.show_view()
コード例 #2
0
def reload_view(app):
    import enaml
    import enamlnative
    with enamlnative.imports():
        with enaml.imports():
            import view
            reload(view)
            app.view = view.ContentView()
    app.show_view()
コード例 #3
0
def main():
    """ Called by PyBridge.start()
    """
    print(sys.path)
    import enamlnative
    with enamlnative.imports():
        from enamlnative.android.app import AndroidApplication
        app = AndroidApplication('com.codelv.enamlnative.EnamlActivity')
    app.debug = True  #: Makes a lot of lag!
    app.dev = 'server'
    app.reload_view = reload_view
    app.deferred_call(load_view, app)
    app.start()
コード例 #4
0
def main():
    """ Called by PyBridge.start()
    """
    print(sys.path)
    import enamlnative
    with enamlnative.imports():
        from enamlnative.android.app import AndroidApplication
        app = AndroidApplication('com.enaml.MainActivity')
    #app.debug = True #: Makes a lot of lag!
    #app.dev = '192.168.34.103'
    #app.reload_view = reload_view
    app.ignore_reference_errors = True
    app.deferred_call(load_view, app)
    #app.deferred_call(dump_stats)
    app.start()
コード例 #5
0
ファイル: loop.py プロジェクト: marksagal/enaml-native
 def default(cls):
     """ Get the first available event loop implementation
     based on which packages are installed.
     
     """
     with enamlnative.imports():
         for impl in [
             TornadoEventLoop,
             TwistedEventLoop,
             BuiltinEventLoop,
         ]:
             if impl.available():
                 print("Using {} event loop!".format(impl))
                 return impl()
     raise RuntimeError("No event loop implementation is available. "
                        "Install tornado or twisted.")
コード例 #6
0
    def start(self, session):
        with enamlnative.imports():
            import tornado.ioloop
            import tornado.web
            import tornado.websocket
        server = self

        class DevWebSocketHandler(tornado.websocket.WebSocketHandler):
            def open(self):
                print("Dev server client connected!")

            def on_message(self, message):
                #: Delegate
                r = session.handle_message(message)
                self.write_message(json.dumps(r))

            def on_close(self):
                print("Dev server client lost!")

        class MainHandler(tornado.web.RequestHandler):
            def get(self):
                #: Delegate
                self.write(server.render_editor())

            def post(self):
                #: Allow posting events
                r = session.handle_message(self.request.body)
                self.write(json.dumps(r))

        app = tornado.web.Application([
            (r"/", MainHandler),
            (r"/dev", DevWebSocketHandler),
            (
                r"/tmp/(.*)",
                tornado.web.StaticFileHandler,
                {
                    "path": os.environ.get("TMP", sys.path[0])
                },
            ),
            (r"/source/(.*)", tornado.web.StaticFileHandler, {
                "path": sys.path[0]
            }),
        ])

        #: Start listening
        app.listen(session.port)
        print("Tornado dev server started on {}".format(session.port))
コード例 #7
0
ファイル: dev.py プロジェクト: nmilosev/enaml-native
    def start(self, session):
        server = self
        with enamlnative.imports():
            from twisted.internet import reactor
            from twisted.web import resource
            from twisted.web.static import File
            from twisted.web.server import Site
            from autobahn.twisted.websocket import (WebSocketServerFactory,
                                                    WebSocketServerProtocol)
            from autobahn.twisted.resource import WebSocketResource

        class DevWebSocketHandler(WebSocketServerProtocol):
            def onConnect(self, request):
                print("Client connecting: {}".format(request.peer))

            def onOpen(self):
                print("WebSocket connection open.")

            def onMessage(self, payload, isBinary):
                r = session.handle_message(payload)
                self.sendMessage(json.dumps(r))

            def onClose(self, wasClean, code, reason):
                print("WebSocket connection closed: {}".format(reason))

        class MainHandler(resource.Resource):
            def render_GET(self, req):
                return server.render_editor()

            def render_POST(self, req):
                #: Allow posting events
                r = session.handle_message(req.content.getvalue())
                return json.dumps(r)

        factory = WebSocketServerFactory(u"ws://0.0.0.0:{}".format(
            session.port))
        factory.protocol = DevWebSocketHandler
        root = resource.Resource()
        root.putChild("", MainHandler())
        root.putChild("dev", WebSocketResource(factory))
        root.putChild("source", File(sys.path[0]))
        root.putChild("tmp", File(os.environ.get('TMP', sys.path[0])))
        site = Site(root)
        reactor.listenTCP(session.port, site)
        print("Twisted dev server started on {}".format(session.port))
コード例 #8
0
ファイル: dev.py プロジェクト: nmilosev/enaml-native
@author jrm

"""
import os
import sys
import json
import shutil
import inspect
import traceback
import enamlnative
from atom.api import (Atom, Instance, List, Subclass, ForwardInstance, Enum,
                      Unicode, Int, Bool)
from contextlib import contextmanager
from .bridge import Command

with enamlnative.imports():
    from .hotswap.api import Hotswapper


@contextmanager
def cd(newdir):
    prevdir = os.getcwd()
    os.chdir(os.path.expanduser(newdir))
    try:
        print("Entering into {}".format(newdir))
        yield
        print("Returning to {}".format(prevdir))
    finally:
        os.chdir(prevdir)