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 and instances_ignore_init_arguments class argument to support cases, such as inheritance from urllib.parse.ParseResult which inherits from tuple 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. Use finalize_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 of dataclasses.

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 as Decorators so that they can be reused in downstream packages.

Repairs

  • Ensure that replacement implementations (assigner_core, deleter_core, and surveyor_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.