diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-12-01 12:45:37 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-12-01 12:45:37 +0000 |
commit | 5be10680899fbf22352de1c80549fd7974f7b310 (patch) | |
tree | aadd5eed2c8699aaf5eb46da3ce423a6ffb2c875 | |
parent | 9dd9a60a45288298b8467494fec17cc7a17eddac (diff) | |
download | portage-5be10680899fbf22352de1c80549fd7974f7b310.tar.gz portage-5be10680899fbf22352de1c80549fd7974f7b310.tar.bz2 portage-5be10680899fbf22352de1c80549fd7974f7b310.zip |
Move duplicate module loading code into a function.
svn path=/main/trunk/; revision=8789
-rw-r--r-- | pym/portage/elog/__init__.py | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/pym/portage/elog/__init__.py b/pym/portage/elog/__init__.py index d3e333534..5aa6930c7 100644 --- a/pym/portage/elog/__init__.py +++ b/pym/portage/elog/__init__.py @@ -43,11 +43,21 @@ def _combine_logentries(logentries): return "".join(rValue) _elog_mod_imports = {} +def _load_mod(name): + global _elog_mod_imports + m = _elog_mod_imports.get(name) + if m is None: + m = __import__(name) + for comp in name.split(".")[1:]: + m = getattr(m, comp) + _elog_mod_imports[name] = m + return m + _elog_atexit_handlers = [] _preserve_logentries = {} def elog_process(cpv, mysettings, phasefilter=None): - global _elog_mod_imports + logsystems = mysettings.get("PORTAGE_ELOG_SYSTEM","").split() for s in logsystems: # allow per module overrides of PORTAGE_ELOG_CLASSES @@ -57,13 +67,7 @@ def elog_process(cpv, mysettings, phasefilter=None): # - is nicer than _ for module names, so allow people to use it. s = s.replace("-", "_") try: - name = "portage.elog.mod_" + s - m = _elog_mod_imports.get(name) - if m is None: - m = __import__(name) - for comp in name.split(".")[1:]: - m = getattr(m, comp) - _elog_mod_imports[name] = m + _load_mod("portage.elog.mod_" + s) except ImportError: pass @@ -113,15 +117,7 @@ def elog_process(cpv, mysettings, phasefilter=None): # - is nicer than _ for module names, so allow people to use it. s = s.replace("-", "_") try: - # FIXME: ugly ad.hoc import code - # TODO: implement a common portage module loader - name = "portage.elog.mod_" + s - m = _elog_mod_imports.get(name) - if m is None: - m = __import__(name) - for comp in name.split(".")[1:]: - m = getattr(m, comp) - _elog_mod_imports[name] = m + m = _load_mod("portage.elog.mod_" + s) def timeout_handler(signum, frame): raise PortageException("Timeout in elog_process for system '%s'" % s) import signal |