← 输入框|github.com|刷新
Skip to content

Releases

v1.15

Choose a tag to compare

@github-actions github-actions released this 16 Oct 06:19
v1.15
2427d29

classcore v1.15 (2026-10-16)

Enhancements

  • Export the reference attribute-name calculator publicly from
    classcore.standard.nomina with a configurable package prefix:
    downstream packages construct AttrnameCalculator( package_name = ... ) to generate and detect grammar-conformant internal names
    under their own prefix, sharing classcore's vocabulary by
    construction instead of mirroring it. The grammar containers stay
    private; detection consults reserved framework vocabulary.

v1.14

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:07
v1.14
d6f715b

classcore v1.14 (2026-10-15)

Enhancements

  • Expose the class-level mutability exemption sets publicly from
    classcore.standard.nomina: abc_class_mutables (stdlib ABC
    machinery) and typing_class_mutables (stdlib typing machinery,
    including the CPython 3.15 __typing_is_deprecated_inherited_runtime_protocol__
    dunder). Downstream packages share these sets by reference instead of
    carrying copies which can drift, as Frigid's did on Python 3.15. The
    canonical home remains classcore.standard.__; the nomina aliases
    are identically the same objects.

v1.13

Choose a tag to compare

@github-actions github-actions released this 15 Oct 02:11
v1.13
28b659d

classcore v1.13 (2026-10-15)

Enhancements

  • Add attribute explanations: explain_attribute in
    classcore.standard.explanations returns the decision trace for one
    attribute of one target — active behaviors per evaluated level and, for
    each operation, a verdict carrying its decision under precedence
    semantics: permission by inapplicability, omni, names, predicate, or
    regex, or prohibition. Decision payloads are typed per decision class,
    explanation records are immutable with immutable nested collections,
    and framework-owned and stdlib-machinery attributes are marked
    internal.
  • Attribute internal marking now follows metaclass-carried
    contributions: the attribute namer's is_internal_name detector
    marks framework names (grammar-constrained static stems and both
    digest-mangled forms), the abstract-base wiring marks stdlib ABC
    machinery names only where that machinery operates, and downstream
    class_factory namers contribute their own detectors, so
    explain_attribute reports downstream framework attributes
    truthfully. is_internal_name takes the target and consults the
    metaclass chain; lookalike names that fail the detector grammar stay
    unmarked, and the public _dynadoc_fragments_ declaration
    convention is never marked.

Repairs

  • Fix construction of function-local dataclass classes. Classes derived
    from the dataclass base classes (DataclassObject,
    DataclassObjectMutable, DataclassProtocol, and
    DataclassProtocolMutable) failed with TypeError when defined
    inside a function body, because the construction marker could not be
    recognized during dataclass slot reproduction.
  • Permit CPython 3.15+ typing machinery dunder on immutable classes.
    typing sets __typing_is_deprecated_inherited_runtime_protocol__
    during class decoration and in the runtime_checkable decorator; the
    class-level immutability behavior now exempts it, and the protocol
    member snapshot excludes it from __protocol_attrs__.

v1.12

Choose a tag to compare

@github-actions github-actions released this 15 Aug 20:59
v1.12
b90ad81

classcore v1.12 (2026-08-15)

Enhancements

  • Add abstract base class support: AbstractClass metaclass and
    AbstractObject base class combine standard behaviors with
    abc.ABCMeta machinery (abstract method enforcement, virtual subclass
    registration), and mix with external ABC-based classes without
    metaclass conflicts. Re-parent ProtocolClass under AbstractClass,
    unifying the standard metaclass taxonomy under Class.
  • Improve API documentation for class construction and initialization
    signatures, including parameter descriptions and the metaclass
    delegation contract.

Repairs

  • Establish proper inheritance hierarchies for standard metaclasses.
    Dataclass now inherits from Class, DataclassMutable from
    Dataclass, ProtocolDataclass from ProtocolClass, and
    ProtocolDataclassMutable from ProtocolDataclass. This eliminates
    metaclass conflicts when inheriting from classes backed by different
    metaclasses in the same family.
  • Fix typing.runtime_checkable support for classcore protocol classes.
    @runtime_checkable can now be applied via the decorators=
    metaclass argument or directly after class creation.
    isinstance() structural subtyping works correctly with
    @runtime_checkable classcore protocols.
  • Fix runtime protocol recognition for subclasses of classcore protocol
    base classes. Previously, typing_extensions.Protocol.__init_subclass__
    set _is_protocol = False on these subclasses due to an identity check
    that did not recognize classcore's own protocol base classes. Subclasses
    are now properly detected via structural analysis.

v1.11

Choose a tag to compare

@github-actions github-actions released this 20 Jul 04:11
v1.11
08aadc8

classcore v1.11 (2026-07-20)

Enhancements

  • Export ClassDecorator, ClassDecorators, ClassDecoratorFactory, and ModuleReclassifier type aliases for downstream consumption.

v1.10

Choose a tag to compare

@github-actions github-actions released this 25 Sep 13:25
v1.10
6530282

classcore v1.10 (2025-09-25)

Enhancements

  • Expose exception mutability constants and public identifier utility function for downstream reuse.

Repairs

  • Fix additional PyPy compatibility issues with exception and ABC cache attribute mutations.

v1.9

Choose a tag to compare

@github-actions github-actions released this 24 Sep 19:34
v1.9
08eccbd

classcore v1.9 (2025-09-24)

Repairs

  • Fix PyPy compatibility with super() calls in slotted dataclasses.

v1.8

Choose a tag to compare

@github-actions github-actions released this 23 Jul 13:57
v1.8
88ced4e

Classcore v1.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.

v1.7

Choose a tag to compare

@github-actions github-actions released this 08 Jul 23:44
v1.7
eb01c1f

Classcore v1.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.

v1.6.1

Choose a tag to compare

@github-actions github-actions released this 02 Jul 03:55
v1.6.1
09604f5

Classcore v1.6.1 (2025-07-02)

Repairs

  • Fix deprecation warnings from finalize_module by refactoring to use private _reclassify_module implementation.