Skip to content

2.3.0

Choose a tag to compare

@lifedox lifedox released this 18 Apr 20:55
· 252 commits to main since this release
66acc64

Added

  • Added granular_configuration_language.yaml.file_ops module
    • Refactored from private modules.
  • Added EagerIO Feature Set
    • (internal detail) Added SimpleFuture to wrap ThreadPoolExecutor setup and teardown.
    • Added granular_configuration_language.yaml.decorator.eagerio module
    • Added LazyLoadConfiguration.eager_load
    • Added !EagerParseFile and !EagerOptionalParseFile Tags
    • Added Undocumented Tags:
      • !LoadBinary and !EagerLoadBinary Tag to test binary EagerIO
  • Added granular_configuration_language.yaml.decorators.with_tag decorator
    • Rewrote tag attribute tracking to add support.
    • G_CONFIG_ENABLE_TAG_TRACKER environment variable setting removed.
  • Added TagHadUnsupportArgument exception.
    • Inherits from ValueError, which was previously used.
  • Added Generic Type Parameters to Configuration
    • Both default to typing.Any, so no behavior change.

Changed

  • Changes to available_plugins:
    • Added -l, --long option
    • Added eager_io column
    • Added shorten name option for handler, needs_root_condition, and eager_io.
      • Defaults as enabled. -l, --long option disables.
    • Changed internal Tag Function names to be shorter for handler column.
    • Improved --help message.
      • Help message uses python -m granular_configuration_language.available_plugins instead of available_plugins.py (Backported from 3.14)
  • Changes to available_tags:
    • Added eio_inner_type column
    • Improved --help message.
      • Help message uses python -m granular_configuration_language.available_tags instead of available_tags.py (Backported from 3.14)
  • A ValueError raised during the type check of TagDecoratorBase will be converted into a TagHadUnsupportArgument.

Fixed

  • Made the function parameter for all decorators positional-only.
    • This is to enforce clearer usage in the unexpected case of not using @.
  • Changed Configuration.get type signature to match Python 3.12 Mapping.get signature.
    • i.e. key is positional-only. (Runtime does not enforce.)
  • Minor correctness issues caught by Ruff that still past their tests before and after.