def execute(self, models, *args, **kwargs): models = filter(bool, [m.strip() for m in models.split(',')]) load_apps() for path, cls in _registered_models.items(): if not hasattr(cls, 'query') or cls.query().count() == 0 or (models and path not in models): continue print('%s: %s objects' % (path, cls.query().count())) for obj in cls.query(): sys.stdout.write('.'); sys.stdout.flush() model_register_dependents.send(instance=obj, for_all=True, sender=self) print('')
def execute(self, *args, **kwargs): # Loads installed applications for app in load_apps(): print('Application %s loaded.'%app.__name__) # Runs the shell istance shell = args[0] if args else 'ipython' try: getattr(self, shell)() except AttributeError: print('Invalid shell. Try "bpython", "ipython" or "notebook".')
def load_from_applications(self, *apps): """ Loads applications given as arguments or all of installed applications if empty. """ apps = apps or load_apps() for mod in apps: try: rest_mod = import_anything('rest', mod) except ImportError as e: continue for attr in dir(rest_mod): cls = getattr(rest_mod, attr) if isinstance(cls, type) and issubclass(cls, BaseModule): self.register_module(getattr(rest_mod, attr))
def run(settings, port, server_class, verbosity, *args): if verbosity >= 1: print('\nStarting a instance for the service "%s".'%args[0]) # Loads installed applications for app in load_apps(): if verbosity >= 1: print('Application %s loaded.'%app.__name__) # Running the service service = get_service(settings, args[0]) service.port = int(port or service.port) server = get_server(server_class, service) server.run()
def execute(self, *args, **kwargs): if not args and not settings.TEST_DEFAULT_APPS: sys.exit('You must inform the application name to test. It can be a list of applications separated by commas.') # Setting test mode to the settings settings._TESTING = True # Sets a different database setting old_databases = settings.DATABASES.copy() for k in settings.DATABASES: settings.DATABASES[k]['name'] = settings.DATABASES[k]['name'] + '_test_' + get_random_string() # Creates the test database conn = get_connection(k, force_reopen=True) conn.create_database() # Default nose arguments argv = ['nosetests','--with-doctest','--verbosity=%s'%kwargs['verbosity']] if kwargs.get('with_coverage',None): argv.append('--with-coverage') if settings.TEST_ADDITIONAL_ARGS: argv.extend(settings.TEST_ADDITIONAL_ARGS) #if test_case: # argv.append('--testmatch=%s\.txt'%test_case) # FIXME: it's not working # Gets informed application bits = (args[0] if args else settings.TEST_DEFAULT_APPS).split(',') for app in load_apps(): if not [b for b in bits if b.split(':')[0] == app._app_in_london]: continue # TODO The sign ":" is for tell a specific test file instead of whole application. But this is not yet working. # Finds the test directory tests_dir = os.path.join(app.__path__[0], 'tests') if not os.path.exists(tests_dir): sys.exit('There is no folder "tests" in the given application.') sys.path.insert(0, tests_dir) argv.append('--where=' + tests_dir) # Finally, running the test program program = TestProgram(argv=argv, exit=False) # Drops the test databases for k in settings.DATABASES: conn = get_connection(k) conn.drop_database()
def get_commands_modules(): global _commands_modules if _commands_modules is not None: return _commands_modules _commands_modules = [] # COMMANDS_DIRS if getattr(settings, 'COMMANDS_MODULES', None): _commands_modules.extend(settings.COMMANDS_MODULES) # Applications directories from london.core import load_apps for app in load_apps(): path = os.path.join(app.__path__[0], 'commands') if os.path.exists(path): _commands_modules.append('%s.%s'%(app.__name__,'commands')) # This directory _commands_modules.append('london.commands') return _commands_modules
def template_dirs_from_apps(**kwargs): def template_dir(app_mod): return os.path.join(app_mod.__path__[0], "templates") return [FileSystemLoader(template_dir(app)) for app in load_apps()]
def execute(self, *args, **kwargs): load_apps() from london.apps.auth.models import User if kwargs.get('username', None): if User.query().filter(username=kwargs['username']).count(): sys.exit('User "%s" already exists.'%kwargs['username']) elif kwargs.get('email', None): if User.query().filter(email=kwargs['email']).count(): sys.exit('User with e-mail "%s" already exists.'%kwargs['email']) kwargs['username'] = slugify(kwargs['email']) fields = {} # Username if kwargs.get('username', None): fields['username'] = kwargs['username'] else: fields['username'] = raw_input('Username: '******'username'].strip(): print('Invalid username.') sys.exit(1) # Password if kwargs.get('password', None): fields['password'] = kwargs['password'] else: fields['password'] = raw_input('Password (empty for random generation): ') if not fields['password']: fields['password'] = get_random_string() print('The password "%s" was generated.'%fields['password']) elif fields['password'] != raw_input('... again, for confirmation: '): print('Password not apropriately confirmed.') sys.exit(1) # E-mail address if kwargs.get('email', None): fields['email'] = kwargs['email'] else: fields['email'] = raw_input('E-mail address: ') if not fields['email'].strip(): print('Invalid e-mail address.') sys.exit(1) # Is staff? if kwargs['is_staff']: fields['is_staff'] = kwargs['is_staff'] else: fields['is_staff'] = raw_input('Can access admin (staff)?: ').lower() == 'yes' # Is superuser? if kwargs['is_superuser']: fields['is_superuser'] = kwargs['is_superuser'] else: fields['is_superuser'] = raw_input('Superuser?: ').lower() == 'yes' # Checks if a user with that username already exists. if User.query().filter(username=fields['username']).count(): print('Another user exists with the username "%s".'%fields['username']) sys.exit(1) user = User.query().create(**fields) print('The user "%s" was created with password "%s"'%(fields['username'], fields['password']))