Release Notes¶
Classcore 1.8 (2025-07-23)¶
Enhancements¶
Standard: Modules: Allow certain modules to be excluded from reclassification. Also, implement cycle detection.
Repairs¶
Standard: Modules: Reclassify modules with proper depth-first traversal.
Classcore 1.7 (2025-07-08)¶
Enhancements¶
Standard: Add
ignore_init_arguments
decorator argument andinstances_ignore_init_arguments
class argument to support cases, such as inheritance fromurllib.parse.ParseResult
which inherits fromtuple
and overrides__new__
instead of__init__
. In such cases,__new__
processes the instance production arguments rather than__init__
. However, the standard Python behavior is to present the arguments to both__new__
and__init__
, which is problematic since we always provide an__init__
head.
Classcore 1.6.1 (2025-07-01)¶
Repairs¶
Fix deprecation warnings from finalize_module by refactoring to use private _reclassify_module implementation.
Classcore 1.6 (2025-07-01)¶
Enhancements¶
Add
finalize_module
function to combine Dynadoc docstring generation with module reclassification for immutability and concealment.
Notices¶
Deprecate
reclassify_modules
function. Usefinalize_module
instead.
Classcore 1.5.3 (2025-06-30)¶
Repairs¶
Standard: Do not create duplicate slots for behaviors tracking.
Standard: Ensure that behaviors tracking attribute is not part of comparisons, hashes, or
repr
calculations for dataclasses. Attributes with “private” names which resemble the CPython scheme for class-local (non-inheritable) attributes can create confusion for the internal machinery ofdataclasses
.
Classcore 1.5.2 (2025-06-29)¶
Repairs¶
Standard Classes: Ensure that Dynadoc decorator applies last, after any decorators which may potentially replace classes (e.g.,
dataclass( slots = True )
), so that the Dynadoc visitees weak set captures the correct reference to prevent multiple decoration.
Classcore 1.5.1 (2025-06-26)¶
Repairs¶
Ensure the inheritance of replacement functions works via metaclasses and not just decorators.
Classcore 1.5 (2025-06-24)¶
Enhancements¶
Improve docstrings for various public type aliases. Also, drop
Fname
references from public type aliases, such asDecorators
so that they can be reused in downstream packages.
Repairs¶
Ensure that replacement implementations (
assigner_core
,deleter_core
, andsurveyor_core
) are inherited so that behaviors do not regress to standard baseline behaviors in descendant classes.
Classcore 1.4.2 (2025-06-11)¶
Repairs¶
Ensure that custom attributes namer is passed during recursive module reclassification.
Classcore 1.4.1 (2025-06-10)¶
Repairs¶
Enforce attributes concealment and immutability on modules.
Classcore 1.4 (2025-06-10)¶
Enhancements¶
Fully support slotted classes. Bookkeeping attributes will now be in slots if class is slotted. Potential performance improvement since names do not need to be mangled for inheritance isolation.
Publicly expose the
TypedDict
which tracks available metaclass arguments for the standard classes. This allows for easier extension by downstream packages and centralizes documentation on the metaclasses interface.
Repairs¶
Bugfix. Ensure idempotent execution in all scenarios: CPython vs PyPy, slotted vs non-slotted.
Bugfix. Ensure that methods added by decoration properly respect class method resolution order (MRO) when they are not wrapping existing methods.
Classcore 1.3.1 (2025-06-07)¶
Repairs¶
When reclassifying modules recursively, ensure that replacement class is included in recursive invocations.
Classcore 1.3 (2025-06-07)¶
Enhancements¶
Allow arbitrary class to be supplied to
reclassify_modules
.Simplify production of class decorators.
Repairs¶
Bugfix. Propagate error class provider from metaclass to class decorators.
Classcore 1.2 (2025-06-05)¶
Enhancements¶
Fill out docstrings for all public classes and functions in package.
Integrate with Dynadoc. Adds special introspection control which avoid docstring updates on immutable classes. Adds Dynadoc
with_docstring
decorator to set of decorators on standard classes.
Repairs¶
Address Pyright complaints about metaclass arguments in
class
statements.
Classcore 1.1 (2025-05-01)¶
Repairs¶
Fix interaction with slotted dataclasses on Python 3.11+.
Properly report test coverage by considering doctests too. (Not a user-facing fix; however important to note that coverage was 100% on initial release, but Github Actions workflow was not properly setup to capture coverage from doctests and so it only reported 95% coverage.)
Classcore 1.0 (2025-04-29)¶
Enhancements¶
Add support for CPython 3.10 to 3.13.
Add support for PyPy 3.10.
Base classes and class factory classes which provide standard behaviors (immutability of all attributes after initialization, concealment of all non-public attributes from
dir
) by default. Can apply additional decorators and can tune for selective or total mutability or visibility. Enforce on class attributes and instance attributes.Class and dataclass decorators which apply a set of standard behaviors to classes so that they produce instances which are immutable and which only reveal public attributes by default. Decorators are tunable via arguments to provide selective or total attributes mutability and visibility as desired.
Class decorator which accepts a sequence of other class decorators to apply. Reduces height of decorator stacks and improves their reusability.
Decorators for modifying class factory classes (metaclasses) so that they can handle inline application of decorators during production of classes. This includes logic for the case where a decorator replaces a class rather than modifies it.
Module class which enforces immutability and visibility limitation on module attributes. (Visibility restriction is to reveal only public attributes to
dir
.) Also, conveience function which can reclassify a module or an entire package, recursively, to use this class.