easycore.common.registry

class easycore.common.registry.Registry(name: str)[source]

Bases: object

The registry that provides name -> object mapping.

To create a registry:

MODEL_REGISTRY = Registry("MODEL")

To register an object with its __name__:

@MODEL_REGISTRY.register()
class ResNet50:
    pass

# or

MODEL_REGISTRY.register(obj=ResNet50)

To register an object with a given name:

@MODEL_REGISTRY.register("resnet")
class RestNet50:
    pass

# or

MODEL_REGISTRY.register("resnet", ResNet50)

To get a registered object from registry:

model_class = MODEL_REGISTRY.get("ResNet50")

# or

model_class = MODEL_REGISTRY.get("resnet")
__init__(name: str) → None[source]
Parameters:name (str) – name of this registry
register(name: str = None, obj: object = None) → Optional[object][source]

Register the given object with given name. If the object is not given, it will act as a decorator.

Parameters:
  • name (str, optional) – if not given, it will use obj.__name__ as the name.
  • obj (object, optional) – if not given, this method will return a decorator.
Returns:

Optional[object] – None or a decorator.

unregister(name: str) → None[source]

Remove registered object.

Parameters:name (str) – registered name
is_registered(name)[source]

Get whether the given name has been registered.

Parameters:name (str) –
Returns:bool – whether the name has been registered.
get(name: str) → object[source]

Get a registered object from registry by its name.

Parameters:name (str) – registered name.
Returns:object – registered object.
registered_names() → List[str][source]

Get all registered names.

Returns:list[str] – list of registered names.