Safemotion Lib
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
fastreid.utils.registry.Registry Class Reference
Inheritance diagram for fastreid.utils.registry.Registry:

Public Member Functions

None __init__ (self, str name)
 
Optional[object] register (self, object obj=None)
 
object get (self, str name)
 

Protected Member Functions

None _do_register (self, str name, object obj)
 

Detailed Description

The registry that provides name -> object mapping, to support third-party
users' custom modules.
To create a registry (e.g. a backbone registry):
.. code-block:: python
    BACKBONE_REGISTRY = Registry('BACKBONE')
To register an object:
.. code-block:: python
    @BACKBONE_REGISTRY.register()
    class MyBackbone():
        ...
Or:
.. code-block:: python
    BACKBONE_REGISTRY.register(MyBackbone)

Definition at line 7 of file registry.py.

Constructor & Destructor Documentation

◆ __init__()

None fastreid.utils.registry.Registry.__init__ ( self,
str name )
Args:
    name (str): the name of this registry

Definition at line 24 of file registry.py.

24 def __init__(self, name: str) -> None:
25 """
26 Args:
27 name (str): the name of this registry
28 """
29 self._name: str = name
30 self._obj_map: Dict[str, object] = {}
31

Member Function Documentation

◆ _do_register()

None fastreid.utils.registry.Registry._do_register ( self,
str name,
object obj )
protected

Definition at line 32 of file registry.py.

32 def _do_register(self, name: str, obj: object) -> None:
33 assert (
34 name not in self._obj_map
35 ), "An object named '{}' was already registered in '{}' registry!".format(
36 name, self._name
37 )
38 self._obj_map[name] = obj
39

◆ get()

object fastreid.utils.registry.Registry.get ( self,
str name )

Definition at line 58 of file registry.py.

58 def get(self, name: str) -> object:
59 ret = self._obj_map.get(name)
60 if ret is None:
61 raise KeyError(
62 "No object named '{}' found in '{}' registry!".format(
63 name, self._name
64 )
65 )
66 return ret

◆ register()

Optional[object] fastreid.utils.registry.Registry.register ( self,
object obj = None )
Register the given object under the the name `obj.__name__`.
Can be used as either a decorator or not. See docstring of this class for usage.

Definition at line 40 of file registry.py.

40 def register(self, obj: object = None) -> Optional[object]:
41 """
42 Register the given object under the the name `obj.__name__`.
43 Can be used as either a decorator or not. See docstring of this class for usage.
44 """
45 if obj is None:
46 # used as a decorator
47 def deco(func_or_class: object) -> object:
48 name = func_or_class.__name__ # pyre-ignore
49 self._do_register(name, func_or_class)
50 return func_or_class
51
52 return deco
53
54 # used as a function call
55 name = obj.__name__ # pyre-ignore
56 self._do_register(name, obj)
57

The documentation for this class was generated from the following file: