From acfc438f7636605d9cfaa345d1431ce347092861 Mon Sep 17 00:00:00 2001 From: Niklas Rosenstein Date: Tue, 19 Mar 2024 19:27:01 +0000 Subject: [PATCH] Merge `databind.core` and `databind.json` into `databind` package (#61) * Merge `databind.core` and `databind.json` into `databind` package * fmt * move changelogs to root * breaking change: Drop support for Python 3.6 and 3.7 * update docs * update docs * add repo_url/repo_name * disable broken changelog-update job --- .changelog/0.10.0.toml | 22 +++++++ .../.changelog => .changelog}/0.11.0.toml | 20 +++++- .../.changelog => .changelog}/0.12.0.toml | 6 ++ .../.changelog => .changelog}/0.2.0.toml | 17 ++++++ .../.changelog => .changelog}/0.3.0.toml | 9 +++ .../.changelog => .changelog}/0.4.0.toml | 10 +++ .changelog/0.4.1.toml | 15 +++++ .../.changelog => .changelog}/0.4.2.toml | 1 + .../.changelog => .changelog}/0.5.0.toml | 1 + .../.changelog => .changelog}/0.5.1.toml | 1 + .../.changelog => .changelog}/0.6.0.toml | 19 +++++- .../.changelog => .changelog}/0.6.1.toml | 1 + .../.changelog => .changelog}/0.7.0.toml | 8 +++ .../.changelog => .changelog}/0.7.1.toml | 9 +++ .../.changelog => .changelog}/0.8.0.toml | 8 +++ .../.changelog => .changelog}/0.9.0.toml | 12 +++- .../.changelog => .changelog}/1.0.0.toml | 1 + .changelog/1.0.0.yml | 6 -- .../.changelog => .changelog}/1.0.1.toml | 2 + .../.changelog => .changelog}/1.1.0.toml | 5 ++ .../.changelog => .changelog}/1.1.1.toml | 1 + .changelog/1.1.2.toml | 15 +++++ .../.changelog => .changelog}/1.1.3.toml | 2 + .changelog/1.1.4.yml | 7 --- .../.changelog => .changelog}/1.1.5.toml | 8 +++ .../.changelog => .changelog}/1.1.6.toml | 1 + .changelog/1.2.0.toml | 52 ++++++++++++++++ .changelog/1.2.1.yml | 7 --- .../.changelog => .changelog}/1.2.2.toml | 2 + .../.changelog => .changelog}/1.2.3.toml | 1 + .../.changelog => .changelog}/1.2.4.toml | 1 + .../.changelog => .changelog}/1.2.5.toml | 1 + .../.changelog => .changelog}/1.2.6.toml | 1 + .../.changelog => .changelog}/1.3.0.toml | 1 + .../.changelog => .changelog}/1.3.1.toml | 20 ++++++ .../.changelog => .changelog}/1.3.2.toml | 1 + .changelog/1.4.0.toml | 21 +++++++ .../.changelog => .changelog}/1.5.0.toml | 2 + .changelog/1.5.1.toml | 15 +++++ .../.changelog => .changelog}/1.5.2.toml | 1 + .../2.0.0-alpha.4.toml | 9 +++ .../.changelog => .changelog}/2.0.0.toml | 1 + .../.changelog => .changelog}/2.0.0a2.toml | 9 +++ .../.changelog => .changelog}/2.0.0a3.toml | 1 + .changelog/2.0.1.toml | 29 +++++++++ .../.changelog => .changelog}/2.0.2.toml | 16 +++++ .../.changelog => .changelog}/2.0.3.toml | 8 +++ .../.changelog => .changelog}/2.0.4.toml | 2 + .../.changelog => .changelog}/2.0.5.toml | 1 + .../.changelog => .changelog}/2.0.6.toml | 1 + .changelog/2.0.7.toml | 15 +++++ .../.changelog => .changelog}/2.0.8.toml | 1 + .../.changelog => .changelog}/2.0.9.toml | 8 +++ .../.changelog => .changelog}/3.0.0.toml | 29 +++++++++ .changelog/4.0.0.toml | 17 ++++++ .../.changelog => .changelog}/4.1.0.toml | 16 +++++ .../.changelog => .changelog}/4.1.1.toml | 8 +++ .../.changelog => .changelog}/4.2.0.toml | 16 +++++ .../.changelog => .changelog}/4.2.1.toml | 2 + .../.changelog => .changelog}/4.2.2.toml | 1 + .../.changelog => .changelog}/4.2.3.toml | 1 + .../.changelog => .changelog}/4.2.4.toml | 1 + .../.changelog => .changelog}/4.2.5.toml | 3 + .../.changelog => .changelog}/4.2.6.toml | 1 + .../.changelog => .changelog}/4.2.7.toml | 1 + .../.changelog => .changelog}/4.2.8.toml | 1 + .changelog/4.3.0.toml | 50 +++++++++++++++ .../.changelog => .changelog}/4.3.1.toml | 1 + .../.changelog => .changelog}/4.3.2.toml | 1 + .../.changelog => .changelog}/4.4.0.toml | 30 +++++++++ .../.changelog => .changelog}/4.4.1.toml | 1 + .../.changelog => .changelog}/4.4.2.toml | 1 + .../_unreleased.toml | 7 +++ .github/workflows/changelog.yaml | 16 ++--- databind.core/.changelog/0.10.0.toml | 7 --- databind.core/.changelog/0.2.0.toml | 13 ---- databind.core/.changelog/0.4.1.toml | 7 --- databind.core/.changelog/0.5.0.toml | 1 - databind.core/.changelog/1.1.2.toml | 7 --- databind.core/.changelog/1.1.5.toml | 7 --- databind.core/.changelog/1.2.0.toml | 19 ------ databind.core/.changelog/1.4.0.toml | 10 --- databind.core/.changelog/1.5.1.toml | 7 --- databind.core/.changelog/2.0.1.toml | 13 ---- databind.core/.changelog/2.0.3.toml | 7 --- databind.core/.changelog/2.0.7.toml | 7 --- databind.core/.changelog/2.0.9.toml | 7 --- databind.core/.changelog/4.0.0.toml | 8 --- databind.core/.changelog/4.1.1.toml | 7 --- databind.core/.changelog/4.3.0.toml | 19 ------ databind.core/.changelog/4.4.0.toml | 22 ------- databind.core/README.md | 9 --- databind.core/pyproject.toml | 55 +---------------- databind.core/src/_databind_core_proxy.py | 1 + databind.json/.changelog/0.10.0.toml | 13 ---- databind.json/.changelog/0.11.0.toml | 13 ---- databind.json/.changelog/0.3.0.toml | 7 --- databind.json/.changelog/0.4.0.toml | 7 --- databind.json/.changelog/0.4.1.toml | 7 --- databind.json/.changelog/0.6.0.toml | 13 ---- databind.json/.changelog/0.7.0.toml | 7 --- databind.json/.changelog/0.7.1.toml | 7 --- databind.json/.changelog/0.8.0.toml | 7 --- databind.json/.changelog/0.9.0.toml | 7 --- databind.json/.changelog/1.1.2.toml | 7 --- databind.json/.changelog/1.2.0.toml | 28 --------- databind.json/.changelog/1.3.1.toml | 16 ----- databind.json/.changelog/1.4.0.toml | 10 --- databind.json/.changelog/1.5.1.toml | 7 --- databind.json/.changelog/2.0.0-alpha.4.toml | 7 --- databind.json/.changelog/2.0.0a2.toml | 7 --- databind.json/.changelog/2.0.1.toml | 13 ---- databind.json/.changelog/2.0.2.toml | 13 ---- databind.json/.changelog/2.0.7.toml | 7 --- databind.json/.changelog/3.0.0.toml | 19 ------ databind.json/.changelog/4.0.0.toml | 8 --- databind.json/.changelog/4.1.0.toml | 13 ---- databind.json/.changelog/4.2.0.toml | 13 ---- databind.json/.changelog/4.3.0.toml | 19 ------ databind.json/.changelog/_unreleased.toml | 9 --- databind.json/pyproject.toml | 49 +-------------- databind.json/src/_databind_json_proxy.py | 1 + databind/.changelog/4.3.0.toml | 7 --- databind/.flake8 | 2 + databind/README.md | 42 +++++++------ databind/pyproject.toml | 57 +++++++++++++++++- databind/src/databind/_version/__init__.py | 1 - .../src/databind/core/__init__.py | 0 .../src/databind/core/context.py | 0 .../src/databind/core/converter.py | 0 .../src/databind/core/dataclasses.py | 0 .../src/databind/core/dataclasses.pyi | 0 .../src/databind/core/mapper.py | 0 .../src/databind/core/py.typed | 0 .../src/databind/core/schema.py | 0 .../src/databind/core/settings.py | 0 .../src/databind/core/tests/context_test.py | 0 .../core/tests/schema_docspec_example_test.py | 0 .../src/databind/core/tests/schema_test.py | 0 .../schema_with_nested_dataclasses_test.py | 0 .../src/databind/core/union.py | 0 .../src/databind/core/utils.py | 0 .../src/databind/json/__init__.py | 1 - .../src/databind/json/converters.py | 21 ++++--- .../src/databind/json/module.py | 1 - .../src/databind/json/py.typed | 0 .../src/databind/json/settings.py | 1 + .../databind/json/tests/converters_test.py | 4 +- docs/build.novella | 12 ++-- docs/content/changelog.md | 3 + docs/content/core/changelog.md | 3 - docs/content/img/logo-transparent.png | Bin 0 -> 87357 bytes docs/content/img/logo.webp | Bin 0 -> 208192 bytes docs/content/json/changelog.md | 3 - docs/mkdocs.yml | 13 ++-- slap.toml | 3 +- 156 files changed, 725 insertions(+), 654 deletions(-) create mode 100644 .changelog/0.10.0.toml rename {databind.core/.changelog => .changelog}/0.11.0.toml (56%) rename {databind.json/.changelog => .changelog}/0.12.0.toml (88%) rename {databind.json/.changelog => .changelog}/0.2.0.toml (57%) rename {databind.core/.changelog => .changelog}/0.3.0.toml (65%) rename {databind.core/.changelog => .changelog}/0.4.0.toml (71%) create mode 100644 .changelog/0.4.1.toml rename {databind.core/.changelog => .changelog}/0.4.2.toml (89%) rename {databind.json/.changelog => .changelog}/0.5.0.toml (91%) rename {databind.json/.changelog => .changelog}/0.5.1.toml (89%) rename {databind.core/.changelog => .changelog}/0.6.0.toml (59%) rename {databind.json/.changelog => .changelog}/0.6.1.toml (86%) rename {databind.core/.changelog => .changelog}/0.7.0.toml (58%) rename {databind.core/.changelog => .changelog}/0.7.1.toml (59%) rename {databind.core/.changelog => .changelog}/0.8.0.toml (73%) rename {databind.core/.changelog => .changelog}/0.9.0.toml (70%) rename {databind.core/.changelog => .changelog}/1.0.0.toml (85%) delete mode 100644 .changelog/1.0.0.yml rename {databind.core/.changelog => .changelog}/1.0.1.toml (86%) rename {databind.core/.changelog => .changelog}/1.1.0.toml (90%) rename {databind.core/.changelog => .changelog}/1.1.1.toml (89%) create mode 100644 .changelog/1.1.2.toml rename {databind.core/.changelog => .changelog}/1.1.3.toml (88%) delete mode 100644 .changelog/1.1.4.yml rename {databind.json/.changelog => .changelog}/1.1.5.toml (55%) rename {databind.core/.changelog => .changelog}/1.1.6.toml (90%) create mode 100644 .changelog/1.2.0.toml delete mode 100644 .changelog/1.2.1.yml rename {databind.core/.changelog => .changelog}/1.2.2.toml (89%) rename {databind.core/.changelog => .changelog}/1.2.3.toml (90%) rename {databind.json/.changelog => .changelog}/1.2.4.toml (90%) rename {databind.core/.changelog => .changelog}/1.2.5.toml (89%) rename {databind.core/.changelog => .changelog}/1.2.6.toml (87%) rename {databind.core/.changelog => .changelog}/1.3.0.toml (88%) rename {databind.core/.changelog => .changelog}/1.3.1.toml (55%) rename {databind.core/.changelog => .changelog}/1.3.2.toml (88%) create mode 100644 .changelog/1.4.0.toml rename {databind.core/.changelog => .changelog}/1.5.0.toml (90%) create mode 100644 .changelog/1.5.1.toml rename {databind.core/.changelog => .changelog}/1.5.2.toml (87%) rename {databind.core/.changelog => .changelog}/2.0.0-alpha.4.toml (54%) rename {databind.json/.changelog => .changelog}/2.0.0.toml (87%) rename {databind.core/.changelog => .changelog}/2.0.0a2.toml (62%) rename {databind.json/.changelog => .changelog}/2.0.0a3.toml (91%) create mode 100644 .changelog/2.0.1.toml rename {databind.core/.changelog => .changelog}/2.0.2.toml (50%) rename {databind.json/.changelog => .changelog}/2.0.3.toml (62%) rename {databind.core/.changelog => .changelog}/2.0.4.toml (89%) rename {databind.json/.changelog => .changelog}/2.0.5.toml (93%) rename {databind.core/.changelog => .changelog}/2.0.6.toml (86%) create mode 100644 .changelog/2.0.7.toml rename {databind.json/.changelog => .changelog}/2.0.8.toml (90%) rename {databind.json/.changelog => .changelog}/2.0.9.toml (53%) rename {databind.core/.changelog => .changelog}/3.0.0.toml (66%) create mode 100644 .changelog/4.0.0.toml rename {databind.core/.changelog => .changelog}/4.1.0.toml (50%) rename {databind.json/.changelog => .changelog}/4.1.1.toml (57%) rename {databind.core/.changelog => .changelog}/4.2.0.toml (52%) rename {databind.json/.changelog => .changelog}/4.2.1.toml (88%) rename {databind.core/.changelog => .changelog}/4.2.2.toml (91%) rename {databind.core/.changelog => .changelog}/4.2.3.toml (91%) rename {databind.core/.changelog => .changelog}/4.2.4.toml (93%) rename {databind.core/.changelog => .changelog}/4.2.5.toml (90%) rename {databind.core/.changelog => .changelog}/4.2.6.toml (92%) rename {databind.core/.changelog => .changelog}/4.2.7.toml (90%) rename {databind.core/.changelog => .changelog}/4.2.8.toml (88%) create mode 100644 .changelog/4.3.0.toml rename {databind.json/.changelog => .changelog}/4.3.1.toml (91%) rename {databind.json/.changelog => .changelog}/4.3.2.toml (90%) rename {databind.json/.changelog => .changelog}/4.4.0.toml (60%) rename {databind.core/.changelog => .changelog}/4.4.1.toml (89%) rename {databind.core/.changelog => .changelog}/4.4.2.toml (91%) rename {databind.core/.changelog => .changelog}/_unreleased.toml (58%) delete mode 100644 databind.core/.changelog/0.10.0.toml delete mode 100644 databind.core/.changelog/0.2.0.toml delete mode 100644 databind.core/.changelog/0.4.1.toml delete mode 100644 databind.core/.changelog/0.5.0.toml delete mode 100644 databind.core/.changelog/1.1.2.toml delete mode 100644 databind.core/.changelog/1.1.5.toml delete mode 100644 databind.core/.changelog/1.2.0.toml delete mode 100644 databind.core/.changelog/1.4.0.toml delete mode 100644 databind.core/.changelog/1.5.1.toml delete mode 100644 databind.core/.changelog/2.0.1.toml delete mode 100644 databind.core/.changelog/2.0.3.toml delete mode 100644 databind.core/.changelog/2.0.7.toml delete mode 100644 databind.core/.changelog/2.0.9.toml delete mode 100644 databind.core/.changelog/4.0.0.toml delete mode 100644 databind.core/.changelog/4.1.1.toml delete mode 100644 databind.core/.changelog/4.3.0.toml delete mode 100644 databind.core/.changelog/4.4.0.toml create mode 100644 databind.core/src/_databind_core_proxy.py delete mode 100644 databind.json/.changelog/0.10.0.toml delete mode 100644 databind.json/.changelog/0.11.0.toml delete mode 100644 databind.json/.changelog/0.3.0.toml delete mode 100644 databind.json/.changelog/0.4.0.toml delete mode 100644 databind.json/.changelog/0.4.1.toml delete mode 100644 databind.json/.changelog/0.6.0.toml delete mode 100644 databind.json/.changelog/0.7.0.toml delete mode 100644 databind.json/.changelog/0.7.1.toml delete mode 100644 databind.json/.changelog/0.8.0.toml delete mode 100644 databind.json/.changelog/0.9.0.toml delete mode 100644 databind.json/.changelog/1.1.2.toml delete mode 100644 databind.json/.changelog/1.2.0.toml delete mode 100644 databind.json/.changelog/1.3.1.toml delete mode 100644 databind.json/.changelog/1.4.0.toml delete mode 100644 databind.json/.changelog/1.5.1.toml delete mode 100644 databind.json/.changelog/2.0.0-alpha.4.toml delete mode 100644 databind.json/.changelog/2.0.0a2.toml delete mode 100644 databind.json/.changelog/2.0.1.toml delete mode 100644 databind.json/.changelog/2.0.2.toml delete mode 100644 databind.json/.changelog/2.0.7.toml delete mode 100644 databind.json/.changelog/3.0.0.toml delete mode 100644 databind.json/.changelog/4.0.0.toml delete mode 100644 databind.json/.changelog/4.1.0.toml delete mode 100644 databind.json/.changelog/4.2.0.toml delete mode 100644 databind.json/.changelog/4.3.0.toml delete mode 100644 databind.json/.changelog/_unreleased.toml create mode 100644 databind.json/src/_databind_json_proxy.py delete mode 100644 databind/.changelog/4.3.0.toml create mode 100644 databind/.flake8 delete mode 100644 databind/src/databind/_version/__init__.py rename {databind.core => databind}/src/databind/core/__init__.py (100%) rename {databind.core => databind}/src/databind/core/context.py (100%) rename {databind.core => databind}/src/databind/core/converter.py (100%) rename {databind.core => databind}/src/databind/core/dataclasses.py (100%) rename {databind.core => databind}/src/databind/core/dataclasses.pyi (100%) rename {databind.core => databind}/src/databind/core/mapper.py (100%) rename {databind.core => databind}/src/databind/core/py.typed (100%) rename {databind.core => databind}/src/databind/core/schema.py (100%) rename {databind.core => databind}/src/databind/core/settings.py (100%) rename {databind.core => databind}/src/databind/core/tests/context_test.py (100%) rename {databind.core => databind}/src/databind/core/tests/schema_docspec_example_test.py (100%) rename {databind.core => databind}/src/databind/core/tests/schema_test.py (100%) rename {databind.core => databind}/src/databind/core/tests/schema_with_nested_dataclasses_test.py (100%) rename {databind.core => databind}/src/databind/core/union.py (100%) rename {databind.core => databind}/src/databind/core/utils.py (100%) rename {databind.json => databind}/src/databind/json/__init__.py (99%) rename {databind.json => databind}/src/databind/json/converters.py (99%) rename {databind.json => databind}/src/databind/json/module.py (99%) rename {databind.json => databind}/src/databind/json/py.typed (100%) rename {databind.json => databind}/src/databind/json/settings.py (99%) rename {databind.json => databind}/src/databind/json/tests/converters_test.py (100%) create mode 100644 docs/content/changelog.md delete mode 100644 docs/content/core/changelog.md create mode 100644 docs/content/img/logo-transparent.png create mode 100644 docs/content/img/logo.webp delete mode 100644 docs/content/json/changelog.md diff --git a/.changelog/0.10.0.toml b/.changelog/0.10.0.toml new file mode 100644 index 00000000..f7ed3437 --- /dev/null +++ b/.changelog/0.10.0.toml @@ -0,0 +1,22 @@ +release-date = "2020-12-30" + +[[entries]] +id = "941943f9-5cf7-48fb-beea-2c341bc01907" +type = "improvement" +description = "classes decorated with `@uniontype(container=True)` must now be constructed using a single keyword argument as in `MyUnion(member1=Member1Value())`\n" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "0cb46581-98b5-40ad-82f1-eba64a2d498a" +type = "fix" +description = "add missing `to_stream` and `from_stream` to `__all__`" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "b65cd60e-3b8f-42c0-b4d8-37e5257bc269" +type = "feature" +description = "add `cast()` function" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.11.0.toml b/.changelog/0.11.0.toml similarity index 56% rename from databind.core/.changelog/0.11.0.toml rename to .changelog/0.11.0.toml index 4df094c0..23bbb7a1 100644 --- a/databind.core/.changelog/0.11.0.toml +++ b/.changelog/0.11.0.toml @@ -1,25 +1,43 @@ -release-date = "2021-04-08" +release-date = "2021-03-05" [[entries]] id = "5fdfb706-e8fd-4277-a4fa-8bc9fd894336" type = "feature" description = "`enumerate_fields()` now works with uniontype instances and classes" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "58571d4d-65a2-46c7-949d-60f8eb219e56" type = "improvement" description = "update `@uniontype` generated `__repr__()` method" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "8585b0f1-6d33-4f1c-8637-c4186e456786" type = "feature" description = "add support for member aliasing in `UnionResolver`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "9a23ae46-60fd-4f4f-950b-bb6966aa0003" type = "feature" description = "add `Context.closed_field_metadata()` function" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "65f5c1ef-ae7f-4802-af8c-c5e5460f602d" +type = "improvement" +description = "Update union construction during deserialization" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "779fedda-841f-4e00-bed0-e3ccab1ad836" +type = "improvement" +description = "minimum version of `databind.core` is `^0.10.0`" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/0.12.0.toml b/.changelog/0.12.0.toml similarity index 88% rename from databind.json/.changelog/0.12.0.toml rename to .changelog/0.12.0.toml index 2e672f3c..e5a2c70e 100644 --- a/databind.json/.changelog/0.12.0.toml +++ b/.changelog/0.12.0.toml @@ -5,33 +5,39 @@ id = "f718e1bd-f235-4a48-81c4-379f5469c9de" type = "feature" description = "Add `uniontype(single_key_discriminator)` argument" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "6349c88c-cedf-4d8f-95f5-441ae9c96486" type = "fix" description = "Generated `__eq__()` method for `uniontype(container=True)` is now injective to avoid issue when `type(other)` is `object`" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "db67c3d6-80a9-4a61-af10-fc46bd505d6e" type = "feature" description = "add support for aliasing with `field(altname)` in `@uniontype` container declarations" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "8373fb43-05e2-469a-88df-76f7d6d0b083" type = "feature" description = "`StringConverter` can now also be relaxed, `FieldMetadata.relaxed` is now inherited from the closest metadata in the context for POD data types" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "55862c13-5599-4bb0-9f1d-d60300584e12" type = "fix" description = "deserializing a `List[str]` from a `str` object now results in an error" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "1ff62e50-8b99-4ee7-813b-f740870638a1" type = "improvement" description = "bump dependency on databind.core to ^0.11.0" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/0.2.0.toml b/.changelog/0.2.0.toml similarity index 57% rename from databind.json/.changelog/0.2.0.toml rename to .changelog/0.2.0.toml index e8e8d5e5..2e3ce174 100644 --- a/databind.json/.changelog/0.2.0.toml +++ b/.changelog/0.2.0.toml @@ -1,19 +1,36 @@ release-date = "2020-08-29" +[[entries]] +id = "d54aa0ac-9329-4d2a-8e3a-16063491f764" +type = "improvement" +description = "update type hints to pass mypy checks" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "47206f43-6699-40ea-8210-c1a341d2b623" +type = "improvement" +description = "`FieldMetadata` now keeps a reference to the `dataclasses.Field` object and it's' metadata" +author = "@NiklasRosenstein" +component = "databind.core" + [[entries]] id = "3195561b-c5ed-4595-922b-9d76c46892f9" type = "improvement" description = "update type hints to pass mypy checks" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "c3458aff-e6b3-4b20-97b0-12882818b6db" type = "improvement" description = "add DEBUG log when `MixtypeConverter` is unable to convert a value at all to make debugging easier" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "37e0f485-54c0-4bcf-bd3e-082f629b8689" type = "fix" description = "accept `datetime.date`/`datetime.datetime` objects when converting to python if the target type is a respective match (rather than forcing a string as an input)" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.3.0.toml b/.changelog/0.3.0.toml similarity index 65% rename from databind.core/.changelog/0.3.0.toml rename to .changelog/0.3.0.toml index 8fc6b9f1..81db24b6 100644 --- a/databind.core/.changelog/0.3.0.toml +++ b/.changelog/0.3.0.toml @@ -5,9 +5,18 @@ id = "27920260-c47e-4191-9f3a-5249584d28a3" type = "improvement" description = "ensure that non-default arguments do not have a class attribute of type `object` (which is used as a workaround to support non-default fields following default fields in `dataclasses`)" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "0d15905e-4810-4c08-a4d8-70aaa72ad4f0" type = "fix" description = "raise for uninitialized fields inherited from parent datamodels" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "71c62ec7-7d37-4461-96a3-217de03499de" +type = "improvement" +description = "`ArrayConverter` now supports subclasses of the `typing.List` generic" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.4.0.toml b/.changelog/0.4.0.toml similarity index 71% rename from databind.core/.changelog/0.4.0.toml rename to .changelog/0.4.0.toml index 655c7663..8d253fbd 100644 --- a/databind.core/.changelog/0.4.0.toml +++ b/.changelog/0.4.0.toml @@ -5,15 +5,25 @@ id = "0522b7f0-4bc4-48c3-aa0a-fe3d3f96e5c5" type = "feature" description = "add `ModelMetadata.serialize_as` (which translates into a keyword argument for `@datamodel()`) to specify a type hint that should be used instead of the type itself when serializing/deserializing it" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "771ef7cd-2020-4504-b949-2cb0bfc08e35" type = "feature" description = "add `Context.coerce_errors()` context manager" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "30501a59-9860-4f3c-8ccb-d5883449f940" type = "feature" description = "add `TypeHint` variable which should be used in places where a type hint is expected" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "03524ec0-3644-4bd8-9a64-a1dc0e754fd7" +type = "feature" +description = "support `@datamodel(serialize_as)` in `ModelConverter`" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/.changelog/0.4.1.toml b/.changelog/0.4.1.toml new file mode 100644 index 00000000..b59d4af9 --- /dev/null +++ b/.changelog/0.4.1.toml @@ -0,0 +1,15 @@ +release-date = "2020-09-06" + +[[entries]] +id = "8bc4f7c3-1a29-41f1-9f5d-f3f8a99897ca" +type = "fix" +description = "Re-render setup file, materializing missing dependency on `dataclasses`. This fixes using the module in Python 3.6." +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "7abbb43c-0eab-4009-9353-9de48aebc5b7" +type = "fix" +description = "conversion of values of a `List` subtype *from Python* are now converted to a built-in `list` instead of the same `List` subtype" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.4.2.toml b/.changelog/0.4.2.toml similarity index 89% rename from databind.core/.changelog/0.4.2.toml rename to .changelog/0.4.2.toml index 00740320..f9bd2eb2 100644 --- a/databind.core/.changelog/0.4.2.toml +++ b/.changelog/0.4.2.toml @@ -5,3 +5,4 @@ id = "6993c150-4320-4d1d-b8a9-d5763c326a34" type = "hygiene" description = "Move `type_repr()` declaration to `databind.core.utils` and add `find_orig_base()` function" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.json/.changelog/0.5.0.toml b/.changelog/0.5.0.toml similarity index 91% rename from databind.json/.changelog/0.5.0.toml rename to .changelog/0.5.0.toml index 29075f3c..e2f21b0c 100644 --- a/databind.json/.changelog/0.5.0.toml +++ b/.changelog/0.5.0.toml @@ -5,3 +5,4 @@ id = "bc123b73-f4d0-44a4-9e43-de56b776a7b6" type = "feature" description = "Add `strict` argument to `register_json_converters()` which will allow converters for plain-old-datatypes to accept string representations as well" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/0.5.1.toml b/.changelog/0.5.1.toml similarity index 89% rename from databind.json/.changelog/0.5.1.toml rename to .changelog/0.5.1.toml index 7da25110..629a44e3 100644 --- a/databind.json/.changelog/0.5.1.toml +++ b/.changelog/0.5.1.toml @@ -5,3 +5,4 @@ id = "c039776f-9ecc-460a-b5d4-b9cbc5bb1e46" type = "fix" description = "Fix Python 3.6 support for `typing.List` subclasses by reading the generic paraemter from the right object" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.6.0.toml b/.changelog/0.6.0.toml similarity index 59% rename from databind.core/.changelog/0.6.0.toml rename to .changelog/0.6.0.toml index b2886b86..48a10a68 100644 --- a/databind.core/.changelog/0.6.0.toml +++ b/.changelog/0.6.0.toml @@ -1,19 +1,36 @@ -release-date = "2020-09-14" +release-date = "2020-09-10" [[entries]] id = "da1141be-ec57-4d28-a50a-1158dca6107b" type = "fix" description = "`Registry.get_converter()` now looks for a converter in the base classes only if it could not find it for the normalized version of the current type, making converter resolution more predictable" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "df476ea6-934c-440c-92be-d41f4bc8422c" type = "feature" description = "Add `ClassUnionResolver` which evaluates type hints dynamically, allowing to use forward references in the type hints of a `@uniontype()`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "65bd22be-4505-4b45-ad8a-b0f7f6307312" type = "feature" description = "Add `@interface()` and `@implementation()` decorators" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "cc7ad2d7-1ba6-428a-8f49-b7407ccdc505" +type = "feature" +description = "Add `to_stream()` and `from_stream()` functions" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "bc0a165d-7868-415c-9b52-8f9ad9040cb9" +type = "feature" +description = "Add support for `typing.Dict` subclasses" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/0.6.1.toml b/.changelog/0.6.1.toml similarity index 86% rename from databind.json/.changelog/0.6.1.toml rename to .changelog/0.6.1.toml index 75b0b592..b6eb53e9 100644 --- a/databind.json/.changelog/0.6.1.toml +++ b/.changelog/0.6.1.toml @@ -5,3 +5,4 @@ id = "b5991aa2-b0ba-4243-8529-5cb061c17cc4" type = "fix" description = "Fix `NameError` in `ObjectConverter`" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.7.0.toml b/.changelog/0.7.0.toml similarity index 58% rename from databind.core/.changelog/0.7.0.toml rename to .changelog/0.7.0.toml index 7df356d6..d875ca96 100644 --- a/databind.core/.changelog/0.7.0.toml +++ b/.changelog/0.7.0.toml @@ -5,3 +5,11 @@ id = "24bad1cf-e404-4c23-b6ad-e0b3499564c1" type = "feature" description = "`@dataclasses.dataclass()` classes can now be converted as a data model automatically, `BaseMetadata.for_type()` now returns an optional" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "b6a90864-ebc9-43fd-a909-4a88139eb2b7" +type = "feature" +description = "Now supports converting Sets" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.7.1.toml b/.changelog/0.7.1.toml similarity index 59% rename from databind.core/.changelog/0.7.1.toml rename to .changelog/0.7.1.toml index 54fba4e6..22543c02 100644 --- a/databind.core/.changelog/0.7.1.toml +++ b/.changelog/0.7.1.toml @@ -5,9 +5,18 @@ id = "bc008cf1-db00-4789-9362-7b5c47af1d26" type = "fix" description = "Python 3.9 support in type hint normalization" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "8465d65a-3f95-4a9f-aa18-e8810999b5ec" type = "fix" description = "fix mypy errors" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "28477028-ec46-493a-9b8c-acf024cf953c" +type = "fix" +description = "Fix mypy errors" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.8.0.toml b/.changelog/0.8.0.toml similarity index 73% rename from databind.core/.changelog/0.8.0.toml rename to .changelog/0.8.0.toml index a653ff42..a60b13c9 100644 --- a/databind.core/.changelog/0.8.0.toml +++ b/.changelog/0.8.0.toml @@ -5,3 +5,11 @@ id = "71eb5eb9-8246-489d-948f-8a525b00e505" type = "improvement" description = "`@implementation()` now sets the databind metadata field to `None` if no explicit metadata is already set on the type. `Registry.get_converter()` recognizes this case and stops checking the base classes. This is to avoid a confusing error when the type decorated with `@implementation()` seems to inherit the `UnionMetadata` from the parent class (because of the `Registry.get_converter()` base class check) but actually does not provide a metadata. Now we see \"no converter found for type XYZ\" instead \"expected UnionMetadata to be provided by XYZ\" in `databind.json`" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "a27c60f9-6cce-4abf-8043-d081c0de33c2" +type = "feature" +description = "add converter for `typing.Any`, which by the way does not actually convert anything" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/0.9.0.toml b/.changelog/0.9.0.toml similarity index 70% rename from databind.core/.changelog/0.9.0.toml rename to .changelog/0.9.0.toml index 2e7283de..16a45c97 100644 --- a/databind.core/.changelog/0.9.0.toml +++ b/.changelog/0.9.0.toml @@ -1,19 +1,29 @@ -release-date = "2020-12-30" +release-date = "2020-11-24" [[entries]] id = "b52ab6b6-b481-4bb7-9883-71adc813408e" type = "feature" description = "add `ImportingUnionResolver` and `EntrypointUnionResolver`, both which can also be used with the `@interface` decorator. The `resolver` argument now accepts a string which will be converted into a `UnionResolver` (supported formats are `import` and `entrypoint:`)" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "3c1737e4-fe26-46e8-9b0c-6560cc9041bd" type = "fix" description = "`@implementation()` can now be used without explicitly specifying the `for_` parameter when decorating a class with multiple bases where only one base is a `@uniontype`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "896fee89-6413-4f92-8ffd-130e27bc27de" type = "fix" description = "fix inheritance of fields from `@dataclass` parent classes" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "4436d541-f7a8-4c1b-9292-0bc1d6624a15" +type = "feature" +description = "handle `FieldMetadata.relaxed` and `FieldMetadata.strict` in Bool, Integer and String converters" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/1.0.0.toml b/.changelog/1.0.0.toml similarity index 85% rename from databind.core/.changelog/1.0.0.toml rename to .changelog/1.0.0.toml index 01a50379..699c190b 100644 --- a/databind.core/.changelog/1.0.0.toml +++ b/.changelog/1.0.0.toml @@ -5,3 +5,4 @@ id = "4c779cd4-3aeb-4ab8-b9cf-178dce76db85" type = "breaking change" description = "Full rewrite" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.0.0.yml b/.changelog/1.0.0.yml deleted file mode 100644 index 2b2f1dd3..00000000 --- a/.changelog/1.0.0.yml +++ /dev/null @@ -1,6 +0,0 @@ -release_date: '2021-07-22' -changes: -- type: breaking_change - component: general - description: minimum Python version is now 3.7 - fixes: [] diff --git a/databind.core/.changelog/1.0.1.toml b/.changelog/1.0.1.toml similarity index 86% rename from databind.core/.changelog/1.0.1.toml rename to .changelog/1.0.1.toml index d1a6bb8e..e8eb9cb0 100644 --- a/databind.core/.changelog/1.0.1.toml +++ b/.changelog/1.0.1.toml @@ -5,9 +5,11 @@ id = "047bcdde-be03-419a-b2ff-351c1519e69b" type = "improvement" description = "import `dataclass_to_schema` into `databind.core` top-level package" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "cd9d09c1-7801-4125-8274-4745295c584a" type = "fix" description = "fix type hints to pass mypy checks" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/1.1.0.toml b/.changelog/1.1.0.toml similarity index 90% rename from databind.core/.changelog/1.1.0.toml rename to .changelog/1.1.0.toml index 979a3853..efdc959d 100644 --- a/databind.core/.changelog/1.1.0.toml +++ b/.changelog/1.1.0.toml @@ -5,24 +5,28 @@ id = "6fe4210a-2ee5-4311-8152-c6b4164486a4" type = "improvement" description = "remove `AnnotatedType`, add `BaseType.annotations` instead." author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "b864f8a6-fa00-49e3-b23e-cf290e8aee0b" type = "breaking change" description = "Reorganize a lot of internal APIs and some public APIs (e.g. renamed `ITypeHintConverter` to `TypeHintAdapter`, `IConverter` to `Converter` + respective module name changes, deprecated `ObjectMapper.default()`, remove `IObjectMapper` and replace `Context.mapper` with `Context.converters` and `Context.annotations`." author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "a7f89cac-61a3-42bd-acec-6b25ed363f4f" type = "breaking change" description = "replace `Schema.flat_fields()` with `Schema.flattened()`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "aaff65b7-df9f-4e90-b7c0-86b0b7762479" type = "improvement" description = "only import members from sub-modules where they are expected to be used from (ie. `databind.core`, `databind.core.annotations`, `databind.core.dataclasses`, `databind.json`)" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "8d8029c3-7fb9-4017-ae24-61f7099e73fb" @@ -32,3 +36,4 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/7", ] +component = "databind.core" diff --git a/databind.core/.changelog/1.1.1.toml b/.changelog/1.1.1.toml similarity index 89% rename from databind.core/.changelog/1.1.1.toml rename to .changelog/1.1.1.toml index 46067948..57dddff4 100644 --- a/databind.core/.changelog/1.1.1.toml +++ b/.changelog/1.1.1.toml @@ -5,3 +5,4 @@ id = "a17c9256-e016-4328-9b80-a4ee73627c39" type = "fix" description = "fix `EntrypointSubtypes()` constructor which used to accidentally accept a `TypeHintAdapter` argument" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.1.2.toml b/.changelog/1.1.2.toml new file mode 100644 index 00000000..e86e7d96 --- /dev/null +++ b/.changelog/1.1.2.toml @@ -0,0 +1,15 @@ +release-date = "2021-08-06" + +[[entries]] +id = "bf344197-c36c-41ff-9084-fcf035d58f37" +type = "fix" +description = "fix `@A.union` types to accept `ObjectType`s" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "9f730924-d0bc-4c55-8563-66719ff6188d" +type = "feature" +description = "support de-/serializing `bytes` as base64" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/1.1.3.toml b/.changelog/1.1.3.toml similarity index 88% rename from databind.core/.changelog/1.1.3.toml rename to .changelog/1.1.3.toml index 0b943152..511a1a6a 100644 --- a/databind.core/.changelog/1.1.3.toml +++ b/.changelog/1.1.3.toml @@ -5,9 +5,11 @@ id = "fba8312f-7a24-4f0f-adb3-e1a21f02dae5" type = "improvement" description = "`ObjectType` and `ConcreteType` now show the class fqn on repr()" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "99cec1c1-6269-4a2b-81b9-9f8dcdfb359d" type = "fix" description = "fix support for special generic subclasses (like `List` or `Dict`) with another generic base class (eg. `Generic`)" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.1.4.yml b/.changelog/1.1.4.yml deleted file mode 100644 index e1eaa200..00000000 --- a/.changelog/1.1.4.yml +++ /dev/null @@ -1,7 +0,0 @@ -changes: -- type: fix - component: general - description: rerender `setup.py` files with `shut==0.16.0` with https://github.com/NiklasRosenstein/shut/issues/21 - fixed, now the LICENSE.txt is again included in the `sdist` - fixes: [] -release_date: '2021-08-10' diff --git a/databind.json/.changelog/1.1.5.toml b/.changelog/1.1.5.toml similarity index 55% rename from databind.json/.changelog/1.1.5.toml rename to .changelog/1.1.5.toml index d98234b3..976196cd 100644 --- a/databind.json/.changelog/1.1.5.toml +++ b/.changelog/1.1.5.toml @@ -1,5 +1,12 @@ release-date = "2021-08-16" +[[entries]] +id = "efbf0a33-5eae-4868-84e0-00d252c7a08d" +type = "fix" +description = "normal type with `Annotated[MyType, union(...)]` is now correctly interpreted as `UnionType`" +author = "@NiklasRosenstein" +component = "databind.core" + [[entries]] id = "02e75fd1-7555-42de-bb36-e9c88b65b680" type = "fix" @@ -8,3 +15,4 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/13", ] +component = "databind.json" diff --git a/databind.core/.changelog/1.1.6.toml b/.changelog/1.1.6.toml similarity index 90% rename from databind.core/.changelog/1.1.6.toml rename to .changelog/1.1.6.toml index 84e7f22b..1d90b702 100644 --- a/databind.core/.changelog/1.1.6.toml +++ b/.changelog/1.1.6.toml @@ -5,3 +5,4 @@ id = "a1d0d6a4-75ea-41c4-b79b-5d3a4f517b69" type = "fix" description = "fix case where DefaultTypeHintAdapter does not continue adaptation dynamically upon encountering a fixed type object" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.2.0.toml b/.changelog/1.2.0.toml new file mode 100644 index 00000000..841f345b --- /dev/null +++ b/.changelog/1.2.0.toml @@ -0,0 +1,52 @@ +release-date = "2021-08-20" + +[[entries]] +id = "2bfa9bb8-736b-4f42-ae79-662ac60d6c95" +type = "feature" +description = "add `Direction.is_serialize()` and `Direction.is_deserialize()`" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "9ca8468e-f716-4033-a07d-7c06d3d3e549" +type = "feature" +description = "add `AnnotationsRegistry.add_type_annotation()` and `AnnotationsRegistry.add_field_annotation()`" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "e8fa6c70-9732-40a3-a7d8-54d772e21ba9" +type = "feature" +description = "`DefaultAnnotationsProvider` now supports finding annotations in `Enum` members when annotated with `te.Annotated`, `DefaultAnnotationsProvider` is now registered to an `ObjectMapper` by default" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "c09f08bb-ce01-49f8-b3bc-94fb8d27a2e5" +type = "feature" +description = "add converter for `pathlib.PurePath` subclasses, enabled in the `JsonModule` by default" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/14", +] +component = "databind.json" + +[[entries]] +id = "6b4a28ad-478a-4ae8-bfb8-58e3730bfee5" +type = "feature" +description = "add converter for `uuid.UUID` to `JsonModule`" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/15", +] +component = "databind.json" + +[[entries]] +id = "c067911a-cee5-416a-b05d-19801bccbb27" +type = "feature" +description = "support aliases on enum values" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/1", +] +component = "databind.json" diff --git a/.changelog/1.2.1.yml b/.changelog/1.2.1.yml deleted file mode 100644 index ed55fe77..00000000 --- a/.changelog/1.2.1.yml +++ /dev/null @@ -1,7 +0,0 @@ -changes: -- type: fix - component: general - description: fix interpreting `alias()` annotations on enumeration values in Python3.9+ - by including extras when looking up field annotations in `DefaultAnnotationsProvider` - fixes: [] -release_date: '2021-08-31' diff --git a/databind.core/.changelog/1.2.2.toml b/.changelog/1.2.2.toml similarity index 89% rename from databind.core/.changelog/1.2.2.toml rename to .changelog/1.2.2.toml index bf64ced1..9722f446 100644 --- a/databind.core/.changelog/1.2.2.toml +++ b/.changelog/1.2.2.toml @@ -5,9 +5,11 @@ id = "2a888a18-5c19-4857-9818-3fbf0d304472" type = "fix" description = "`DefaultTypeHintAdapter` no longer raises an exception upon receiving a BaseType instance" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "0f969c4c-29db-453c-b748-5ce5ad5e8fe2" type = "improvement" description = "`dataclass_to_schema(type_adapter)` argument is now optional and defaults to a `DefaultTypeHintAdapter` instance" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/1.2.3.toml b/.changelog/1.2.3.toml similarity index 90% rename from databind.core/.changelog/1.2.3.toml rename to .changelog/1.2.3.toml index 4ee29813..2f923902 100644 --- a/databind.core/.changelog/1.2.3.toml +++ b/.changelog/1.2.3.toml @@ -8,3 +8,4 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/19", ] +component = "databind.core" diff --git a/databind.json/.changelog/1.2.4.toml b/.changelog/1.2.4.toml similarity index 90% rename from databind.json/.changelog/1.2.4.toml rename to .changelog/1.2.4.toml index 14df5a05..3c656fa5 100644 --- a/databind.json/.changelog/1.2.4.toml +++ b/.changelog/1.2.4.toml @@ -5,3 +5,4 @@ id = "404847f0-d763-4a38-889a-3364f15024b1" type = "fix" description = "declare missing `nr.optional` dependency (was not an actual bug because the dependency was introduced transitively anyway)" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/1.2.5.toml b/.changelog/1.2.5.toml similarity index 89% rename from databind.core/.changelog/1.2.5.toml rename to .changelog/1.2.5.toml index 686f5d99..e2ed4d63 100644 --- a/databind.core/.changelog/1.2.5.toml +++ b/.changelog/1.2.5.toml @@ -5,3 +5,4 @@ id = "de35184a-5931-40b4-82db-72ab0912b99a" type = "fix" description = "add missing nr.pylang.utils dependency (was introduced transtively before so it was no crucial bug)" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/1.2.6.toml b/.changelog/1.2.6.toml similarity index 87% rename from databind.core/.changelog/1.2.6.toml rename to .changelog/1.2.6.toml index 691e8849..6b1a62bc 100644 --- a/databind.core/.changelog/1.2.6.toml +++ b/.changelog/1.2.6.toml @@ -5,3 +5,4 @@ id = "b33b4453-c0ff-4abd-bebe-57b643a47f6b" type = "fix" description = "correctly support Python 3.10 `types.UnionType`" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/1.3.0.toml b/.changelog/1.3.0.toml similarity index 88% rename from databind.core/.changelog/1.3.0.toml rename to .changelog/1.3.0.toml index d29524ef..87f89346 100644 --- a/databind.core/.changelog/1.3.0.toml +++ b/.changelog/1.3.0.toml @@ -5,3 +5,4 @@ id = "11e63e15-6b96-4c99-b096-70d4230288c6" type = "improvement" description = "improve readability of `ConversionError` by changing `Location.format()`" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/1.3.1.toml b/.changelog/1.3.1.toml similarity index 55% rename from databind.core/.changelog/1.3.1.toml rename to .changelog/1.3.1.toml index 1c720ecf..c33bfced 100644 --- a/databind.core/.changelog/1.3.1.toml +++ b/.changelog/1.3.1.toml @@ -8,6 +8,7 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/23", ] +component = "databind.core" [[entries]] id = "aefb76ba-5f30-4589-a5bd-e482851e9351" @@ -17,9 +18,28 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/24", ] +component = "databind.core" [[entries]] id = "cc443d45-6490-4291-890f-ef6ed1555c90" type = "improvement" description = "change `ConverterProvider.get_converter()` to `ConverterProvider.get_converters()` and `ConversionNotApplicable` error type, allowing to test multiple converters for a type" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "d192ebd0-f643-4823-bbbe-ec20b878d8b2" +type = "feature" +description = "add `databind.json.annotations.with_custom_json_converter()` annotation to allow implementing a custom converter for dataclasses" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "f5a426e0-21c1-415f-b7b3-c975d357f5a4" +type = "fix" +description = "narrow `JsonType` union type to use `dict` and `list` instead of `t.Mapping` and `t.Collection`" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/22", +] +component = "databind.json" diff --git a/databind.core/.changelog/1.3.2.toml b/.changelog/1.3.2.toml similarity index 88% rename from databind.core/.changelog/1.3.2.toml rename to .changelog/1.3.2.toml index 9814b22d..394f0f67 100644 --- a/databind.core/.changelog/1.3.2.toml +++ b/.changelog/1.3.2.toml @@ -5,3 +5,4 @@ id = "7cb94b0f-5f69-4595-a38f-c2f532626082" type = "fix" description = "make `databind.core.annotations` hashable for use in `typing.Annotations`" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.4.0.toml b/.changelog/1.4.0.toml new file mode 100644 index 00000000..6c10ed3a --- /dev/null +++ b/.changelog/1.4.0.toml @@ -0,0 +1,21 @@ +release-date = "2022-01-22" + +[[entries]] +id = "b5ebc00a-ea8d-425b-931e-773840e22073" +type = "feature" +description = "add `union.Style.keyed`" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/21", +] +component = "databind.core" + +[[entries]] +id = "af09d38c-66ee-4399-a9a7-404a1911add5" +type = "feature" +description = "support `union.Style.keyed`" +author = "@NiklasRosenstein" +issues = [ + "https://github.com/NiklasRosenstein/databind/issues/21", +] +component = "databind.json" diff --git a/databind.core/.changelog/1.5.0.toml b/.changelog/1.5.0.toml similarity index 90% rename from databind.core/.changelog/1.5.0.toml rename to .changelog/1.5.0.toml index 4cf79b92..bf530f40 100644 --- a/databind.core/.changelog/1.5.0.toml +++ b/.changelog/1.5.0.toml @@ -8,9 +8,11 @@ author = "@NiklasRosenstein" issues = [ "https://github.com/NiklasRosenstein/databind/issues/25", ] +component = "databind.core" [[entries]] id = "8ee5d13b-d721-461d-bacd-3cdb6e199a1d" type = "fix" description = "fix `unpack_type_hints()` to return args for a parametrized special generic alias (like `typing.List[T]` returning `(list, (T,))`)" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/1.5.1.toml b/.changelog/1.5.1.toml new file mode 100644 index 00000000..e5d19245 --- /dev/null +++ b/.changelog/1.5.1.toml @@ -0,0 +1,15 @@ +release-date = "2022-02-26" + +[[entries]] +id = "968be339-8a28-4cce-bdc6-61eb838fb803" +type = "refactor" +description = "migrate to `nr.util` package" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "2b6514ea-b84b-4c94-8b65-71f78ea8114e" +type = "refactor" +description = "migrate to `nr.util` package" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/1.5.2.toml b/.changelog/1.5.2.toml similarity index 87% rename from databind.core/.changelog/1.5.2.toml rename to .changelog/1.5.2.toml index 5423ccd0..6639053b 100644 --- a/databind.core/.changelog/1.5.2.toml +++ b/.changelog/1.5.2.toml @@ -5,3 +5,4 @@ id = "6873045a-f6b2-4244-991e-d31cf8eb0e3d" type = "feature" description = "add `nesting_key` parameter to `union()` annotation" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/2.0.0-alpha.4.toml b/.changelog/2.0.0-alpha.4.toml similarity index 54% rename from databind.core/.changelog/2.0.0-alpha.4.toml rename to .changelog/2.0.0-alpha.4.toml index 51ed4ba4..da1ed63e 100644 --- a/databind.core/.changelog/2.0.0-alpha.4.toml +++ b/.changelog/2.0.0-alpha.4.toml @@ -5,9 +5,18 @@ id = "3bac26ba-57d6-4953-8393-386c618e1d14" type = "fix" description = "Fix error in `ConversionError.expected()` if the `types` parameter was a type hint" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "9439eaa0-19ba-4b9e-9437-b59c55219550" type = "breaking change" description = "add `ConversionError()` `origin` and `errors` parameter" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "9f5996fe-a2bf-4fb5-b8bf-42c526673d93" +type = "breaking change" +description = "implement `Union.BEST_MATCH` in `UnionConverter`, which is now used as the default if an un-annotated `typing.Union` is encountered" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/2.0.0.toml b/.changelog/2.0.0.toml similarity index 87% rename from databind.json/.changelog/2.0.0.toml rename to .changelog/2.0.0.toml index 6dd407d5..86c19571 100644 --- a/databind.json/.changelog/2.0.0.toml +++ b/.changelog/2.0.0.toml @@ -5,3 +5,4 @@ id = "c84b03be-9143-48bb-846d-5330a0665f45" type = "breaking change" description = "Remove `databind.json.settings` module" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/2.0.0a2.toml b/.changelog/2.0.0a2.toml similarity index 62% rename from databind.core/.changelog/2.0.0a2.toml rename to .changelog/2.0.0a2.toml index 5d381e14..779fe5d7 100644 --- a/databind.core/.changelog/2.0.0a2.toml +++ b/.changelog/2.0.0a2.toml @@ -5,9 +5,18 @@ id = "321e07d2-6720-4a85-acb0-6975779a0cdf" type = "improvement" description = "move `ExtraKeys` and `Remainder` setting from `databind.json` to `databind.core`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "20fd7449-70e4-4200-8058-f03e20155485" type = "feature" description = "make `ExtraKeys` setting a subclass of `ClassDecoratorSetting`, allowing it to be used to mark an entire class and allowing extra keys" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "85403125-18ad-4988-8514-019a38a7128d" +type = "improvement" +description = "move `ExtraKeys` and `Remainder` setting from `databind.json` to `databind.core`" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/2.0.0a3.toml b/.changelog/2.0.0a3.toml similarity index 91% rename from databind.json/.changelog/2.0.0a3.toml rename to .changelog/2.0.0a3.toml index 7f1592ba..2065f53e 100644 --- a/databind.json/.changelog/2.0.0a3.toml +++ b/.changelog/2.0.0a3.toml @@ -5,3 +5,4 @@ id = "72d6a4f6-dcd2-4638-af22-64764ea89385" type = "fix" description = "Fix `CollectionConverter` (used for subclasses of `collections.abc.Collection`) does not end up returnin a generator instead of a collection" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/.changelog/2.0.1.toml b/.changelog/2.0.1.toml new file mode 100644 index 00000000..3a230bac --- /dev/null +++ b/.changelog/2.0.1.toml @@ -0,0 +1,29 @@ +release-date = "2022-05-09" + +[[entries]] +id = "77ea4dca-ae09-4454-9c01-2687ff3d57ad" +type = "improvement" +description = "Loosen requirement on `typing-extensions` from `^3.10.0` to `>=3.10.0`" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "adf0e51f-ba27-4421-a5a4-f771b5e5221e" +type = "refactor" +description = "Use Black and isort for code formatting, Flake8 for linting" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "e13ad790-4e0a-44fb-afec-3ecc7c6b9ad8" +type = "improvement" +description = "Loosen requirement on `typing-extensions` from `^3.10.0` to `>=3.10.0`" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "b537c6b7-fa06-41b4-a452-8edb5b0f6fe4" +type = "refactor" +description = "Use Black and isort for code formatting, Flake8 for linting" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/2.0.2.toml b/.changelog/2.0.2.toml similarity index 50% rename from databind.core/.changelog/2.0.2.toml rename to .changelog/2.0.2.toml index 004cb6d5..5f70e00e 100644 --- a/databind.core/.changelog/2.0.2.toml +++ b/.changelog/2.0.2.toml @@ -5,9 +5,25 @@ id = "f15a4a8f-c74e-4e71-801a-0f5ee411d227" type = "docs" description = "Add URLs to project metadata." author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "690814ed-1018-4a1d-b67f-4c1152003ce0" type = "improvement" description = "Schemas (dataclasses, typed dicts) that have an `Optional` field that are not explicitly marked as `Required()` now automatically get assigned `None` as a default value" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "2b9885cd-5196-45dd-8b3e-3b8d10d8f708" +type = "docs" +description = "Add URLs to project metadata." +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "a37639a0-d0bd-40e1-8b8b-06dbd6b96d9e" +type = "improvement" +description = "Use a fields default value if it is available when deserializing schemas" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/2.0.3.toml b/.changelog/2.0.3.toml similarity index 62% rename from databind.json/.changelog/2.0.3.toml rename to .changelog/2.0.3.toml index fe4ec9c6..49bc170b 100644 --- a/databind.json/.changelog/2.0.3.toml +++ b/.changelog/2.0.3.toml @@ -1,7 +1,15 @@ release-date = "2022-05-11" +[[entries]] +id = "ad7df855-fe04-4acc-b925-83010fe02662" +type = "fix" +description = "Fix resolving nested forward references in dataclasses." +author = "@NiklasRosenstein" +component = "databind.core" + [[entries]] id = "fde3ca08-6897-4a16-a4d9-b794da8dd702" type = "fix" description = "Fixed an issue when deserializing fields in a schema when the Python type does not have the exact same representation in the structured payload, causing an error when that Python default value is handed as a value to be deserialized." author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/2.0.4.toml b/.changelog/2.0.4.toml similarity index 89% rename from databind.core/.changelog/2.0.4.toml rename to .changelog/2.0.4.toml index 9bfbd1df..5fbeafd7 100644 --- a/databind.core/.changelog/2.0.4.toml +++ b/.changelog/2.0.4.toml @@ -5,9 +5,11 @@ id = "bc8211d9-3762-44cb-8de8-bb0f7b56726a" type = "fix" description = "Fixed an issue where the frame for a dataclass type saved with `typeapi.scoped` was not respected for type evaluation." author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "1c10d176-2231-4632-a67b-458d71bdd523" type = "fix" description = "Fixed module-scoped evaluation of forward references for subclasses of `typing.TypedDict`." author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.json/.changelog/2.0.5.toml b/.changelog/2.0.5.toml similarity index 93% rename from databind.json/.changelog/2.0.5.toml rename to .changelog/2.0.5.toml index 8333844f..5f529387 100644 --- a/databind.json/.changelog/2.0.5.toml +++ b/.changelog/2.0.5.toml @@ -5,3 +5,4 @@ id = "349e567d-c835-44e6-b10d-2296850f4249" type = "fix" description = "Fix that subclasses of a dataclasses marked also with @Union are deserialized as dataclasses instead of Unions; this change may have wider reaching effects because we no longer look up settings in bases of a type, but unit tests are OK with this" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/2.0.6.toml b/.changelog/2.0.6.toml similarity index 86% rename from databind.core/.changelog/2.0.6.toml rename to .changelog/2.0.6.toml index 7bcc527b..4477e902 100644 --- a/databind.core/.changelog/2.0.6.toml +++ b/.changelog/2.0.6.toml @@ -5,3 +5,4 @@ id = "081d896e-cd4d-449c-9e0b-584097448905" type = "improvement" description = "Add support for `typeapi 0.2.0`" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/2.0.7.toml b/.changelog/2.0.7.toml new file mode 100644 index 00000000..acd7aa4b --- /dev/null +++ b/.changelog/2.0.7.toml @@ -0,0 +1,15 @@ +release-date = "2022-06-20" + +[[entries]] +id = "56621ccd-8ec3-409a-84f6-9ec4ce1a052f" +type = "improvement" +description = "Enable Mypy strict type checking mode" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "df546027-bed8-46e1-8e9d-caa6447142bf" +type = "improvement" +description = "Enable Mypy strict type checking mode" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/2.0.8.toml b/.changelog/2.0.8.toml similarity index 90% rename from databind.json/.changelog/2.0.8.toml rename to .changelog/2.0.8.toml index 2112e7e0..55033c74 100644 --- a/databind.json/.changelog/2.0.8.toml +++ b/.changelog/2.0.8.toml @@ -5,3 +5,4 @@ id = "25634f7f-a646-407b-9696-fedfa201e1b9" type = "improvement" description = "Add a `LiteralConverter` which allows you to create literal-based unions (see new example in readme)" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/2.0.9.toml b/.changelog/2.0.9.toml similarity index 53% rename from databind.json/.changelog/2.0.9.toml rename to .changelog/2.0.9.toml index 52741306..1b001672 100644 --- a/databind.json/.changelog/2.0.9.toml +++ b/.changelog/2.0.9.toml @@ -1,7 +1,15 @@ release-date = "2022-11-03" +[[entries]] +id = "c8cb2dd0-edb5-4a7c-a0e8-f3c8ac89aecb" +type = "feature" +description = "add `Module.get_converters()`" +author = "@NiklasRosenstein" +component = "databind.core" + [[entries]] id = "6ae51d42-f0e1-4d1a-85bc-0bf5c4ec7623" type = "feature" description = "add `JsonConverter()` setting to override the converter used for JSON de-/serialization" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/3.0.0.toml b/.changelog/3.0.0.toml similarity index 66% rename from databind.core/.changelog/3.0.0.toml rename to .changelog/3.0.0.toml index 7c9fdee5..176855e8 100644 --- a/databind.core/.changelog/3.0.0.toml +++ b/.changelog/3.0.0.toml @@ -5,45 +5,74 @@ id = "16443154-fd91-4685-a66a-0bec2b277aa4" type = "breaking change" description = "add `Direction` as a concept to `databind.core` (previously only in `databind.json`) which can be imported from `databind.core.context`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "2658cbe1-c2d3-48e2-9dc1-94f72b4206b7" type = "feature" description = "add `Context.direction` member" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "7b9e9a77-f3be-4159-8dc8-7876feb009fd" type = "feature" description = "add `ObjectMapper.serialize()` and `ObjectMapper.deserialize()`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "4ac0f272-c68f-40f5-9130-fc0f648008a7" type = "breaking change" description = "remove `BiObjectMapper` class" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "d19a3728-9cb3-44b0-b85e-edcde9d31865" type = "breaking change" description = "add `direction` argument to `ObjectMapper.convert()`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "e11ca3ed-6c24-4a55-bac5-6f930c905b23" type = "feature" description = "add `Converter.serialize()` and `Converter.deserialize()`, add default implementation for `Converter.convert()` to dispatch to the respective member based on the `Context.direction`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "76610cad-ef0c-40d0-8436-9ec3a84b076c" type = "breaking change" description = "`ObjectMapper` is now a generic with parameters `T` (the deserialized representation of the type) and `U` (the serialized representation of the type)" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "48b7f1b9-5931-4b66-b6af-d4d35ca2d621" type = "breaking change" description = "Change `ExtraKeys` setting signature from `(arg: bool | callable)` to `(allow: bool = True, recorder: callable | None = None)`" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "1cecb7ce-6876-4d0f-8904-81258863f3a7" +type = "docs" +description = "add Examples page to docs" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "fa76a6be-5af0-46f6-88af-c81fb5ccb31d" +type = "breaking change" +description = "remove `get_bimapper()` and replace it with `get_object_mapper()`" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "837d04da-6025-4800-b822-445bfe382727" +type = "breaking change" +description = "remove `Direction` concept from this package as it is now part of `databind.core`, removed it from `JsonModule` and all `Converter` implementations" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/.changelog/4.0.0.toml b/.changelog/4.0.0.toml new file mode 100644 index 00000000..78a39714 --- /dev/null +++ b/.changelog/4.0.0.toml @@ -0,0 +1,17 @@ +release-date = "2022-11-06" + +[[entries]] +id = "f5e3ef06-52d0-480d-8685-0473bea87691" +type = "breaking change" +description = "Databind is now compatible with Python 3.6! This required a few breaking changes to the API used to extend Databind, which is why this is a major version bump. We now use `typeapi 1.x` which has a significantly different API but enables the Python 3.6 compatibilty." +author = "@NiklasRosenstein" +pr = "https://github.com/NiklasRosenstein/python-databind/issues/31" +component = "databind.core" + +[[entries]] +id = "7478f5e3-d2cc-43f0-a557-753c8420ed4b" +type = "breaking change" +description = "Databind is now compatible with Python 3.6! This required a few breaking changes to the API used to extend Databind, which is why this is a major version bump. We now use `typeapi 1.x` which has a significantly different API but enables the Python 3.6 compatibilty." +author = "@NiklasRosenstein" +pr = "https://github.com/NiklasRosenstein/python-databind/issues/31" +component = "databind.json" diff --git a/databind.core/.changelog/4.1.0.toml b/.changelog/4.1.0.toml similarity index 50% rename from databind.core/.changelog/4.1.0.toml rename to .changelog/4.1.0.toml index 1ce2d070..47d15775 100644 --- a/databind.core/.changelog/4.1.0.toml +++ b/.changelog/4.1.0.toml @@ -5,9 +5,25 @@ id = "f368b4b8-414a-4791-a01b-2012c5dc99b6" type = "tests" description = "add a unnit test to see if the conversion of nested dataclasses with forward references works as expected (breaks in Python 3.6.2)" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "9f76e90c-650f-4725-bfd2-fe566f62406c" type = "fix" description = "Set min version to 3.6.3 because of a `typing.get_type_hints()` incompatibiltiy" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "df9af6b0-896e-41f5-846f-550de25c2db9" +type = "fix" +description = "Set min version to 3.6.3 because of a `typing.get_type_hints()` incompatibiltiy" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "ed7e9626-ccad-469f-acaa-b3e6225cf6d9" +type = "feature" +description = "support deserialization of tuples" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/4.1.1.toml b/.changelog/4.1.1.toml similarity index 57% rename from databind.json/.changelog/4.1.1.toml rename to .changelog/4.1.1.toml index 312aef1b..ab4292b2 100644 --- a/databind.json/.changelog/4.1.1.toml +++ b/.changelog/4.1.1.toml @@ -1,7 +1,15 @@ release-date = "2022-11-11" +[[entries]] +id = "c9d1726c-f435-4b69-af21-1d8d29178111" +type = "feature" +description = "add `Module.register(first)` argument" +author = "@NiklasRosenstein" +component = "databind.core" + [[entries]] id = "3c686427-9cb7-4a22-a534-0cbf7a22257f" type = "fix" description = "Register stringify converters for specific types first in the module to take priority over other converters (fixes deserializing `nr.date.duration`)" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/4.2.0.toml b/.changelog/4.2.0.toml similarity index 52% rename from databind.core/.changelog/4.2.0.toml rename to .changelog/4.2.0.toml index 7ac958bc..99650117 100644 --- a/databind.core/.changelog/4.2.0.toml +++ b/.changelog/4.2.0.toml @@ -5,9 +5,25 @@ id = "33063789-c83a-4d0d-967c-9093984dbc62" type = "improvement" description = "improve error message display format and add a default implementation for `Converter.__repr__()`" author = "@NiklasRosenstein" +component = "databind.core" [[entries]] id = "ea24af2b-0378-414e-8452-d8b379e8b780" type = "improvement" description = "when a `ConversionError` occurs, we continue with the remaining converters to attempt to convert it until we are all out of options" author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "f80f15cd-54ce-465e-a9b7-e88040ad380e" +type = "tests" +description = "add unit tests for deserializing `duration` from an object form" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "32461220-a197-4d09-aa81-d9c8c827a637" +type = "docs" +description = "update readme to list supported types" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/4.2.1.toml b/.changelog/4.2.1.toml similarity index 88% rename from databind.json/.changelog/4.2.1.toml rename to .changelog/4.2.1.toml index 9b820eee..bc469bc8 100644 --- a/databind.json/.changelog/4.2.1.toml +++ b/.changelog/4.2.1.toml @@ -5,9 +5,11 @@ id = "8bfab3e3-e014-4e99-a647-5af5e47aa6c7" type = "improvement" description = "add `StringifyConverter(name)` parameter and improve `__repr__()`" author = "@NiklasRosenstein" +component = "databind.json" [[entries]] id = "e44aff02-4fe8-48d6-b26a-6e41f0ca53ea" type = "fix" description = "fix order of converters for `pathlib.Path` and `pathlib.PurePath` registered to the `JsonModule`" author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.core/.changelog/4.2.2.toml b/.changelog/4.2.2.toml similarity index 91% rename from databind.core/.changelog/4.2.2.toml rename to .changelog/4.2.2.toml index 2f27ad58..ccaec475 100644 --- a/databind.core/.changelog/4.2.2.toml +++ b/.changelog/4.2.2.toml @@ -6,3 +6,4 @@ type = "fix" description = "fix type hint for `ClassDecoratorSetting.__call__()` which would confuse Pylance" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/34" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.3.toml b/.changelog/4.2.3.toml similarity index 91% rename from databind.core/.changelog/4.2.3.toml rename to .changelog/4.2.3.toml index c4c8d512..ec384347 100644 --- a/databind.core/.changelog/4.2.3.toml +++ b/.changelog/4.2.3.toml @@ -6,3 +6,4 @@ type = "fix" description = "Fixed an issue where TypeVar parametrization was lost when converting a dataclass to a schema." author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/39" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.4.toml b/.changelog/4.2.4.toml similarity index 93% rename from databind.core/.changelog/4.2.4.toml rename to .changelog/4.2.4.toml index ffdf200d..fac7772a 100644 --- a/databind.core/.changelog/4.2.4.toml +++ b/.changelog/4.2.4.toml @@ -6,3 +6,4 @@ type = "fix" description = "Fixed an issue where the source class of a fields type hint was not correctly propagated to the TypeHint API such that evaluating forward references that reference to a member on the same class level would fail to evaluate." author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/41" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.5.toml b/.changelog/4.2.5.toml similarity index 90% rename from databind.core/.changelog/4.2.5.toml rename to .changelog/4.2.5.toml index 2608b93a..013cd4cd 100644 --- a/databind.core/.changelog/4.2.5.toml +++ b/.changelog/4.2.5.toml @@ -6,6 +6,7 @@ type = "feature" description = "add `DelegateToClassmethodConverter` class" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/42" +component = "databind.core" [[entries]] id = "ce944eb9-871d-498a-9f23-5f54bf3d589e" @@ -13,6 +14,7 @@ type = "feature" description = "add `JsonConverter.using_classmethods()` method" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/42" +component = "databind.core" [[entries]] id = "4128540f-d20a-498b-ab91-d89eaea5c8b4" @@ -20,3 +22,4 @@ type = "improvement" description = "Removed restriction that would only permit keys of type `int|str|Root|None` in `Context.key`. This unlocks serializing keys in mappings of specialized types." author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/issues/42" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.6.toml b/.changelog/4.2.6.toml similarity index 92% rename from databind.core/.changelog/4.2.6.toml rename to .changelog/4.2.6.toml index 443c32f6..a0e4b3fc 100644 --- a/databind.core/.changelog/4.2.6.toml +++ b/.changelog/4.2.6.toml @@ -5,3 +5,4 @@ id = "8a53d9d5-7be3-4db0-979b-0f438cd927fe" type = "fix" description = "Fixed a bug where `convert_dataclass_to_schema()` would fail to pick up members from a base class if an intermediate base class had all its explicitly defined fields overriden by its next subclass." author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.7.toml b/.changelog/4.2.7.toml similarity index 90% rename from databind.core/.changelog/4.2.7.toml rename to .changelog/4.2.7.toml index 76bb5a7f..82144462 100644 --- a/databind.core/.changelog/4.2.7.toml +++ b/.changelog/4.2.7.toml @@ -5,3 +5,4 @@ id = "8a6d54b8-0898-465a-a34c-6d5b37dab337" type = "fix" description = "Fix potential `NameError: parameter_map` in `convert_dataclass_to_schema()` (regression introduced in 4.2.6)" author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/4.2.8.toml b/.changelog/4.2.8.toml similarity index 88% rename from databind.core/.changelog/4.2.8.toml rename to .changelog/4.2.8.toml index 5032d245..c407ac60 100644 --- a/databind.core/.changelog/4.2.8.toml +++ b/.changelog/4.2.8.toml @@ -5,3 +5,4 @@ id = "fdfc7b53-785f-4ab9-a23b-2b9f1dde2a5c" type = "improvement" description = "Allow passing a `str` into the `List` argument of the `Union()` setting." author = "@NiklasRosenstein" +component = "databind.core" diff --git a/.changelog/4.3.0.toml b/.changelog/4.3.0.toml new file mode 100644 index 00000000..78aedbfb --- /dev/null +++ b/.changelog/4.3.0.toml @@ -0,0 +1,50 @@ +release-date = "2023-05-28" + +[[entries]] +id = "f6034daf-a9d7-46d5-8430-4128b89c05e9" +type = "tests" +description = "Type-check unit tests" +author = "@NiklasRosenstein" +component = "databind" + +[[entries]] +id = "34f4cbf8-4bd4-4b6d-837f-6bf4b2006803" +type = "feature" +description = "Add `DeserializeAs` setting" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "78606f4e-7b4c-4f88-9143-e40b12d86100" +type = "improvement" +description = "Expose public API in `databind.core` root module." +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "8d5cd812-ba8f-4c4d-9681-b0d8866ae023" +type = "improvement" +description = "Mark some more settings as frozen or add unsafe hash functions to support passing them as metadata to `typing_extensions.Annotated` in Python 3.6" +author = "@NiklasRosenstein" +component = "databind.core" + +[[entries]] +id = "5d31c345-35ef-40f4-bf02-bfca907f0517" +type = "feature" +description = "Support new `DeserializeAs` setting" +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "e8a41ce4-27c1-4706-a154-fb2488c342dd" +type = "improvement" +description = "Expose public API in `databind.json` root module." +author = "@NiklasRosenstein" +component = "databind.json" + +[[entries]] +id = "5bbbae6a-fb76-4657-b16d-27358ae9f22d" +type = "tests" +description = "Type-check unit tests" +author = "@NiklasRosenstein" +component = "databind.json" diff --git a/databind.json/.changelog/4.3.1.toml b/.changelog/4.3.1.toml similarity index 91% rename from databind.json/.changelog/4.3.1.toml rename to .changelog/4.3.1.toml index c43d8262..faf4dbca 100644 --- a/databind.json/.changelog/4.3.1.toml +++ b/.changelog/4.3.1.toml @@ -6,3 +6,4 @@ type = "fix" description = "Fix serde of `collections.namedtuple` (to array) and `typing.NamedTuple` (to object)" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/49" +component = "databind.json" diff --git a/databind.json/.changelog/4.3.2.toml b/.changelog/4.3.2.toml similarity index 90% rename from databind.json/.changelog/4.3.2.toml rename to .changelog/4.3.2.toml index a0774f2e..dd2c30bf 100644 --- a/databind.json/.changelog/4.3.2.toml +++ b/.changelog/4.3.2.toml @@ -6,3 +6,4 @@ type = "fix" description = "Evaluate forward references when creating schema for NamedTuples" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/50" +component = "databind.json" diff --git a/databind.json/.changelog/4.4.0.toml b/.changelog/4.4.0.toml similarity index 60% rename from databind.json/.changelog/4.4.0.toml rename to .changelog/4.4.0.toml index db853644..3efca3d8 100644 --- a/databind.json/.changelog/4.4.0.toml +++ b/.changelog/4.4.0.toml @@ -1,11 +1,36 @@ release-date = "2023-06-21" +[[entries]] +id = "b44947f0-8e70-4a29-b584-a20eeff51bba" +type = "fix" +description = "Fixed serde of types that have a parameterized generic base class. (First reported in NiklasRosenstein/pydoc-markdown#292)" +author = "rosensteinniklas@gmail.com" +pr = "https://github.com/NiklasRosenstein/python-databind/pull/51" +component = "databind.core" + +[[entries]] +id = "43fe920b-b6b9-4701-9403-bff9aba2e744" +type = "improvement" +description = "Work around highly nested error tracebacks in `Module.convert()` by expanding all converters returned by `Module.get_converter()`. Note that this means `Module.convert()` is no longer called if the module is a child of another module." +author = "@NiklasRosenstein" +pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.core" + +[[entries]] +id = "e2e3fbdf-b19c-443d-bc79-8560dba4b1b5" +type = "improvement" +description = "Add `DelegateToClassmethodConverter(serialized_type)` parameter." +author = "@NiklasRosenstein" +pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.core" + [[entries]] id = "6ac5f7d0-aeb8-436c-bc2c-a178e2a82a74" type = "tests" description = "Add a unit tests to demonstrate that deserializing a nested type cannot work." author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/51" +component = "databind.json" [[entries]] id = "89204ef2-6173-4d4e-b857-3af59db2de32" @@ -13,6 +38,7 @@ type = "fix" description = "Technically a breaking change, but any consumer who is relying on this behaviour probably does that implicitly and wants to change their code anyway. o_o -- The `CollectionConverter` no longer implicitly assumes `Any` as the item type if collection is not parameterized." author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.json" [[entries]] id = "0b05e104-7012-4a03-a995-12ed05878f0b" @@ -20,6 +46,7 @@ type = "improvement" description = "The `CollectionConverter` now properly infers the item type from the types base classes" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.json" [[entries]] id = "ae147797-2857-4e6e-b7af-d2c6c1152e59" @@ -27,6 +54,7 @@ type = "improvement" description = "The `MappingConverter` now does improved resolution of the key and value type just like the `CollectionConverter`; note that an unparameterized Mapping no longer has its key and value type fall back to `typing.Any`" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.json" [[entries]] id = "08e63490-84b9-418d-8f26-39c770f17d59" @@ -34,6 +62,7 @@ type = "improvement" description = "Use `ConversionError.expected()` factory function in `PlainDatatypeConverter`" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.json" [[entries]] id = "78c6beda-22dd-419e-848f-5835ab554efd" @@ -41,3 +70,4 @@ type = "tests" description = "Test `JsonConverter`" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" +component = "databind.json" diff --git a/databind.core/.changelog/4.4.1.toml b/.changelog/4.4.1.toml similarity index 89% rename from databind.core/.changelog/4.4.1.toml rename to .changelog/4.4.1.toml index f879e4b1..bd82e192 100644 --- a/databind.core/.changelog/4.4.1.toml +++ b/.changelog/4.4.1.toml @@ -5,3 +5,4 @@ id = "0484f896-617e-450e-8835-6bcd6f8acc80" type = "fix" description = "Fixed a potential exception during generating the exception message when date object cannot be parsed." author = "@NiklasRosenstein" +component = "databind.core" diff --git a/databind.core/.changelog/4.4.2.toml b/.changelog/4.4.2.toml similarity index 91% rename from databind.core/.changelog/4.4.2.toml rename to .changelog/4.4.2.toml index bb18e865..69b41d91 100644 --- a/databind.core/.changelog/4.4.2.toml +++ b/.changelog/4.4.2.toml @@ -6,3 +6,4 @@ type = "improvement" description = "Support Python 3.12 by using `importlib.metadata` instead of `pkg_resources` in Python 3.10 and newer" author = "@NiklasRosenstein" pr = "https://github.com/NiklasRosenstein/python-databind/pull/55" +component = "databind.core" diff --git a/databind.core/.changelog/_unreleased.toml b/.changelog/_unreleased.toml similarity index 58% rename from databind.core/.changelog/_unreleased.toml rename to .changelog/_unreleased.toml index cdd0b3f6..616bb298 100644 --- a/databind.core/.changelog/_unreleased.toml +++ b/.changelog/_unreleased.toml @@ -7,3 +7,10 @@ pr = "https://github.com/NiklasRosenstein/python-databind/pull/60" issues = [ "https://github.com/NiklasRosenstein/python-databind/issues/59", ] + +[[entries]] +id = "086986b6-c4bf-4f09-a1f3-7cc41a40e17e" +type = "breaking change" +description = "Drop support for Python 3.6 and 3.7" +author = "@NiklasRosenstein" +pr = "https://github.com/NiklasRosenstein/python-databind/pull/61" diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index da200866..f3833c4c 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -9,14 +9,14 @@ on: pull_request_target: { branches: [ "develop" ] } jobs: - changelog-update: - name: "Insert Pull Request URL into new changelog entries" - runs-on: ubuntu-latest - if: github.event_name == 'pull_request_target' - steps: - - uses: actions/checkout@v2 - - uses: NiklasRosenstein/slap@gha/changelog/update/v2 - with: { pr-id: '${{ github.event.pull_request.number }}' } + # changelog-update: + # name: "Insert Pull Request URL into new changelog entries" + # runs-on: ubuntu-latest + # if: github.event_name == 'pull_request_target' + # steps: + # - uses: actions/checkout@v2 + # - uses: NiklasRosenstein/slap@gha/changelog/update/v2 + # with: { pr-id: '${{ github.event.pull_request.number }}' } assert-new-changelog-entries: name: "At least one new changelog entry must be added" diff --git a/databind.core/.changelog/0.10.0.toml b/databind.core/.changelog/0.10.0.toml deleted file mode 100644 index 20cdac98..00000000 --- a/databind.core/.changelog/0.10.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2021-03-05" - -[[entries]] -id = "941943f9-5cf7-48fb-beea-2c341bc01907" -type = "improvement" -description = "classes decorated with `@uniontype(container=True)` must now be constructed using a single keyword argument as in `MyUnion(member1=Member1Value())`\n" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/0.2.0.toml b/databind.core/.changelog/0.2.0.toml deleted file mode 100644 index 248aecd9..00000000 --- a/databind.core/.changelog/0.2.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2020-08-29" - -[[entries]] -id = "d54aa0ac-9329-4d2a-8e3a-16063491f764" -type = "improvement" -description = "update type hints to pass mypy checks" -author = "@NiklasRosenstein" - -[[entries]] -id = "47206f43-6699-40ea-8210-c1a341d2b623" -type = "improvement" -description = "`FieldMetadata` now keeps a reference to the `dataclasses.Field` object and it's' metadata" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/0.4.1.toml b/databind.core/.changelog/0.4.1.toml deleted file mode 100644 index dee82885..00000000 --- a/databind.core/.changelog/0.4.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-09-08" - -[[entries]] -id = "8bc4f7c3-1a29-41f1-9f5d-f3f8a99897ca" -type = "fix" -description = "Re-render setup file, materializing missing dependency on `dataclasses`. This fixes using the module in Python 3.6." -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/0.5.0.toml b/databind.core/.changelog/0.5.0.toml deleted file mode 100644 index 2590f8e7..00000000 --- a/databind.core/.changelog/0.5.0.toml +++ /dev/null @@ -1 +0,0 @@ -release-date = "2020-09-10" diff --git a/databind.core/.changelog/1.1.2.toml b/databind.core/.changelog/1.1.2.toml deleted file mode 100644 index 092832b2..00000000 --- a/databind.core/.changelog/1.1.2.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2021-08-06" - -[[entries]] -id = "bf344197-c36c-41ff-9084-fcf035d58f37" -type = "fix" -description = "fix `@A.union` types to accept `ObjectType`s" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/1.1.5.toml b/databind.core/.changelog/1.1.5.toml deleted file mode 100644 index 83ff5fa8..00000000 --- a/databind.core/.changelog/1.1.5.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2021-08-16" - -[[entries]] -id = "efbf0a33-5eae-4868-84e0-00d252c7a08d" -type = "fix" -description = "normal type with `Annotated[MyType, union(...)]` is now correctly interpreted as `UnionType`" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/1.2.0.toml b/databind.core/.changelog/1.2.0.toml deleted file mode 100644 index f2176321..00000000 --- a/databind.core/.changelog/1.2.0.toml +++ /dev/null @@ -1,19 +0,0 @@ -release-date = "2021-08-20" - -[[entries]] -id = "2bfa9bb8-736b-4f42-ae79-662ac60d6c95" -type = "feature" -description = "add `Direction.is_serialize()` and `Direction.is_deserialize()`" -author = "@NiklasRosenstein" - -[[entries]] -id = "9ca8468e-f716-4033-a07d-7c06d3d3e549" -type = "feature" -description = "add `AnnotationsRegistry.add_type_annotation()` and `AnnotationsRegistry.add_field_annotation()`" -author = "@NiklasRosenstein" - -[[entries]] -id = "e8fa6c70-9732-40a3-a7d8-54d772e21ba9" -type = "feature" -description = "`DefaultAnnotationsProvider` now supports finding annotations in `Enum` members when annotated with `te.Annotated`, `DefaultAnnotationsProvider` is now registered to an `ObjectMapper` by default" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/1.4.0.toml b/databind.core/.changelog/1.4.0.toml deleted file mode 100644 index dc4b1143..00000000 --- a/databind.core/.changelog/1.4.0.toml +++ /dev/null @@ -1,10 +0,0 @@ -release-date = "2022-01-22" - -[[entries]] -id = "b5ebc00a-ea8d-425b-931e-773840e22073" -type = "feature" -description = "add `union.Style.keyed`" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/21", -] diff --git a/databind.core/.changelog/1.5.1.toml b/databind.core/.changelog/1.5.1.toml deleted file mode 100644 index ed0b9ac3..00000000 --- a/databind.core/.changelog/1.5.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-02-26" - -[[entries]] -id = "968be339-8a28-4cce-bdc6-61eb838fb803" -type = "refactor" -description = "migrate to `nr.util` package" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/2.0.1.toml b/databind.core/.changelog/2.0.1.toml deleted file mode 100644 index c4f3295a..00000000 --- a/databind.core/.changelog/2.0.1.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2022-05-09" - -[[entries]] -id = "77ea4dca-ae09-4454-9c01-2687ff3d57ad" -type = "improvement" -description = "Loosen requirement on `typing-extensions` from `^3.10.0` to `>=3.10.0`" -author = "@NiklasRosenstein" - -[[entries]] -id = "adf0e51f-ba27-4421-a5a4-f771b5e5221e" -type = "refactor" -description = "Use Black and isort for code formatting, Flake8 for linting" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/2.0.3.toml b/databind.core/.changelog/2.0.3.toml deleted file mode 100644 index 630af279..00000000 --- a/databind.core/.changelog/2.0.3.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-05-11" - -[[entries]] -id = "ad7df855-fe04-4acc-b925-83010fe02662" -type = "fix" -description = "Fix resolving nested forward references in dataclasses." -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/2.0.7.toml b/databind.core/.changelog/2.0.7.toml deleted file mode 100644 index a15b03c8..00000000 --- a/databind.core/.changelog/2.0.7.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-06-20" - -[[entries]] -id = "56621ccd-8ec3-409a-84f6-9ec4ce1a052f" -type = "improvement" -description = "Enable Mypy strict type checking mode" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/2.0.9.toml b/databind.core/.changelog/2.0.9.toml deleted file mode 100644 index c59b5282..00000000 --- a/databind.core/.changelog/2.0.9.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-11-03" - -[[entries]] -id = "c8cb2dd0-edb5-4a7c-a0e8-f3c8ac89aecb" -type = "feature" -description = "add `Module.get_converters()`" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/4.0.0.toml b/databind.core/.changelog/4.0.0.toml deleted file mode 100644 index ceb65217..00000000 --- a/databind.core/.changelog/4.0.0.toml +++ /dev/null @@ -1,8 +0,0 @@ -release-date = "2022-11-06" - -[[entries]] -id = "f5e3ef06-52d0-480d-8685-0473bea87691" -type = "breaking change" -description = "Databind is now compatible with Python 3.6! This required a few breaking changes to the API used to extend Databind, which is why this is a major version bump. We now use `typeapi 1.x` which has a significantly different API but enables the Python 3.6 compatibilty." -author = "@NiklasRosenstein" -pr = "https://github.com/NiklasRosenstein/python-databind/issues/31" diff --git a/databind.core/.changelog/4.1.1.toml b/databind.core/.changelog/4.1.1.toml deleted file mode 100644 index 1b5e9f65..00000000 --- a/databind.core/.changelog/4.1.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-11-11" - -[[entries]] -id = "c9d1726c-f435-4b69-af21-1d8d29178111" -type = "feature" -description = "add `Module.register(first)` argument" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/4.3.0.toml b/databind.core/.changelog/4.3.0.toml deleted file mode 100644 index 093ff836..00000000 --- a/databind.core/.changelog/4.3.0.toml +++ /dev/null @@ -1,19 +0,0 @@ -release-date = "2023-05-28" - -[[entries]] -id = "34f4cbf8-4bd4-4b6d-837f-6bf4b2006803" -type = "feature" -description = "Add `DeserializeAs` setting" -author = "@NiklasRosenstein" - -[[entries]] -id = "78606f4e-7b4c-4f88-9143-e40b12d86100" -type = "improvement" -description = "Expose public API in `databind.core` root module." -author = "@NiklasRosenstein" - -[[entries]] -id = "8d5cd812-ba8f-4c4d-9681-b0d8866ae023" -type = "improvement" -description = "Mark some more settings as frozen or add unsafe hash functions to support passing them as metadata to `typing_extensions.Annotated` in Python 3.6" -author = "@NiklasRosenstein" diff --git a/databind.core/.changelog/4.4.0.toml b/databind.core/.changelog/4.4.0.toml deleted file mode 100644 index d408838b..00000000 --- a/databind.core/.changelog/4.4.0.toml +++ /dev/null @@ -1,22 +0,0 @@ -release-date = "2023-06-21" - -[[entries]] -id = "b44947f0-8e70-4a29-b584-a20eeff51bba" -type = "fix" -description = "Fixed serde of types that have a parameterized generic base class. (First reported in NiklasRosenstein/pydoc-markdown#292)" -author = "rosensteinniklas@gmail.com" -pr = "https://github.com/NiklasRosenstein/python-databind/pull/51" - -[[entries]] -id = "43fe920b-b6b9-4701-9403-bff9aba2e744" -type = "improvement" -description = "Work around highly nested error tracebacks in `Module.convert()` by expanding all converters returned by `Module.get_converter()`. Note that this means `Module.convert()` is no longer called if the module is a child of another module." -author = "@NiklasRosenstein" -pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" - -[[entries]] -id = "e2e3fbdf-b19c-443d-bc79-8560dba4b1b5" -type = "improvement" -description = "Add `DelegateToClassmethodConverter(serialized_type)` parameter." -author = "@NiklasRosenstein" -pr = "https://github.com/NiklasRosenstein/python-databind/pull/52" diff --git a/databind.core/README.md b/databind.core/README.md index 196edb11..e69de29b 100644 --- a/databind.core/README.md +++ b/databind.core/README.md @@ -1,9 +0,0 @@ -# `databind.core` - -This library provides the core functionality to implement serialization functions to and from Python objects, with -a great support for many features of the Python type system. A JSON implementation is provided by the `databind.json` -package. - ---- - -

Copyright © 2020 – Niklas Rosenstein

diff --git a/databind.core/pyproject.toml b/databind.core/pyproject.toml index 26733a2e..3a4c8e64 100644 --- a/databind.core/pyproject.toml +++ b/databind.core/pyproject.toml @@ -1,37 +1,19 @@ [tool.poetry] name = "databind.core" version = "4.4.2" -description = "Databind is a library inspired by jackson-databind to de-/serialize Python dataclasses. Compatible with Python 3.8 and newer." +description = "Databind is a library inspired by jackson-databind to de-/serialize Python dataclasses. Compatible with Python 3.8 and newer. Deprecated, use `databind` package." authors = ["Niklas Rosenstein "] license = "MIT" readme = "README.md" -packages = [{include = "databind/core", from = "src"}] [tool.poetry.urls] "Bug Tracker" = "https://github.com/NiklasRosenstein/python-databind/issues" Documentation = "https://niklasrosenstein.github.io/python-databind/" -# Homepage = "" Repository = "https://github.com/NiklasRosenstein/python-databind" [tool.poetry.dependencies] python = "^3.8.0" -Deprecated = "^1.2.12" -nr-date = "^2.0.0" -nr-stream = "^1.0.0" -setuptools = { version = ">=40.8.0", markers = "python_version < '3.10'" } -typeapi = ">=2.0.1,<3" -typing-extensions = ">=3.10.0,<5" - -[tool.poetry.dev-dependencies] -black = ">=23.0.0,<24.0.0" -flake8 = ">=5.0.4,<8.0.0" -isort = ">=5.13.2,<6.0.0" -pytest = ">=8.1.1,<9.0.0" -mypy = ">=1.9.0,<2.0.0" -types-dataclasses = "*" -types-deprecated = "*" -types-setuptools = "*" -types-termcolor = "*" +databind = "^4.4.2" [tool.slap] typed = true @@ -39,36 +21,3 @@ typed = true [build-system] requires = ["poetry-core==1.9.0"] build-backend = "poetry.core.masonry.api" - -[tool.slap.test] -check = "slap check" -mypy = "dmypy run src/" -pytest = "pytest src/ -vv" -black = "black --check src/" -isort = "isort --check-only src/" -flake8 = "flake8 src/" - -[tool.slap.run] -fmt = "black src/ && isort src/" - -[tool.mypy] -python_version = "3.8" -explicit_package_bases = true -mypy_path = ["src"] -namespace_packages = true -pretty = true -show_error_codes = true -show_error_context = true -strict = true -warn_no_return = true -warn_redundant_casts = true -warn_unreachable = true -warn_unused_ignores = true - -[tool.isort] -profile = "black" -line_length = 120 -combine_as_imports = true - -[tool.black] -line-length = 120 diff --git a/databind.core/src/_databind_core_proxy.py b/databind.core/src/_databind_core_proxy.py new file mode 100644 index 00000000..ac557672 --- /dev/null +++ b/databind.core/src/_databind_core_proxy.py @@ -0,0 +1 @@ +# Need at least one Python file to publish a package. diff --git a/databind.json/.changelog/0.10.0.toml b/databind.json/.changelog/0.10.0.toml deleted file mode 100644 index 37a4f144..00000000 --- a/databind.json/.changelog/0.10.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2020-12-30" - -[[entries]] -id = "0cb46581-98b5-40ad-82f1-eba64a2d498a" -type = "fix" -description = "add missing `to_stream` and `from_stream` to `__all__`" -author = "@NiklasRosenstein" - -[[entries]] -id = "b65cd60e-3b8f-42c0-b4d8-37e5257bc269" -type = "feature" -description = "add `cast()` function" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.11.0.toml b/databind.json/.changelog/0.11.0.toml deleted file mode 100644 index 9ecba9ba..00000000 --- a/databind.json/.changelog/0.11.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2021-03-05" - -[[entries]] -id = "65f5c1ef-ae7f-4802-af8c-c5e5460f602d" -type = "improvement" -description = "Update union construction during deserialization" -author = "@NiklasRosenstein" - -[[entries]] -id = "779fedda-841f-4e00-bed0-e3ccab1ad836" -type = "improvement" -description = "minimum version of `databind.core` is `^0.10.0`" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.3.0.toml b/databind.json/.changelog/0.3.0.toml deleted file mode 100644 index 54654057..00000000 --- a/databind.json/.changelog/0.3.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-08-29" - -[[entries]] -id = "71c62ec7-7d37-4461-96a3-217de03499de" -type = "improvement" -description = "`ArrayConverter` now supports subclasses of the `typing.List` generic" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.4.0.toml b/databind.json/.changelog/0.4.0.toml deleted file mode 100644 index b217e796..00000000 --- a/databind.json/.changelog/0.4.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-09-06" - -[[entries]] -id = "03524ec0-3644-4bd8-9a64-a1dc0e754fd7" -type = "feature" -description = "support `@datamodel(serialize_as)` in `ModelConverter`" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.4.1.toml b/databind.json/.changelog/0.4.1.toml deleted file mode 100644 index c03992d6..00000000 --- a/databind.json/.changelog/0.4.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-09-06" - -[[entries]] -id = "7abbb43c-0eab-4009-9353-9de48aebc5b7" -type = "fix" -description = "conversion of values of a `List` subtype *from Python* are now converted to a built-in `list` instead of the same `List` subtype" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.6.0.toml b/databind.json/.changelog/0.6.0.toml deleted file mode 100644 index 72ba78fa..00000000 --- a/databind.json/.changelog/0.6.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2020-09-10" - -[[entries]] -id = "cc7ad2d7-1ba6-428a-8f49-b7407ccdc505" -type = "feature" -description = "Add `to_stream()` and `from_stream()` functions" -author = "@NiklasRosenstein" - -[[entries]] -id = "bc0a165d-7868-415c-9b52-8f9ad9040cb9" -type = "feature" -description = "Add support for `typing.Dict` subclasses" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.7.0.toml b/databind.json/.changelog/0.7.0.toml deleted file mode 100644 index 944c563d..00000000 --- a/databind.json/.changelog/0.7.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-10-02" - -[[entries]] -id = "b6a90864-ebc9-43fd-a909-4a88139eb2b7" -type = "feature" -description = "Now supports converting Sets" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.7.1.toml b/databind.json/.changelog/0.7.1.toml deleted file mode 100644 index c744f065..00000000 --- a/databind.json/.changelog/0.7.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-11-20" - -[[entries]] -id = "28477028-ec46-493a-9b8c-acf024cf953c" -type = "fix" -description = "Fix mypy errors" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.8.0.toml b/databind.json/.changelog/0.8.0.toml deleted file mode 100644 index 476c544b..00000000 --- a/databind.json/.changelog/0.8.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-11-24" - -[[entries]] -id = "a27c60f9-6cce-4abf-8043-d081c0de33c2" -type = "feature" -description = "add converter for `typing.Any`, which by the way does not actually convert anything" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/0.9.0.toml b/databind.json/.changelog/0.9.0.toml deleted file mode 100644 index 901fb478..00000000 --- a/databind.json/.changelog/0.9.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2020-11-24" - -[[entries]] -id = "4436d541-f7a8-4c1b-9292-0bc1d6624a15" -type = "feature" -description = "handle `FieldMetadata.relaxed` and `FieldMetadata.strict` in Bool, Integer and String converters" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/1.1.2.toml b/databind.json/.changelog/1.1.2.toml deleted file mode 100644 index 071b7bb3..00000000 --- a/databind.json/.changelog/1.1.2.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2021-08-06" - -[[entries]] -id = "9f730924-d0bc-4c55-8563-66719ff6188d" -type = "feature" -description = "support de-/serializing `bytes` as base64" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/1.2.0.toml b/databind.json/.changelog/1.2.0.toml deleted file mode 100644 index cd957228..00000000 --- a/databind.json/.changelog/1.2.0.toml +++ /dev/null @@ -1,28 +0,0 @@ -release-date = "2021-08-20" - -[[entries]] -id = "c09f08bb-ce01-49f8-b3bc-94fb8d27a2e5" -type = "feature" -description = "add converter for `pathlib.PurePath` subclasses, enabled in the `JsonModule` by default" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/14", -] - -[[entries]] -id = "6b4a28ad-478a-4ae8-bfb8-58e3730bfee5" -type = "feature" -description = "add converter for `uuid.UUID` to `JsonModule`" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/15", -] - -[[entries]] -id = "c067911a-cee5-416a-b05d-19801bccbb27" -type = "feature" -description = "support aliases on enum values" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/1", -] diff --git a/databind.json/.changelog/1.3.1.toml b/databind.json/.changelog/1.3.1.toml deleted file mode 100644 index 99977ef6..00000000 --- a/databind.json/.changelog/1.3.1.toml +++ /dev/null @@ -1,16 +0,0 @@ -release-date = "2022-01-08" - -[[entries]] -id = "d192ebd0-f643-4823-bbbe-ec20b878d8b2" -type = "feature" -description = "add `databind.json.annotations.with_custom_json_converter()` annotation to allow implementing a custom converter for dataclasses" -author = "@NiklasRosenstein" - -[[entries]] -id = "f5a426e0-21c1-415f-b7b3-c975d357f5a4" -type = "fix" -description = "narrow `JsonType` union type to use `dict` and `list` instead of `t.Mapping` and `t.Collection`" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/22", -] diff --git a/databind.json/.changelog/1.4.0.toml b/databind.json/.changelog/1.4.0.toml deleted file mode 100644 index 4099f2c1..00000000 --- a/databind.json/.changelog/1.4.0.toml +++ /dev/null @@ -1,10 +0,0 @@ -release-date = "2022-01-22" - -[[entries]] -id = "af09d38c-66ee-4399-a9a7-404a1911add5" -type = "feature" -description = "support `union.Style.keyed`" -author = "@NiklasRosenstein" -issues = [ - "https://github.com/NiklasRosenstein/databind/issues/21", -] diff --git a/databind.json/.changelog/1.5.1.toml b/databind.json/.changelog/1.5.1.toml deleted file mode 100644 index a30ac82a..00000000 --- a/databind.json/.changelog/1.5.1.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-02-26" - -[[entries]] -id = "2b6514ea-b84b-4c94-8b65-71f78ea8114e" -type = "refactor" -description = "migrate to `nr.util` package" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/2.0.0-alpha.4.toml b/databind.json/.changelog/2.0.0-alpha.4.toml deleted file mode 100644 index 2ca74769..00000000 --- a/databind.json/.changelog/2.0.0-alpha.4.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-03-29" - -[[entries]] -id = "9f5996fe-a2bf-4fb5-b8bf-42c526673d93" -type = "breaking change" -description = "implement `Union.BEST_MATCH` in `UnionConverter`, which is now used as the default if an un-annotated `typing.Union` is encountered" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/2.0.0a2.toml b/databind.json/.changelog/2.0.0a2.toml deleted file mode 100644 index 9ae7e5a7..00000000 --- a/databind.json/.changelog/2.0.0a2.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-03-24" - -[[entries]] -id = "85403125-18ad-4988-8514-019a38a7128d" -type = "improvement" -description = "move `ExtraKeys` and `Remainder` setting from `databind.json` to `databind.core`" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/2.0.1.toml b/databind.json/.changelog/2.0.1.toml deleted file mode 100644 index 0fa9afb9..00000000 --- a/databind.json/.changelog/2.0.1.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2022-05-09" - -[[entries]] -id = "e13ad790-4e0a-44fb-afec-3ecc7c6b9ad8" -type = "improvement" -description = "Loosen requirement on `typing-extensions` from `^3.10.0` to `>=3.10.0`" -author = "@NiklasRosenstein" - -[[entries]] -id = "b537c6b7-fa06-41b4-a452-8edb5b0f6fe4" -type = "refactor" -description = "Use Black and isort for code formatting, Flake8 for linting" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/2.0.2.toml b/databind.json/.changelog/2.0.2.toml deleted file mode 100644 index 57008a2e..00000000 --- a/databind.json/.changelog/2.0.2.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2022-05-11" - -[[entries]] -id = "2b9885cd-5196-45dd-8b3e-3b8d10d8f708" -type = "docs" -description = "Add URLs to project metadata." -author = "@NiklasRosenstein" - -[[entries]] -id = "a37639a0-d0bd-40e1-8b8b-06dbd6b96d9e" -type = "improvement" -description = "Use a fields default value if it is available when deserializing schemas" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/2.0.7.toml b/databind.json/.changelog/2.0.7.toml deleted file mode 100644 index 5a3d5022..00000000 --- a/databind.json/.changelog/2.0.7.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2022-06-20" - -[[entries]] -id = "df546027-bed8-46e1-8e9d-caa6447142bf" -type = "improvement" -description = "Enable Mypy strict type checking mode" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/3.0.0.toml b/databind.json/.changelog/3.0.0.toml deleted file mode 100644 index b4b9bbf9..00000000 --- a/databind.json/.changelog/3.0.0.toml +++ /dev/null @@ -1,19 +0,0 @@ -release-date = "2022-11-05" - -[[entries]] -id = "1cecb7ce-6876-4d0f-8904-81258863f3a7" -type = "docs" -description = "add Examples page to docs" -author = "@NiklasRosenstein" - -[[entries]] -id = "fa76a6be-5af0-46f6-88af-c81fb5ccb31d" -type = "breaking change" -description = "remove `get_bimapper()` and replace it with `get_object_mapper()`" -author = "@NiklasRosenstein" - -[[entries]] -id = "837d04da-6025-4800-b822-445bfe382727" -type = "breaking change" -description = "remove `Direction` concept from this package as it is now part of `databind.core`, removed it from `JsonModule` and all `Converter` implementations" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/4.0.0.toml b/databind.json/.changelog/4.0.0.toml deleted file mode 100644 index 6565bff7..00000000 --- a/databind.json/.changelog/4.0.0.toml +++ /dev/null @@ -1,8 +0,0 @@ -release-date = "2022-11-06" - -[[entries]] -id = "7478f5e3-d2cc-43f0-a557-753c8420ed4b" -type = "breaking change" -description = "Databind is now compatible with Python 3.6! This required a few breaking changes to the API used to extend Databind, which is why this is a major version bump. We now use `typeapi 1.x` which has a significantly different API but enables the Python 3.6 compatibilty." -author = "@NiklasRosenstein" -pr = "https://github.com/NiklasRosenstein/python-databind/issues/31" diff --git a/databind.json/.changelog/4.1.0.toml b/databind.json/.changelog/4.1.0.toml deleted file mode 100644 index 3eb3dc8a..00000000 --- a/databind.json/.changelog/4.1.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2022-11-10" - -[[entries]] -id = "df9af6b0-896e-41f5-846f-550de25c2db9" -type = "fix" -description = "Set min version to 3.6.3 because of a `typing.get_type_hints()` incompatibiltiy" -author = "@NiklasRosenstein" - -[[entries]] -id = "ed7e9626-ccad-469f-acaa-b3e6225cf6d9" -type = "feature" -description = "support deserialization of tuples" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/4.2.0.toml b/databind.json/.changelog/4.2.0.toml deleted file mode 100644 index 8bf9c8e4..00000000 --- a/databind.json/.changelog/4.2.0.toml +++ /dev/null @@ -1,13 +0,0 @@ -release-date = "2022-11-21" - -[[entries]] -id = "f80f15cd-54ce-465e-a9b7-e88040ad380e" -type = "tests" -description = "add unit tests for deserializing `duration` from an object form" -author = "@NiklasRosenstein" - -[[entries]] -id = "32461220-a197-4d09-aa81-d9c8c827a637" -type = "docs" -description = "update readme to list supported types" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/4.3.0.toml b/databind.json/.changelog/4.3.0.toml deleted file mode 100644 index 4cc9a45c..00000000 --- a/databind.json/.changelog/4.3.0.toml +++ /dev/null @@ -1,19 +0,0 @@ -release-date = "2023-05-28" - -[[entries]] -id = "5d31c345-35ef-40f4-bf02-bfca907f0517" -type = "feature" -description = "Support new `DeserializeAs` setting" -author = "@NiklasRosenstein" - -[[entries]] -id = "e8a41ce4-27c1-4706-a154-fb2488c342dd" -type = "improvement" -description = "Expose public API in `databind.json` root module." -author = "@NiklasRosenstein" - -[[entries]] -id = "5bbbae6a-fb76-4657-b16d-27358ae9f22d" -type = "tests" -description = "Type-check unit tests" -author = "@NiklasRosenstein" diff --git a/databind.json/.changelog/_unreleased.toml b/databind.json/.changelog/_unreleased.toml deleted file mode 100644 index 933da1db..00000000 --- a/databind.json/.changelog/_unreleased.toml +++ /dev/null @@ -1,9 +0,0 @@ -[[entries]] -id = "6aab96f1-c6c0-4afe-bd73-0071d5dedebb" -type = "breaking change" -description = "Support typing-extensions>4.7 for Python 3.8 or greater" -author = "@rhaps0dy" -pr = "https://github.com/NiklasRosenstein/python-databind/pull/60" -issues = [ - "https://github.com/NiklasRosenstein/python-databind/issues/59", -] diff --git a/databind.json/pyproject.toml b/databind.json/pyproject.toml index 77ed1e37..285ca4ad 100644 --- a/databind.json/pyproject.toml +++ b/databind.json/pyproject.toml @@ -1,31 +1,19 @@ [tool.poetry] name = "databind.json" version = "4.4.2" -description = "De-/serialize Python dataclasses to or from JSON payloads. Compatible with Python 3.8 and newer." +description = "De-/serialize Python dataclasses to or from JSON payloads. Compatible with Python 3.8 and newer. Deprecated, use `databind` module instead." authors = ["Niklas Rosenstein "] license = "MIT" readme = "README.md" -packages = [{include = "databind/json", from = "src"}] [tool.poetry.urls] "Bug Tracker" = "https://github.com/NiklasRosenstein/python-databind/issues" Documentation = "https://niklasrosenstein.github.io/python-databind/" -# Homepage = "" Repository = "https://github.com/NiklasRosenstein/python-databind" [tool.poetry.dependencies] python = "^3.8.0" -"databind.core" = "^4.4.2" -nr-date = "^2.0.0" -typeapi = ">=2.0.1,<3" -typing-extensions = ">=3.10.0,<5" - -[tool.poetry.dev-dependencies] -black = ">=23.0.0,<24.0.0" -flake8 = ">=5.0.4,<8.0.0" -isort = ">=5.13.2,<6.0.0" -pytest = ">=8.1.1,<9.0.0" -mypy = ">=1.9.0,<2.0.0" +databind = "^4.4.2" [build-system] requires = ["poetry-core==1.9.0"] @@ -33,36 +21,3 @@ build-backend = "poetry.core.masonry.api" [tool.slap] typed = true - -[tool.slap.test] -check = "slap check" -mypy = "dmypy run src/" -pytest = "pytest src/ -vv $PYTEST_FLAGS" -black = "black --check src/" -isort = "isort --check-only src/" -flake8 = "flake8 src/" - -[tool.slap.run] -fmt = "black src/ && isort src/" - -[tool.mypy] -python_version = "3.8" -explicit_package_bases = true -mypy_path = ["src"] -namespace_packages = true -pretty = true -show_error_codes = true -show_error_context = true -strict = true -warn_no_return = true -warn_redundant_casts = true -warn_unreachable = true -warn_unused_ignores = true - -[tool.isort] -profile = "black" -line_length = 120 -combine_as_imports = true - -[tool.black] -line-length = 120 diff --git a/databind.json/src/_databind_json_proxy.py b/databind.json/src/_databind_json_proxy.py new file mode 100644 index 00000000..ac557672 --- /dev/null +++ b/databind.json/src/_databind_json_proxy.py @@ -0,0 +1 @@ +# Need at least one Python file to publish a package. diff --git a/databind/.changelog/4.3.0.toml b/databind/.changelog/4.3.0.toml deleted file mode 100644 index 3d3a3fe7..00000000 --- a/databind/.changelog/4.3.0.toml +++ /dev/null @@ -1,7 +0,0 @@ -release-date = "2023-05-28" - -[[entries]] -id = "f6034daf-a9d7-46d5-8430-4128b89c05e9" -type = "tests" -description = "Type-check unit tests" -author = "@NiklasRosenstein" diff --git a/databind/.flake8 b/databind/.flake8 new file mode 100644 index 00000000..6deafc26 --- /dev/null +++ b/databind/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 120 diff --git a/databind/README.md b/databind/README.md index 7670097d..8763bf3e 100644 --- a/databind/README.md +++ b/databind/README.md @@ -1,23 +1,19 @@ +

+

databind

- Python versions - -

-

-Databind is a Python serialization library on top of dataclasses, inspired by similar libraries from other languages -like jackson-databind and serde-rs. -

-

- CORE Guide | - JSON Examples + Python versions + + Documentation

-## Overview 📖 +The `databind` package provides a (de)serialization framework that understands most native Python types as well as +dataclasses, as well as an implementation for serialize to/from JSON-like nested data structures. + +Databind is intended mostly for flexible and easy to use configuration loading. It does __not__ try achieve high-performance; you should look towards e.g. [mashumaro](https://pypi.org/project/mashumaro/) for this usecase. -The `databind.core` package provides the core framework for databind. It is then used by `databind.json` to provide -comprehensive serializatio support between Python and JSON-like data structure. The serialization can easily be -extended to YAML or TOML by combining it with respective libraries (e.g. `pyaaml` and `tomli`). +### Example ```python @dataclass @@ -30,11 +26,13 @@ class Config: server: Server from databind.json import dump, load -assert load({"server": {"host": "localhost", "port": 8080}}, Config) == Config(server=Server(host='localhost', port=8080)) -assert dump(Config(server=Server(host='localhost', port=8080)), Config) == {"server": {"host": "localhost", "port": 8080}} -``` -If you install the `databind` proxy package, you get matching versions of `databind.core` and `databind.json`. +dict_payload = {"server": {"host": "localhost", "port": 8080}} +loaded = Config(server=Server(host="localhost", port=8080)) + +assert load(dict_payload, Config) == loaded +assert dump(loaded, Config) == dict_payload +``` ## Features ✨ @@ -54,6 +52,14 @@ If you install the `databind` proxy package, you get matching versions of `datab * As class-level settings using a decorator: `@Union(style=Union.FLAT)` or `@ExtraKeys(True)` * As type-hint level settings using `typing.Annotated` (or `typing_extensions.Annotated`): `full_name: Annotated[str, Alias("fullName")]` or `FullNameField = Annotated[str, Alias("fullName")]` +## Notable release notes + +### 4.5.0 + +* Merged `databind.core` and `databind.json` packages into `databind`. The old PyPI packages will remain as proxies + until the next minor version. +* Dropped support for Python 3.6 and 3.7. + ---

Copyright © 2022 – Niklas Rosenstein

diff --git a/databind/pyproject.toml b/databind/pyproject.toml index 981204e4..5ae70c00 100644 --- a/databind/pyproject.toml +++ b/databind/pyproject.toml @@ -5,13 +5,64 @@ description = "Databind is a library inspired by jackson-databind to de-/seriali authors = ["Niklas Rosenstein "] license = "MIT" readme = "README.md" -packages = [{ include="databind/_version", from="src" }] +packages = [{include = "databind/core", from = "src"}, {include = "databind/json", from = "src"}] [tool.poetry.dependencies] python = "^3.8.0" -"databind.core" = "^4.4.2" -"databind.json" = "^4.4.2" +Deprecated = "^1.2.12" +nr-date = "^2.0.0" +nr-stream = "^1.0.0" +setuptools = { version = ">=40.8.0", markers = "python_version < '3.10'" } +typeapi = ">=2.0.1,<3" +typing-extensions = ">=3.10.0,<5" + +[tool.poetry.dev-dependencies] +black = ">=23.0.0,<24.0.0" +flake8 = ">=5.0.4,<8.0.0" +isort = ">=5.13.2,<6.0.0" +pytest = ">=8.1.1,<9.0.0" +mypy = ">=1.9.0,<2.0.0" +types-dataclasses = "*" +types-deprecated = "*" +types-setuptools = "*" +types-termcolor = "*" [build-system] requires = ["poetry-core==1.9.0"] build-backend = "poetry.core.masonry.api" + +[tool.slap] +typed = true + +[tool.slap.test] +check = "slap check" +mypy = "dmypy run src/" +pytest = "pytest src/ -vv" +black = "black --check src/" +isort = "isort --check-only src/" +flake8 = "flake8 src/" + +[tool.slap.run] +fmt = "black src/ && isort src/" + +[tool.mypy] +python_version = "3.8" +explicit_package_bases = true +mypy_path = ["src"] +namespace_packages = true +pretty = true +show_error_codes = true +show_error_context = true +strict = true +warn_no_return = true +warn_redundant_casts = true +warn_unreachable = true +warn_unused_ignores = true + +[tool.isort] +profile = "black" +line_length = 120 +combine_as_imports = true + +[tool.black] +line-length = 120 diff --git a/databind/src/databind/_version/__init__.py b/databind/src/databind/_version/__init__.py deleted file mode 100644 index 30357c8b..00000000 --- a/databind/src/databind/_version/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "4.4.2" diff --git a/databind.core/src/databind/core/__init__.py b/databind/src/databind/core/__init__.py similarity index 100% rename from databind.core/src/databind/core/__init__.py rename to databind/src/databind/core/__init__.py diff --git a/databind.core/src/databind/core/context.py b/databind/src/databind/core/context.py similarity index 100% rename from databind.core/src/databind/core/context.py rename to databind/src/databind/core/context.py diff --git a/databind.core/src/databind/core/converter.py b/databind/src/databind/core/converter.py similarity index 100% rename from databind.core/src/databind/core/converter.py rename to databind/src/databind/core/converter.py diff --git a/databind.core/src/databind/core/dataclasses.py b/databind/src/databind/core/dataclasses.py similarity index 100% rename from databind.core/src/databind/core/dataclasses.py rename to databind/src/databind/core/dataclasses.py diff --git a/databind.core/src/databind/core/dataclasses.pyi b/databind/src/databind/core/dataclasses.pyi similarity index 100% rename from databind.core/src/databind/core/dataclasses.pyi rename to databind/src/databind/core/dataclasses.pyi diff --git a/databind.core/src/databind/core/mapper.py b/databind/src/databind/core/mapper.py similarity index 100% rename from databind.core/src/databind/core/mapper.py rename to databind/src/databind/core/mapper.py diff --git a/databind.core/src/databind/core/py.typed b/databind/src/databind/core/py.typed similarity index 100% rename from databind.core/src/databind/core/py.typed rename to databind/src/databind/core/py.typed diff --git a/databind.core/src/databind/core/schema.py b/databind/src/databind/core/schema.py similarity index 100% rename from databind.core/src/databind/core/schema.py rename to databind/src/databind/core/schema.py diff --git a/databind.core/src/databind/core/settings.py b/databind/src/databind/core/settings.py similarity index 100% rename from databind.core/src/databind/core/settings.py rename to databind/src/databind/core/settings.py diff --git a/databind.core/src/databind/core/tests/context_test.py b/databind/src/databind/core/tests/context_test.py similarity index 100% rename from databind.core/src/databind/core/tests/context_test.py rename to databind/src/databind/core/tests/context_test.py diff --git a/databind.core/src/databind/core/tests/schema_docspec_example_test.py b/databind/src/databind/core/tests/schema_docspec_example_test.py similarity index 100% rename from databind.core/src/databind/core/tests/schema_docspec_example_test.py rename to databind/src/databind/core/tests/schema_docspec_example_test.py diff --git a/databind.core/src/databind/core/tests/schema_test.py b/databind/src/databind/core/tests/schema_test.py similarity index 100% rename from databind.core/src/databind/core/tests/schema_test.py rename to databind/src/databind/core/tests/schema_test.py diff --git a/databind.core/src/databind/core/tests/schema_with_nested_dataclasses_test.py b/databind/src/databind/core/tests/schema_with_nested_dataclasses_test.py similarity index 100% rename from databind.core/src/databind/core/tests/schema_with_nested_dataclasses_test.py rename to databind/src/databind/core/tests/schema_with_nested_dataclasses_test.py diff --git a/databind.core/src/databind/core/union.py b/databind/src/databind/core/union.py similarity index 100% rename from databind.core/src/databind/core/union.py rename to databind/src/databind/core/union.py diff --git a/databind.core/src/databind/core/utils.py b/databind/src/databind/core/utils.py similarity index 100% rename from databind.core/src/databind/core/utils.py rename to databind/src/databind/core/utils.py diff --git a/databind.json/src/databind/json/__init__.py b/databind/src/databind/json/__init__.py similarity index 99% rename from databind.json/src/databind/json/__init__.py rename to databind/src/databind/json/__init__.py index 4125d6ea..bb78914c 100644 --- a/databind.json/src/databind/json/__init__.py +++ b/databind/src/databind/json/__init__.py @@ -4,7 +4,6 @@ import typing as t from databind.core import ObjectMapper, Setting, Settings - from databind.json.module import JsonModule from databind.json.settings import JsonConverter diff --git a/databind.json/src/databind/json/converters.py b/databind/src/databind/json/converters.py similarity index 99% rename from databind.json/src/databind/json/converters.py rename to databind/src/databind/json/converters.py index 9f7f8497..e04df808 100644 --- a/databind.json/src/databind/json/converters.py +++ b/databind/src/databind/json/converters.py @@ -4,6 +4,17 @@ import enum import typing as t +from typeapi import ( + AnnotatedTypeHint, + ClassTypeHint, + LiteralTypeHint, + TupleTypeHint, + TypeHint, + UnionTypeHint, + get_annotations, + type_repr, +) + from databind.core import ( Alias, Context, @@ -24,16 +35,6 @@ get_annotation_setting, get_fields_expanded, ) -from typeapi import ( - AnnotatedTypeHint, - ClassTypeHint, - LiteralTypeHint, - TupleTypeHint, - TypeHint, - UnionTypeHint, - get_annotations, - type_repr, -) T = t.TypeVar("T") diff --git a/databind.json/src/databind/json/module.py b/databind/src/databind/json/module.py similarity index 99% rename from databind.json/src/databind/json/module.py rename to databind/src/databind/json/module.py index 3f3d0bbb..371911a2 100644 --- a/databind.json/src/databind/json/module.py +++ b/databind/src/databind/json/module.py @@ -2,7 +2,6 @@ from databind.core.context import Context from databind.core.converter import Converter, Module - from databind.json.settings import JsonConverter diff --git a/databind.json/src/databind/json/py.typed b/databind/src/databind/json/py.typed similarity index 100% rename from databind.json/src/databind/json/py.typed rename to databind/src/databind/json/py.typed diff --git a/databind.json/src/databind/json/settings.py b/databind/src/databind/json/settings.py similarity index 99% rename from databind.json/src/databind/json/settings.py rename to databind/src/databind/json/settings.py index ead14ab5..e2875b9c 100644 --- a/databind.json/src/databind/json/settings.py +++ b/databind/src/databind/json/settings.py @@ -1,6 +1,7 @@ import typing as t import typing_extensions as te + from databind.core.converter import Converter, DelegateToClassmethodConverter from databind.core.settings import ClassDecoratorSetting diff --git a/databind.json/src/databind/json/tests/converters_test.py b/databind/src/databind/json/tests/converters_test.py similarity index 100% rename from databind.json/src/databind/json/tests/converters_test.py rename to databind/src/databind/json/tests/converters_test.py index c2b809d0..0de421cd 100644 --- a/databind.json/src/databind/json/tests/converters_test.py +++ b/databind/src/databind/json/tests/converters_test.py @@ -9,6 +9,8 @@ import pytest import typing_extensions as te +from nr.date import duration + from databind.core.context import Context, Direction from databind.core.converter import ConversionError, Converter, NoMatchingConverter from databind.core.mapper import ObjectMapper @@ -22,8 +24,6 @@ Strict, Union, ) -from nr.date import duration - from databind.json.converters import ( AnyConverter, CollectionConverter, diff --git a/docs/build.novella b/docs/build.novella index d163a533..9a6951e9 100644 --- a/docs/build.novella +++ b/docs/build.novella @@ -22,20 +22,20 @@ def databind_json_modules = [ action "mkdocs-update-config" { site_name = "python-databind" - update '$.theme.features' add: [] - update '$.theme.palette' set: {'primary': 'blue', 'accent': 'amber'} + update '$.theme.features' add: ["navigation.tabs"] + update '$.theme.palette' set: {'primary': 'black', 'accent': 'blue', 'scheme': 'slate'} update_with config -> { for module in databind_core_modules: - config['nav'][1]['CORE'][-1]['API'].append('core/api/' + module + '.md') + config['nav'][1]['databind.core'][-1]['API'].append('core/api/' + module + '.md') for module in databind_json_modules: - config['nav'][2]['JSON'][-1]['API'].append('json/api/' + module + '.md') + config['nav'][2]['databind.json'][-1]['API'].append('json/api/' + module + '.md') } } action "preprocess-markdown" { use "pydoc" { - loader().search_path = [ "../databind.core/src", "../databind.json/src" ] - loader().packages = [ "databind.core", "databind.json" ] + loader().search_path = [ "../databind/src" ] + loader().packages = [ "databind" ] } } diff --git a/docs/content/changelog.md b/docs/content/changelog.md new file mode 100644 index 00000000..c51ca3c2 --- /dev/null +++ b/docs/content/changelog.md @@ -0,0 +1,3 @@ +# Changelog + +@shell cd .. && slap changelog format --markdown --all diff --git a/docs/content/core/changelog.md b/docs/content/core/changelog.md deleted file mode 100644 index 0947c3b2..00000000 --- a/docs/content/core/changelog.md +++ /dev/null @@ -1,3 +0,0 @@ -# Changelog - -@shell cd ../databind.core && slap changelog format --markdown --all diff --git a/docs/content/img/logo-transparent.png b/docs/content/img/logo-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..e5f99f549dd10f5bad91b0e86a10666506cd0f7e GIT binary patch literal 87357 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

X6`E3Rw1tdNSd%(WfRn{5S?Nx)*3!i<-X{Z2 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 F zMMx3R%J=wPkx;~qGAzVZXq5=o24EqwF5f^n!T#P{ZN*Z!q!cWKR@qMz4A#ppFhxy@ zYoWm;Z*qs9eTy6nAJln{pEWglHOQPYDScu|XKA-`X z$z+PBSc)uOoIgZMBJ{Wt*l04-@&)|kp_8}*3*TbW&85N!5lcT6@*Z?faeJ?9WaEg`m(pKnJ&=DWYq*um5lbIcmY`r6vllK47s-x{& zsx;ngK5&J~Qtv>wI5QHZSz#w%UM|MM+A^<~)?{{}V5k#oK-HnJf-y){BLLOc2DS{w zU^FV9X~0#$0T5|b%F$S@Qef5o=2Ez(rpDo@k+_o3;w9m7PB(V?CIul_9R(MDc%~3f zZzEIU4Y)C~?jDvR^wf# zvaIa2q(p=DBP(q-R@qp3vP}Tj#E@0)snm0Ta#B2NO0U&nSeQi(hboXPGVvWn!Z1Hr z{uxLXIhVa+5$5m&r$KDaNg&e>=Nqh!7Sw=5Q5PFe-S*v4K@)e17Q#Dpa@;NRUw1b;12}G{WKDuOa3xL z1yT*wkovms$kPs9&W)u+wVNBIT50=B zXd-orm8?Pj49weTYZCK!nXFMx35YUzw@5jbB3`N{iYUP%dAe8^isGNeVwqc)j0H`u zP;S*ee>WT+I9WrE3N4l_zBxGQ^Ub65svaCubR(pLM`>#bJRIrNfv~6N!{>hgpEBi0 zIOYlj{3w4%SRt??i+h<2Yfnt+Ol%3Ms94f2-;xp*Ep~o#>9&M}_2U;T_>;qdkeR=3 zBBLYaB#JY0>0*y`J}j#Muwv~j^Px8gJ0)!cpUGhHd^ybfyU1 zV5LAE8S-c}syYnQ4i?b#{nVfYRu%6g1A;`!svQBzYK5{)VS7RjTkupz<}&FOBr}o)iy@784F>9^cU%z1!YCIW5?$@uOjIdZq{q z6}>|k&79E`8wg?ZCCaH9n9Mx@hdk#%>YkzEDi8e{UHtoBNAZs6m?@+{Rrbu{gXHn? z@voBCZf7%l?G=iJ;Ck()goBl|)k-6w{Hfs;azS`qQjUgp%uUGM5p2XfJ~ai!@W6+3yd8 zibby6ez!aD9!=dt|C*HqOZKu5SKofL`u*shJmt7|QL|#ez9uQxVC~{(oR0s4Qkg)y4tP*S-T&b)4mj(JTU&L%~)@bQ*INZH>aC zVN`g?aj<#-z{2YY&^Jtf^=}$n-O9AN1FkWWUxnQ6NC-Y>Nc>UkPfLXJanj#w$m87 zRP-n8IpmXIXf?(5+5?P*pChW!uafTG0SeZT6Tkwtj&xHmtMm^NSoYyfX&hWWr7>6= zf@O$}g)xGK?tstYUjbhySHQ`ok>B+KR^*&KuECZ=%@%NVH;9O8Iy!7PcdfRR*PoD*N=6LTqb_9q$UTOxlVS2Q1tKhVFp( zH_X+2?aNCe7cchqzWuhul~S`#GLj`{@q^*X#(xuc{xMPBcN}*knbs_!O_;+prfIn2 zxVym7D`n1u9Y3#DP!13e3>t)H7;3=-<;a3|+~%Nrk{S*Vj)Y20ZKniBpUa6-P!Y}) zPFn(x6TvY?aicO9t!dnUy3gnP{XTckb9b2SultGz{QK~F-k;C+{r!ADpCjW!SCxP@ zr9wqlOa{)Rj>neywB2BQl2YnmT?hzPQBiWw$&WRIXrqk&d zSL`HOKe^oUW+B*6MQB4kRA<0s!;{u+;_ti?ZLM<qM}KTp?eB%O@^=Nd_zq#ZKy_={s`u=G=o?!WF1hIf4b>hh~PQ)iZv@ zdNmSUt$UfBm;{AFr8*`F%w=&+PDvcA@v+UvU(nyh&dnPz#DbsTn9c1>zw(h zSRz>Yr?9s&ALky zs$jJCNF?i^94wHlv+o}%9v7-yNR_RkrZ*--qhYnSq{>!_h9*ML~%ULI|2Ag4J^J$F&Cvg&@Ra zX>bFRfc@gI7z^Gr8CUOlKavJQ$gLVqjvCm$@EzC}l0aB~c=YLQoeV6!esFLS1gquY z>eH2>s~^`oR;O;>o|LV58VC*3-m$T1mS_#l{X*Izgw^{Eua5{=8-7F^UrTp|h?Y9b z$H4NX8PROOR-@!-=dptY!})8b_&{qAcJ_mlyl9rS9X{*oxH|J*-s&uqbR$Nxd}j-r zcYE-v1r|5iY&Icgo0hqn1gzwuqW>opVuQAsg-6fBrtCn~@6lI?CQQ+_mSRbgco|y! z_<`aBkX`{-cEM(Y^!>XG4QaNiA{Bmknxm0(b>W!^)(u)SdKtj7kiz7mTuTEBgqUIJ zbW*bPga2Aset4q4<}=5w6y) z|8blgtOVv)W=9>O&z+0O!eB@uAw0Vzf5&dDa|pyhafl&ER>l{^aH!mVw7IU%$(ebp zE1#xVbbKKJE5F&C&SQx$1uHZFh%Kgn3^{5Y4rz763&0{HD{d|=%r0*Z!xb%A zxF3CqX;lbU!I~AcJtT0sgtNuPX9a<;;6bni0rcwcIa=8CsHn++Lp4=ug`BG~Z}JT> z!OCT)IHP!%Fc-pMPb+$(ScnA~mR<(d;NtR!{rxBU`=>P7*~FF(vkat@axxoJmyC*q zE#6Zlm821kgg6m1D956M0#xeEjVxGnre|s(>B0ma7kUnK$^ahi1U6}Oj28}=$YGLI z`9)<}K^@1tZT5WZN$T%QdKADa%P-uY$5)74!IsN2oTHATGsjKW$RbnV!tDwrmFp0W z<4jXav$M0|};c^`mara zVal}WaB?nf_HLMFV0lxTQY`^UL1$^IRdLlay~1kI!(N(T<@)bWU?_y&4DeG=Ij)`uQ`=;bP`5<6>OV1+ zq%~@^+G=v)Ac!s2+kKi1Y#p-@#R>r{FK@@|kpgS|D~a+yn%H++Wqgz6@0@!ZY^&ob zSZYYKzL(TFkbzxv3OsEZ2~Rsajb-nZ+slBgI-AW}RwybKxywqyYOBoi_!aBjeNH|` zZ=_9Om5GV|9<|C)hm>Vw_?gr``D79FYV+~qA$2eq0U1_7iWSNgeg(h^kmVG9ec&_% zK`SS?>@F*B6NIklEF=0>#2F=*R8`28#AiTf6u_#VrinXS2$rG9kdm8Q+t@(4!puEQ z4%WniU$O8tzJ6`~axhp1Is_#EmY0UY`4Gk0k^buX2!XZkCqZDbp*boA1Vi=*;5KHe zNkexsL{6=&rt>jrodfHGK^rb2SZakf^Q}r24J*qA1`6!&+N=d)w_8#R?<+yDn%j2g zd8#TXSGcEldQx-91m8p@>$bRtVg*W#+n1i)T9`e9yTP5Z5cu0GKvjUNPI)K{WowVj z(qd?FUAuOb2%Z`b@3K2xcB`|(CGmv zG`G1+JZ9QMGS6)#V3EDoK@hE9=BP=ZQLK5PUHjy8iS<}mZ=BdZw{)vx;Y^Ur0Gq&{ zZINL`*?Iw1G#Zx5!XfAC{ooJ1!l%3)wjaFR<>IYYj=wXKqoq(O$gn$n2@?{femmo; z+uQJrI#}ZM3D^nN9zJYnI!13$pkU417Qxc#MYaa#Nc!H=Khtiy_V~QTU~$}Cfkmeh z!Vj?z=4&Zf(_>@Z=r`cD(BfDbk+x7KJ=lg{iWpeyUXk9Ep&k9$Fq7;zJShqj2=q=6LQEAejXH*&7X)l>k>3tag}bD=@nQ{QCiX&e;; z;p)w_09aBVYi6OPrR7}g>fQ4oPmYzT+k@hofd7*?Z;noEn)Xg#W)}R=|P4K$j}w>|z~2uvxc{hp*qto}DER3>RwaJzPuTAQ;Ku%b@sDTsw- zW$?BGTdvOhLUUo8xo{T)3&`5Bo43xtV4$mg-1&S>!7u!rq{}GP8Vl)*?FFW*TTsOceZA0ND3M+y8ZC1 z;$S-{zyzFwRahVkpcQ5i_##!HHKO!_EhkbZUg` zEeOcP*<`wlQAsLcd2vEZ$6B0XFeB0Kt`YrE8>QU@yX`h6@WpiLInT?TJD0I>`vouH z8y_y-`OW{F=XuWgA8&oQ_0Zu%K$RE~fvE^A1Oc!wrtW1`noUMN@0dBZ8gV(8iL1mn z9c^V4tg5QA&|t@zU!7?`Ru*b!dPM^vSFD1xL!IK1nFmPL@2_3^briTtD{m+yXN3)l z$zP;&W{#c}D!_8>if`RSu(p0D&!}p`GLXFmgHCJ9Pm;$idSeAP4i?IP>S!l=yG4^$ za6sPACWpK-^ap)HSg7sktQABF0%CJGeCS+P7auU-cfm85ju5a=E4*HKy@lzldB1MWg;HBCUi|Y^-@J7 z%+FW$6_(6A{R+VP^xAJ^u9Sr{H`g#2ZZF%z$O?sKpI%jssQ|Fv-m;n3_wo#e3}q<> z94ha~;=wRkZl(pLM6)#LPD++0cxXr(n)SR6oh%Mbjskhlp~n{qyJ_C;2Dm`6rnw%|zTRHF{%8wdi}Gdf*WbwLg3QJl89bD-~91w3LBR zajB_-fDKdyypq=|p=yPZuc=s0fx|>97{~xo1FNZkFnC+V6$fh`7lAnEs^J)pzdY03 zai;rNw4H4<95~SSlRK%*J*8N3z5C2xegR;8y0SJ?oIXWh63ZKIKB09p^a@31u^!8r z=HUSE*w;4|tncR;^cf1CNNtq40)in~Er|;_K9m)cYE2rxBV5J|*-~<6kQ*yl!Kl;i zi3E7lJ$6^@ue;clp~8!D01amY&KNWsLM;= zWjK2D!z;32p`Q#S>nBdMci_CVvSa^YichC z3xgq}ms7HyBr+Va3%Pp9x;Jy=o8EyvurZ zd@e1)%A{DNO@~yxZ%{1jPMmmkrd96uC2{nwJOcIxnR}&cyqZza}X6+dpnS`0t?83=K&9< zPGnrA$Qtrx+l`vkX|zVCwOn6X99!%iTROjf@+5KdIQ1hUS8Bz&tlDqLm}7apjks8q z1h^x7dL;meKzF~O3uH`$2pEur*c(>+?%Z5mF0&gUeXw}ckcTtUo~4Ds#3*n@U9b|P z_{35 z9k73urSL)OK*Pb>f9|lmhad0+_q#x|@WD6_(pP%|USolP&srk^UZIr7KRU}MTtPN{If)%M}2b~f;$d!jOjhY2l?B1>t+-BDiuVq-u=;UEg zfYt3)b$T^=xdqI%%jJA)v$p5-rT_3 zl}+|Z$`#rhO-=a}ll*O5001BWNklD7`l4rX2xk{pY1MMEB>=FQEG5lQg5hdktF0)A%#$$~$`vf~vto7rTd^P`Ak zsXSd1uzI$d0Ioig*-GH_a3Wa1)hMZxX#lWT!3>_~U_U)iux1}#FMUCnK?9Bkdke+miSru5Sg;jrO=zxZ7?9dSV!Bnvn z2R%6|d6`4d-*W+2;$ZDPcTTBT!8%43J}2ivq8=m?0?HcY(T?Tr;uy}-Sw2rUMo+CT z^)s+W_%7DS#!#pbECP_!+}Icqe4e49i6Oj?Fa#eS5BZ)amJ=_pu$eUmw!g<(%qUmY zEiDgMR}&~w?2DAQkB*Kqt`dE;0IQ*cg~BRQ*@r$2JaJ#UURlZ_;kO3M>SA2IdpcX~ z5TZ~l5UkCQgg946XVE>cflq6&Rnw;F}-0!1`=-G>Z(&RFj1p503m@sXR->wjFvU z!>zT-t*xNnMe{5G3$B_vw`aoRS*S4SDOl(juE`sCvx`SMU`eSb3(W7mDoo-_se{;Ax(&=9zT5c?3?jKf`D~2L9(m) zef#)e9Ikf1NzDqv}r3|6qt&+;sG`Q4uBB9opD;M9_SZOa4PXy|R~MXpe<`um?JSn0c? z!es&JLa_=9?pi>qXQ;CWejD-tScuk;J2{;g_g(v2C7z( zE7YlRqF3{M`}$`Lb0zw#AlGSj*!R|B?qthFi zm5F907-tic@q#Opb)Uog9a;+R?#=cq1svys=+FQ2f1md`jL&w?uW9R>yfz!IOwi%7 zSD{prV+X31AO^0k=4Nu|R#CB}DA>+=^_K#IRZyz0z`OTy=S1%SC9s&QKmGjJ=Rc^D zteuJ_*b;%Tu~E4yY^Z-CuZ#h`a_t=QC!6=y|MPW@{QOo&`%TIz7Jy~41e|N)WVq(` z*i5u;-a`9Hl=T8Xsq&;|Yoe?uAaEmBSNIr;|f@xSA=!vsw|7mT;5}u%{WE5MFhjMX|2~| z!pdcv1@ST*d2vr!TtO>Qq;5l$Ej^soEmTk{jW8M#Mk|#WnLEkX(t;}{OQ;o)V*gHDRpD4*jDs5`v$9II+5=aWB3S!A{K#x6 zcPxZIZ!@ny^=eOWn?X7sFc~f2;R!6gy<4(bwO>8M{a|tztGE_|x9E=M9DG-t!(nP- zB(7F0k@0GkLZQRq!{feGdLabs;q;%cufN2+=sI8(+v7|K&pe7%X5x?E9>dC201J%O zF#?O@;CLkOaQi&Cv%+X9o!*9i9kF`!2B^yAR&ziWd;zp(wzp@_@$s)66AgFn6bc3S zrGP5LkuY1^eiy>vSbsK2Sk;|Ae{T!85`yJE_#c8LEoy408fC6V?=S8R7Ce;763vSxM7W-_w?R^P-#TPasq z=^%mS^ib2Hk*5wCC^ZV95S{zcqc1lFS0%AfL2I63;Kan-!hARyjiw^JM>r(~!?sA? z1#aC!y9-O^Y{`ZlomFlIpaORV-U@^Y-Y8yQ)*?X6RRLb@Bvvd~@bnH0^kP8+-Q!Rg z41r!TSMLR@X$M#s3DMxPK+Rb`XN0 z9d}6L&`nhdJT0!^QRl^A**sY4Aizsp9w`l^4wgyEgYt@3SR9)V%63e33uebtHG)T^izD)C{-*m;3IiqY`HhvKPJ))q*uwOFPN+UL9sxuw1TVA zTY1NO!K#d0gRt+_yJSd(d$xMK+VmGxKAf)d;qeK_7-14#cVy|FlFd?z+$eNvjYQ&)mZ;|iL1KvPnTAFeic~%jmL7hG^0orf~8em@3_i?RUx?sAz9Y4 z!}FvsX7u1|Vj@d=e+v%&qx&8k_JeJSU`Q)bbm}#5l(E1ndXN7*UX)4iL<&T!@7Ng? zSu$4~3mtA76{v9bTZbvE>FG&83sa+L+{-D}O(hP_K?saQqltuaaTFPXcO+lm1a6(S zj*C?dG{PbcDFewxN2vzg6bH^fv|sUxnFWu4A%J{AFuel z@JM8pa8-m>>8N*yOX!v0N|vnR`P}lJipAel5Lo*@DkoWT8>`7|viTN8FwD$3tkf}$ zheI3MtT#$FtGikZU>B_qCR)4<(a`50tP;Y*r{Z|Go#{&z$3jW5z`BbbD=K+kc|JV} zuj$z4yQ807+`Noj#nfr6qRNJ;sRcL%MvX;iYfLVUc3pE@!c(=EGq%SgAx9sH(wHy;zsQ)6zhh%v8HqGICOf=8CX_4>}L# zkgU}LTPqbr394O!0pi>aW;?Fb*M{@hWL#4fsJpI$&xGk33Q#6|bHHQ+yY0+6Q(bXBxP{y<<6uR6N?s!J9bb9;Wr;#i`YyHy2m+OjPv0~jU zN;eQ!;V6q1z}4{wm)~ZRejH({#E)lIfkk(N)!kb^U5-&0`YGw~t5EEI}$AYir_#jF`jjy?piVzGxY9E8P!#re_OI~8kQqXDGC zVFv4D$05vuQaiO#kfl?Wok=G_6ZJ^w4b|O`-fn|ffnbqj&46ZsSjqZR7ita_WkMzW z!rx0~0V_TWhT0iFuvgEnwa9T$tys<{H)w8j52IE34ELOZ_prPv4fLwP@qVycTOA)% z8dpUn%Ejq-GkGk$b#6I;t)+r32FrqA>A_~)tWJjyh zNB4k2tGLEWOoo>g%P6O>fGf#gi8Mo@9Z*sNTgjtXt7Pv5G*`=1&?o1U?+LBxO+~PjEY?lceU65~0;+(kj{VMn$D$KE?UiM&C5lCxS&h_u^XP4k)Jm~d zb)2>mtTfk^=Bz{vq2$P{AL!(461 zT$NX>29d>D{J8SC!s*=l^7dWcYj3f6L9+05Mp7)yWMLNQ-_)I7XjJ(X#{=43mEyL= zhb=xWb8qh48FD9oW=!-NCX-CYWPK>eKtLpdFH>b1mM)grb)k=1)Hs>erv^-hO`%BX zt{WsF3o+51sf{E=LZcynniSnYvzT;cUlh}G&hPiT|7RwB8-H;PY($pLC*Siu=XZYR z$f=p0&QqQEAPfwA!tqy$H?WF|V~*OIi(NbxUcA_K5z)fJ*43+5u#D9diA!kh#Ebg* zLcWmAgJ9j>x%Pa>CRkb9h0Y)f7T2ua)5V53t?lJt$x@l^Dfqn02V5am%(mm*;3#Hx z-K-ep(kg!G3|~gaj%t<8gsl!gGq&Czh{sH@gkm9Dp*^>5;Zo_(jC0{L!PW()RZO`U zSO08kh%_{~*m5h@2Q}4r-YHda5X-)lV65fNO=I$F5${EK1C6R;HH&42dU|O+;ab_n z--gjtW-#$drdos-FTa2O(bbQBb+PNq#-Lv|1~&M#r-dvU_x$aJ=ht?wJK~_#yB`o- zfnJ^76Ns=m$tqEN=U}O7?7fkz94o`T2N+li8|Xlz3QmpY9FpZXcU_`@fM`YABdw>;39+K6 z*h_s|R}QrYX~GQ4;N;0wzzWbh`)J3o?pcpw!{C7p4%UHUaXijD_Wb5E>RL-YlpJ8m z@Kf;yTaT%R1)uA6_pJ09QxF zj7X}C;=W$M6~{Xi;j?{;;hB8ZxbCMk>7g&-nwawB&>J-JhX5El0!HcM65mwF%v8g#UiqPcj3bQhDP@dwAq+!zSXgXLY^7g6{|W^Ld$b| zzu!}~G&q4^{MdN$&Iq9O>ziMVL!QXYJ3ZWyG#VlaT%AI&Dr_3W3^5vOX-$d?MDklF z&n1r>4;q7uz*N^g#Xy*aNC;pp2)%N*HW<}w5Ug*a{t~mi-Ty(9de)^@Ud^#M_+V;o zijBDL7E;Bf3!&1xjan#*)hG8ztl$@dh<`GZURnWj)nV#YTbrYfWprePiudnt9Iepl zS3C zk;QUZV&WB+MCW)%0~?)gz|}3>yQq^2tngXa8MfGs;$S#4@MI>1Seb$aJlQMnCRnsu z)iKD(t0T*TRzt)SEK;oI!!^}=epb4B20LXmjSvcU#M+J@i>o*}5kn!*8LUu{U|~bD*j<*_Ax8C$37kp+bPQmd|J5BmZdUhLIDVbv`NF z0Iu>3t&Ke$s=9l{qS=#Ru;zH7;jdFux^P$BVe8>&h4G^K8U{gJ%N#c9@_P8pz?1b9 zF2RYzuei;)dny+7W4U$+9Cc|{8O3U{C|1+{Dh6xc&wXXUqAn~A2nhu7Ws5?a)l{+j z3-kvv!|j1gPtVe`ga=s8Wdn54tg33XE!0#5*-FxNVN+D8<))i?_W~*wn5>=G{}vX@ z+V4)1HN3GZ$of}%koO1fG895aIP-?uWTvP*I;w{~PB%{tbyl{5Aoy`uXJippJ(;oX zXQ@P>gPpiL6uK1)pfdXX96h9LezJ=!!)Uqd4OJ~zIFr;@;(G#6$r|gm;#2$Bu5DgA z#RM^kbF)^qwznn{w*8t;wnPDftt>#d6>o1i@nJHFd)Grzg$b67oip-uo}WjrUtjVn zHXv6U!>g-67NPZb^zHa4e|KO>eijI^m4QNGp9Li+T=1_*uCR@dnyuKfK#YM)TN5cQ z5QtjAYNOg{tfXQwu)La+ZCtf@DVDw909<`@u&Tl0i=w^3BAX=^Iia;S)~iYZdRhU7 zOUBh*b+S|mEdGe0R^0hS_y&7w`F1D9`HyUZ**7EJj|iQFQJRWJ(204u&* z#j@|FpjGyaF5{hji(9cAl2!GBRa3KHD?t|FL}W3%d@`*VRpDn|Chx_DDl4=Jgj$~} zNfy1dV8gg%8QYhmu~1WU9IqZl=e(>zQdr0%TbDLBub*`*7H|csMO5L(4|gR@^eS=1 zRz0z@nlDAA(K%{sn5x%HQiX&1u^x(7f}$!931WI+Ydw|F0@0{9SYF)?#yg$kE{|oI z;$XOU=j0h1SYHxY4g0DbEOT6z?6nz8leyL6t5qdXs1*EfWlO_2SmG h_?i%;dk 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 az1MRL`SR4_u?E+!mVu6`cD0sc^#1^q{J{7C literal 0 HcmV?d00001 diff --git a/docs/content/img/logo.webp b/docs/content/img/logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..d54a2d991bf05b57b77d85f7360a55c9fa24bf41 GIT binary patch literal 208192 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

#?Ha}=5J< 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

=#Q>Cf62OV$pBjgo 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 z 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

  • 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 lR*-j0u7=w#J4vRz@8-iwTPNmL=F#svTX literal 0 HcmV?d00001 diff --git a/docs/content/json/changelog.md b/docs/content/json/changelog.md deleted file mode 100644 index c7e51b79..00000000 --- a/docs/content/json/changelog.md +++ /dev/null @@ -1,3 +0,0 @@ -# Changelog - -@shell cd ../databind.json && slap changelog format --markdown --all diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 0fd39b6d..a1225bc5 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,18 +1,21 @@ +repo_url: https://github.com/NiklasRosenstein/python-databind +repo_name: NiklasRosenstein/python-databind + nav: - - Home: index.md - - CORE: + - Home: + - index.md + - changelog.md + - databind.core: - core/index.md - core/basic-usage.md - core/settings.md - core/dataclass-ext.md - - core/changelog.md - API: [] - - JSON: + - databind.json: - json/index.md - Examples: - json/examples/index.md - json/examples/config-serde.md - json/examples/unions.md - json/examples/unknown-keys.md - - json/changelog.md - API: [] diff --git a/slap.toml b/slap.toml index 8c992377..b2f172b6 100644 --- a/slap.toml +++ b/slap.toml @@ -1,10 +1,9 @@ [changelog] -enabled = false +enabled = true [run] "docs:build" = "cd docs && novella --base-url python-databind/" "docs:dev" = "cd docs && novella --serve" -fmt = "cd databind.core && slap run fmt && cd ../databind.json && slap run fmt" [test] check = "slap check"