Release notes¶
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_settings
has now two extra keyword parameters:onetime
andignore_preload_import_errors
.
Changes¶
evaluate_settings
behaves likeevaluate_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
ofevaluate_settings
the default value is changed toFalse
.
Version 0.2.2¶
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¶
Fixed¶
- Add AttributeError to the ignored import errors.
- Wrong return value for
evaluate_settings_once
when already evaluated.
Version 0.2.0¶
Added¶
- Add
evaluate_settings_once
. - Add TransparentCage, which also exposes the ContextVar interface.
- Add
monkay_
prefixed ContextVar-like attributes and methods. - Add optional
allow_value_update
tomonkay_with_override
method on cage.
Changed¶
- The Monkay
__init__
usesevaluate_settings_once
insteadevaluate_settings
. This method is more lenient to import errors. You should check thesettings_evaluated
flag and/or maybe callevaluate_settings_once(ignore_import_errors=False)
in code pathes where extensions and/or preloads are required. You can also uncloak such errors by passing:ignore_settings_import_errors=False
. - Deleting the settings via assignment now also invalidates the cache.
Fixed¶
- Assigning an empty dictionary to settings deletes the settings. This should only work for some falsy values.
- Cage
with_overwrite
didn't escape the last update compontent properly.
Version 0.1.1¶
Changed¶
- Initialize the getter and dir functions lazily when adding lazy imports.
- Guess attributes from
__all__
when__getattr__
definition without__dir__
function is found.
Fixed¶
- Missing
__dir__
injection so lazy imports didn't show up indir()
. - Error when adding lazy imports later without pre-existing lazy imports.
Version 0.1.0¶
Changed¶
- Internals refactored.
base.py
is splitted now in multiple submodules. - Allow different settings than pydantic_settings.
- Switch to semantic versioning.
- Add cages (thread-safe, proxying contextvars).
Fixed¶
with_instance
withoutwith_extensions
was not working.
Version 0.0.9¶
Added¶
apply_settings
parameter.evaluate_settings
for lazy settings or settings overwrites.
Fixed¶
- Lazy setup.
Version 0.0.8¶
Added¶
- Settings forwards
settings_path
parameter has now more allowed value types.- Assignments to the settings attribute.
with_
andset_
operations returning set object.
Changed¶
settings_path=""
behaves now different (enables settings). The default switched toNone
(disabled settings).
Removed¶
- Remove deprecated alias for
settings_preloads_name
.
Fixed¶
- Use the right instance for apply_settings in set_instance.
Version 0.0.7¶
Fixed¶
- Missing py.typed.
- Fix double dot in reason. This parameter alone should control the punctuation.
Version 0.0.6¶
Fixed¶
- Re-exports were not detected correctly.
Version 0.0.5¶
Added¶
sorted_exports
for sorted__all__
exports.- Hooks for add_lazy_import, add_deprecated_lazy_import.
Changed¶
find_missing
test method has some different error names.find_missing
doesn't require the all_var anymore.
Version 0.0.4¶
Added¶
find_missing
test method.getter
attribute saving the injected getter.absolutify_import
helper.- Add pre-commit.
Changed¶
- Rename typo
settings_preload_name
tosettings_preloads_name
. - Fix relative imports.
Version 0.0.3¶
Added¶
- Cache control utilities are added.
Changed¶
- It is now allowed to provide own loaders instead of the path.
Version 0.0.1¶
Initial release