Class that maps .__init__(self, **kwargs) to attributes.
Project description
kwargs_obj
Class that maps .__init__(self, **kwargs) to attributes.
Documentation
This module can be used to automatically set values from **kwargs to attributes, and also to dissable setting of unset attributes.
Examples
Map **kwargs to attributes
Here you can see, how to map **kwargs to your attributes:
class Xex(KwargsObj):
def __init__(self, **kwargs):
self.something = None
self.something_else = None
self._kwargs_to_attributes(kwargs)
This will allow to pass parameters which sets something_else and something_different:
>>> x = Xex(something=True)
>>> x.something
True
Setting of unset attributes is dissabled:
>>> x = Xex(asd=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in __init__
File "kwargs_obj/kwargs_obj.py", line 61, in _kwargs_to_attributes
"Can't set %s parameter - it is not defined here!" % key
ValueError: Can't set asd parameter - it is not defined here!
Disable setting of unset attributes
There is also modified .__setattr__()` method, which disables to set new attributes. This may be good idea for data containers.
Modified .__setattr__() functionality can be triggered by setting the ._all_set attribute:
class Xex(KwargsObj):
def __init__(self):
self.something = None
self.something_else = None
self._all_set = True
It will be now impossible to set new attributes, which may be good for preventing typos:
>>> x = Xex()
>>> x.asd = True
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "kwargs_obj/kwargs_obj.py", line 50, in __setattr__
raise ValueError("%s is not defined in this class!" % name)
ValueError: asd is not defined in this class!
But you can still redefine already defined attributes:
>>> x.something = True
>>>
Changelog
1.0.0
Added tests.
Added documentation.
Package uploaded to pypi.
0.1.0
Project created.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kwargs_obj-1.0.0.tar.gz
.
File metadata
- Download URL: kwargs_obj-1.0.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | acf094120268beb105eae4b28126697abdf3db39387fd2e85c75de2b615097ba |
|
MD5 | 8cbb310a16d1fd072369c4dd67f49bbd |
|
BLAKE2b-256 | 3973c16fa20b1c36c7eb3ac9eb4e6a48bff25311987482726e95c5220a5f2ad4 |