me
/
guix
Archived
1
0
Fork 0

gnu: dynaconf: Update to 3.2.4.

* gnu/packages/patches/dynaconf-unvendor-deps.patch: Update accordingly.
* gnu/packages/python-xyz.scm (dynaconf): Update to 3.2.4;
[source]<url>; https://github.com/rochacbruno/dynaconf now permanently
redirects to https://github.com/dynaconf/dynaconf ;
<snippet>: update unvendoring and lower coverage quality gate
for unit tests;
[build-system]: switch to pyproject-build-system;
[arguments]<test-flags>: disable tests that require Click 7 instead of
Click 8;
<phases>: comply with #:test-flags argument from pyproject-build-system;
[propagated-inputs]: add python-tomli.

Change-Id: I96597ec39d7aa2d3c3c169147640de19eaefe0b4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
master
Giacomo Leidi 2024-01-14 15:13:53 +01:00 committed by Ludovic Courtès
parent dde76db33f
commit 4802adbbf0
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 108 additions and 103 deletions

View File

@ -1,45 +1,46 @@
From 3f7b48195500cbbbbecd3cac2f5308c64004479b Mon Sep 17 00:00:00 2001 From d3252748b0f9036cb31f4697ebb5c6a494aceaca Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <goodoldpaul@autistici.org> From: Giacomo Leidi <goodoldpaul@autistici.org>
Date: Sun, 29 Aug 2021 23:39:27 +0200 Date: Sun, 14 Jan 2024 12:05:49 +0100
Subject: [PATCH] Use system site dependencies. Subject: [PATCH] Use system site dependencies.
Box was not unvendored because it appears to be heavily patched. * Box was not unvendored because it appears to be heavily patched.
* Tomllib seems to be a backport from Python 3.11, as such it wasn't unvendored.
--- ---
dynaconf/cli.py | 4 ++-- dynaconf/cli.py | 4 ++--
dynaconf/default_settings.py | 2 +- dynaconf/default_settings.py | 2 +-
dynaconf/loaders/env_loader.py | 2 +- dynaconf/loaders/env_loader.py | 2 +-
dynaconf/loaders/toml_loader.py | 2 +- dynaconf/loaders/toml_loader.py | 2 +-
dynaconf/loaders/yaml_loader.py | 2 +- dynaconf/loaders/yaml_loader.py | 2 +-
dynaconf/utils/inspect.py | 2 +-
dynaconf/utils/parse_conf.py | 2 +- dynaconf/utils/parse_conf.py | 2 +-
dynaconf/vendor/box/converters.py | 4 ++-- dynaconf/vendor/box/converters.py | 2 +-
dynaconf/vendor/box/from_file.py | 4 ++-- dynaconf/vendor/box/from_file.py | 2 +-
dynaconf/vendor_src/box/converters.py | 4 ++--
dynaconf/vendor_src/box/from_file.py | 4 ++--
tests/test_cli.py | 2 +- tests/test_cli.py | 2 +-
11 files changed, 16 insertions(+), 16 deletions(-) tests/test_inspect.py | 2 +-
11 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/dynaconf/cli.py b/dynaconf/cli.py diff --git a/dynaconf/cli.py b/dynaconf/cli.py
index 5bb8316..1341a95 100644 index c0fd489..5739e79 100644
--- a/dynaconf/cli.py --- a/dynaconf/cli.py
+++ b/dynaconf/cli.py +++ b/dynaconf/cli.py
@@ -20,8 +20,8 @@ from dynaconf.utils.functional import empty @@ -24,8 +24,8 @@ from dynaconf.utils.parse_conf import parse_conf_data
from dynaconf.utils.parse_conf import parse_conf_data from dynaconf.utils.parse_conf import unparse_conf_data
from dynaconf.validator import ValidationError from dynaconf.validator import ValidationError
from dynaconf.validator import Validator from dynaconf.validator import Validator
-from dynaconf.vendor import click -from dynaconf.vendor import click
-from dynaconf.vendor import toml -from dynaconf.vendor import toml
+import click +import click
+import toml +import toml
from dynaconf.vendor import tomllib
CWD = Path.cwd()
diff --git a/dynaconf/default_settings.py b/dynaconf/default_settings.py diff --git a/dynaconf/default_settings.py b/dynaconf/default_settings.py
index 66601b0..9605fc5 100644 index 7e8c222..526b01e 100644
--- a/dynaconf/default_settings.py --- a/dynaconf/default_settings.py
+++ b/dynaconf/default_settings.py +++ b/dynaconf/default_settings.py
@@ -8,7 +8,7 @@ from dynaconf.utils import upperfy @@ -11,7 +11,7 @@ from dynaconf.utils import warn_deprecations
from dynaconf.utils import warn_deprecations
from dynaconf.utils.files import find_file from dynaconf.utils.files import find_file
from dynaconf.utils.parse_conf import boolean_fix
from dynaconf.utils.parse_conf import parse_conf_data from dynaconf.utils.parse_conf import parse_conf_data
-from dynaconf.vendor.dotenv import load_dotenv -from dynaconf.vendor.dotenv import load_dotenv
+from dotenv import load_dotenv +from dotenv import load_dotenv
@ -47,36 +48,36 @@ index 66601b0..9605fc5 100644
def try_renamed(key, value, older_key, current_key): def try_renamed(key, value, older_key, current_key):
diff --git a/dynaconf/loaders/env_loader.py b/dynaconf/loaders/env_loader.py diff --git a/dynaconf/loaders/env_loader.py b/dynaconf/loaders/env_loader.py
index e7b13bd..b034c8a 100644 index a563b4e..91ac3ae 100644
--- a/dynaconf/loaders/env_loader.py --- a/dynaconf/loaders/env_loader.py
+++ b/dynaconf/loaders/env_loader.py +++ b/dynaconf/loaders/env_loader.py
@@ -2,7 +2,7 @@ from os import environ @@ -11,7 +11,7 @@ from dynaconf.utils.parse_conf import parse_conf_data
from dynaconf.utils import upperfy DOTENV_IMPORTED = False
from dynaconf.utils.parse_conf import parse_conf_data with suppress(ImportError, FileNotFoundError):
- from dynaconf.vendor.dotenv import cli as dotenv_cli - from dynaconf.vendor.dotenv import cli as dotenv_cli
+ from dotenv import cli as dotenv_cli + from dotenv import cli as dotenv_cli
DOTENV_IMPORTED = True
IDENTIFIER = "env"
diff --git a/dynaconf/loaders/toml_loader.py b/dynaconf/loaders/toml_loader.py diff --git a/dynaconf/loaders/toml_loader.py b/dynaconf/loaders/toml_loader.py
index 07b973f..d81d675 100644 index 42db7b3..ba0188b 100644
--- a/dynaconf/loaders/toml_loader.py --- a/dynaconf/loaders/toml_loader.py
+++ b/dynaconf/loaders/toml_loader.py +++ b/dynaconf/loaders/toml_loader.py
@@ -5,7 +5,7 @@ from dynaconf import default_settings @@ -7,7 +7,7 @@ from dynaconf import default_settings
from dynaconf.constants import TOML_EXTENSIONS from dynaconf.constants import TOML_EXTENSIONS
from dynaconf.loaders.base import BaseLoader from dynaconf.loaders.base import BaseLoader
from dynaconf.utils import object_merge from dynaconf.utils import object_merge
-from dynaconf.vendor import toml -from dynaconf.vendor import toml # Backwards compatibility with uiri/toml
+import toml +import toml # Backwards compatibility with uiri/toml
from dynaconf.vendor import tomllib # New tomllib stdlib on py3.11
def load(obj, env=None, silent=True, key=None, filename=None):
diff --git a/dynaconf/loaders/yaml_loader.py b/dynaconf/loaders/yaml_loader.py diff --git a/dynaconf/loaders/yaml_loader.py b/dynaconf/loaders/yaml_loader.py
index 33c6532..3ef419a 100644 index 5721681..ab628c2 100644
--- a/dynaconf/loaders/yaml_loader.py --- a/dynaconf/loaders/yaml_loader.py
+++ b/dynaconf/loaders/yaml_loader.py +++ b/dynaconf/loaders/yaml_loader.py
@@ -7,7 +7,7 @@ from dynaconf.constants import YAML_EXTENSIONS @@ -10,7 +10,7 @@ from dynaconf.constants import YAML_EXTENSIONS
from dynaconf.loaders.base import BaseLoader from dynaconf.loaders.base import BaseLoader
from dynaconf.utils import object_merge from dynaconf.utils import object_merge
from dynaconf.utils.parse_conf import try_to_encode from dynaconf.utils.parse_conf import try_to_encode
@ -85,95 +86,84 @@ index 33c6532..3ef419a 100644
# Add support for Dynaconf Lazy values to YAML dumper # Add support for Dynaconf Lazy values to YAML dumper
yaml.SafeDumper.yaml_representers[ yaml.SafeDumper.yaml_representers[
diff --git a/dynaconf/utils/inspect.py b/dynaconf/utils/inspect.py
index 21d724e..2933b8f 100644
--- a/dynaconf/utils/inspect.py
+++ b/dynaconf/utils/inspect.py
@@ -18,7 +18,7 @@ from dynaconf.loaders.base import SourceMetadata
from dynaconf.utils.boxing import DynaBox
from dynaconf.utils.functional import empty
from dynaconf.vendor.box.box_list import BoxList
-from dynaconf.vendor.ruamel.yaml import YAML
+from ruamel.yaml import YAML
if TYPE_CHECKING: # pragma: no cover
from dynaconf.base import LazySettings, Settings
diff --git a/dynaconf/utils/parse_conf.py b/dynaconf/utils/parse_conf.py diff --git a/dynaconf/utils/parse_conf.py b/dynaconf/utils/parse_conf.py
index c42b07a..01ccdae 100644 index 882110e..a262864 100644
--- a/dynaconf/utils/parse_conf.py --- a/dynaconf/utils/parse_conf.py
+++ b/dynaconf/utils/parse_conf.py +++ b/dynaconf/utils/parse_conf.py
@@ -9,7 +9,7 @@ from dynaconf.utils import isnamedtupleinstance @@ -12,7 +12,7 @@ from dynaconf.utils import multi_replace
from dynaconf.utils import multi_replace
from dynaconf.utils import recursively_evaluate_lazy_format from dynaconf.utils import recursively_evaluate_lazy_format
from dynaconf.utils.boxing import DynaBox from dynaconf.utils.boxing import DynaBox
from dynaconf.utils.functional import empty
-from dynaconf.vendor import toml -from dynaconf.vendor import toml
+import toml +import toml
from dynaconf.vendor import tomllib
try: try:
from jinja2 import Environment
diff --git a/dynaconf/vendor/box/converters.py b/dynaconf/vendor/box/converters.py diff --git a/dynaconf/vendor/box/converters.py b/dynaconf/vendor/box/converters.py
index 93cdcfb..e34c7dc 100644 index 08694fe..4e84930 100644
--- a/dynaconf/vendor/box/converters.py --- a/dynaconf/vendor/box/converters.py
+++ b/dynaconf/vendor/box/converters.py +++ b/dynaconf/vendor/box/converters.py
@@ -7,9 +7,9 @@ _B='utf-8' @@ -9,7 +9,7 @@ import sys
_A=None
import csv,json,sys,warnings
from pathlib import Path
-import dynaconf.vendor.ruamel.yaml as yaml
+import ruamel.yaml as yaml
from dynaconf.vendor.box.exceptions import BoxError,BoxWarning
-from dynaconf.vendor import toml
+import toml
BOX_PARAMETERS='default_box','default_box_attr','conversion_box','frozen_box','camel_killer_box','box_safe_prefix','box_duplicates','ordered_box','default_box_none_transform','box_dots','modify_tuples_box','box_intact_types','box_recast'
def _exists(filename,create=_E):
A=filename;B=Path(A)
diff --git a/dynaconf/vendor/box/from_file.py b/dynaconf/vendor/box/from_file.py
index daa1137..d75940b 100644
--- a/dynaconf/vendor/box/from_file.py
+++ b/dynaconf/vendor/box/from_file.py
@@ -1,8 +1,8 @@
from json import JSONDecodeError
from pathlib import Path
from typing import Union
-from dynaconf.vendor.toml import TomlDecodeError
-from dynaconf.vendor.ruamel.yaml import YAMLError
+from toml import TomlDecodeError
+from ruamel.yaml import YAMLError
from .exceptions import BoxError
from .box import Box
from .box_list import BoxList
diff --git a/dynaconf/vendor_src/box/converters.py b/dynaconf/vendor_src/box/converters.py
index c9a2293..ae42bf6 100644
--- a/dynaconf/vendor_src/box/converters.py
+++ b/dynaconf/vendor_src/box/converters.py
@@ -9,9 +9,9 @@ import sys
import warnings import warnings
from pathlib import Path from pathlib import Path
-import dynaconf.vendor.ruamel.yaml as yaml -import dynaconf.vendor.ruamel.yaml as yaml
+import ruamel.yaml as yaml +import ruamel.yaml as yaml
from dynaconf.vendor.box.exceptions import BoxError, BoxWarning from dynaconf.vendor.box.exceptions import BoxError, BoxWarning
-from dynaconf.vendor import toml from dynaconf.vendor import tomllib as toml
+import toml
diff --git a/dynaconf/vendor/box/from_file.py b/dynaconf/vendor/box/from_file.py
BOX_PARAMETERS = ('default_box', 'default_box_attr', 'conversion_box', index a82ac96..cd01f13 100644
diff --git a/dynaconf/vendor_src/box/from_file.py b/dynaconf/vendor_src/box/from_file.py --- a/dynaconf/vendor/box/from_file.py
index 2e2a6ad..3f76819 100644 +++ b/dynaconf/vendor/box/from_file.py
--- a/dynaconf/vendor_src/box/from_file.py @@ -4,7 +4,7 @@ from json import JSONDecodeError
+++ b/dynaconf/vendor_src/box/from_file.py
@@ -3,8 +3,8 @@
from json import JSONDecodeError
from pathlib import Path from pathlib import Path
from typing import Union from typing import Union
-from dynaconf.vendor.toml import TomlDecodeError from dynaconf.vendor.tomllib import TOMLDecodeError
-from dynaconf.vendor.ruamel.yaml import YAMLError -from dynaconf.vendor.ruamel.yaml import YAMLError
+from toml import TomlDecodeError
+from ruamel.yaml import YAMLError +from ruamel.yaml import YAMLError
from .exceptions import BoxError from .exceptions import BoxError
diff --git a/tests/test_cli.py b/tests/test_cli.py diff --git a/tests/test_cli.py b/tests/test_cli.py
index 6693701..df44409 100644 index c679ae5..9df5f7f 100644
--- a/tests/test_cli.py --- a/tests/test_cli.py
+++ b/tests/test_cli.py +++ b/tests/test_cli.py
@@ -11,7 +11,7 @@ from dynaconf.cli import main @@ -15,7 +15,7 @@ from dynaconf.cli import main
from dynaconf.cli import read_file_in_root_directory from dynaconf.cli import read_file_in_root_directory
from dynaconf.cli import WRITERS from dynaconf.cli import WRITERS
from dynaconf.utils.files import read_file from dynaconf.utils.files import read_file
-from dynaconf.vendor.click.testing import CliRunner -from dynaconf.vendor.click.testing import CliRunner
+from click.testing import CliRunner +from click.testing import CliRunner
settings = LazySettings(OPTION_FOR_TESTS=True, environments=True)
runner = CliRunner() diff --git a/tests/test_inspect.py b/tests/test_inspect.py
index 0819715..96638c1 100644
--- a/tests/test_inspect.py
+++ b/tests/test_inspect.py
@@ -18,7 +18,7 @@ from dynaconf.utils.inspect import inspect_settings
from dynaconf.utils.inspect import KeyNotFoundError
from dynaconf.utils.inspect import OutputFormatError
from dynaconf.validator import Validator
-from dynaconf.vendor.ruamel import yaml
+from ruamel import yaml
base-commit: ebf7b17cffd5e08b212948bd8036d580718d5bf8
def create_file(filename: str, data: str) -> str:
-- --
2.32.0 2.41.0

View File

@ -63,7 +63,7 @@
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019, 2020, 2021, 2022, 2023 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019, 2020, 2021, 2022, 2023 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com> ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
;;; Copyright © 2019-2021, 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2019-2021, 2023, 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2020, 2021, 2022 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2019, 2020, 2021, 2022 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2019, 2021-2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2019, 2021-2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
@ -33162,30 +33162,40 @@ Python @code{set} interface.")
(define-public dynaconf (define-public dynaconf
(package (package
(name "dynaconf") (name "dynaconf")
(version "3.1.7") (version "3.2.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (uri
(git-reference (git-reference
(url "https://github.com/rochacbruno/dynaconf") (url "https://github.com/dynaconf/dynaconf")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0pjyjsdzairpn5vq8nzddhxwxmr18grn272nj31wcy2ipwdl3c3h")) "0fj2ffvzfvjf4d7f672h5x5fzq26f8hax9j3dfsix158fwm0212w"))
(patches (search-patches "dynaconf-unvendor-deps.patch")) (patches (search-patches "dynaconf-unvendor-deps.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
;; Remove vendored dependencies ;; Remove vendored dependencies
(let ((unvendor '("click" "dotenv" "ruamel" "toml"))) (let ((unvendor '("click" "dotenv" "ruamel" "toml")))
(with-directory-excursion "dynaconf/vendor" (with-directory-excursion "dynaconf/vendor"
(for-each delete-file-recursively unvendor)) (for-each delete-file-recursively unvendor)))
(with-directory-excursion "dynaconf/vendor_src" ;; Lower coverage quality gate for unit tests
(for-each delete-file-recursively unvendor))))))) (substitute* ".coveragerc"
(build-system python-build-system) (("fail_under = 95") "fail_under = 50"))))))
(build-system pyproject-build-system)
(arguments (arguments
`(#:phases `(#:test-flags
'("-k"
,(let ((click-tests '("test_negative_get"
"test_inspect_invalid_format")))
;; Disable integration tests
(string-append "not integration and not "
;; These tests fail because we use Click 8.* instead of
;; Click 7
(string-join click-tests " and not "))))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-for-click-8 (add-after 'unpack 'patch-for-click-8
(lambda _ (lambda _
@ -33193,14 +33203,19 @@ Python @code{set} interface.")
(("click.get_os_args\\()") ;deprecated from Click 8.1+ (("click.get_os_args\\()") ;deprecated from Click 8.1+
"sys.argv[1:]")))) "sys.argv[1:]"))))
(replace 'check (replace 'check
(lambda* (#:key tests? outputs #:allow-other-keys) (lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests? (when tests?
;; These tests depend on hvac and a live Vault process. ;; These tests depend on hvac and a live Vault process.
(delete-file "tests/test_vault.py") (delete-file "tests/test_vault.py")
(invoke "make" "test_only"))))))) (apply invoke
`("py.test" ,@test-flags "-v"
"--cov-config" ".coveragerc"
"--cov=dynaconf"
"-l" "--tb=short"
"--maxfail=1" "tests/"))))))))
(propagated-inputs (propagated-inputs
(list python-click python-configobj python-dotenv-0.13.0 (list python-click python-configobj python-dotenv-0.13.0
python-ruamel.yaml python-toml)) python-ruamel.yaml python-toml python-tomli))
(native-inputs (native-inputs
(list python-django python-flask python-pytest python-pytest-cov (list python-django python-flask python-pytest python-pytest-cov
python-pytest-mock)) python-pytest-mock))