| class ConfigMapper: |
| """Class for creating ConfigMapper objects. |
| |
| This class can be used to create custom configuration names using YAML files. |
| For each class or object instantiated in any modules, |
| the ConfigMapper object can be used either with the functions, |
| or as a decorator to store the mapping in the function. |
| |
| Attributes |
| ---------- |
| |
| Methods |
| ------- |
| |
| """ |
|
|
| dicts = { |
| "models": {}, |
| "trainers": {}, |
| "metrics": {}, |
| "losses": {}, |
| "optimizers": {}, |
| "schedulers": {}, |
| "devices": {}, |
| "embeddings": {}, |
| "params": {}, |
| "datasets": {}, |
| "preprocessors": {}, |
| "tokenizers": {}, |
| } |
|
|
| @classmethod |
| def map(cls, key, name): |
| """ |
| Map a particular name to an object, in the specified key |
| |
| Parameters |
| ---------- |
| name : str |
| The name of the object which will be used. |
| key : str |
| The key of the mapper to be used. |
| """ |
|
|
| def wrap(obj): |
| if key in cls.dicts.keys(): |
| cls.dicts[key][name] = obj |
| else: |
| cls.dicts[key] = {} |
| cls.dicts[key][name] = obj |
| return obj |
|
|
| return wrap |
|
|
| @classmethod |
| def get_object(cls, key, name): |
| """""" |
| try: |
| return cls.dicts[key][name] |
| except: |
| raise NotImplementedError("Key:{name} Undefined".format(name=name)) |
|
|
|
|
| configmapper = ConfigMapper() |
|
|