Skip to main content

kwargs_obj

https://badge.fury.io/py/kwargs_obj.png https://pypip.in/d/kwargs_obj/badge.png

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kwargs_obj-1.0.0.tar.gz (4.2 kB view details)

Uploaded Source

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

Hashes for kwargs_obj-1.0.0.tar.gz
Algorithm Hash digest
SHA256 acf094120268beb105eae4b28126697abdf3db39387fd2e85c75de2b615097ba
MD5 8cbb310a16d1fd072369c4dd67f49bbd
BLAKE2b-256 3973c16fa20b1c36c7eb3ac9eb4e6a48bff25311987482726e95c5220a5f2ad4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page