Class-only-design

Latest version: v0.3.0

Safety actively analyzes 682387 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.3.0

This is an api breaking release. It changes the api to use inheritance rather than decorators. This provides more clarity as to what is actually happening.

Instead of:

python
from class_only_design import class_only

class_only
class MyClass:
...


You now do:

python
from class_only_design import ClassOnly

class MyClass(ClassOnly:
...


This release also adds autoname to the namespace class:

python
>>> from class_only_design import Namespace
>>> from class_only_design import autoname
>>> class NS(Namespace):
>>> symbolic_handle = autoname

>>> NS.symbolic_handle
'symbolic_handle'

0.2.0

This adds the `namespace` decorator, intended for use on class_only classes that just define constant attributes.

For example, given the following class:

python
from class_only_design import namespace

namespace
class ColourConstants:
RED = 'FF0000'
GREEN = '00FF00'
BLUE = '0000FF'


The `namespace` decorator provides the mutability and instanciation protections of `class_only`, but also:

* makes the class iterable, e.g.:

python
list(ColourConstants) returns ['FF0000', '00FF00', '0000FF']


* adds a special attribute, `nameof` which returns the name of the class attribute:

python
ColourConstants.nameof.RED returns 'RED'


It also improves the underlying implementation of the class decorators. They no longer modify the class hierarchy.

0.1.3

Class only classes can be inherited, and classes that inherit from class only classes are not instantiable.

0.1.2

Now with correct info and tags!

0.1.0

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.