Skip to content

Releases: dymmond/monkay

Version 0.5.2

05 Mar 00:31
ff0f42a

Choose a tag to compare

Added

  • Runtime validation for extension/settings conflict policy values.
  • Public API contract tests that lock exported symbols and call signatures.
  • Regression tests for TypedDict schema metadata and concurrent ASGI lifespan isolation.
  • Expanded documentation set: installation/compatibility, tutorials, error handling,
    performance best practices, configuration reference, and FAQ.
  • Taskfile.yml alongside Taskfile.yaml, with standardized tasks:
    lint, format, typecheck, test, coverage, docs, docs:serve, clean, check.

Changed

  • LifespanHook now scopes shutdown setup state per lifespan invocation.
  • README and documentation landing pages were reworked for clearer onboarding and navigation.

Fixed

  • DeprecatedImport TypedDict required-key metadata now correctly requires path.
  • Documentation now reflects valid on_conflict values (error, keep, replace).

Version 0.5.1

16 Oct 12:31
0.5.1
5bcae2f

Choose a tag to compare

Changed

  • Feature assertions include now more documentation.
  • Importloops cause better error messages.
  • Deprecate the undocumented and defunct ignore_settings_import_errors parameter.
  • Consistently raise ImportErrors instead of also raising AttributeErrors in load.

Version 0.5.0

16 Sep 13:20
0.5.0
743e82a

Choose a tag to compare

Added

  • ASGI lifespan support.

Version 0.4.3

17 Jul 16:27
6f93f13

Choose a tag to compare

Changed

  • Removed support for Python 3.9.

Fixed

  • Broken internal import.
  • License

Version 0.4.2

28 Apr 14:51
0.4.2
3f5a21e

Choose a tag to compare

Changed

  • Parameter apply_extensions of with_full_overwrite defaults now to False.

Fixed

  • with_full_overwrite overwrote wrong settings/extensions due to a too early invocation.
  • with_full_overwrite was not composable, the apply_extensions parameter worked only with an instance.

Version 0.4.1

25 Apr 18:09
0.4.1
59f440f

Choose a tag to compare

Fixed

  • Update settings_path typing. This was overlooked when updating the types.

Version 0.4.0

25 Apr 15:57
0.4.0
ccc07e0

Choose a tag to compare

Added

  • Add with_full_overwrite helper method which sets multiple contexts.
  • Add evaluate_settings_with parameter to with_settings.

Changed

  • When string or class is provided by a callable for settings it is parsed and cached.
    This allows lazy parsing of environment variables, so they can be changed programmatically.
  • Allow unsetting settings via with_settings by using False or "".

QA: why 0.4.0 and not a subrelease?
Because the lazy loading via env vars is a quite epic feature. I missed it originally and it won't be easy to archive it otherwise.

Version 0.3.0

31 Jan 00:52
0.3.0
4f4febc

Choose a tag to compare

Breaking

This is an emergency release. It removes the feature that implicitly evaluates settings during __init__. This
is very error prone and can lead to two different versions of the same library in case the sys.path is manipulated.
Also failed imports are not neccessarily side-effect free.

Added

  • evaluate_settings has now two extra keyword parameters: onetime and ignore_preload_import_errors.

Changes

  • evaluate_settings behaves like evaluate_settings_once. We will need this too often now and having two similar named versions is error-prone.
  • evaluate_settings_once is now deprecated.
  • Setting the evaluate_settings parameter in __init__ is now an error.
  • For the parameter ignore_import_errors of evaluate_settings the default value is changed to False.

Version 0.2.2

07 Jan 12:32
0.2.2
ae070b4

Choose a tag to compare

Added

  • UnsetError for simpler checking if the settings are unset.

Fixed

  • Handle edge-cases better when settings are unset or disabled.
  • Don't touch settings in evaluate_settings when not required.

Version 0.2.1

07 Jan 09:31
0.2.1
20f188f

Choose a tag to compare

Fixed

  • Add AttributeError to the ignored import errors.
  • Wrong return value for evaluate_settings_once when already evaluated.