mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
f8e9a64ec7
Add (lots) of documentation for various parts of the test suite in the form of Python docstrings. Also, clean up some of the redundant code and fix indentation issues.
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import os
|
|
|
|
# this file implements the mechanism of conf class auto-registration,
|
|
# don't modify this file if you have no idea what you're doing
|
|
|
|
|
|
def gen_hook():
|
|
hook_table = {}
|
|
|
|
class Wrapper:
|
|
"""
|
|
Decorator class which implements the conf class registration.
|
|
"""
|
|
def __init__(self, alias=None):
|
|
self.alias = alias
|
|
|
|
def __call__(self, cls):
|
|
# register the class object with the name of the class
|
|
hook_table[cls.__name__] = cls
|
|
if self.alias:
|
|
# also register the alias of the class
|
|
hook_table[self.alias] = cls
|
|
|
|
return cls
|
|
|
|
def find_hook(name):
|
|
if name in hook_table:
|
|
return hook_table[name]
|
|
else:
|
|
raise AttributeError
|
|
|
|
return Wrapper, find_hook
|
|
|
|
_register, find_conf = gen_hook()
|
|
hook = rule = _register
|
|
|
|
__all__ = ['hook', 'rule']
|
|
|
|
for module in os.listdir(os.path.dirname(__file__)):
|
|
# import every module under this package except __init__.py,
|
|
# so that the decorator `register` applies
|
|
# (nothing happens if the script is not loaded)
|
|
if module != '__init__.py' and module.endswith('.py'):
|
|
module_name = module[:-3]
|
|
mod = __import__('%s.%s' % (__name__, module_name),
|
|
globals(),
|
|
locals())
|
|
__all__.append(module_name)
|