Releases: dymmond/monkay
Releases · dymmond/monkay
Version 0.5.2
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.ymlalongsideTaskfile.yaml, with standardized tasks:
lint,format,typecheck,test,coverage,docs,docs:serve,clean,check.
Changed
LifespanHooknow scopes shutdown setup state per lifespan invocation.- README and documentation landing pages were reworked for clearer onboarding and navigation.
Fixed
DeprecatedImportTypedDict required-key metadata now correctly requirespath.- Documentation now reflects valid
on_conflictvalues (error,keep,replace).
Version 0.5.1
Changed
- Feature assertions include now more documentation.
- Importloops cause better error messages.
- Deprecate the undocumented and defunct
ignore_settings_import_errorsparameter. - Consistently raise ImportErrors instead of also raising AttributeErrors in load.
Version 0.5.0
Added
- ASGI lifespan support.
Version 0.4.3
Changed
- Removed support for Python 3.9.
Fixed
- Broken internal import.
- License
Version 0.4.2
Changed
- Parameter
apply_extensionsofwith_full_overwritedefaults now toFalse.
Fixed
with_full_overwriteoverwrote wrong settings/extensions due to a too early invocation.with_full_overwritewas not composable, theapply_extensionsparameter worked only with an instance.
Version 0.4.1
Fixed
- Update settings_path typing. This was overlooked when updating the types.
Version 0.4.0
Added
- Add
with_full_overwritehelper method which sets multiple contexts. - Add
evaluate_settings_withparameter towith_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
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_settingshas now two extra keyword parameters:onetimeandignore_preload_import_errors.
Changes
evaluate_settingsbehaves likeevaluate_settings_once. We will need this too often now and having two similar named versions is error-prone.evaluate_settings_onceis now deprecated.- Setting the
evaluate_settingsparameter in__init__is now an error. - For the parameter
ignore_import_errorsofevaluate_settingsthe default value is changed toFalse.
Version 0.2.2
Added
UnsetErrorfor simpler checking if the settings are unset.
Fixed
- Handle edge-cases better when settings are unset or disabled.
- Don't touch settings in
evaluate_settingswhen not required.
Version 0.2.1
Fixed
- Add AttributeError to the ignored import errors.
- Wrong return value for
evaluate_settings_oncewhen already evaluated.