diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix index 6489a23c37d..f42ee6b79cc 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix @@ -5,7 +5,7 @@ }: let # Poetry2nix version - version = "1.27.1"; + version = "1.28.0"; inherit (poetryLib) isCompatible readTOML moduleName; @@ -287,12 +287,20 @@ lib.makeScope pkgs.newScope (self: { (name: value: projectDir + "/${value.path}") (lib.filterAttrs (name: dep: dep.develop or false && hasAttr "path" dep) set); - editablePackageSources' = ( + excludedEditablePackageNames = builtins.filter + (pkg: editablePackageSources."${pkg}" == null) + (builtins.attrNames editablePackageSources); + + allEditablePackageSources = ( (getEditableDeps (pyProject.tool.poetry."dependencies" or { })) // (getEditableDeps (pyProject.tool.poetry."dev-dependencies" or { })) // editablePackageSources ); + editablePackageSources' = builtins.removeAttrs + allEditablePackageSources + excludedEditablePackageNames; + poetryPython = self.mkPoetryPackages { inherit pyproject poetrylock overrides python pwd preferWheels pyProject; editablePackageSources = editablePackageSources'; diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix index a905d302d2a..b5bf0c975e0 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix @@ -180,7 +180,7 @@ let hasGitIgnore = builtins.pathExists gitIgnore; gitIgnores = if hasGitIgnore then [ gitIgnore ] else [ ]; in - lib.optionals (builtins.toString path != "/" && ! isGitRoot) (findGitIgnores parent) ++ gitIgnores; + lib.optionals (builtins.pathExists path && builtins.toString path != "/" && ! isGitRoot) (findGitIgnores parent) ++ gitIgnores; /* Provides a source filtering mechanism that: diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json index e3c74473b8c..e4d64b05b99 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json @@ -29,6 +29,9 @@ "aioflo": [ "poetry-core" ], + "aiogithubapi": [ + "poetry-core" + ], "aioguardian": [ "poetry-core" ], @@ -89,9 +92,21 @@ "amqtt": [ "poetry-core" ], + "ansible-doctor": [ + "poetry-core" + ], + "ansible-later": [ + "poetry-core" + ], + "ansible-runner": [ + "pbr" + ], "apache-beam": [ "cython" ], + "aplpy": [ + "cython" + ], "argon2_cffi": [ "flitBuildHook" ], @@ -114,15 +129,24 @@ "atomman": [ "cython" ], + "atpublic": [ + "pdm-pep517" + ], "autarco": [ "poetry-core" ], "authcaptureproxy": [ "poetry-core" ], + "av": [ + "cython" + ], "awesomeversion": [ "poetry-core" ], + "aws-adfs": [ + "poetry-core" + ], "aws-error-utils": [ "poetry" ], @@ -147,6 +171,9 @@ "boltztrap2": [ "cython" ], + "bsblan": [ + "poetry-core" + ], "build": [ "flit-core" ], @@ -183,6 +210,9 @@ "clikit": [ "poetry-core" ], + "cloudflare-dyndns": [ + "poetry" + ], "collections-extended": [ "poetry-core" ], @@ -210,7 +240,8 @@ "poetry-core" ], "cssselect2": [ - "flit" + "flit", + "flit-core" ], "cwcwidth": [ "cython" @@ -224,9 +255,15 @@ "cypari2": [ "cython" ], + "cypherpunkpay": [ + "poetry-core" + ], "cysignals": [ "cython" ], + "datadog": [ + "hatchling" + ], "datrie": [ "cython" ], @@ -260,6 +297,9 @@ "doc8": [ "pbr" ], + "docstring-parser": [ + "poetry-core" + ], "dtlssocket": [ "cython" ], @@ -301,7 +341,8 @@ "poetry-core" ], "entrypoints": [ - "flit" + "flit", + "flit-core" ], "enturclient": [ "poetry-core" @@ -309,6 +350,13 @@ "enumatch": [ "poetry" ], + "exceptiongroup": [ + "flit-core", + "flitBuildHook" + ], + "falcon": [ + "cython" + ], "fastapi": [ "flitBuildHook" ], @@ -378,6 +426,9 @@ "generic": [ "poetry-core" ], + "gensim": [ + "cython" + ], "glances-api": [ "poetry-core" ], @@ -492,9 +543,15 @@ "ipwhl": [ "flitBuildHook" ], + "iso8601": [ + "poetry-core" + ], "isort": [ "poetry-core" ], + "jarowinkler": [ + "cython" + ], "jedi-language-server": [ "poetry" ], @@ -519,6 +576,12 @@ "jupyterlab": [ "jupyter-packaging" ], + "jupyterlab-code-formatter": [ + "jupyter-packaging" + ], + "jupyterlab-pygments": [ + "jupyter-packaging" + ], "keystoneauth1": [ "pbr" ], @@ -537,6 +600,9 @@ "ldappool": [ "pbr" ], + "levenshtein": [ + "cython" + ], "libgpuarray": [ "cython" ], @@ -564,6 +630,9 @@ "lockfile": [ "pbr" ], + "lsassy": [ + "poetry-core" + ], "luftdaten": [ "poetry-core" ], @@ -585,6 +654,9 @@ "marisa-trie": [ "cython" ], + "markdown-it-py": [ + "flit-core" + ], "mask-rcnn": [ "cython" ], @@ -607,6 +679,9 @@ "memory-allocator": [ "cython" ], + "meteofrance-api": [ + "poetry" + ], "metprint": [ "poetry-core" ], @@ -618,6 +693,7 @@ "poetry" ], "mkdocs-jupyter": [ + "ipython_genutils", "poetry-core" ], "mkdocs-literate-nav": [ @@ -674,6 +750,9 @@ "netdata": [ "poetry-core" ], + "netutils": [ + "poetry-core" + ], "newversion": [ "poetry-core" ], @@ -689,6 +768,9 @@ "nkdfu": [ "flitBuildHook" ], + "notebook-shim": [ + "jupyter-packaging" + ], "notus-scanner": [ "poetry-core" ], @@ -728,6 +810,9 @@ "openvino": [ "cython" ], + "ordered-set": [ + "flit-core" + ], "ormar": [ "poetry-core" ], @@ -807,6 +892,9 @@ "poetry": [ "poetry-core" ], + "poetry-dynamic-versioning": [ + "poetry-core" + ], "poetry2conda": [ "poetry" ], @@ -930,6 +1018,9 @@ "pymaven-patch": [ "pbr" ], + "pymdown-extensions": [ + "hatchling" + ], "pymfy": [ "poetry-core" ], @@ -954,6 +1045,9 @@ "pyoverkiz": [ "poetry-core" ], + "pyparsing": [ + "flit-core" + ], "pypass": [ "pbr" ], @@ -978,12 +1072,21 @@ "pyproject-flake8": [ "flit-core" ], + "pypsrp": [ + "poetry-core" + ], "pyquil": [ "poetry-core" ], + "pyrad": [ + "poetry-core" + ], "pyregion": [ "cython" ], + "pyrevolve": [ + "cython" + ], "pyrmvtransport": [ "flit" ], @@ -999,6 +1102,9 @@ "pysigma": [ "poetry-core" ], + "pysigma-backend-insightidr": [ + "poetry-core" + ], "pysigma-backend-splunk": [ "poetry-core" ], @@ -1008,14 +1114,30 @@ "pysigma-pipeline-sysmon": [ "poetry-core" ], + "pysigma-pipeline-windows": [ + "poetry-core" + ], + "pyslurm": [ + "cython" + ], "pysmf": [ "cython" ], "pysml": [ "poetry-core" ], + "pysnmp-pyasn1": [ + "poetry-core" + ], + "pysnmp-pysmi": [ + "poetry-core" + ], + "pysnmplib": [ + "poetry-core" + ], "pysnow": [ - "poetry" + "poetry", + "poetry-core" ], "pysptk": [ "cython" @@ -1035,6 +1157,9 @@ "pytest-httpserver": [ "poetry-core" ], + "pytest-isort": [ + "poetry-core" + ], "pytest-mockservers": [ "poetry-core" ], @@ -1097,6 +1222,9 @@ "python-openstackclient": [ "pbr" ], + "python-pae": [ + "poetry-core" + ], "python-pkcs11": [ "cython" ], @@ -1215,7 +1343,8 @@ "poetry-core" ], "rokuecp": [ - "poetry" + "poetry", + "poetry-core" ], "roombapy": [ "poetry-core" @@ -1280,6 +1409,9 @@ "sentinel": [ "poetry-core" ], + "seventeentrack": [ + "poetry-core" + ], "sfepy": [ "cython" ], @@ -1301,9 +1433,15 @@ "slowapi": [ "poetry-core" ], + "socksio": [ + "flit-core" + ], "solo-python": [ "flitBuildHook" ], + "soupsieve": [ + "hatchling" + ], "spacy-pkuseg": [ "cython" ], @@ -1425,7 +1563,8 @@ "cython" ], "testpath": [ - "flit" + "flit", + "flit-core" ], "testrepository": [ "pbr" @@ -1505,6 +1644,9 @@ "typing-extensions": [ "flit-core" ], + "uharfbuzz": [ + "cython" + ], "unpaddedbase64": [ "poetry-core" ], @@ -1550,8 +1692,14 @@ "yoda": [ "cython" ], + "yte": [ + "poetry-core" + ], "zeversolarlocal": [ "flit-core", "flitBuildHook" + ], + "zwave-me-ws": [ + "poetry-core" ] } diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix index 5439f1814dc..a04e2d65385 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/default.nix @@ -8,13 +8,14 @@ let { self , drv , attr + , extraAttrs ? [ ] }: let buildSystem = if attr == "cython" then self.python.pythonForBuild.pkgs.cython else self.${attr}; in ( # Flit only works on Python3 - if (attr == "flit-core" || attr == "flit") && !self.isPy3k then drv + if (attr == "flit-core" || attr == "flit" || attr == "hatchling") && !self.isPy3k then drv else drv.overridePythonAttrs ( old: @@ -23,7 +24,7 @@ let { } else { - nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.${attr} ]; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.${attr} ] ++ map (a: self.${a}) extraAttrs; } ) ); @@ -55,6 +56,16 @@ lib.composeManyExtensions [ systems) buildSystems) + # Build systems with conditionals + (self: super: { + + platformdirs = + if lib.versionAtLeast super.platformdirs.version "2.5.2" + then addBuildSystem { inherit self; drv = super.platformdirs; attr = "hatchling"; extraAttrs = [ "hatch-vcs" ]; } + else super.platformdirs; + + }) + # Build fixes (self: super: let @@ -437,6 +448,17 @@ lib.composeManyExtensions [ } ); + # Setuptools >= 60 broke build_py_2to3 + docutils = + if lib.versionOlder super.docutils.version "0.16" && lib.versionAtLeast super.setuptools.version "60" then + ( + super.docutils.overridePythonAttrs ( + old: { + SETUPTOOLS_USE_DISTUTILS = "stdlib"; + } + ) + ) else super.docutils; + # Environment markers are not always included (depending on how a dep was defined) enum34 = if self.pythonAtLeast "3.4" then null else super.enum34; @@ -844,6 +866,17 @@ lib.composeManyExtensions [ } ); + lsassy = + if super.lsassy.version == "3.1.1" then + super.lsassy.overridePythonAttrs + (old: { + # pyproject.toml contains a constraint `rich = "^10.6.0"` which is not replicated in setup.py + # hence pypi misses it and poetry pins rich to 11.0.0 + preConfigure = (old.preConfigure or "") + '' + rm pyproject.toml + ''; + }) else super.lsassy; + lxml = super.lxml.overridePythonAttrs ( old: { nativeBuildInputs = with pkgs.buildPackages; (old.nativeBuildInputs or [ ]) ++ [ pkg-config libxml2.dev libxslt.dev ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ]; @@ -1143,6 +1176,26 @@ lib.composeManyExtensions [ } ); + orjson = + let + getCargoHash = version: { + "3.6.7" = "sha256-sz2k9podPB6QSptkyOu7+BoVTrKhefizRtYU+MICPt4="; + "3.6.8" = "sha256-vpfceVtYkU09xszNIihY1xbqGWieqDquxwsAmDH8jd4="; + }.${version} or null; + in + super.orjson.overridePythonAttrs (old: { + cargoDeps = pkgs.rustPlatform.fetchCargoTarball { + inherit (old) src; + name = "${old.pname}-${old.version}"; + hash = getCargoHash old.version; + }; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ + pkgs.rustPlatform.cargoSetupHook + pkgs.rustPlatform.maturinBuildHook + ]; + buildInputs = (old.buildInputs or [ ]) ++ lib.optional pkgs.stdenv.isDarwin pkgs.libiconv; + }); + osqp = super.osqp.overridePythonAttrs ( old: { nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.cmake ]; @@ -1150,6 +1203,29 @@ lib.composeManyExtensions [ } ); + + pandas = super.pandas.overridePythonAttrs (old: { + + buildInputs = old.buildInputs or [ ] ++ lib.optional stdenv.isDarwin pkgs.libcxx; + + # Doesn't work with -Werror,-Wunused-command-line-argument + # https://github.com/NixOS/nixpkgs/issues/39687 + hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow"; + + # For OSX, we need to add a dependency on libcxx, which provides + # `complex.h` and other libraries that pandas depends on to build. + postPatch = lib.optionalString stdenv.isDarwin '' + cpp_sdk="${lib.getDev pkgs.libcxx}/include/c++/v1"; + echo "Adding $cpp_sdk to the setup.py common_include variable" + substituteInPlace setup.py \ + --replace "['pandas/src/klib', 'pandas/src']" \ + "['pandas/src/klib', 'pandas/src', '$cpp_sdk']" + ''; + + + enableParallelBuilding = true; + }); + pantalaimon = super.pantalaimon.overridePythonAttrs (old: { nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.installShellFiles ]; postInstall = old.postInstall or "" + '' @@ -1196,8 +1272,12 @@ lib.composeManyExtensions [ pillow = super.pillow.overridePythonAttrs ( old: { - nativeBuildInputs = [ pkg-config self.pytest-runner ] ++ (old.nativeBuildInputs or [ ]); - buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ (old.buildInputs or [ ]); + nativeBuildInputs = (old.nativeBuildInputs or [ ]) + ++ [ pkg-config self.pytest-runner ]; + buildInputs = with pkgs; (old.buildInputs or [ ]) + ++ [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] + ++ lib.optionals (lib.versionAtLeast old.version "7.1.0") [ xorg.libxcb ] + ++ lib.optionals (self.isPyPy) [ tk xorg.libX11 ]; } ); @@ -1246,6 +1326,14 @@ lib.composeManyExtensions [ } ); + psycopg2cffi = super.psycopg2cffi.overridePythonAttrs ( + old: { + buildInputs = (old.buildInputs or [ ]) + ++ lib.optional stdenv.isDarwin pkgs.openssl; + nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.postgresql ]; + } + ); + py-solc-x = super.py-solc-x.overridePythonAttrs ( old: { preConfigure = '' @@ -1860,6 +1948,12 @@ lib.composeManyExtensions [ }); + soundfile = super.soundfile.overridePythonAttrs (old: { + postPatch = '' + substituteInPlace soundfile.py --replace "_find_library('sndfile')" "'${pkgs.libsndfile.out}/lib/libsndfile${stdenv.hostPlatform.extensions.sharedLibrary}'" + ''; + }); + systemd-python = super.systemd-python.overridePythonAttrs (old: { buildInputs = old.buildInputs ++ [ pkgs.systemd ]; nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkg-config ];