A stupid workaround when using multiple inheritance and __slots__
Project description
stupid
A stupid workaround when using multiple inheritance and __slots__
installation
pip install stupid
example
from hashlib import sha512
from stupid import StupidData
class User(StupidData):
name: str
class AccessData(StupidData):
access_code: sha512
class ApiPayload(User, AccessData):
pass
payload = ApiPayload("root", sha512())
payload = ApiPayload(name="root", access_code=sha512())
__slots__ are autogenerated and works with multiple inheritance as shown above.
As __slots__ are present assigning new attributes is not allowed.
>>> payload = ApiPayload(name="root", access_code=sha512())
>>> payload.extra = 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'ApiPayload' object has no attribute 'extra'
It's also a dataclass.
>>> from dataclasses import is_dataclass
>>> is_dataclass(ApiPayload)
True
isinstance check also works.
>>> isinstance(payload, User)
True
>>> isinstance(payload, AccessData)
True
issubclass
>>> from stupid import StupidData
>>> class A(StupidData): pass
>>> class B(A): pass
>>> class C:pass
>>>
>>> issubclass(B, A)
True
>>> issubclass(B, C)
False
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stupid-1.1.1.tar.gz.
File metadata
- Download URL: stupid-1.1.1.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.7.3 Linux/5.0.0-38-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9074ab40d033ecfc6fccf6c3777423de97ecbd9fc82d8876964845cfd7d7bfbc
|
|
| MD5 |
c9c5bc7215f27100c4cfc9fb577c18e2
|
|
| BLAKE2b-256 |
29816652964f29d2ff2cc624cd698e55a40e74ea7806f2d71181b48c49b24005
|
File details
Details for the file stupid-1.1.1-py3-none-any.whl.
File metadata
- Download URL: stupid-1.1.1-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.7.3 Linux/5.0.0-38-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ec68e5226c803cfbdfbe327a9e24f50d4a26f0df3a0e772d0d8494e8213bd5c
|
|
| MD5 |
593baff99b695bd87f82a71d9008d406
|
|
| BLAKE2b-256 |
578e6debd67e5696ca681cfa6683899ddca8b084973b0dae81ac09dbf3ff699a
|