improve find() for downloaders and postprocessors

This commit is contained in:
Mike Fährmann
2019-07-15 16:33:03 +02:00
parent 0151e250f5
commit c41ff9441e
2 changed files with 12 additions and 8 deletions

View File

@@ -30,9 +30,10 @@ def find(scheme):
if scheme in modules: # prevent unwanted imports if scheme in modules: # prevent unwanted imports
try: try:
module = importlib.import_module("." + scheme, __package__) module = importlib.import_module("." + scheme, __package__)
klass = module.__downloader__
except ImportError: except ImportError:
pass pass
else:
klass = module.__downloader__
if scheme == "http": if scheme == "http":
_cache["http"] = _cache["https"] = klass _cache["http"] = _cache["https"] = klass

View File

@@ -28,15 +28,18 @@ def find(name):
try: try:
return _cache[name] return _cache[name]
except KeyError: except KeyError:
klass = None pass
klass = None
if name in modules: # prevent unwanted imports
try: try:
if name in modules: # prevent unwanted imports module = importlib.import_module("." + name, __package__)
module = importlib.import_module("." + name, __package__) except ImportError:
klass = module.__postprocessor__
except (ImportError, AttributeError, TypeError):
pass pass
_cache[name] = klass else:
return klass klass = module.__postprocessor__
_cache[name] = klass
return klass
# -------------------------------------------------------------------- # --------------------------------------------------------------------