mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 07:13:23 +01:00
poetry: 0.12.17 -> 1.0.0
This commit is contained in:
parent
ded1080db4
commit
54928f92ac
4 changed files with 2072 additions and 1 deletions
65
pkgs/development/tools/poetry/default.nix
Normal file
65
pkgs/development/tools/poetry/default.nix
Normal file
|
@ -0,0 +1,65 @@
|
|||
{ lib, poetry2nix, python, fetchFromGitHub, runtimeShell }:
|
||||
|
||||
poetry2nix.mkPoetryApplication {
|
||||
|
||||
inherit python;
|
||||
|
||||
pyproject = ./pyproject.toml;
|
||||
poetrylock = ./poetry.lock;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sdispater";
|
||||
repo = "poetry";
|
||||
rev = "1.0.0";
|
||||
sha256 = "05xlx9wnlrsjj3i4wawnvxadvqwsdh03401wpgingkbq0c50aimi";
|
||||
};
|
||||
|
||||
# "Vendor" dependencies (for build-system support)
|
||||
postPatch = ''
|
||||
for path in ''${PYTHONPATH//:/ }; do
|
||||
echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py
|
||||
done
|
||||
'';
|
||||
|
||||
# Poetry is a bit special in that it can't use itself as the `build-system` property in pyproject.toml.
|
||||
# That's why we need to hackily install outputs completely manually.
|
||||
#
|
||||
# For projects using poetry normally overriding the installPhase is not required.
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib/${python.libPrefix}/site-packages
|
||||
cp -r poetry $out/lib/${python.libPrefix}/site-packages
|
||||
|
||||
mkdir -p $out/bin
|
||||
cat > $out/bin/poetry <<EOF
|
||||
#!${runtimeShell}
|
||||
export PYTHONPATH=$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH
|
||||
exec ${python.interpreter} -m poetry "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/poetry
|
||||
|
||||
mkdir -p "$out/share/bash-completion/completions"
|
||||
"$out/bin/poetry" completions bash > "$out/share/bash-completion/completions/poetry"
|
||||
mkdir -p "$out/share/zsh/vendor-completions"
|
||||
"$out/bin/poetry" completions zsh > "$out/share/zsh/vendor-completions/_poetry"
|
||||
mkdir -p "$out/share/fish/vendor_completions.d"
|
||||
"$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Propagating dependencies leads to issues downstream
|
||||
# We've already patched poetry to prefer "vendored" dependencies
|
||||
postFixup = ''
|
||||
rm $out/nix-support/propagated-build-inputs
|
||||
'';
|
||||
|
||||
# Fails because of impurities (network, git etc etc)
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ adisbladis jakewaksbaum ];
|
||||
};
|
||||
}
|
1886
pkgs/development/tools/poetry/poetry.lock
generated
Normal file
1886
pkgs/development/tools/poetry/poetry.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
118
pkgs/development/tools/poetry/pyproject.toml
Normal file
118
pkgs/development/tools/poetry/pyproject.toml
Normal file
|
@ -0,0 +1,118 @@
|
|||
[tool.poetry]
|
||||
name = "poetry"
|
||||
version = "1.0.0"
|
||||
description = "Python dependency management and packaging made easy."
|
||||
authors = [
|
||||
"Sébastien Eustace <sebastien@eustace.io>"
|
||||
]
|
||||
license = "MIT"
|
||||
|
||||
readme = "README.md"
|
||||
|
||||
homepage = "https://python-poetry.org/"
|
||||
repository = "https://github.com/python-poetry/poetry"
|
||||
documentation = "https://python-poetry.org/docs"
|
||||
|
||||
keywords = ["packaging", "dependency", "poetry"]
|
||||
|
||||
classifiers = [
|
||||
"Topic :: Software Development :: Build Tools",
|
||||
"Topic :: Software Development :: Libraries :: Python Modules"
|
||||
]
|
||||
|
||||
# Requirements
|
||||
[tool.poetry.dependencies]
|
||||
python = "~2.7 || ^3.4"
|
||||
cleo = "^0.7.6"
|
||||
clikit = "^0.4.1"
|
||||
requests = "^2.18"
|
||||
cachy = "^0.3.0"
|
||||
requests-toolbelt = "^0.8.0"
|
||||
jsonschema = "^3.1"
|
||||
pyrsistent = "^0.14.2"
|
||||
pyparsing = "^2.2"
|
||||
cachecontrol = { version = "^0.12.4", extras = ["filecache"] }
|
||||
pkginfo = "^1.4"
|
||||
html5lib = "^1.0"
|
||||
shellingham = "^1.1"
|
||||
tomlkit = "^0.5.8"
|
||||
pexpect = "^4.7.0"
|
||||
|
||||
# The typing module is not in the stdlib in Python 2.7 and 3.4
|
||||
typing = { version = "^3.6", python = "~2.7 || ~3.4" }
|
||||
|
||||
# Use pathlib2 for Python 2.7 and 3.4
|
||||
pathlib2 = { version = "^2.3", python = "~2.7 || ~3.4" }
|
||||
# Use glob2 for Python 2.7 and 3.4
|
||||
glob2 = { version = "^0.6", python = "~2.7 || ~3.4" }
|
||||
# Use virtualenv for Python 2.7 since venv does not exist
|
||||
virtualenv = { version = "^16.0", python = "~2.7" }
|
||||
# functools32 is needed for Python 2.7
|
||||
functools32 = { version = "^3.2.3", python = "~2.7" }
|
||||
keyring = [
|
||||
{ version = "^18.0", python = "~2.7 || ~3.4" },
|
||||
{ version = "^19.0", python = "^3.5" }
|
||||
]
|
||||
# Use subprocess32 for Python 2.7 and 3.4
|
||||
subprocess32 = { version = "^3.5", python = "~2.7 || ~3.4" }
|
||||
importlib-metadata = {version = "^0.23", python = "<3.8"}
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^4.1"
|
||||
pytest-cov = "^2.5"
|
||||
mkdocs = { version = "^1.0", python = "~2.7.9 || ^3.4" }
|
||||
pymdown-extensions = "^6.0"
|
||||
pygments = "^2.2"
|
||||
pytest-mock = "^1.9"
|
||||
pygments-github-lexers = "^0.0.5"
|
||||
black = { version = "^19.10b0", python = "^3.6" }
|
||||
pre-commit = "^1.10"
|
||||
tox = "^3.0"
|
||||
pytest-sugar = "^0.9.2"
|
||||
httpretty = "^0.9.6"
|
||||
markdown-include = "^0.5.1"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
poetry = "poetry.console:main"
|
||||
|
||||
|
||||
[build-system]
|
||||
requires = ["intreehooks"]
|
||||
build-backend = "intreehooks:loader"
|
||||
|
||||
[tool.intreehooks]
|
||||
build-backend = "poetry.masonry.api"
|
||||
|
||||
|
||||
[tool.isort]
|
||||
line_length = 88
|
||||
force_single_line = true
|
||||
atomic = true
|
||||
include_trailing_comma = true
|
||||
lines_after_imports = 2
|
||||
lines_between_types = 1
|
||||
multi_line_output = 3
|
||||
use_parentheses = true
|
||||
not_skip = "__init__.py"
|
||||
skip_glob = ["*/setup.py"]
|
||||
filter_files = true
|
||||
|
||||
known_first_party = "poetry"
|
||||
known_third_party = [
|
||||
"cachecontrol",
|
||||
"cachy",
|
||||
"cleo",
|
||||
"clikit",
|
||||
"html5lib",
|
||||
"httpretty",
|
||||
"jsonschema",
|
||||
"keyring",
|
||||
"pexpect",
|
||||
"pkginfo",
|
||||
"pyparsing",
|
||||
"pytest",
|
||||
"requests",
|
||||
"requests_toolbelt",
|
||||
"shellingham",
|
||||
"tomlkit",
|
||||
]
|
|
@ -9297,7 +9297,9 @@ in
|
|||
|
||||
pew = callPackage ../development/tools/pew {};
|
||||
|
||||
poetry = with python3Packages; toPythonApplication poetry;
|
||||
poetry = callPackage ../development/tools/poetry {
|
||||
python = python3;
|
||||
};
|
||||
poetry2nix = callPackage ../development/tools/poetry2nix/poetry2nix {
|
||||
inherit pkgs lib;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue