Repository navigation
Releases: InvestmentSystems/class-only-design
Release list
v1.0.0
What's Changed
- Fixes issue #8. Adds unit test. by @chaburkland in #9
- Adds ability for subclass kwargs. Adds tests by @chaburkland in #10
- Allow constant to work with subclasses. by @ForeverWintr in #11
- Support newer python by @ForeverWintr in #12
New Contributors
- @chaburkland made their first contribution in #9
Full Changelog: v0.3.0...v1.0.0
Version 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:
from class_only_design import class_only
@class_only
class MyClass:
...You now do:
from class_only_design import ClassOnly
class MyClass(ClassOnly):
...This release also adds autoname to the namespace class:
>>> from class_only_design import Namespace
>>> from class_only_design import autoname
>>> class NS(Namespace):
>>> symbolic_handle = autoname
>>> NS.symbolic_handle
'symbolic_handle'Version 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:
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.:
list(ColourConstants) # returns ['FF0000', '00FF00', '0000FF']
-
adds a special attribute,
nameofwhich returns the name of the class attribute:ColourConstants.nameof.RED # returns 'RED'
It also improves the underlying implementation of the class decorators. They no longer modify the class hierarchy.
Add inheritance handling
Class only classes can be inherited, and classes that inherit from class only classes are not instantiable.
Alpha
Now with correct info and tags!
Alpha
v0.1.0 Update readme