Skip to content

A more flexible register for the DeepLearning project.

License

Notifications You must be signed in to change notification settings

lartpang/RegisterIt

Repository files navigation

RegisterIt

Register it: A more flexible register for the DeepLearning project.

The registry that provides name -> object mapping, to support classes and functions.

Install

pip install register_it

Usage

To create a registry (e.g. a class registry and a function registry):

DATASETS = Registry(name="dataset")
EVALUATE = Registry(name="evaluate")

To register an object:

@DATASETS.register(name='mymodule')
class MyModule(*args, **kwargs):
    ...

@EVALUATE.register(name='myfunc')
def my_func(*args, **kwargs):
    ...

Or:

DATASETS.register(name='mymodule', obj=MyModule)

EVALUATE.register(name='myfunc', obj=my_func)

To construct an object of the class or the function:

DATASETS = Registry(name="dataset")
# The callers of the DATASETS are from the module data, we need to manually import it.
DATASETS.import_module_from_module_names(["data"])

EVALUATE = Registry(name="evaluate")
# The callers of the EVALUATE are from the module evaluate, we need to manually import it.
EVALUATE.import_module_from_module_names(["evaluate"])

Thanks