From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yJpwIvR5X2FPLwEAgWs5BA (envelope-from ) for ; Fri, 08 Oct 2021 00:51:32 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id INkaHvR5X2HkOQAAbx9fmQ (envelope-from ) for ; Thu, 07 Oct 2021 22:51:32 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id DFD61DB9A for ; Fri, 8 Oct 2021 00:51:31 +0200 (CEST) Received: from localhost ([::1]:52614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mYcEc-0001it-PZ for larch@yhetil.org; Thu, 07 Oct 2021 18:51:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35424) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mYcEB-0001ik-5H for guix-patches@gnu.org; Thu, 07 Oct 2021 18:51:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:37167) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mYcEA-0007Zl-TQ for guix-patches@gnu.org; Thu, 07 Oct 2021 18:51:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mYcEA-0002F2-Hp for guix-patches@gnu.org; Thu, 07 Oct 2021 18:51:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#49834] [PATCH 1/7] gnu: Add python-flake8-debugger. References: <20210802181359.10695-1-goodoldpaul@autistici.org> In-Reply-To: <20210802181359.10695-1-goodoldpaul@autistici.org> Resent-From: paul Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 07 Oct 2021 22:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49834 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 49834@debbugs.gnu.org Received: via spool by 49834-submit@debbugs.gnu.org id=B49834.16336470108544 (code B ref 49834); Thu, 07 Oct 2021 22:51:02 +0000 Received: (at 49834) by debbugs.gnu.org; 7 Oct 2021 22:50:10 +0000 Received: from localhost ([127.0.0.1]:48713 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mYcD8-0002D8-Jc for submit@debbugs.gnu.org; Thu, 07 Oct 2021 18:50:10 -0400 Received: from latitanza.investici.org ([82.94.249.234]:56257) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mYcD3-0002Cx-Mf for 49834@debbugs.gnu.org; Thu, 07 Oct 2021 18:49:57 -0400 Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4HQRNH1PQVzGp3B for <49834@debbugs.gnu.org>; Thu, 7 Oct 2021 22:49:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=autistici.org; s=stigmate; t=1633646991; bh=ObNvyAmLYw6+MI8iSrphy4rAmh6AE/KOju24G915NDE=; h=To:From:Subject:Date:From; b=clD6DPQ9dSp/11pAuMWrbUW5UpquzAm4Oblz7wP7LN6z0nKp0z0oMiCLWQ6ZWime0 pTdz7J6UE3t3yT2qXK8JuH2dRDPGwDz/2bClMErNgNU1ODLcfOPuB7TxCPTf+IX5BA 0IfZW3P/TZOXfbU9oNp5qo8ipPiVYC7BjxH/Wzmg= Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: goodoldpaul@autistici.org) by localhost (Postfix) with ESMTPSA id 4HQRNH0mk3zGp2l for <49834@debbugs.gnu.org>; Thu, 7 Oct 2021 22:49:51 +0000 (UTC) From: paul Message-ID: Date: Fri, 8 Oct 2021 00:49:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Icedove/78.13.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------BE1F5AB0007A6D954A8D221F" Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1633647092; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=ObNvyAmLYw6+MI8iSrphy4rAmh6AE/KOju24G915NDE=; b=AOgy9iqsdIQwF8lhV6QTNWFUpZ/tGrKj6Y6TiEHWIJHxEt4aGbNxtmhxuQiQKixAw9BkHP d+HY8s1fLQPIJXDCBlq3ta84jGE2XvRQRztLiDvnbW14SqvSOz6SQTmMr7N4cUwUfatpgl X8GYKe+czKBFen4pG+IsHLNj9HVQhb0vs0+taOGGTe4zk9cuqp/3ugjbDtUH8v8A4Uh1PK FP4hNh2dTQMi4OkB7ha63clbJI2wp8y5NhIbZXdcNgQt4G3wUJzf8FCvWzjK1EvfvOg88b 4uqxrJOzu4EjkQYN0fLs17CIIVm5MCa+Y4Oeq1g/yOUvYryltUUmr/+A+y9zlw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1633647092; a=rsa-sha256; cv=none; b=Or46cLT2QEynCKnX1rxUEBodlACmUCrYbHP63Fno2PAK/FHFjN0tZPnFhEpLxA/Sh1eX9F krhLpfI5sAsIrrucov/RsuefqRmWDEZXEZ5W83OQ0Q+64q5XWXx0kOFuH2sBKprILag7Er 563vrK7uGoDbn3v5mLzuJR3fZvWKtDHVs9UKeRXkXgNVFtTjWG+WvlPwvhKKQHqUDnBjAJ zS+rAnum/e/AEK1hJwMxTn0t16hguWX6WYE4ZQ5sCtRsUfQwHtURAoZppA9HYKmaOaWe95 TOp9DpbODQYNk9/2sjGsJKVvMRGn3xGdRVW8eWFreXbpXh59UecIfA2YaODGaw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=autistici.org header.s=stigmate header.b=clD6DPQ9; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 0.08 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=autistici.org header.s=stigmate header.b=clD6DPQ9; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: DFD61DB9A X-Spam-Score: 0.08 X-Migadu-Scanner: scn0.migadu.com X-TUID: W/PaynSnebsV This is a multi-part message in MIME format. --------------BE1F5AB0007A6D954A8D221F Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Dear guixers, this is a friendly ping :) . I'm attaching the patch set rebased on=20 current master. Thank you for your time, paul --------------BE1F5AB0007A6D954A8D221F Content-Type: text/x-patch; charset=UTF-8; name="0001-gnu-Add-python-dotenv.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-gnu-Add-python-dotenv.patch" =46rom 4a85671eb566603b37a63b7c3c365d7474974df4 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 30 Aug 2021 00:19:23 +0200 Subject: [PATCH 1/4] gnu: Add python-dotenv. * gnu/packages/python-xyz.scm (python-dotenv): New variable. --- gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index fa4b11511a..d4f4dc1a7c 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -26937,6 +26937,33 @@ objects in the combined source, and how they def= ine or use each other. The graph can be output for rendering by GraphViz or yEd.") (license license:gpl2))) =20 +(define-public python-dotenv + (package + (name "python-dotenv") + (version "0.19.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-dotenv" version)) + (sha256 + (base32 + "0wk1kfzbpqk9swvmpa9z3q170ffqql2id4b2dxrkrq58r4mbq8gm")))) + (build-system python-build-system) + (propagated-inputs + `(("python-click" ,python-click))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-sh" ,python-sh))) + (home-page + "https://github.com/theskumar/python-dotenv") + (synopsis + "Setup environment variables according to .env files") + (description + "This package provides the @code{python-dotenv} Python module to +read key-value pairs from a .env file and set them as environment variab= les") + (license license:bsd-3))) + (define-public date2name (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798") (revision "1")) base-commit: 34baab7a7b66610b592a1e5703470c75a1e06c7f --=20 2.33.0 --------------BE1F5AB0007A6D954A8D221F Content-Type: text/x-patch; charset=UTF-8; name="0002-gnu-python-ruamel.yaml-Update-to-0.17.10.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0002-gnu-python-ruamel.yaml-Update-to-0.17.10.patch" =46rom 2f4488be2881a5db9921f5d847ab088d4095886b Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Tue, 29 Jun 2021 22:29:43 +0200 Subject: [PATCH 2/4] gnu: python-ruamel.yaml: Update to 0.17.10. * gnu/packages/serialization.scm (python-ruamel.yaml): Update to 0.17.10.= --- gnu/packages/serialization.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.= scm index 196141ace8..e6b95ebf53 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -519,14 +519,14 @@ it is comparable to protobuf.") (define-public python-ruamel.yaml (package (name "python-ruamel.yaml") - (version "0.15.83") + (version "0.17.10") (source (origin (method url-fetch) (uri (pypi-uri "ruamel.yaml" version)) (sha256 (base32 - "0p4i8ad28cbbbjja8b9274irkhnphhvhap3aym6yb8xfp1d72kpw")))) + "0rwywdbmy20qwssccydpaval2vq36825fiva374zf3vavkbchsqh")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) --=20 2.33.0 --------------BE1F5AB0007A6D954A8D221F Content-Type: text/x-patch; charset=UTF-8; name="0003-gnu-Add-python-dotenv-0.13.0.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0003-gnu-Add-python-dotenv-0.13.0.patch" =46rom 736d84af3b33e76839919c7b66536fe80b34b3f0 Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Sun, 29 Aug 2021 23:05:27 +0200 Subject: [PATCH 3/4] gnu: Add python-dotenv-0.13.0. * gnu/packages/python-xyz.scm (python-dotenv-0.13.0): New variable. --- gnu/packages/python-xyz.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d4f4dc1a7c..6157913e09 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -26964,6 +26964,18 @@ graph can be output for rendering by GraphViz or= yEd.") read key-value pairs from a .env file and set them as environment variab= les") (license license:bsd-3))) =20 +(define-public python-dotenv-0.13.0 + (package (inherit python-dotenv) + (name "python-dotenv") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-dotenv" version)) + (sha256 + (base32 + "0x5dagmfn31phrbxlwacw3s4w5vibv8fxqc62nqcdvdhjsy0k69v")))))) + (define-public date2name (let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798") (revision "1")) --=20 2.33.0 --------------BE1F5AB0007A6D954A8D221F Content-Type: text/x-patch; charset=UTF-8; name="0004-gnu-Add-dynaconf.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0004-gnu-Add-dynaconf.patch" =46rom b52c89dd7599e19b8e6830f9bad313cfad07ac7f Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Mon, 30 Aug 2021 00:23:27 +0200 Subject: [PATCH 4/4] gnu: Add dynaconf. * gnu/packages/python-xyz.scm (dynaconf): New variable. * gnu/packages/patches/dynaconf-Unvendor-dependencies.patch: New file. * local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + .../dynaconf-Unvendor-dependencies.patch | 180 ++++++++++++++++++ gnu/packages/python-xyz.scm | 75 +++++++- 3 files changed, 255 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/dynaconf-Unvendor-dependencies.p= atch diff --git a/gnu/local.mk b/gnu/local.mk index 91915e780b..f85435600f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -990,6 +990,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ + %D%/packages/patches/dynaconf-Unvendor-dependencies.patch \ %D%/packages/patches/ecl-16-format-directive-limit.patch \ %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \ %D%/packages/patches/ecl-16-libffi.patch \ diff --git a/gnu/packages/patches/dynaconf-Unvendor-dependencies.patch b/= gnu/packages/patches/dynaconf-Unvendor-dependencies.patch new file mode 100644 index 0000000000..a379b1f00c --- /dev/null +++ b/gnu/packages/patches/dynaconf-Unvendor-dependencies.patch @@ -0,0 +1,180 @@ +From 3f7b48195500cbbbbecd3cac2f5308c64004479b Mon Sep 17 00:00:00 2001 +From: Giacomo Leidi +Date: Sun, 29 Aug 2021 23:39:27 +0200 +Subject: [PATCH] Use system site dependencies. + +Box was not unvendored because it appears to be heavily patched. +--- + dynaconf/cli.py | 4 ++-- + dynaconf/default_settings.py | 2 +- + dynaconf/loaders/env_loader.py | 2 +- + dynaconf/loaders/toml_loader.py | 2 +- + dynaconf/loaders/yaml_loader.py | 2 +- + dynaconf/utils/parse_conf.py | 2 +- + dynaconf/vendor/box/converters.py | 4 ++-- + dynaconf/vendor/box/from_file.py | 4 ++-- + dynaconf/vendor_src/box/converters.py | 4 ++-- + dynaconf/vendor_src/box/from_file.py | 4 ++-- + tests/test_cli.py | 2 +- + 11 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/dynaconf/cli.py b/dynaconf/cli.py +index 5bb8316..1341a95 100644 +--- a/dynaconf/cli.py ++++ b/dynaconf/cli.py +@@ -20,8 +20,8 @@ from dynaconf.utils.functional import empty + from dynaconf.utils.parse_conf import parse_conf_data + from dynaconf.validator import ValidationError + from dynaconf.validator import Validator +-from dynaconf.vendor import click +-from dynaconf.vendor import toml ++import click ++import toml +=20 +=20 + CWD =3D Path.cwd() +diff --git a/dynaconf/default_settings.py b/dynaconf/default_settings.py= +index 66601b0..9605fc5 100644 +--- a/dynaconf/default_settings.py ++++ b/dynaconf/default_settings.py +@@ -8,7 +8,7 @@ from dynaconf.utils import upperfy + from dynaconf.utils import warn_deprecations + from dynaconf.utils.files import find_file + from dynaconf.utils.parse_conf import parse_conf_data +-from dynaconf.vendor.dotenv import load_dotenv ++from dotenv import load_dotenv +=20 +=20 + def try_renamed(key, value, older_key, current_key): +diff --git a/dynaconf/loaders/env_loader.py b/dynaconf/loaders/env_loade= r.py +index e7b13bd..b034c8a 100644 +--- a/dynaconf/loaders/env_loader.py ++++ b/dynaconf/loaders/env_loader.py +@@ -2,7 +2,7 @@ from os import environ +=20 + from dynaconf.utils import upperfy + from dynaconf.utils.parse_conf import parse_conf_data +-from dynaconf.vendor.dotenv import cli as dotenv_cli ++from dotenv import cli as dotenv_cli +=20 +=20 + IDENTIFIER =3D "env" +diff --git a/dynaconf/loaders/toml_loader.py b/dynaconf/loaders/toml_loa= der.py +index 07b973f..d81d675 100644 +--- a/dynaconf/loaders/toml_loader.py ++++ b/dynaconf/loaders/toml_loader.py +@@ -5,7 +5,7 @@ from dynaconf import default_settings + from dynaconf.constants import TOML_EXTENSIONS + from dynaconf.loaders.base import BaseLoader + from dynaconf.utils import object_merge +-from dynaconf.vendor import toml ++import toml +=20 +=20 + def load(obj, env=3DNone, silent=3DTrue, key=3DNone, filename=3DNone): +diff --git a/dynaconf/loaders/yaml_loader.py b/dynaconf/loaders/yaml_loa= der.py +index 33c6532..3ef419a 100644 +--- a/dynaconf/loaders/yaml_loader.py ++++ b/dynaconf/loaders/yaml_loader.py +@@ -7,7 +7,7 @@ from dynaconf.constants import YAML_EXTENSIONS + from dynaconf.loaders.base import BaseLoader + from dynaconf.utils import object_merge + from dynaconf.utils.parse_conf import try_to_encode +-from dynaconf.vendor.ruamel import yaml ++from ruamel import yaml +=20 + # Add support for Dynaconf Lazy values to YAML dumper + yaml.SafeDumper.yaml_representers[ +diff --git a/dynaconf/utils/parse_conf.py b/dynaconf/utils/parse_conf.py= +index c42b07a..01ccdae 100644 +--- a/dynaconf/utils/parse_conf.py ++++ b/dynaconf/utils/parse_conf.py +@@ -9,7 +9,7 @@ from dynaconf.utils import isnamedtupleinstance + from dynaconf.utils import multi_replace + from dynaconf.utils import recursively_evaluate_lazy_format + from dynaconf.utils.boxing import DynaBox +-from dynaconf.vendor import toml ++import toml +=20 + try: + from jinja2 import Environment +diff --git a/dynaconf/vendor/box/converters.py b/dynaconf/vendor/box/con= verters.py +index 93cdcfb..e34c7dc 100644 +--- a/dynaconf/vendor/box/converters.py ++++ b/dynaconf/vendor/box/converters.py +@@ -7,9 +7,9 @@ _B=3D'utf-8' + _A=3DNone + 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=3D'default_box','default_box_attr','conversion_box','fro= zen_box','camel_killer_box','box_safe_prefix','box_duplicates','ordered_b= ox','default_box_none_transform','box_dots','modify_tuples_box','box_inta= ct_types','box_recast' + def _exists(filename,create=3D_E): + A=3Dfilename;B=3DPath(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 + from pathlib import Path +=20 +-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 +=20 +=20 + BOX_PARAMETERS =3D ('default_box', 'default_box_attr', 'conversion_box'= , +diff --git a/dynaconf/vendor_src/box/from_file.py b/dynaconf/vendor_src/= box/from_file.py +index 2e2a6ad..3f76819 100644 +--- a/dynaconf/vendor_src/box/from_file.py ++++ b/dynaconf/vendor_src/box/from_file.py +@@ -3,8 +3,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 +=20 +=20 + from .exceptions import BoxError +diff --git a/tests/test_cli.py b/tests/test_cli.py +index 6693701..df44409 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -11,7 +11,7 @@ from dynaconf.cli import main + from dynaconf.cli import read_file_in_root_directory + from dynaconf.cli import WRITERS + from dynaconf.utils.files import read_file +-from dynaconf.vendor.click.testing import CliRunner ++from click.testing import CliRunner +=20 +=20 + runner =3D CliRunner() + +base-commit: ebf7b17cffd5e08b212948bd8036d580718d5bf8 +--=20 +2.32.0 + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 6157913e09..5e48543f3d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -63,7 +63,7 @@ ;;; Copyright =C2=A9 2019, 2020 Alex Griffin ;;; Copyright =C2=A9 2019, 2020, 2021 Pierre Langlois ;;; Copyright =C2=A9 2019 Jacob MacDonald -;;; Copyright =C2=A9 2019, 2020 Giacomo Leidi +;;; Copyright =C2=A9 2019, 2020, 2021 Giacomo Leidi ;;; Copyright =C2=A9 2019 Wiktor =C5=BBelazny ;;; Copyright =C2=A9 2019, 2020, 2021 Tanguy Le Carrour ;;; Copyright =C2=A9 2019, 2021 M=C4=83d=C4=83lin Ionel Patra=C8=99cu @@ -138,6 +138,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) + #:use-module (gnu packages django) #:use-module (gnu packages dbm) #:use-module (gnu packages djvu) #:use-module (gnu packages docker) @@ -27327,3 +27328,75 @@ and powerful way to handle real-world data, feat= uring: "This package provides the @code{python-box} Python module. It implements advanced Python dictionaries with dot notation access.") (license license:expat))) + +(define-public dynaconf + (package + (name "dynaconf") + (version "3.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rochacbruno/dynaconf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hxp1iadwmva79l16frvc77jrisppb09z6k1asm0qfjjzwyaswg3")) + (patches (search-patches "dynaconf-Unvendor-dependencies.patch"))= + (modules '((guix build utils))) + (snippet '(begin + ;; Remove vendored dependencies + (let ((unvendor '("click" "dotenv" "ruamel" "toml")))= + (with-directory-excursion "dynaconf/vendor" + (for-each delete-file-recursively unvendor)) + (with-directory-excursion "dynaconf/vendor_src" + (for-each delete-file-recursively unvendor)))))))= + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? outputs #:allow-other-keys) + (when tests? + (setenv "PATH" + (string-append (assoc-ref outputs "out") "/bin:" + (getenv "PATH"))) + ;; These tests depend on hvac and a + ;; live Vault process. + (delete-file "tests/test_vault.py") + (invoke "make" "test_only"))))))) + (propagated-inputs + `(("python-click" ,python-click) + ("python-configobj" ,python-configobj) + ("python-dotenv" ,python-dotenv-0.13.0) + ("python-ruamel.yaml" ,python-ruamel.yaml) + ("python-toml" ,python-toml))) + (native-inputs + `(("python-django" ,python-django) + ("python-flask" ,python-flask) + ("python-pytest" ,python-pytest-6) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-mock" ,python-pytest-mock))) + (home-page "https://www.dynaconf.com/") + (synopsis "The dynamic configurator for your Python project") + (description + "This package provides @code{dynaconf} the dynamic configurator man= ager for +your Python project. It provides features such as: + +@itemize +@item Inspired by the @url{https://12factor.net/config, 12-factor applic= ation guide}; +@item Settings management (default values, validation, parsing, templati= ng); +@item Protection of sensitive information (passwords/tokens); +@item Multiple file formats @code{toml|yaml|json|ini|py} and also custom= izable +loaders; +@item Full support for environment variables to override existing settin= gs +(dotenv support included); +@item Optional layered system for multiple environments @code{[default, +development, testing, production]}; +@item Built-in support for Hashicorp Vault and Redis as settings and sec= rets storage; +@item Built-in extensions for Django and Flask web frameworks; +@item CLI for common operations such as @code{init, list, write, validat= e, export}. +@end itemize") + (license license:expat))) --=20 2.33.0 --------------BE1F5AB0007A6D954A8D221F--