Rename MappingObjects to Namespaces
This commit is contained in:
parent
b17611d45a
commit
71f9e394de
|
@ -4,24 +4,24 @@ from typing import (
|
|||
)
|
||||
|
||||
|
||||
def objectify(value: Any) -> Any:
|
||||
def namespacify(value: Any) -> Any:
|
||||
if isinstance(value, MutableMapping):
|
||||
return MutableMappingObject(value)
|
||||
return MutableNamespace(value)
|
||||
elif isinstance(value, Mapping):
|
||||
return MappingObject(value)
|
||||
return Namespace(value)
|
||||
elif isinstance(value, (str, ByteString)):
|
||||
# Do not treat strings and bytestrings as normal sequences
|
||||
return value
|
||||
elif isinstance(value, Sequence):
|
||||
return list(map(objectify, value))
|
||||
return list(map(namespacify, value))
|
||||
elif isinstance(value, Set):
|
||||
return set(map(objectify, value))
|
||||
return set(map(namespacify, value))
|
||||
elif isinstance(value, Iterable):
|
||||
return map(objectify, value)
|
||||
return map(namespacify, value)
|
||||
return value
|
||||
|
||||
|
||||
class MappingObject(Mapping):
|
||||
class Namespace(Mapping):
|
||||
|
||||
def __init__(self, *args: Iterable, **kwargs: Any):
|
||||
for iterable in (*args, kwargs):
|
||||
|
@ -35,7 +35,7 @@ class MappingObject(Mapping):
|
|||
attr = getattr(self, name)
|
||||
except AttributeError:
|
||||
raise KeyError(repr(name))
|
||||
return objectify(attr)
|
||||
return namespacify(attr)
|
||||
|
||||
def __iter__(self) -> Iterator:
|
||||
return iter(self.__dict__)
|
||||
|
@ -49,11 +49,11 @@ class MappingObject(Mapping):
|
|||
def __str__(self) -> str:
|
||||
return str(self.__dict__)
|
||||
|
||||
def copy(self) -> 'MappingObject':
|
||||
def copy(self) -> 'Namespace':
|
||||
return self.__class__(self.__dict__)
|
||||
|
||||
|
||||
class MutableMappingObject(MappingObject, MutableMapping):
|
||||
class MutableNamespace(Namespace, MutableMapping):
|
||||
|
||||
def __setitem__(self, name: Any, value: Any) -> None:
|
||||
setattr(self, name, value)
|
||||
|
|
Loading…
Reference in New Issue