Rename MappingObjects to Namespaces

This commit is contained in:
Lucidiot 2019-09-15 13:11:50 +02:00
parent b17611d45a
commit 71f9e394de
Signed by: lucidiot
GPG Key ID: 3358C1CA6906FB8D
1 changed files with 10 additions and 10 deletions

View File

@ -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)