Ragdoll / utils /config.py
abhaskumarsinha's picture
Added the alpha version of Corpus2GPT
ceed47a
class _C2G_CONFIG:
"""
This class provides functionalities for managing configurations and modules within the C2G system.
Methods
clean_config(): Resets the configuration dictionary.
clean_dir(): Clears the module directory and module list.
display_available_modules(): Prints the names of available modules.
update_inverse_list(): Updates the inverse dictionary of module names.
Attributes:
_C: A dictionary storing configuration settings.
_dir: A dictionary mapping module names to their corresponding objects.
_module_list: A list containing names of registered modules.
Example:
```
>>> @register_module('add')
>>> def add(a, b):
>>> return a+b
>>> add(-10, 12)
2
>>> cfg.display_available_modules()
Available Modules:
ADD
>>> cfg.clean_dir()
>>> cfg.display_available_modules()
Available Modules:
```
"""
_C = {}
_dir = {}
_module_list = []
def clean_config(self):
self._C = {}
def clean_dir(self):
self._dir = {}
self._module_list = []
def display_available_modules(self):
print('Available Modules:')
for module_name, _ in self._dir.items():
print(module_name)
def update_inverse_list(self):
self._inv_dir = {value : key for key, value in self._dir.items()}
class register_module:
"""
This class is a decorator used for registering modules within the C2G system.
Methods
__init__(self, name): Initializes the module with a given name.
__call__(self, module): Registers the module with the provided name and updates the module list.
Examples
```
>>> @register_module('add')
>>> def add(a, b):
>>> return a+b
>>> add(-10, 12)
2
>>> cfg.display_available_modules()
Available Modules:
ADD
```
"""
def __init__(self, name):
self.name = name.upper()
def __call__(self, module):
cfg._dir[self.name] = module
cfg.update_inverse_list()
cfg._module_list.append(self.name)
return cfg._dir[self.name]