summary refs log tree commit diff
path: root/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix')
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix220
1 files changed, 0 insertions, 220 deletions
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
deleted file mode 100644
index 5e39e1e6f50..00000000000
--- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ /dev/null
@@ -1,220 +0,0 @@
-{ autoPatchelfHook
-, lib
-, python
-, buildPythonPackage
-, poetryLib
-, evalPep508
-}:
-{ name
-, version
-, pos ? __curPos
-, files
-, source
-, dependencies ? { }
-, pythonPackages
-, python-versions
-, pwd
-, sourceSpec
-, supportedExtensions ? lib.importJSON ./extensions.json
-, preferWheels ? false
-, ...
-}:
-
-pythonPackages.callPackage
-  (
-    { preferWheel ? preferWheels
-    , ...
-    }@args:
-    let
-      inherit (python) stdenv;
-      inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromLegacy fetchFromPypi normalizePackageName;
-
-      inherit (import ./pep425.nix {
-        inherit lib poetryLib python stdenv;
-      }) selectWheel
-        ;
-      fileCandidates =
-        let
-          supportedRegex = ("^.*(" + builtins.concatStringsSep "|" supportedExtensions + ")");
-          matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." "+" ] [ "\\." "\\+" ] version + ".*$") fname != null;
-          hasSupportedExtension = fname: builtins.match supportedRegex fname != null;
-          isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname;
-        in
-        builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files;
-      toPath = s: pwd + "/${s}";
-      isLocked = lib.length fileCandidates > 0;
-      isSource = source != null;
-      isGit = isSource && source.type == "git";
-      isUrl = isSource && source.type == "url";
-      isWheelUrl = isSource && source.type == "url" && lib.strings.hasSuffix ".whl" source.url;
-      isDirectory = isSource && source.type == "directory";
-      isFile = isSource && source.type == "file";
-      isLegacy = isSource && source.type == "legacy";
-      localDepPath = toPath source.url;
-
-      buildSystemPkgs =
-        let
-          pyProjectPath = localDepPath + "/pyproject.toml";
-          pyProject = poetryLib.readTOML pyProjectPath;
-        in
-        if builtins.pathExists pyProjectPath then
-          poetryLib.getBuildSystemPkgs
-            {
-              inherit pythonPackages pyProject;
-            } else [ ];
-
-      pname = normalizePackageName name;
-      preferWheel' = preferWheel && pname != "wheel";
-      fileInfo =
-        let
-          isBdist = f: lib.strings.hasSuffix "whl" f.file;
-          isSdist = f: ! isBdist f && ! isEgg f;
-          isEgg = f: lib.strings.hasSuffix ".egg" f.file;
-          binaryDist = selectWheel fileCandidates;
-          sourceDist = builtins.filter isSdist fileCandidates;
-          eggs = builtins.filter isEgg fileCandidates;
-          # the `wheel` package cannot be built from a wheel, since that requires the wheel package
-          # this causes a circular dependency so we special-case ignore its `preferWheel` attribute value
-          entries = (if preferWheel' then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
-          lockFileEntry = (
-            if lib.length entries > 0 then builtins.head entries
-            else throw "Missing suitable source/wheel file entry for ${name}"
-          );
-          _isEgg = isEgg lockFileEntry;
-        in
-        rec {
-          inherit (lockFileEntry) file hash;
-          name = file;
-          format =
-            if _isEgg then "egg"
-            else if lib.strings.hasSuffix ".whl" name then "wheel"
-            else "pyproject";
-          kind =
-            if _isEgg then python.pythonVersion
-            else if format == "pyproject" then "source"
-            else (builtins.elemAt (lib.strings.splitString "-" name) 2);
-        };
-
-      format = if isWheelUrl then "wheel" else if isDirectory || isGit || isUrl then "pyproject" else fileInfo.format;
-
-      hooks = python.pkgs.callPackage ./hooks { };
-    in
-    buildPythonPackage {
-      inherit pname version;
-
-      # Circumvent output separation (https://github.com/NixOS/nixpkgs/pull/190487)
-      format = if format == "pyproject" then "poetry2nix" else format;
-
-      doCheck = false; # We never get development deps
-
-      # Stripping pre-built wheels lead to `ELF load command address/offset not properly aligned`
-      dontStrip = format == "wheel";
-
-      nativeBuildInputs = [
-        hooks.poetry2nixFixupHook
-      ]
-      ++ lib.optional (!pythonPackages.isPy27) hooks.poetry2nixPythonRequiresPatchHook
-      ++ lib.optional (isLocked && (getManyLinuxDeps fileInfo.name).str != null) autoPatchelfHook
-      ++ lib.optionals (format == "wheel") [
-        hooks.wheelUnpackHook
-        pythonPackages.pipInstallHook
-        pythonPackages.setuptools
-      ]
-      ++ lib.optionals (format == "pyproject") [
-        hooks.removePathDependenciesHook
-        hooks.removeGitDependenciesHook
-        hooks.pipBuildHook
-      ];
-
-      buildInputs = (
-        lib.optional (isLocked) (getManyLinuxDeps fileInfo.name).pkg
-        ++ lib.optional isDirectory buildSystemPkgs
-        ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) pythonPackages.setuptools
-      );
-
-      propagatedBuildInputs =
-        let
-          compat = isCompatible (poetryLib.getPythonVersion python);
-          deps = lib.filterAttrs
-            (n: v: v)
-            (
-              lib.mapAttrs
-                (
-                  n: v:
-                    let
-                      constraints = v.python or "";
-                      pep508Markers = v.markers or "";
-                    in
-                    compat constraints && evalPep508 pep508Markers
-                )
-                dependencies
-            );
-          depAttrs = lib.attrNames deps;
-        in
-        builtins.map (n: pythonPackages.${normalizePackageName n}) depAttrs;
-
-      inherit pos;
-
-      meta = {
-        broken = ! isCompatible (poetryLib.getPythonVersion python) python-versions;
-        license = [ ];
-        inherit (python.meta) platforms;
-      };
-
-      passthru = {
-        inherit args;
-        preferWheel = preferWheel';
-      };
-
-      # We need to retrieve kind from the interpreter and the filename of the package
-      # Interpreters should declare what wheel types they're compatible with (python type + ABI)
-      # Here we can then choose a file based on that info.
-      src =
-        if isGit then
-          (
-            builtins.fetchGit ({
-              inherit (source) url;
-              rev = source.resolved_reference or source.reference;
-              ref = sourceSpec.branch or (if sourceSpec ? tag then "refs/tags/${sourceSpec.tag}" else "HEAD");
-            } // (
-              lib.optionalAttrs ((sourceSpec ? rev) && (lib.versionAtLeast builtins.nixVersion "2.4")) {
-                allRefs = true;
-              }) // (
-              lib.optionalAttrs (lib.versionAtLeast builtins.nixVersion "2.4") {
-                submodules = true;
-              })
-            )
-          )
-        else if isWheelUrl then
-          builtins.fetchurl
-            {
-              inherit (source) url;
-              sha256 = fileInfo.hash;
-            }
-        else if isUrl then
-          builtins.fetchTarball
-            {
-              inherit (source) url;
-              sha256 = fileInfo.hash;
-            }
-        else if isDirectory then
-          (poetryLib.cleanPythonSources { src = localDepPath; })
-        else if isFile then
-          localDepPath
-        else if isLegacy then
-          fetchFromLegacy
-            {
-              pname = name;
-              inherit python;
-              inherit (fileInfo) file hash;
-              inherit (source) url;
-            }
-        else
-          fetchFromPypi {
-            pname = name;
-            inherit (fileInfo) file hash kind;
-            inherit version;
-          };
-    }
-  )
-{ }