dynaconf 3.2.4__tar.gz → 3.2.6__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 (131) hide show
  1. {dynaconf-3.2.4 → dynaconf-3.2.6}/CHANGELOG.md +70 -34
  2. {dynaconf-3.2.4 → dynaconf-3.2.6}/CONTRIBUTING.md +0 -22
  3. {dynaconf-3.2.4 → dynaconf-3.2.6}/PKG-INFO +6 -6
  4. dynaconf-3.2.6/dynaconf/VERSION +1 -0
  5. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/__init__.py +8 -8
  6. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/base.py +12 -14
  7. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/cli.py +12 -20
  8. dynaconf-3.2.6/dynaconf/contrib/__init__.py +5 -0
  9. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/contrib/flask_dynaconf.py +2 -1
  10. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/default_settings.py +4 -4
  11. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/hooking.py +49 -16
  12. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/__init__.py +5 -4
  13. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/base.py +1 -2
  14. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/ini_loader.py +0 -1
  15. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/json_loader.py +0 -1
  16. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/py_loader.py +0 -1
  17. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/vault_loader.py +2 -1
  18. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/yaml_loader.py +4 -6
  19. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/strategies/filtering.py +14 -2
  20. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/__init__.py +3 -6
  21. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/boxing.py +10 -6
  22. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/inspect.py +5 -3
  23. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/parse_conf.py +43 -7
  24. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/validator.py +2 -2
  25. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/validator_conditions.py +1 -0
  26. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/PKG-INFO +6 -6
  27. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/requires.txt +9 -14
  28. {dynaconf-3.2.4 → dynaconf-3.2.6}/setup.cfg +0 -10
  29. {dynaconf-3.2.4 → dynaconf-3.2.6}/setup.py +0 -5
  30. dynaconf-3.2.4/dynaconf/VERSION +0 -1
  31. dynaconf-3.2.4/dynaconf/contrib/__init__.py +0 -5
  32. {dynaconf-3.2.4 → dynaconf-3.2.6}/3.x-release-notes.md +0 -0
  33. {dynaconf-3.2.4 → dynaconf-3.2.6}/CONTRIBUTORS.md +0 -0
  34. {dynaconf-3.2.4 → dynaconf-3.2.6}/LICENSE +0 -0
  35. {dynaconf-3.2.4 → dynaconf-3.2.6}/MANIFEST.in +0 -0
  36. {dynaconf-3.2.4 → dynaconf-3.2.6}/README.md +0 -0
  37. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/constants.py +0 -0
  38. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/contrib/django_dynaconf_v2.py +1 -1
  39. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/env_loader.py +0 -0
  40. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/redis_loader.py +0 -0
  41. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/toml_loader.py +0 -0
  42. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/strategies/__init__.py +0 -0
  43. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/test_settings.py +0 -0
  44. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/files.py +0 -0
  45. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/functional.py +0 -0
  46. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/__init__.py +0 -0
  47. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/__init__.py +0 -0
  48. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/box.py +0 -0
  49. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/box_list.py +0 -0
  50. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/config_box.py +0 -0
  51. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/converters.py +0 -0
  52. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/exceptions.py +0 -0
  53. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/from_file.py +0 -0
  54. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/shorthand_box.py +0 -0
  55. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/__init__.py +0 -0
  56. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_bashcomplete.py +0 -0
  57. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_compat.py +0 -0
  58. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_termui_impl.py +0 -0
  59. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_textwrap.py +0 -0
  60. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_unicodefun.py +0 -0
  61. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_winconsole.py +0 -0
  62. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/core.py +0 -0
  63. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/decorators.py +0 -0
  64. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/exceptions.py +0 -0
  65. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/formatting.py +0 -0
  66. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/globals.py +0 -0
  67. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/parser.py +0 -0
  68. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/termui.py +0 -0
  69. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/testing.py +0 -0
  70. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/types.py +0 -0
  71. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/utils.py +0 -0
  72. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/__init__.py +0 -0
  73. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/cli.py +0 -0
  74. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/compat.py +0 -0
  75. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/ipython.py +0 -0
  76. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/main.py +0 -0
  77. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/parser.py +0 -0
  78. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/version.py +0 -0
  79. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/__init__.py +0 -0
  80. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/__init__.py +0 -0
  81. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/anchor.py +0 -0
  82. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/comments.py +0 -0
  83. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/compat.py +0 -0
  84. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/composer.py +0 -0
  85. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/configobjwalker.py +0 -0
  86. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/constructor.py +0 -0
  87. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/cyaml.py +0 -0
  88. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/dumper.py +0 -0
  89. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/emitter.py +0 -0
  90. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/error.py +0 -0
  91. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/events.py +0 -0
  92. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/loader.py +0 -0
  93. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/main.py +0 -0
  94. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/nodes.py +0 -0
  95. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/parser.py +0 -0
  96. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/reader.py +0 -0
  97. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/representer.py +0 -0
  98. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/resolver.py +0 -0
  99. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarbool.py +0 -0
  100. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarfloat.py +0 -0
  101. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarint.py +0 -0
  102. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarstring.py +0 -0
  103. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scanner.py +0 -0
  104. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/serializer.py +0 -0
  105. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/setup.py +0 -0
  106. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/timestamp.py +0 -0
  107. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/tokens.py +0 -0
  108. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/util.py +0 -0
  109. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/__init__.py +0 -0
  110. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/decoder.py +0 -0
  111. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/encoder.py +0 -0
  112. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/ordered.py +0 -0
  113. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/tz.py +0 -0
  114. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/__init__.py +0 -0
  115. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_parser.py +0 -0
  116. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_re.py +0 -0
  117. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_types.py +0 -0
  118. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_writer.py +0 -0
  119. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/SOURCES.txt +0 -0
  120. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/dependency_links.txt +0 -0
  121. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/entry_points.txt +0 -0
  122. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/not-zip-safe +0 -0
  123. {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/top_level.txt +0 -0
  124. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/box-LICENSE.txt +0 -0
  125. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/click-LICENSE.rst +0 -0
  126. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/licenses.sh +0 -0
  127. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/python-dotenv-LICENSE.txt +0 -0
  128. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/ruamel.yaml-LICENSE.txt +0 -0
  129. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/toml-LICENSE.txt +0 -0
  130. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/tomli-LICENSE.txt +0 -0
  131. {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/vendor_versions.txt +0 -0
@@ -2,6 +2,44 @@ Changelog
2
2
  =========
3
3
 
4
4
  <!-- insertion marker -->
5
+ ## [3.2.6](https://github.com/dynaconf/dynaconf/releases/tag/3.2.6) - 2024-07-19
6
+
7
+ ## [3.2.5](https://github.com/pedro-psb/dynaconf/releases/tag/3.2.5) - 2024-03-18
8
+
9
+ ### Bug Fixes
10
+
11
+ - `_bypass_evaluation` showing in end-user settings (#1071). *By Pedro Brochado*.
12
+ - dependabot alert 21 about Django (on tests) (#1067). *By Bruno Rocha*.
13
+ - include load with relative root path (#1049). *By Pedro Brochado*.
14
+
15
+ ### Features
16
+
17
+ - Add `@get` converter to alias existing keys (#1040). *By Bruno Rocha*.
18
+
19
+ ### Docs
20
+
21
+ - fix wrong info about validation trigger on insantiation (#1076). *By Pedro Brochado*.
22
+ - fix incorrect combination of TOML table and inline table (#1070). *By Aaron DeVore*.
23
+ - Fix mkdocs warnings for cleaner build output (#1061). *By Mitchell Edmunds*.
24
+ - Add dynaconf API to docs with mkdocstrings (#1058). *By Mitchell Edmunds*.
25
+ - fix argument `env` in Validation at validation.md (#1051). *By Mostafa Alayesh*.
26
+ - fix click help syntax error (#1041). *By xiaohuanshu*.
27
+ - replace dead link to flask subclassing page (#1031). *By Adam Kjems*.
28
+ - Add explicit Dynaconf instantiation to sample code (#1022). *By Lucas Limeira*.
29
+ - Fix the syntax errors in the sample program. (#1027). *By Sun Jianjiao*.
30
+
31
+ ### Chore
32
+
33
+ - Replace lint and formatting tools with ruff (#1074). *By Mitchell Edmunds*.
34
+ - Replace/Update release script (#1078). *By Pedro Brochado*.
35
+ - add "typos" tool and run it in codebase/docs (#1063). *By Mitchell Edmunds*.
36
+ - fix create-release-commit.sh permission. *By Pedro Brochado*.
37
+ - fix shell script in release.yml (2). *By Pedro Brochado*.
38
+ - fix shell script in release.yml. *By Pedro Brochado*.
39
+ - move release workflow to GitHub actions (partial) (#1043). *By Pedro Brochado*.
40
+ - Fix misspelled variable name (#1032). *By HAMASHITA*.
41
+ - Fix misspelled GitHub action names on main.yml (#1033). *By Pedro Brochado*.
42
+
5
43
 
6
44
  ## [3.2.4](https://github.com/dynaconf/dynaconf/releases/tag/3.2.4) - 2023-10-30
7
45
 
@@ -18,8 +56,6 @@ Changelog
18
56
  - Fix link to configuration page (#1020) ([df3b437](https://github.com/dynaconf/dynaconf/commit/df3b43718858786d0a2feb2d7b60c9515b01a15d) by Vladislav Sharapov).
19
57
  - Improve Configuration and Validation sections of the docs (#989) ([99741a3](https://github.com/dynaconf/dynaconf/commit/99741a3124b4c788e6a8e9e3761e90e7f9be5cc3) by Sebastian Correa).
20
58
 
21
- <!-- insertion marker -->
22
-
23
59
  ## [3.2.3]() - 2023-09-13
24
60
 
25
61
  - Release version 3.2.3. [Bruno Rocha]
@@ -326,7 +362,7 @@ Other
326
362
 
327
363
  * remove breakpoint
328
364
 
329
- * Pinning ipython version for python 3.8 compatability.
365
+ * Pinning ipython version for python 3.8 compatibility.
330
366
 
331
367
  ---------
332
368
  - Fix AttributeError with integer keys (yaml) #919 (#920) [Pedro Pessoa]
@@ -366,7 +402,7 @@ Other
366
402
  * add test for #905 (item duplication in list)
367
403
 
368
404
  - when using validator with the default field, list items would get
369
- duplicated under certain circunstances.
405
+ duplicated under certain circumstances.
370
406
 
371
407
  * fix for #905
372
408
 
@@ -531,7 +567,7 @@ Other
531
567
 
532
568
  * add path-filter to main ci. fix rfc #883
533
569
 
534
- * fix identation (3 to 2 spaces)
570
+ * fix indentation (3 to 2 spaces)
535
571
  - Docs/add faq page (#882) [Pedro Pessoa]
536
572
 
537
573
  * add faq page to docs
@@ -1610,7 +1646,7 @@ Other
1610
1646
  - Fix #478 Make alias for environment -> environments (#534) [Bruno
1611
1647
  Rocha]
1612
1648
 
1613
- This is a commom mistake to pass `environment` so it is alias.
1649
+ This is a common mistake to pass `environment` so it is alias.
1614
1650
 
1615
1651
  Fix #478
1616
1652
  - Fix #462 make DynaBox nested List to use DynaBox as default class
@@ -1770,7 +1806,7 @@ Other
1770
1806
 
1771
1807
  * Change map to list comprehension and create empty [] as default value
1772
1808
 
1773
- * fix wrong identation
1809
+ * fix wrong indentation
1774
1810
  - Fix merging hyperlink to fix #454 (#458) [Ilito Torquato, Ilito
1775
1811
  Torquato]
1776
1812
  - Specify flask extension initializers by entry point object reference
@@ -1873,7 +1909,7 @@ Other
1873
1909
  - Fix #432 no need for warning when env is missing on a file (#438)
1874
1910
  [Bruno Rocha]
1875
1911
 
1876
- When env is missing on a file ther eis no need to output
1912
+ When env is missing on a file there is no need to output
1877
1913
  a warning.
1878
1914
 
1879
1915
  All envs are optional on files.
@@ -2151,7 +2187,7 @@ Other
2151
2187
  Fix #379 dict like iteration (#385)
2152
2188
  Fix #377 allow computed values (#386)
2153
2189
  Fix #388 URL reference for custom loaders (#389)
2154
- Fix #382 add is_overriden method (#390)
2190
+ Fix #382 add is_overridden method (#390)
2155
2191
 
2156
2192
  John Vandenberg (1):
2157
2193
  Allow testing against local redis server (#387)
@@ -2179,7 +2215,7 @@ Other
2179
2215
  Fix #379 dict like iteration (#385)
2180
2216
  Fix #377 allow computed values (#386)
2181
2217
  Fix #388 URL reference for custom loaders (#389)
2182
- Fix #382 add is_overriden method (#390)
2218
+ Fix #382 add is_overridden method (#390)
2183
2219
 
2184
2220
  John Vandenberg (1):
2185
2221
  Allow testing against local redis server (#387)
@@ -2189,9 +2225,9 @@ Other
2189
2225
  - Allow importing SEARCHTREE before settings are configured (#383)
2190
2226
  [Andreas Poehlmann]
2191
2227
  - Allow testing against local redis server (#387) [John Vandenberg]
2192
- - Fix #382 add is_overriden method (#390) [Bruno Rocha]
2228
+ - Fix #382 add is_overridden method (#390) [Bruno Rocha]
2193
2229
 
2194
- Fix #382 add is_overriden method for DJDT
2230
+ Fix #382 add is_overridden method for DJDT
2195
2231
  - Fix #388 URL reference for custom loaders (#389) [Bruno Rocha]
2196
2232
 
2197
2233
  Fix #388 URL reference for custom loaders
@@ -2210,7 +2246,7 @@ Other
2210
2246
  Fix #327
2211
2247
  Fix #341
2212
2248
 
2213
- Exemples added:
2249
+ Examples added:
2214
2250
 
2215
2251
  example/issues/323_DEFAULT_VALUES_RESOLUTION/
2216
2252
  example/issues/325_flask_dot_env/
@@ -2564,7 +2600,7 @@ Other
2564
2600
  The release of python-box https://github.com/cdgriffith/Box/pull/116
2565
2601
  is a breaking change.
2566
2602
 
2567
- So pinning this until this project addapts.
2603
+ So pinning this until this project adapts.
2568
2604
 
2569
2605
  Also pinning other direct deps.
2570
2606
  - Fix #258 custom message for validators. [Bruno Rocha]
@@ -2955,7 +2991,7 @@ Other
2955
2991
  Use the Key Value API rather than the old 'read' and 'write' methods (#198)
2956
2992
  - Fix #194 flask.app.config __setitem__ (#199) [Bruno Rocha]
2957
2993
 
2958
- Flask.config was not proxying __setitem__ atribute so this
2994
+ Flask.config was not proxying __setitem__ attribute so this
2959
2995
  change adds a call to __setitem__ on contrib/flask_dynaconf
2960
2996
  - Use the Key Value API rather than the old 'read' and 'write' methods
2961
2997
  (#198) [Raoul Snyman]
@@ -3069,7 +3105,7 @@ Other
3069
3105
  HOTFIX config.md on docs [skip ci] (#171)
3070
3106
  Fix some open file descriptors on exampls and tests (#172)
3071
3107
  Fix #151 setup pre-commit and black (#173)
3072
- Add CONTRIBUTING.md, conrtib isntructions and Black badge (#174)
3108
+ Add CONTRIBUTING.md, contrib instructions and Black badge (#174)
3073
3109
  Fix release script
3074
3110
 
3075
3111
  David Moreau Simard (1):
@@ -3102,7 +3138,7 @@ Other
3102
3138
  HOTFIX config.md on docs [skip ci] (#171)
3103
3139
  Fix some open file descriptors on exampls and tests (#172)
3104
3140
  Fix #151 setup pre-commit and black (#173)
3105
- Add CONTRIBUTING.md, conrtib isntructions and Black badge (#174)
3141
+ Add CONTRIBUTING.md, contrib instructions and Black badge (#174)
3106
3142
  Fix release script
3107
3143
 
3108
3144
  David Moreau Simard (1):
@@ -3112,7 +3148,7 @@ Other
3112
3148
  Skip reloading envs for validators that only apply to current_env (#162)
3113
3149
  Fix #163 Allow disabling env prefix (#164)
3114
3150
  - Fix release script. [Bruno Rocha]
3115
- - Add CONTRIBUTING.md, conrtib isntructions and Black badge (#174)
3151
+ - Add CONTRIBUTING.md, contrib instructions and Black badge (#174)
3116
3152
  [Bruno Rocha]
3117
3153
  - Fix #151 setup pre-commit and black (#173) [Bruno Rocha]
3118
3154
 
@@ -3180,7 +3216,7 @@ Other
3180
3216
 
3181
3217
  removed logzero, cached logger using lru_cache (that means that if loglevel changes, log changes)
3182
3218
 
3183
- - imporved docs and badges.
3219
+ - improved docs and badges.
3184
3220
  - Fix typos in bash export examples. [David Moreau Simard]
3185
3221
  - HOTIX: Django doc. [Bruno Rocha]
3186
3222
  - Added Django explicit mode to docs (#149) [Bruno Rocha]
@@ -3211,7 +3247,7 @@ Other
3211
3247
  Fix #110 add docs for dynaconf_include
3212
3248
  Add dynaconf_include examples
3213
3249
  Set up CI with Azure Pipelines (#142)
3214
- Add dynaconf_merge fucntionality for dict and list settings. (#139)
3250
+ Add dynaconf_merge functionality for dict and list settings. (#139)
3215
3251
  Preparing for 2.0.0
3216
3252
 
3217
3253
  Byungjin Park (1):
@@ -3273,7 +3309,7 @@ Other
3273
3309
  Fix #110 add docs for dynaconf_include
3274
3310
  Add dynaconf_include examples
3275
3311
  Set up CI with Azure Pipelines (#142)
3276
- Add dynaconf_merge fucntionality for dict and list settings. (#139)
3312
+ Add dynaconf_merge functionality for dict and list settings. (#139)
3277
3313
  Preparing for 2.0.0
3278
3314
 
3279
3315
  Byungjin Park (1):
@@ -3332,10 +3368,10 @@ Other
3332
3368
  - start_dotenv is now Lazy (only when settings._setup is called)
3333
3369
  - Added new _FOR_DYNACONF config options ENV_SWITCHER, SKIP_FILES, INCLUDES & SECRETS
3334
3370
  - Renamed config PROJECT_ROOT -> ROOT_PATH
3335
- - Add dynaconf_merge fucntionality for dict and list settings. (#139)
3371
+ - Add dynaconf_merge functionality for dict and list settings. (#139)
3336
3372
  [Bruno Rocha]
3337
3373
 
3338
- If your settings has existing variables of types `list` ot `dict` and you want to `merge` instead of `override` then
3374
+ If your settings has existing variables of types `list` or `dict` and you want to `merge` instead of `override` then
3339
3375
  the `dynaconf_merge` and `dynaconf_merge_unique` stanzas can mark that variable as a candidate for merging.
3340
3376
 
3341
3377
  For **dict** value:
@@ -3372,7 +3408,7 @@ Other
3372
3408
  dynaconf_merge: true
3373
3409
  ```
3374
3410
 
3375
- The `dynaconf_merge` token will mark that object to be merged with existing values (of course `dynaconf_merge` key will not be added to the final settings it is jsut a mark)
3411
+ The `dynaconf_merge` token will mark that object to be merged with existing values (of course `dynaconf_merge` key will not be added to the final settings it is just a mark)
3376
3412
 
3377
3413
  The end result will be on `[development]` env:
3378
3414
 
@@ -3655,7 +3691,7 @@ Other
3655
3691
  - Python 3.4 has different error message. [Mantas]
3656
3692
  - Remove mocker fixture. [Mantas]
3657
3693
 
3658
- Left this accidentaly.
3694
+ Left this accidentally.
3659
3695
 
3660
3696
  https://travis-ci.org/rochacbruno/dynaconf/jobs/452612532
3661
3697
  - Add INSTANCE_FOR_DYNACONF and --instance. [Mantas]
@@ -3857,8 +3893,8 @@ Other
3857
3893
  - Add example for merge_configs. [Bruno Rocha]
3858
3894
  - Add setting merging. [Raoul Snyman]
3859
3895
 
3860
- - Addd the ability to merge nested structures instead of completely overwriting them
3861
- - Use monkeypatch to stop one test from interferring with another
3896
+ - Add the ability to merge nested structures instead of completely overwriting them
3897
+ - Use monkeypatch to stop one test from interfering with another
3862
3898
  - Updated documentation
3863
3899
 
3864
3900
 
@@ -3908,7 +3944,7 @@ Other
3908
3944
  [latty]
3909
3945
  - Release 1.0.3. [Bruno Rocha]
3910
3946
 
3911
- - Excluded example and tests from realease dist
3947
+ - Excluded example and tests from release dist
3912
3948
  - removed root logger configuration
3913
3949
 
3914
3950
 
@@ -4005,7 +4041,7 @@ Other
4005
4041
  - Increase cli test coverage. [Bruno Rocha]
4006
4042
  - Dynaconf variables in blue and user variables in green. [Bruno Rocha]
4007
4043
  - Added `dynaconf list` and `dynaconf write` subcommands. [Bruno Rocha]
4008
- - More cli commands lsit and write. [Bruno Rocha]
4044
+ - More cli commands list and write. [Bruno Rocha]
4009
4045
  - Added more tests for cli and py loader. [Bruno Rocha]
4010
4046
  - Replaced coveralls with codecov #57. [Bruno Rocha]
4011
4047
  - Modularized the loaders, added `dynaconf init` command. [Bruno Rocha]
@@ -4021,9 +4057,9 @@ Other
4021
4057
  - Merge pull request #52 from rochacbruno/fix_namespace_in_django.
4022
4058
  [Bruno Rocha]
4023
4059
 
4024
- Fix namespace swithc in django apps
4060
+ Fix namespace switch in django apps
4025
4061
  - Add missing .env. [Bruno Rocha]
4026
- - Fix namespace swithc in django apps. [Bruno Rocha]
4062
+ - Fix namespace switch in django apps. [Bruno Rocha]
4027
4063
 
4028
4064
 
4029
4065
  0.7.5 (2018-05-20)
@@ -4211,7 +4247,7 @@ Other
4211
4247
  - Add Pipfile.lock to .gitignore. [Douglas Soares de Andrade]
4212
4248
  - Small Refactory. [Douglas Soares de Andrade]
4213
4249
 
4214
- - Adding object to the Settings classe to make it work with Python2
4250
+ - Adding object to the Settings class to make it work with Python2
4215
4251
  - Small Refactory. [Douglas Soares de Andrade]
4216
4252
 
4217
4253
  - Reordering the imports according to pylint and flake8
@@ -4280,7 +4316,7 @@ Other
4280
4316
  - Added note about get_fresh in readme. [Bruno Rocha]
4281
4317
  - Better namespace management, get_fresh(key) to access redis. [Bruno
4282
4318
  Rocha]
4283
- - Now it can be used programatically. [Bruno Rocha]
4319
+ - Now it can be used programmatically. [Bruno Rocha]
4284
4320
 
4285
4321
 
4286
4322
  0.2.1 (2015-12-20)
@@ -4291,7 +4327,7 @@ Other
4291
4327
 
4292
4328
  0.2.0 (2015-12-20)
4293
4329
  ------------------
4294
- - Can also load from arbitraty filepath. [Bruno Rocha]
4330
+ - Can also load from arbitrary filepath. [Bruno Rocha]
4295
4331
  - Renamed var, added loaders, bump version. [Bruno Rocha]
4296
4332
 
4297
4333
 
@@ -87,28 +87,6 @@ make test_vault
87
87
 
88
88
  ```
89
89
 
90
- ### Publish and Release (WIP)
91
-
92
- Only maintainers with write access can publish.
93
-
94
- Currently, the "publish-and-release" workflow will be triggered
95
- on tagged commits. It will do the following:
96
-
97
- * run usual CI
98
- * build and test the distribution
99
- * publish to PyPI
100
- * create GitHub Release
101
- * publish docs to Netlify (TODO)
102
-
103
- The tagged commits can be pushed manually (*) with `git push --tags git@github.com:dynaconf/dynaconf.git master` and is expected to have:
104
-
105
- * updated changelog using `git-changelog`. GitHub Release action will use some
106
- custom marks created with this tool to generate a github Release.
107
- * updated version references
108
- * standard header, body and tag
109
-
110
- (*) - release script update is in progress.
111
-
112
90
  ## Code of Conduct
113
91
 
114
92
  ### Our Pledge
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dynaconf
3
- Version: 3.2.4
3
+ Version: 3.2.6
4
4
  Summary: The dynamic configurator for your Python Project
5
5
  Home-page: https://github.com/dynaconf/dynaconf
6
6
  Author: Bruno Rocha
@@ -26,14 +26,14 @@ Classifier: Topic :: Software Development :: Libraries
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
27
  Requires-Python: >=3.8
28
28
  Description-Content-Type: text/markdown
29
- Provides-Extra: all
30
- Provides-Extra: configobj
31
- Provides-Extra: ini
32
29
  Provides-Extra: redis
33
- Provides-Extra: test
34
- Provides-Extra: toml
35
30
  Provides-Extra: vault
36
31
  Provides-Extra: yaml
32
+ Provides-Extra: toml
33
+ Provides-Extra: ini
34
+ Provides-Extra: configobj
35
+ Provides-Extra: all
36
+ Provides-Extra: test
37
37
  License-File: LICENSE
38
38
  License-File: vendor_licenses/box-LICENSE.txt
39
39
  License-File: vendor_licenses/click-LICENSE.rst
@@ -0,0 +1 @@
1
+ 3.2.6
@@ -1,16 +1,16 @@
1
1
  from __future__ import annotations
2
2
 
3
- from dynaconf.base import LazySettings # noqa
3
+ from dynaconf.base import LazySettings
4
4
  from dynaconf.constants import DEFAULT_SETTINGS_FILES
5
- from dynaconf.contrib import DjangoDynaconf # noqa
6
- from dynaconf.contrib import FlaskDynaconf # noqa
5
+ from dynaconf.contrib import DjangoDynaconf
6
+ from dynaconf.contrib import FlaskDynaconf
7
7
  from dynaconf.utils.inspect import get_history
8
8
  from dynaconf.utils.inspect import inspect_settings
9
- from dynaconf.utils.parse_conf import add_converter # noqa
10
- from dynaconf.utils.parse_conf import DynaconfFormatError # noqa
11
- from dynaconf.utils.parse_conf import DynaconfParseError # noqa
12
- from dynaconf.validator import ValidationError # noqa
13
- from dynaconf.validator import Validator # noqa
9
+ from dynaconf.utils.parse_conf import add_converter
10
+ from dynaconf.utils.parse_conf import DynaconfFormatError
11
+ from dynaconf.utils.parse_conf import DynaconfParseError
12
+ from dynaconf.validator import ValidationError
13
+ from dynaconf.validator import Validator
14
14
 
15
15
  settings = LazySettings(
16
16
  # This global `settings` is deprecated from v3.0.0+
@@ -90,13 +90,13 @@ class LazySettings(LazyObject):
90
90
  e.g: ROOT_PATH='/' is transformed into `ROOT_PATH_FOR_DYNACONF`
91
91
  """
92
92
 
93
- mispells = {
93
+ misspells = {
94
94
  "settings_files": "settings_file",
95
95
  "SETTINGS_FILES": "SETTINGS_FILE",
96
96
  "environment": "environments",
97
97
  "ENVIRONMENT": "ENVIRONMENTS",
98
98
  }
99
- for misspell, correct in mispells.items():
99
+ for misspell, correct in misspells.items():
100
100
  if misspell in kwargs:
101
101
  kwargs[correct] = kwargs.pop(misspell)
102
102
 
@@ -229,7 +229,7 @@ class Settings:
229
229
  self._loaded_py_modules = []
230
230
  self._loaded_files = []
231
231
  self._deleted = set()
232
- self._store = DynaBox(box_settings=self)
232
+ self._store = kwargs.pop("_store", DynaBox(box_settings=self))
233
233
  self._env_cache = {}
234
234
  self._loaded_by_loaders: dict[SourceMetadata | str, Any] = {}
235
235
  self._loaders = []
@@ -432,6 +432,12 @@ class Settings:
432
432
  :param default: In case of not found it will be returned
433
433
  :param parent: Is there a pre-loaded parent in a nested data?
434
434
  """
435
+ # if parent is not traverseable raise error
436
+ if parent and not hasattr(parent, "get"):
437
+ raise AttributeError(
438
+ f"cannot lookup {dotted_key!r} from {type(parent).__name__!r}"
439
+ )
440
+
435
441
  split_key = dotted_key.split(".")
436
442
  name, keys = split_key[0], split_key[1:]
437
443
  result = self.get(name, default=default, parent=parent, **kwargs)
@@ -918,7 +924,7 @@ class Settings:
918
924
  :param key: The key to store. Can be of any type.
919
925
  :param value: The raw value to parse and store
920
926
  :param loader_identifier: Optional loader name e.g: toml, yaml etc.
921
- Or isntance of SourceMetadata
927
+ Or instance of SourceMetadata
922
928
  :param tomlfy: Bool define if value is parsed by toml (defaults False)
923
929
  :param merge: Bool define if existing nested data will be merged.
924
930
  :param validate: Bool define if validation will be triggered
@@ -1179,14 +1185,11 @@ class Settings:
1179
1185
  core_loader.load(self, env, silent=silent, key=key)
1180
1186
 
1181
1187
  self.load_includes(env, silent=silent, key=key)
1182
- self._store._box_config["_bypass_evaluation"] = True
1183
1188
 
1184
1189
  # execute hooks
1185
1190
  execute_module_hooks("post", self, env, silent=silent, key=key)
1186
1191
  execute_instance_hooks(self, "post", self._post_hooks)
1187
1192
 
1188
- self._store._box_config.pop("_bypass_evaluation", None)
1189
-
1190
1193
  def pre_load(self, env, silent, key):
1191
1194
  """Do we have any file to pre-load before main settings file?"""
1192
1195
  preloads = self.get("PRELOAD_FOR_DYNACONF", [])
@@ -1228,7 +1231,6 @@ class Settings:
1228
1231
  if files:
1229
1232
  already_loaded = set()
1230
1233
  for _filename in files:
1231
-
1232
1234
  # load_file() will handle validation later
1233
1235
  with suppress(ValidationError):
1234
1236
  if py_loader.try_to_load_from_py_module_name(
@@ -1250,14 +1252,10 @@ class Settings:
1250
1252
  filepath = os.path.join(root_dir, str(_filename))
1251
1253
 
1252
1254
  paths = [
1253
- p
1254
- for p in sorted(glob(filepath, root_dir=self._root_path))
1255
- if ".local." not in p
1255
+ p for p in sorted(glob(filepath)) if ".local." not in p
1256
1256
  ]
1257
1257
  local_paths = [
1258
- p
1259
- for p in sorted(glob(filepath, root_dir=self._root_path))
1260
- if ".local." in p
1258
+ p for p in sorted(glob(filepath)) if ".local." in p
1261
1259
  ]
1262
1260
 
1263
1261
  # Handle possible *.globs sorted alphanumeric
@@ -20,6 +20,11 @@ from dynaconf.loaders.py_loader import get_module
20
20
  from dynaconf.utils import upperfy
21
21
  from dynaconf.utils.files import read_file
22
22
  from dynaconf.utils.functional import empty
23
+ from dynaconf.utils.inspect import builtin_dumpers
24
+ from dynaconf.utils.inspect import EnvNotFoundError
25
+ from dynaconf.utils.inspect import inspect_settings
26
+ from dynaconf.utils.inspect import KeyNotFoundError
27
+ from dynaconf.utils.inspect import OutputFormatError
23
28
  from dynaconf.utils.parse_conf import parse_conf_data
24
29
  from dynaconf.utils.parse_conf import unparse_conf_data
25
30
  from dynaconf.validator import ValidationError
@@ -28,9 +33,8 @@ from dynaconf.vendor import click
28
33
  from dynaconf.vendor import toml
29
34
  from dynaconf.vendor import tomllib
30
35
 
31
-
32
36
  if TYPE_CHECKING: # pragma: no cover
33
- from dynaconf.base import Settings
37
+ from dynaconf.base import Settings # noqa: F401
34
38
 
35
39
  os.environ["PYTHONIOENCODING"] = "utf-8"
36
40
 
@@ -78,7 +82,7 @@ def set_settings(ctx, instance=None):
78
82
  try:
79
83
  # Django extension v2
80
84
  from django.conf import settings # noqa
81
- import dynaconf
85
+ import dynaconf # noqa: F401
82
86
  import django
83
87
 
84
88
  # see https://docs.djangoproject.com/en/4.2/ref/applications/
@@ -97,7 +101,6 @@ def set_settings(ctx, instance=None):
97
101
  )
98
102
 
99
103
  if settings is None:
100
-
101
104
  if instance is None and "--help" not in click.get_os_args():
102
105
  if ctx.invoked_subcommand and ctx.invoked_subcommand not in [
103
106
  "init",
@@ -394,9 +397,7 @@ def init(ctx, fileformat, path, env, _vars, _secrets, wg, y, django):
394
397
 
395
398
  if settings_path:
396
399
  loader.write(settings_path, settings_data, merge=True)
397
- click.echo(
398
- f"🎛️ {settings_path.name} created to hold your settings.\n"
399
- )
400
+ click.echo(f"🎛️ {settings_path.name} created to hold your settings.\n")
400
401
 
401
402
  if secrets_path:
402
403
  loader.write(secrets_path, secrets_data, merge=True)
@@ -461,7 +462,7 @@ def init(ctx, fileformat, path, env, _vars, _secrets, wg, y, django):
461
462
  def get(key, default, env, unparse):
462
463
  """Returns the raw value for a settings key.
463
464
 
464
- If result is a dict, list or tuple it is printes as a valid json string.
465
+ If result is a dict, list or tuple it is printed as a valid json string.
465
466
  """
466
467
  if env:
467
468
  env = env.strip()
@@ -622,7 +623,7 @@ def _list(env, key, more, loader, _all=False, output=None, flat=False):
622
623
  default=None,
623
624
  help=(
624
625
  "key values to be written "
625
- "e.g: `dynaconf write toml -e NAME=foo -e X=2"
626
+ "e.g: `dynaconf write toml -e NAME=foo -e X=2`"
626
627
  ),
627
628
  )
628
629
  @click.option(
@@ -633,7 +634,7 @@ def _list(env, key, more, loader, _all=False, output=None, flat=False):
633
634
  default=None,
634
635
  help=(
635
636
  "secret key values to be written in .secrets "
636
- "e.g: `dynaconf write toml -s TOKEN=kdslmflds -s X=2"
637
+ "e.g: `dynaconf write toml -s TOKEN=kdslmflds -s X=2`"
637
638
  ),
638
639
  )
639
640
  @click.option(
@@ -661,7 +662,6 @@ def write(to, _vars, _secrets, path, env, y):
661
662
  loader = importlib.import_module(f"dynaconf.loaders.{to}_loader")
662
663
 
663
664
  if to in EXTS:
664
-
665
665
  # Lets write to a file
666
666
  path = Path(path)
667
667
 
@@ -807,14 +807,6 @@ def validate(path): # pragma: no cover
807
807
  sys.exit(1)
808
808
 
809
809
 
810
- from dynaconf.utils.inspect import (
811
- KeyNotFoundError,
812
- builtin_dumpers,
813
- inspect_settings,
814
- EnvNotFoundError,
815
- OutputFormatError,
816
- )
817
-
818
810
  INSPECT_FORMATS = list(builtin_dumpers.keys())
819
811
 
820
812
 
@@ -860,7 +852,7 @@ def inspect(
860
852
  """
861
853
  Inspect the loading history of the given settings instance.
862
854
 
863
- Filters by key and environement, otherwise shows all.
855
+ Filters by key and environment, otherwise shows all.
864
856
  """
865
857
  try:
866
858
  inspect_settings(
@@ -0,0 +1,5 @@
1
+ from __future__ import annotations
2
+
3
+ from dynaconf.contrib.django_dynaconf_v2 import DjangoDynaconf
4
+ from dynaconf.contrib.flask_dynaconf import DynaconfConfig
5
+ from dynaconf.contrib.flask_dynaconf import FlaskDynaconf
@@ -13,9 +13,10 @@ except ImportError: # pragma: no cover
13
13
  Config = object
14
14
 
15
15
 
16
- import dynaconf
17
16
  from importlib.metadata import EntryPoint
18
17
 
18
+ import dynaconf
19
+
19
20
 
20
21
  class FlaskDynaconf:
21
22
  """The arguments are.
@@ -78,10 +78,10 @@ ROOT_PATH_FOR_DYNACONF = get("ROOT_PATH_FOR_DYNACONF", None)
78
78
  # Default settings file
79
79
  SETTINGS_FILE_FOR_DYNACONF = get("SETTINGS_FILE_FOR_DYNACONF", [])
80
80
 
81
- # MISPELLS `FILES` when/if it happens
82
- mispelled_files = get("SETTINGS_FILES_FOR_DYNACONF", None)
83
- if not SETTINGS_FILE_FOR_DYNACONF and mispelled_files is not None:
84
- SETTINGS_FILE_FOR_DYNACONF = mispelled_files
81
+ # MISSPELLS `FILES` when/if it happens
82
+ misspelled_files = get("SETTINGS_FILES_FOR_DYNACONF", None)
83
+ if not SETTINGS_FILE_FOR_DYNACONF and misspelled_files is not None:
84
+ SETTINGS_FILE_FOR_DYNACONF = misspelled_files
85
85
 
86
86
  # # ENV SETTINGS
87
87
  # # In dynaconf 1.0.0 `NAMESPACE` got renamed to `ENV`