Skip to content

romnn/classprop

Repository files navigation

@classprop

Build Status PyPI version License Test Coverage

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"

Development

For detailed instructions see CONTRIBUTING.

Tests

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

Linting and formatting

Lint and format the code with

$ invoke format $ invoke lint

All of this happens when you run invoke pre-commit.

Note

This project is still in the alpha stage and should not be considered production ready.

About

@classproperty decorator for python that works just like @Property.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages