mirror of
https://github.com/django-components/django-components.git
synced 2025-07-18 22:05:00 +00:00

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
34 lines
807 B
Python
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 = {}
|