amulet-runtime-final 1.1.2

Creator: bradpython12

Last updated:

Add to Cart

Description:

amuletruntimefinal 1.1.2

amulet-runtime-final
Declare final Python classes and methods at runtime.
This module provides a decorator based interface to declare final classes and methods that are enforced at runtime.
This module is inspired by and is compatible with typing.final.
See PEP-591 for more details on this topic.
Installation
Python 3.6 or higher is required.
You can simply install this module from pip.
python -m pip install amulet-runtime-final

Usage
The main component of this module is the final decorator that
can be used to decorate classes and methods inside a class. As
such:

Classes decorated with @final cannot be subclassed.
Methods decorated with @final cannot be overriden in subclasses.

For example with classes:
from runtime_final import final

@final
class Foo:
...

class Bar(Foo): # Raises RuntimeError
...

And with methods:
from runtime_final import final

class Foo:
@final
def foo(self):
...

class Bar(Foo):
def foo(self): # Raises RuntimeError
...

And with other decorators:
from runtime_final import final

class Foo:
@final
@property
def foo(self):
...

@final
@staticmethod
def bar():
...

@final
@classmethod
def baz(cls):
...

class Bar(Foo):
@property
def foo(self): # Raises RuntimeError
...

@staticmethod
def bar(): # Raises RuntimeError
...

@classmethod
def baz(cls): # Raises RuntimeError
...

With property setters:
from runtime_final import final

class Foo:
@property
def foo(self):
...

# Note that the `final` decorator must only be applied to the last definition.

@final
@foo.setter
def foo(self, foo):
...

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.