Skip to main content

Base classes for restricting the creation of dynamic attributes on instances of derived types.

Project description

AttribTool

The project contains base classes that limit the possibility of adding new attributes without their prior declaration inside classes inheriting from them or their objects.

Classes throw an AttributeError exception when trying to add an undefined attribute to a derived class or its object.

Usage examples

from attribtool.ndattrib import NoDynamicAttributes

class Example(NoDynamicAttributes):
    __name = None

    def __init__(self):
        self.__name = self.__class__.__name__

if __name__ == "__main__":
    obj = Example()
    obj.data = "abc"
% ./example.py
Traceback (most recent call last):
  File "/home/szumak/Projects/ToolBox/AttribTool/./example.py", line 22, in <module>
    obj.data = "abc"
  File "/home/szumak/Projects/ToolBox/AttribTool/attribtool/ndattrib.py", line 22, in __setattr__
    raise AttributeError(
AttributeError: Cannot add new attribute 'data' to Example object
from attribtool.nnattrib import NoNewAttributes

class Example(NoNewAttributes):
    __name = None

    def __init__(self):
        self.__name = self.__class__.__name__
        self.__data = 1

if __name__ == "__main__":
    obj = Example()
% ./example.py
Traceback (most recent call last):
  File "/home/szumak/Projects/ToolBox/AttribTool/./example.py", line 22, in <module>
    obj = Example()
  File "/home/szumak/Projects/ToolBox/AttribTool/./example.py", line 18, in __init__
    self.__data = 1
  File "/home/szumak/Projects/ToolBox/AttribTool/attribtool/nnattrib.py", line 24, in __setattr__
    raise AttributeError(
AttributeError: Undefined attribute _Example__data cannot be added to <__main__.Example object at 0x7f7129ccc2b0>

Project details


Download files

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

Source Distribution

attribtool-1.0.4.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

attribtool-1.0.4-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file attribtool-1.0.4.tar.gz.

File metadata

  • Download URL: attribtool-1.0.4.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.2 Linux/5.10.0-22-amd64

File hashes

Hashes for attribtool-1.0.4.tar.gz
Algorithm Hash digest
SHA256 672d9509cd27d01bc60f62754d27133e3fc62263883ce8a65d4305a8a21c371f
MD5 877f692c23e208bcc066824fbd788aaf
BLAKE2b-256 46c7da47aa64ee9a9a4eb33f57a9ef9d657bead6c55501c58891e9b101ec7e55

See more details on using hashes here.

File details

Details for the file attribtool-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: attribtool-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.2 Linux/5.10.0-22-amd64

File hashes

Hashes for attribtool-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 45d6d616f86e4ac084c04ff70e1d5df3bb89091e4e81a9c728ef1da906e02727
MD5 1bed16d27f90a1c9d2ce0833124311f4
BLAKE2b-256 130095cd0a2f6bd652aa917b6658de87c725a46ed6b9d08235eb664a2f128ffc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page