Coverage for netbox/registry.py: 69%
13 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1import collections
3from django.utils.translation import gettext as _
6class Registry(dict):
7 """
8 Central registry for registration of functionality. Once a Registry is initialized, keys cannot be added or
9 removed (though the value of each key is mutable).
10 """
11 def __getitem__(self, key):
12 try:
13 return super().__getitem__(key)
14 except KeyError:
15 raise KeyError(_("Invalid store: {key}").format(key=key))
17 def __setitem__(self, key, value):
18 raise TypeError(_("Cannot add stores to registry after initialization"))
20 def __delitem__(self, key):
21 raise TypeError(_("Cannot delete stores from registry"))
24# Initialize the global registry
25registry = Registry({
26 'counter_fields': collections.defaultdict(dict),
27 'data_backends': dict(),
28 'event_rule_actions': dict(),
29 'event_types': dict(),
30 'filtersets': dict(),
31 'model_actions': collections.defaultdict(set),
32 'model_features': dict(),
33 'plugins': dict(),
34 'request_processors': list(),
35 'search': dict(),
36 'serializer_resolvers': dict(),
37 'system_jobs': dict(),
38 'tables': collections.defaultdict(dict),
39 'views': collections.defaultdict(dict),
40 'webhook_callbacks': list(),
41 'widgets': dict(),
42})