Add a scope parameter to objreg functions.
This commit is contained in:
parent
4783df8c32
commit
c77057e88e
@ -77,14 +77,24 @@ meta_registry = ObjectRegistry()
|
|||||||
meta_registry['global'] = global_registry
|
meta_registry['global'] = global_registry
|
||||||
|
|
||||||
|
|
||||||
def get(name, default=_UNSET):
|
def _get_registry(scope):
|
||||||
|
"""Get the correct registry for a given scope."""
|
||||||
|
if scope == 'global':
|
||||||
|
return global_registry
|
||||||
|
else:
|
||||||
|
raise ValueError("Invalid scope '{}'!".format(scope))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get(name, default=_UNSET, scope='global'):
|
||||||
"""Helper function to get an object.
|
"""Helper function to get an object.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
default: A default to return if the object does not exist.
|
default: A default to return if the object does not exist.
|
||||||
"""
|
"""
|
||||||
|
reg = _get_registry(scope)
|
||||||
try:
|
try:
|
||||||
return global_registry[name]
|
return reg[name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if default is not _UNSET:
|
if default is not _UNSET:
|
||||||
return default
|
return default
|
||||||
@ -92,7 +102,7 @@ def get(name, default=_UNSET):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def register(name, obj, update=False):
|
def register(name, obj, update=False, scope='global'):
|
||||||
"""Helper function to register an object.
|
"""Helper function to register an object.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
@ -100,12 +110,14 @@ def register(name, obj, update=False):
|
|||||||
obj: The object to register.
|
obj: The object to register.
|
||||||
update: If True, allows to update an already registered object.
|
update: If True, allows to update an already registered object.
|
||||||
"""
|
"""
|
||||||
if not update and name in global_registry:
|
reg = _get_registry(scope)
|
||||||
|
if not update and name in reg:
|
||||||
raise KeyError("Object '{}' is already registered ({})!".format(
|
raise KeyError("Object '{}' is already registered ({})!".format(
|
||||||
name, repr(global_registry[name])))
|
name, repr(reg[name])))
|
||||||
global_registry[name] = obj
|
reg[name] = obj
|
||||||
|
|
||||||
|
|
||||||
def delete(name):
|
def delete(name, scope='global'):
|
||||||
"""Helper function to unregister an object."""
|
"""Helper function to unregister an object."""
|
||||||
del global_registry[name]
|
reg = _get_registry(scope)
|
||||||
|
del reg[name]
|
||||||
|
Loading…
Reference in New Issue
Block a user