You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
799 B
33 lines
799 B
6 years ago
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
# Copyright 2018 Mike Fährmann
|
||
|
#
|
||
|
# This program is free software; you can redistribute it and/or modify
|
||
|
# it under the terms of the GNU General Public License version 2 as
|
||
|
# published by the Free Software Foundation.
|
||
|
|
||
|
import importlib
|
||
|
import logging
|
||
|
|
||
|
log = logging.getLogger("postprocessor")
|
||
|
|
||
|
|
||
|
def find(name):
|
||
|
"""Return a postprocessor class with the given name"""
|
||
|
try:
|
||
|
return _cache[name]
|
||
|
except KeyError:
|
||
|
try:
|
||
|
module = importlib.import_module("."+name, __package__)
|
||
|
cls = module.__postprocessor__
|
||
|
_cache[name] = cls
|
||
|
return cls
|
||
|
except (ImportError, AttributeError):
|
||
|
return None
|
||
|
|
||
|
|
||
|
# --------------------------------------------------------------------
|
||
|
# internals
|
||
|
|
||
|
_cache = {}
|