dotenvmodel 0.5.3__tar.gz → 0.5.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. dotenvmodel-0.5.4/.github/workflows/publish.yml +89 -0
  2. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/workflows/release-please.yml +2 -4
  3. dotenvmodel-0.5.4/.release-please-manifest.json +3 -0
  4. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/CHANGELOG.md +7 -0
  5. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/PKG-INFO +1 -1
  6. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/__init__.py +1 -1
  7. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/pyproject.toml +1 -1
  8. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/uv.lock +1 -1
  9. dotenvmodel-0.5.3/.github/workflows/publish.yml +0 -25
  10. dotenvmodel-0.5.3/.release-please-manifest.json +0 -3
  11. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/CODEOWNERS +0 -0
  12. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  13. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  14. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/dependabot.yml +0 -0
  15. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/pull_request_template.md +0 -0
  16. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/workflows/ci.yml +0 -0
  17. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.github/workflows/docs.yml +0 -0
  18. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.gitignore +0 -0
  19. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/.python-version +0 -0
  20. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/CODE_OF_CONDUCT.md +0 -0
  21. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/CONTRIBUTING.md +0 -0
  22. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/LICENSE +0 -0
  23. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/Makefile +0 -0
  24. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/README.md +0 -0
  25. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/SECURITY.md +0 -0
  26. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/coercion.md +0 -0
  27. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/config.md +0 -0
  28. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/constants.md +0 -0
  29. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/describe-formatters.md +0 -0
  30. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/describe-renderers.md +0 -0
  31. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/describe.md +0 -0
  32. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/dotenvmodel.md +0 -0
  33. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/exceptions.md +0 -0
  34. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/fields.md +0 -0
  35. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/loading.md +0 -0
  36. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/logging-config.md +0 -0
  37. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/metaclass.md +0 -0
  38. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/types.md +0 -0
  39. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/api-reference/validation.md +0 -0
  40. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/changelog.md +0 -0
  41. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/examples/complete-app.md +0 -0
  42. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/getting-started/installation.md +0 -0
  43. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/getting-started/quick-start.md +0 -0
  44. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/configuration-docs.md +0 -0
  45. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/error-handling.md +0 -0
  46. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/fields.md +0 -0
  47. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/loading.md +0 -0
  48. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/logging.md +0 -0
  49. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/prefixes.md +0 -0
  50. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/types.md +0 -0
  51. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/guides/validation.md +0 -0
  52. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/docs/index.md +0 -0
  53. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/_constants.py +0 -0
  54. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/_redaction.py +0 -0
  55. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/coercion.py +0 -0
  56. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/config.py +0 -0
  57. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/describe/__init__.py +0 -0
  58. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/describe/formatters.py +0 -0
  59. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/describe/renderers.py +0 -0
  60. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/exceptions.py +0 -0
  61. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/fields.py +0 -0
  62. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/loading.py +0 -0
  63. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/logging_config.py +0 -0
  64. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/metaclass.py +0 -0
  65. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/py.typed +0 -0
  66. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/types.py +0 -0
  67. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/dotenvmodel/validation.py +0 -0
  68. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/examples/advanced_types.py +0 -0
  69. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/examples/basic_usage.py +0 -0
  70. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/examples/describe_documentation.py +0 -0
  71. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/examples/generate_env_example.py +0 -0
  72. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/examples/logging_example.py +0 -0
  73. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/mkdocs.yml +0 -0
  74. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/release-please-config.json +0 -0
  75. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/__init__.py +0 -0
  76. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/conftest.py +0 -0
  77. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_basic.py +0 -0
  78. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_coercion.py +0 -0
  79. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_collection_validators.py +0 -0
  80. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_defaults_coercion.py +0 -0
  81. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_describe.py +0 -0
  82. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_adoption.py +0 -0
  83. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_datetime.py +0 -0
  84. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_describe_output.py +0 -0
  85. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_enum.py +0 -0
  86. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_field_options.py +0 -0
  87. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_numbers.py +0 -0
  88. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_path_options.py +0 -0
  89. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_edge_strings.py +0 -0
  90. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_empty_collection_items.py +0 -0
  91. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_empty_strings.py +0 -0
  92. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_enum.py +0 -0
  93. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_errors.py +0 -0
  94. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_field_constraints.py +0 -0
  95. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_future_annotations.py +0 -0
  96. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_inheritance.py +0 -0
  97. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_json.py +0 -0
  98. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_json_and_optional.py +0 -0
  99. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_loading.py +0 -0
  100. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_logging_config.py +0 -0
  101. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_nested_config.py +0 -0
  102. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_post_load.py +0 -0
  103. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_prefix.py +0 -0
  104. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_reload.py +0 -0
  105. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_secret_redaction.py +0 -0
  106. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_secretstr_security.py +0 -0
  107. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_string_affixes.py +0 -0
  108. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_strip.py +0 -0
  109. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_strip_integration.py +0 -0
  110. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_types.py +0 -0
  111. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_union_types.py +0 -0
  112. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_url_dsn.py +0 -0
  113. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_url_password_decoding.py +0 -0
  114. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_url_unquote.py +0 -0
  115. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_urls.py +0 -0
  116. {dotenvmodel-0.5.3 → dotenvmodel-0.5.4}/tests/test_validator.py +0 -0
