- Prepare for Python 3.14's new annotation behavior (
81da4e5
)
- Support Path (and other already initialized class instances to be used as properties) (
f500095
)
- Add _skip_none to also skip None values for optional fields (set to False by default for backwards compat) (
a2169a6
) - Improved pyproject.toml detection handling (swapped out black implementation by custom one) (
85433ff
)
- Explicly add typing-extensions as a dependency (
4bfba65
)
- @beautify is now automatically applied to subclassses of TypedConfig, unless beautify=False is added. (
ab72585
)
- Updating an optional field to None via _update or normal attribute was ignored (
b9b8cec
)
- beautify: Minor tweaks and cleanup (
fdfe1fe
)
- beautify: Added the @beautify decorator to automatically set a nice repr and str (since these don't inherit) (
366a8b0
)
- beautify: Include an example for
@beautify
(b51d8d5
)
- Extracted
convert_key
to own function so it can be used elsewhere (d923802
)
- mypy: Proper return type for @register_dumper decorated functions like asjson (
77a96ce
)
- Allow excluding internal variables from asdict/asjson/etc (
35af912
)
- Postpone() now gives a more descriptive error when being accessed (
da69257
)
- alias: Move alias helpers to alias module + add is_alias helper (
b19b89f
)
- alias: Alias not always detected (e.g. in the case of postponed) (
041f82c
)
- alias: Freeze and set slots so it can be used in a dataclass (
a382269
)
- If alias points to an Optional key and it is missing, don't throw an error but set the value to None (
26ec586
)
- Require a reasonable modern version of typeguard (
1f1cbee
)
- alias: Work with postpone and update (
3dc2ada
)
- alias: You can now define aliases for keys (
5c72993
)
- alias: Added to example readme (
72efe8f
)
- postponed: Sometimes the two objects are not the same, so use type check instead of identity check (
af9c1bb
)
- env: Default to converting types when loading from env (
e939e48
)
- .env: Use cwd when looking for .env instead of package path (
40df59d
)
- update: Improved updating via |= syntax and from env (
b846ff4
)
- env: Cls.from_env function to load config from env (os.environ or dotenv) (
1b16350
)
- helpers: Add as_binaryio helper (
20e4f29
)
- core: Allow loading from a URL like you would a local file (
aca52a9
)
- Explained usage of URLs in
load
in readme (cb265a4
)
- mypy: Load_into also accepts bytes so return value is fixed (
db509f0
)
- asbytes: Also expose from top-level lib + update examples (
375ea47
)
- binary: Add asbytes() as shortcut for ._pack() (
5caaa7d
)
- binary: Swapping out values with a different field now updates the container size (
c76261a
)
- binary: Made ._pack work with split binary blocks (
0393846
)
- binary: Explained length is optional (
65634f4
)
- binary: Allow splitting binary config into multiple blocks (
f96adbb
)
- Allow a new type of config: binary config (
06a70df
)
- binary: .load should now also work with just a bytestring, no wrapping dict. (
2f7f8fc
)
- Explained binary config in readme's (
923b9e7
)
- A list of data can now also be loaded (
e962cf8
)
- Added 'fill' to TypedConfig class to update without overwrite (
8e27361
)
- Use empty data in
load
to read from pyproject.toml (6e48899
)
- If nested key is missing, don't crash but return empty data (and deal with error handling later) (
822b671
)
- Allow defining custom converters for
load_into(..., convert_types=True)
using@configuraptor.converter
(2cf8c44
) - Support custom File types using
@configuraptor.loader
(4d5ccb3
)
- readme: Added info about .env and .ini (
c6acc09
)
- Support .ini files and fix
convert_types
for recursion (9333029
)
- dotenv: Support dotenv and add
lower_keys
andconvert_types
toload_into
for dotenv (4d41197
)
- init: Allow ([args], {kwargs}) and [args] and {kwargs} for init! (
0d19df8
)
- Internal values (_) should be updatable without TypedConfig._update logic (
ef24673
)
- Key="" workaround no longer required (
2c5fcaf
) - mapping: Made mapping immutable, so MutableMapping actually has different behavior (
a68ef56
)
- mapping: Add example for TypedMapping (
e430f40
)
- mapping: Add configuraptor.TypedMapping and .TypedMutableMapping to support **unpacking (but not on default TypedConfig) (
b4c6b9d
)
- format: Allow TypedConfig._format (
0b46646
)
- toml: Tomlkit had own types, move to tomli (
0b5f0a4
)
- 310: Backwards compatible code (
8f90aec
)
- TypedConfig: Added config.update (
57a21c2
)
- core: Patch issue with
is_optional
(fd4a897
)
- dumping: Add methods to dump class instances to dict/toml/yaml/json (
ea8232b
)
- postpone: Allow marking a field as
postponed
if you can't fill it in right away or from config (useful for cli tools with cli args) (1494000
)
- examples: Added more examples (
884d11a
) - examples: Added more example code for the
basic
category (9782442
) - examples: Started on providing more examples (
ca84ecb
)
- mypy:
Type[C] | C
confused mypy soload_into
(officially) only supports classes (not instances) now. (cd1c45e
)
- strict: Allow strict=False for load_into to ignore types (not recommended) (
16853bb
)
- lib: Exposed wrong method (
d57b6df
)
- lib: Expose more methods externally + make second arg of all_annotations optional (
63605ba
)
- dataclass: Support for default_factory (
031c68d
)
- readme: Wrong package name oops (
a9f7fad
)
- readme: Change fixed image height to width for responsiveness (
4ea3557
)
- Added JSON and YAML file loading. (
e4f920f
)
- core: Checking for a required parameterized type (e.g. list[str]) crashed for a missing key (with the wrong error) (
68ccc1c
)
- readme: Added first example code (
da0b13d
) - changelog: Manually added changes (
c1c40ef
) - image: Set height (
78896b8
)
- set image size
- added
hatch
as dev dependency
- Fix changelog and url in readme (
59bc18b
)
- renamed to 'configuraptor'
- py: Trying to support python 3.10 (
9f7b0f7
)
- readme: Fixed urls and extended sections (
5fecc97
)
- Work in progress, second beta version with 100% cov (
37f4fb4
) - Work in progress, first working beta version without full docs etc. (
cf90a93
)
- init: One step closer to a more logical init handling, just no args yet (only kwargs) (
9274317
)
- examples: Todo: example about the singleton mixin (
7b6b0c0
)
- Initial version of the demo plugin (
dc02818
)