## Registry


A registry that maps names to types.


Usage


``` python
Registry(strict=False)
```


Use [register()](register.md#gdtest_sphinx_mixed_roles.register) to add entries, or call [Registry.get()](Registry.md#gdtest_sphinx_mixed_roles.Registry.get) directly.


## Parameters


`strict: bool = ``False`  
If True, raises `KeyError` on missing lookups.


## Attributes

| Name | Description |
|----|----|
| [names](#names) | List all registered names. |

------------------------------------------------------------------------


#### names


List all registered names.


`names: list`


## Methods

| Name | Description |
|----|----|
| [add()](#add) | Add a type to the registry. |
| [get()](#get) | Get a registered type by name. |

------------------------------------------------------------------------


#### add()


Add a type to the registry.


Usage


``` python
add(name, cls)
```


See also [register()](register.md#gdtest_sphinx_mixed_roles.register) for the module-level helper.


##### Parameters


`name: str`  
The name to register under.

`cls: type`  
The type to register.


------------------------------------------------------------------------


#### get()


Get a registered type by name.


Usage


``` python
get(name)
```


Checks `Registry.strict` to decide behavior on missing keys. Raises `KeyError` if strict mode is enabled and the name is not found.


##### Parameters


`name: str`  
The registered name to look up.


##### Returns


`type`  
The registered type.


##### Raises


`KeyError`  
If the name is not registered and strict mode is on.
