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.
- {dynaconf-3.2.4 → dynaconf-3.2.6}/CHANGELOG.md +70 -34
- {dynaconf-3.2.4 → dynaconf-3.2.6}/CONTRIBUTING.md +0 -22
- {dynaconf-3.2.4 → dynaconf-3.2.6}/PKG-INFO +6 -6
- dynaconf-3.2.6/dynaconf/VERSION +1 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/__init__.py +8 -8
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/base.py +12 -14
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/cli.py +12 -20
- dynaconf-3.2.6/dynaconf/contrib/__init__.py +5 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/contrib/flask_dynaconf.py +2 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/default_settings.py +4 -4
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/hooking.py +49 -16
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/__init__.py +5 -4
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/base.py +1 -2
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/ini_loader.py +0 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/json_loader.py +0 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/py_loader.py +0 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/vault_loader.py +2 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/yaml_loader.py +4 -6
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/strategies/filtering.py +14 -2
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/__init__.py +3 -6
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/boxing.py +10 -6
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/inspect.py +5 -3
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/parse_conf.py +43 -7
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/validator.py +2 -2
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/validator_conditions.py +1 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/PKG-INFO +6 -6
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/requires.txt +9 -14
- {dynaconf-3.2.4 → dynaconf-3.2.6}/setup.cfg +0 -10
- {dynaconf-3.2.4 → dynaconf-3.2.6}/setup.py +0 -5
- dynaconf-3.2.4/dynaconf/VERSION +0 -1
- dynaconf-3.2.4/dynaconf/contrib/__init__.py +0 -5
- {dynaconf-3.2.4 → dynaconf-3.2.6}/3.x-release-notes.md +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/CONTRIBUTORS.md +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/LICENSE +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/MANIFEST.in +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/README.md +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/constants.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/contrib/django_dynaconf_v2.py +1 -1
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/env_loader.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/redis_loader.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/loaders/toml_loader.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/strategies/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/test_settings.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/files.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/utils/functional.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/box.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/box_list.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/config_box.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/converters.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/exceptions.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/from_file.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/box/shorthand_box.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_bashcomplete.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_compat.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_termui_impl.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_textwrap.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_unicodefun.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/_winconsole.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/core.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/decorators.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/exceptions.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/formatting.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/globals.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/parser.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/termui.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/testing.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/types.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/click/utils.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/cli.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/compat.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/ipython.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/main.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/parser.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/dotenv/version.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/anchor.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/comments.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/compat.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/composer.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/configobjwalker.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/constructor.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/cyaml.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/dumper.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/emitter.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/error.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/events.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/loader.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/main.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/nodes.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/parser.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/reader.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/representer.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/resolver.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarbool.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarfloat.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarint.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scalarstring.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/scanner.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/serializer.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/setup.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/timestamp.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/tokens.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/ruamel/yaml/util.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/decoder.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/encoder.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/ordered.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/toml/tz.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/__init__.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_parser.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_re.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_types.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf/vendor/tomllib/_writer.py +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/SOURCES.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/dependency_links.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/entry_points.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/not-zip-safe +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/dynaconf.egg-info/top_level.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/box-LICENSE.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/click-LICENSE.rst +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/licenses.sh +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/python-dotenv-LICENSE.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/ruamel.yaml-LICENSE.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/toml-LICENSE.txt +0 -0
- {dynaconf-3.2.4 → dynaconf-3.2.6}/vendor_licenses/tomli-LICENSE.txt +0 -0
- {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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2228
|
+
- Fix #382 add is_overridden method (#390) [Bruno Rocha]
|
|
2193
2229
|
|
|
2194
|
-
Fix #382 add
|
|
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
|
-
|
|
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
|
|
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__
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
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
|
|
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
|
|
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
|
-
-
|
|
3861
|
-
- Use monkeypatch to stop one test from
|
|
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
|
|
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
|
|
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
|
|
4060
|
+
Fix namespace switch in django apps
|
|
4025
4061
|
- Add missing .env. [Bruno Rocha]
|
|
4026
|
-
- Fix namespace
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
3
|
+
from dynaconf.base import LazySettings
|
|
4
4
|
from dynaconf.constants import DEFAULT_SETTINGS_FILES
|
|
5
|
-
from dynaconf.contrib import DjangoDynaconf
|
|
6
|
-
from dynaconf.contrib import FlaskDynaconf
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
855
|
+
Filters by key and environment, otherwise shows all.
|
|
864
856
|
"""
|
|
865
857
|
try:
|
|
866
858
|
inspect_settings(
|
|
@@ -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
|
-
#
|
|
82
|
-
|
|
83
|
-
if not SETTINGS_FILE_FOR_DYNACONF and
|
|
84
|
-
SETTINGS_FILE_FOR_DYNACONF =
|
|
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`
|