Skip to content

v2.0

Choose a tag to compare

@github-actions github-actions released this 10 Nov 23:06
· 97 commits to master since this release
v2.0
30fbaaa

Accretive v2.0 (2024-11-10)

Bugfixes

  • Add missing alias for reclassify_modules to the qualified aliases module
    (qaliases) as reclassify_modules_as_accretive. (#12)

Features

  • Add ValidatorDictionary and ProducerValidatorDictionary classes.
    Validator dictionaries allow a validation function to be supplied, which can
    inspect the key and value of a proposed dictionary entry to determine if it
    should be accepted or not. Producer dictionaries are like defaultdict from
    the standard Python collections module. (#10)
  • Add py.typed file to package to let typecheckers know that it has a full
    set of type annotations. (#11)
  • Dictionary classes now accept type annonations for key and value. (#14)
  • Accept a decorators argument with all of the metaclasses to produce classes
    which have a sequence of class decorators applied before class attribute
    accretion is enforced. Some class decorators are compatible with accretion but
    some are not; this gives a way to ensure that they are applied without
    attribute enforcement. Advanced cases, such as dataclasses.dataclass( slots = True ), which produces a replacement class, are correctly supported by this
    machinery on CPython.
  • Add ProtocolClass metaclass to produce accretive protocol classes.

Supported Platforms

  • Add support for CPython 3.13.
  • Drop support for CPython 3.8 (past end-of-life).
  • Drop support for CPython 3.9 (skipping to 3.10, which is the next baseline LTS
    version for major OS distributions).
  • Drop support for PyPy 3.9, which is no longer maintained upstream.

Deprecations and Removals

  • Remove complete, concealment, and protection subpackages to focus
    on core value of package: accretive data structures. Users can easily make
    their own syntheses as necessary. (#13)