django-components/django_components/component_registry.py
Bradley Stuart Kirton 2c644d4c06 Add pytest-cov
Apply black formatting
Add component_css_dependencies_tag and component_js_dependencies_tag tags
Add convenience methods render_css_dependencies and render_js_dependencies to component class
Create additional test cases
Add license to setup.py
Add pytest.ini config file
2020-07-10 13:07:51 +02:00

34 lines
807 B
Python

class AlreadyRegistered(Exception):
pass
class NotRegistered(Exception):
pass
class ComponentRegistry(object):
def __init__(self):
self._registry = {} # component name -> component_class mapping
def register(self, name=None, component=None):
if name in self._registry:
raise AlreadyRegistered('The component "%s" is already registered' % name)
self._registry[name] = component
def unregister(self, name):
self.get(name)
del self._registry[name]
def get(self, name):
if name not in self._registry:
raise NotRegistered('The component "%s" is not registered' % name)
return self._registry[name]
def all(self):
return self._registry
def clear(self):
self._registry = {}