예제 #1
0
def create_app(root_path=None):
    global _app
    if _app is not None:
        return _app

    if root_path is None:
        root_path = os.getcwd()
    sys.path.append(root_path)
    sys.path.append(os.path.join(root_path, "protos"))

    env = os.environ.get("SEA_ENV", "development")
    config = import_string("configs.{}".format(env))

    app_class = import_string("app:App")
    _app = app_class(root_path, env=env)
    _app.config.from_object(config)
    # only filter default configurations
    _app.config.load_config_from_env()

    _app.load_middlewares()
    _app.load_extensions_in_module(import_string("app.extensions"))
    _app.load_servicers_in_module(import_string("app.servicers"))

    _app.ready()
    post_ready.send(_app)

    return _app
예제 #2
0
파일: sea.py 프로젝트: HeathLee/peeweext
 def init_app(self, app):
     config = app.config.get_namespace(self.ns)
     conn_params = config.get('conn_params', {})
     self.database = db_url.connect(config['db_url'], **conn_params)
     self.model_class = import_string(
         config.get('model', 'peeweext.model.Model'))
     self._try_setup_celery()
예제 #3
0
 def load_middlewares(self):
     mids = ['sea.middleware.GuardMiddleware'] + \
         self.config.get('MIDDLEWARES')
     for mn in mids:
         m = utils.import_string(mn)
         self._middlewares.insert(0, m)
     return self.middlewares
예제 #4
0
def test_import_string(app):
    from sea.app import BaseApp
    import datetime
    assert utils.import_string('datetime.date') is datetime.date
    assert utils.import_string('datetime.date') is datetime.date
    assert utils.import_string('datetime') is datetime
    assert utils.import_string('sea.app:BaseApp') is BaseApp
    m = utils.import_string('app.servicers:GreeterServicer')
    from app.servicers import GreeterServicer
    assert m is GreeterServicer
    with pytest.raises(ImportError):
        utils.import_string('notexist')
    with pytest.raises(ImportError):
        utils.import_string('datetime.XXXXXXXXXXXX')
예제 #5
0
def create_app(root_path=None):
    global _app
    if _app is not None:
        return _app

    if root_path is None:
        root_path = os.getcwd()
    sys.path.append(root_path)
    sys.path.append(os.path.join(root_path, 'protos'))

    env = os.environ.get('SEA_ENV', 'development')
    config = import_string('configs.{}'.format(env))

    app_class = import_string('app:App')
    _app = app_class(root_path, env=env)
    _app.config.from_object(config)

    _app.load_middlewares()
    _app.load_extensions_in_module(import_string('app.extensions'))
    _app.load_servicers_in_module(import_string('app.servicers'))

    _app.ready()

    return _app
예제 #6
0
def _load_jobs():
    path = os.getcwd()
    sys.path.append(path)

    # load builtin
    import_string('sea.cmds')

    # load lib jobs
    for ep in pkg_resources.iter_entry_points('sea.jobs'):
        ep.load()

    # load app jobs
    appjobs = os.path.join(path, 'jobs')
    if os.path.exists(appjobs):
        import_string('jobs')
        for m in os.listdir(appjobs):
            if m != '__init__.py' and m.endswith('.py'):
                import_string('jobs.{}'.format(m[:-3]))
예제 #7
0
파일: cli.py 프로젝트: xjw6/sea
def _load_jobs():
    path = os.getcwd()
    sys.path.append(path)

    # load builtin
    import_string("sea.cmds")

    # load lib jobs
    for ep in pkg_resources.iter_entry_points("sea.jobs"):
        try:
            ep.load()
        except Exception as e:
            logger = logging.getLogger("sea.cmd")
            logger.error("error has occurred during pkg loading: {}".format(e))

    # load app jobs
    appjobs = os.path.join(path, "jobs")
    if os.path.exists(appjobs):
        import_string("jobs")
        for m in os.listdir(appjobs):
            if m != "__init__.py" and m.endswith(".py"):
                import_string("jobs.{}".format(m[:-3]))
예제 #8
0
def _load_jobs():
    path = os.getcwd()
    sys.path.append(path)

    # load builtin
    import_string('sea.cmds')

    # load lib jobs
    for ep in pkg_resources.iter_entry_points('sea.jobs'):
        try:
            ep.load()
        except Exception as e:
            logger = logging.getLogger('sea.cmd')
            logger.debug(
                'error has occurred during pkg loading: {}'.format(e))

    # load app jobs
    appjobs = os.path.join(path, 'jobs')
    if os.path.exists(appjobs):
        import_string('jobs')
        for m in os.listdir(appjobs):
            if m != '__init__.py' and m.endswith('.py'):
                import_string('jobs.{}'.format(m[:-3]))
예제 #9
0
def load_config(app, without_imports=True):
    config_name = os.environ.get("SEA_ENV")
    config = import_string('configs.{}'.format(config_name))
    capp.config_from_object(config, namespace="{}_".format(app).upper())
    if without_imports:
        capp._conf["{}_imports".format(app).upper()] = []