@@ -0,0 +1,89 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_call:
8
+ inputs:
9
+ tag_name:
10
+ required: true
11
+ type: string
12
+ workflow_dispatch:
13
+ inputs:
14
+ tag_name:
15
+ description: Existing tag to build and publish (e.g. v0.5.3)
16
+ required: true
17
+ type: string
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ build:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v7
27
+ with:
28
+ ref: ${{ inputs.tag_name || github.ref }}
29
+
30
+ - name: Install uv
31
+ uses: astral-sh/setup-uv@v8.3.2
32
+ with:
33
+ enable-cache: true
34
+
35
+ - name: Set up Python
36
+ run: uv python install 3.12
37
+
38
+ - name: Verify tag matches project version
39
+ env:
40
+ TAG_NAME: ${{ inputs.tag_name || github.ref_name }}
41
+ DIST_NAME: dotenvmodel
42
+ run: |
43
+ set -euo pipefail
44
+ tag="${TAG_NAME#v}"
45
+ version="$(uv run python -c 'import importlib.metadata, os; print(importlib.metadata.version(os.environ["DIST_NAME"]))')"
46
+ echo "Tag: ${tag}"
47
+ echo "project version: ${version}"
48
+ if [ "${tag}" != "${version}" ]; then
49
+ echo "::error::Git tag ${tag} does not match project version ${version}"
50
+ exit 1
51
+ fi
52
+
53
+ - name: Build sdist and wheel
54
+ run: uv build
55
+
56
+ - name: Smoke-test install from wheel
57
+ env:
58
+ DIST_NAME: dotenvmodel
59
+ run: |
60
+ uv venv test-env
61
+ uv pip install --python test-env/bin/python dist/*.whl
62
+ cd /tmp && $GITHUB_WORKSPACE/test-env/bin/python -c "import importlib.metadata, os; print(importlib.metadata.version(os.environ['DIST_NAME']))"
63
+
64
+ - name: Upload build artifacts
65
+ uses: actions/upload-artifact@v7.0.1
66
+ with:
67
+ name: release-dist
68
+ path: dist/
69
+ retention-days: 7
70
+
71
+ publish:
72
+ needs: [build]
73
+ runs-on: ubuntu-latest
74
+ environment:
75
+ name: pypi
76
+ url: https://pypi.org/project/dotenvmodel/
77
+ permissions:
78
+ id-token: write
79
+ steps:
80
+ - name: Download build artifacts
81
+ uses: actions/download-artifact@v8.0.1
82
+ with:
83
+ name: release-dist
84
+ path: dist/
85
+
86
+ - name: Publish to PyPI
87
+ uses: pypa/gh-action-pypi-publish@release/v1
88
+ with:
89
+ attestations: false
@@ -28,9 +28,7 @@ jobs:
28
28
  publish:
29
29
  needs: release-please
30
30
  if: needs.release-please.outputs.release_created
31
- uses: AZX-PBC-OSS/gha-workflows/.github/workflows/publish-python.yml@e35a12e79176f05980e6f93eb2b935132df10672
31
+ uses: ./.github/workflows/publish.yml
32
32
  with:
33
- dist-name: dotenvmodel
34
- python-version: "3.12"
35
- tag-name: ${{ needs.release-please.outputs.tag_name }}
33
+ tag_name: ${{ needs.release-please.outputs.tag_name }}
36
34
  secrets: inherit
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.5.4"
3
+ }
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.4](https://github.com/AZX-PBC-OSS/dotenvmodel/compare/v0.5.3...v0.5.4) (2026-07-22)
9
+
10
+
11
+ ### Continuous Integration
12
+
13
+ * local self-contained publish workflow with attestations off ([#46](https://github.com/AZX-PBC-OSS/dotenvmodel/issues/46)) ([1f72487](https://github.com/AZX-PBC-OSS/dotenvmodel/commit/1f724876329ef4244c78289d7524254405b4cc10))
14
+
8
15
  ## [0.5.3](https://github.com/AZX-PBC-OSS/dotenvmodel/compare/v0.5.2...v0.5.3) (2026-07-22)
9
16
 
10
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dotenvmodel
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: Type-safe environment configuration with automatic .env file loading
5
5
  Project-URL: Homepage, https://github.com/AZX-PBC-OSS/dotenvmodel
6
6
  Project-URL: Repository, https://github.com/AZX-PBC-OSS/dotenvmodel
@@ -34,7 +34,7 @@ Public API:
34
34
  Exception hierarchy
35
35
  """
36
36
 
37
- __version__ = "0.5.3" # x-release-please-version
37
+ __version__ = "0.5.4" # x-release-please-version
38
38
  __author__ = "AZX, PBC."
39
39
  __email__ = "oss@azx.io"
40
40
  __license__ = "MIT"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dotenvmodel"
7
- version = "0.5.3"
7
+ version = "0.5.4"
8
8
  description = "Type-safe environment configuration with automatic .env file loading"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -245,7 +245,7 @@ wheels = [
245
245
 
246
246
  [[package]]
247
247
  name = "dotenvmodel"
248
- version = "0.5.3"
248
+ version = "0.5.4"
249
249
  source = { editable = "." }
250
250
  dependencies = [
251
251
  { name = "python-dotenv" },
@@ -1,25 +0,0 @@
1
- name: Publish to PyPI
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
- workflow_dispatch:
8
- inputs:
9
- tag_name:
10
- description: Existing tag to build and publish (e.g. v0.5.2)
11
- required: true
12
- type: string
13
-
14
- permissions:
15
- contents: read
16
- id-token: write
17
-
18
- jobs:
19
- publish:
20
- uses: AZX-PBC-OSS/gha-workflows/.github/workflows/publish-python.yml@e35a12e79176f05980e6f93eb2b935132df10672
21
- with:
22
- dist-name: dotenvmodel
23
- python-version: "3.12"
24
- tag-name: ${{ inputs.tag_name || github.ref_name }}
25
- secrets: inherit
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.5.3"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes