No project description provided
Project description
python-attribute-access-modifiers
Tired of typing @property just to make a read-only instance variable? Find yourself wishing for C#'s {get; set;} syntax? Look no further than PAAM, which auto-generates property getters, setter, and deleters for you!
Quickstart
Once installed, just use the overloaded | operator between an instance variable and one of the predefined constants GET, SET, or DEL. Make sure to subclass from PaamBase.
from paam import SET, PaamBase
class Test(PaamBase):
def __init__(self, a: int):
self.a = a | GET # write to self.a (not self._a) because PAAM creates setters/getters/deleters *after* __init__ finishes
>>> obj = Test(15)
>>> obj.a
>>> 15
>>> obj.a = 5 # raises AttributeError: can't set attribute
Property access modifiers can also be chained (order doesn't matter):
from paam import SET, GET, DEL, PaamBase
class Test(PaamBase):
def __init__(self, a: int):
self.a = a | GET | SET
>>> obj = Test(15)
>>> obj.a
>>> 15
>>> obj.a = 5
>>> obj.a
>>> 5
>>> del obj.a # raises AttributeError: can't delete attribute
Caveats (all planned to be fixed in future release)
- The type of any variable "annotated" with
GET,SET, orDELis_PropertyAccessModifierBase. This meansmypysupport and IDE type hinting are most likely broken. - No tests
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
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 python-attribute-access-modifiers-1.0.0.tar.gz.
File metadata
- Download URL: python-attribute-access-modifiers-1.0.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aae95b92a35ac1761941c5c0cab387b3639e9056b0b03ef2fcb19436e536ac84
|
|
| MD5 |
97885762ebb796af7b68e6a4298a76e1
|
|
| BLAKE2b-256 |
9ce6b6e603965cd08e898e4dd1966645ba1a388c253ea43ab8e36dd9e1a43775
|
File details
Details for the file python_attribute_access_modifiers-1.0.0-py3-none-any.whl.
File metadata
- Download URL: python_attribute_access_modifiers-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6966dd3288241fb9d4640cb9c0e8808154cc4e11d9666e20a8caf56db95cf0e
|
|
| MD5 |
31bb3dc74f6ba2af2de75140066fd3a5
|
|
| BLAKE2b-256 |
ee115eb595530bac552b68b53326f24161d45d08d435fa7a5247fcfc4a2937af
|