Small python package that provides a @classproperty
decorator for python classes
that works just like @property
except for class variables!
$ pip install classprop
Use it just like builtin @property
's:
from classprop import classprop
class TestClass:
_internal = "Hello, World"
@classprop
def my_class_prop(self) -> str:
return self._internal
@my_class_prop.setter
def my_class_prop(self, value: str) -> None:
self._internal = value
foo = TestClass()
assert foo.my_class_prop == "Hello, World"
baz = TestClass()
assert baz.my_class_prop == "Hello, World"
baz.my_class_prop = "Changed"
assert foo.my_class_prop == "Changed"
For detailed instructions see CONTRIBUTING.
You can run tests with
$ invoke test
$ invoke test --min-coverage=90 # Fail when code coverage is below 90%
$ invoke type-check # Run mypy type checks
Lint and format the code with
$ invoke format
$ invoke lint
All of this happens when you run invoke pre-commit
.
This project is still in the alpha stage and should not be considered production ready.