improving boot speed | refactoring

This commit is contained in:
Vinicius Moreira
2019-07-30 17:20:37 -03:00
parent 5ae5b294e9
commit 78763bd663
3 changed files with 13 additions and 12 deletions

View File

@@ -2,8 +2,9 @@ import inspect
import os
import pkgutil
from argparse import Namespace
from typing import Set, List, Dict
from typing import List, Dict
from fpakman_api.abstract.controller import ApplicationManager
from fpakman_api.util.cache import Cache
from fpakman import ROOT_DIR
@@ -12,7 +13,7 @@ from fpakman.util import util
ignore_modules = {'fpakman_api'}
def find_manager(member, ):
def find_manager(member):
if inspect.isclass(member) and inspect.getmro(member)[1].__name__ == 'ApplicationManager':
return member
elif inspect.ismodule(member) and member.__name__ not in ignore_modules:
@@ -22,16 +23,16 @@ def find_manager(member, ):
return manager_found
def load_managers(caches: List[Cache], cache_map: Dict[type, Cache], locale_keys: Dict[str, str], app_args: Namespace, http_session):
def load_managers(caches: List[Cache], cache_map: Dict[type, Cache], locale_keys: Dict[str, str], app_args: Namespace, http_session) -> List[ApplicationManager]:
managers = None
for m in pkgutil.iter_modules():
if m.ispkg and m.name and m.name not in ignore_modules and m.name.startswith('fpakman_'):
module = pkgutil.find_loader(m.name).load_module()
manager = find_manager(module)
manager_class = find_manager(module)
if manager:
if manager_class:
locale_path = '{}/resources/locale'.format(module.__path__[0])
if os.path.exists(locale_path):
@@ -41,11 +42,11 @@ def load_managers(caches: List[Cache], cache_map: Dict[type, Cache], locale_keys
managers = []
app_cache = Cache(expiration_time=app_args.cache_exp)
man = manager(app_args=app_args,
fpakman_root_dir=ROOT_DIR,
http_session=http_session,
locale_keys=locale_keys,
app_cache=app_cache)
man = manager_class(app_args=app_args,
fpakman_root_dir=ROOT_DIR,
http_session=http_session,
locale_keys=locale_keys,
app_cache=app_cache)
cache_map[man.get_app_type()] = app_cache
caches.append(app_cache)
managers.append(man)