def run(self, args): settings = self.get_settings() for name in map(basename, glob(join('controllers', '*.py'))): autoreload.watch(name) Module.load(self.get_controller_import_path(name)) from shrine.routes import make_application MESSAGE = "{} running at http://localhost:{}\n".format( settings.PRODUCT_NAME, settings.PORT, ) application = make_application() application.listen(settings.PORT) self.log.bold_green(MESSAGE) from shrine.log import logger logger.setLevel(logging.WARNING) try: autoreload.start() IOLoop.instance().start() except KeyboardInterrupt: self.log.bold_red_on_black("\rInterrupted by the User (Control-C)\n")
def run_from_argv(cls, argv): for name in map(basename, glob(SHRINE_FILE('cmds', '*.py'))): if name not in ('__init__.py', basename(__file__)): Module.load('shrine.cmds.{}'.format(splitext(name)[0])) Command, args = cls.parse_argv(argv) return Command().run(args)
def seek_and_destroy(self): for name in map(basename, glob(join('controllers', '*.py'))): module_cache.append( Module.load(self.get_controller_import_path(name))) autoreload.watch(name)
os.environ['DJANGO_SETTINGS_MODULE'] = 'shrine.settings' ws_settings_module = os.getenv('SHRINE_SETTINGS_MODULE') if not ws_settings_module: raise ImportError( 'Could not find the module {} inside {}'.format( ws_settings_module or 'SHRINE_SETTINGS_MODULE', os.getcwd()), ) from django.conf import settings as django_settings SUBDIR = join(os.getcwdu(), '..') sys.path.append(SUBDIR) shrine_settings = Module.load(ws_settings_module) sys.path.remove(SUBDIR) for settings_key in dir(shrine_settings): if settings_key.startswith('__'): continue settings_value = getattr(shrine_settings, settings_key) if settings_key == 'DATABASES': django_settings.DATABASES.update(settings_value) elif settings_key in ('INSTALLED_APPS',): django_settings.INSTALLED_APPS = tuple( set(django_settings.INSTALLED_APPS + settings_value)) elif settings_key in ('TEMPLATE_PATH', 'STATIC_PATH',):