Prevent infinite recursion for setuptools-scm extras

This commit is contained in:
adisbladis 2020-01-28 19:42:14 +00:00
parent 3ca47a1220
commit 1ffabaa066
No known key found for this signature in database
GPG key ID: 110BFAD44C6249B7
6 changed files with 73 additions and 1 deletions

View file

@ -83,7 +83,13 @@ pythonPackages.callPackage (
else (builtins.elemAt (lib.strings.splitString "-" name) 2);
};
baseBuildInputs = lib.optional (name != "setuptools_scm" && name != "setuptools-scm") pythonPackages.setuptools-scm;
# Prevent infinite recursion
skipSetupToolsSCM = [
"setuptools_scm"
"setuptools-scm"
"toml" # Toml is an extra for setuptools-scm
];
baseBuildInputs = lib.optional (! lib.elem name skipSetupToolsSCM) pythonPackages.setuptools-scm;
format = if isLocal then "pyproject" else if isGit then "setuptools" else fileInfo.format;

View file

@ -31,6 +31,7 @@ builtins.removeAttrs
};
pyqt5 = pkgs.callPackage ./pyqt5 { inherit poetry2nix; };
eggs = pkgs.callPackage ./eggs { inherit poetry2nix; };
extras = pkgs.callPackage ./extras { inherit poetry2nix; };
# Test building poetry
inherit poetry;

8
tests/extras/default.nix Normal file
View file

@ -0,0 +1,8 @@
{ lib, poetry2nix, python3 }:
poetry2nix.mkPoetryApplication {
python = python3;
pyproject = ./pyproject.toml;
poetrylock = ./poetry.lock;
src = lib.cleanSource ./.;
}

0
tests/extras/extras.py Normal file
View file

44
tests/extras/poetry.lock generated Normal file
View file

@ -0,0 +1,44 @@
[[package]]
category = "main"
description = "the blessed package to manage your versions by scm tags"
name = "setuptools-scm"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "3.4.3"
[package.dependencies]
[package.dependencies.toml]
optional = true
version = "*"
[package.extras]
toml = ["toml"]
[[package]]
category = "main"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
optional = false
python-versions = "*"
version = "0.10.0"
[metadata]
content-hash = "bf0b62435a48cd69b82b30553f74e7eb13edda95279f1815dd3fbd927042b213"
python-versions = "^3.6"
[metadata.files]
setuptools-scm = [
{file = "setuptools_scm-3.4.3-py2.7.egg", hash = "sha256:88c6c749256801da389dc8ec7ea09789dde340c6d03ac8bb4c98b99c0619de63"},
{file = "setuptools_scm-3.4.3-py2.py3-none-any.whl", hash = "sha256:f7a5091d8de1b1491068623e9acbe7e881d62986e4c0af7f361424622902ff08"},
{file = "setuptools_scm-3.4.3-py3.4.egg", hash = "sha256:6ca1cda5f6791ee2505d8eff675089f6c2ab9e261d8eb86df644b4be06b83aa6"},
{file = "setuptools_scm-3.4.3-py3.5.egg", hash = "sha256:004e9725f96dcdf24db60b633027b378eaffcdb3a73f2f1c045084b1051d0ef0"},
{file = "setuptools_scm-3.4.3-py3.6.egg", hash = "sha256:0331d6da7598e5619ebd582acc0b7e775d04c1897c50df12838208b7a637661d"},
{file = "setuptools_scm-3.4.3-py3.7.egg", hash = "sha256:855349a23a12d955019fddfcf3fc71d3f30e7ea621545a543b92ef23ff2ffb5c"},
{file = "setuptools_scm-3.4.3-py3.8.egg", hash = "sha256:cf444db465cf96bf775bde122f2ea54c39303c2d1b1dc994f1139bb5c67673bd"},
{file = "setuptools_scm-3.4.3.tar.gz", hash = "sha256:26b8a108783cd88f4b15ff1f0f347d6b476db25d0c226159b835d713f9487320"},
]
toml = [
{file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"},
{file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"},
{file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"},
]

View file

@ -0,0 +1,13 @@
[tool.poetry]
name = "extras"
version = "0.1.0"
description = "poetry2nix test"
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.6"
setuptools-scm = { version = "^3.4", extras = ["toml"] }
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"