summary refs log tree commit diff
path: root/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix')
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix133
1 files changed, 0 insertions, 133 deletions
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
deleted file mode 100644
index 1ef253365a9..00000000000
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
+++ /dev/null
@@ -1,133 +0,0 @@
-{ lib, stdenv, poetryLib, python, isLinux ? stdenv.isLinux }:
-let
-  inherit (lib.strings) escapeRegex hasPrefix hasSuffix hasInfix splitString removePrefix removeSuffix;
-  targetMachine = poetryLib.getTargetMachine stdenv;
-
-  pythonVer =
-    let
-      ver = builtins.splitVersion python.version;
-      major = builtins.elemAt ver 0;
-      minor = builtins.elemAt ver 1;
-      tags = [ "cp" "py" ];
-    in
-    { inherit major minor tags; };
-  abiTag = "cp${pythonVer.major}${pythonVer.minor}m";
-
-  #
-  # Parses wheel file returning an attribute set
-  #
-  toWheelAttrs = str:
-    let
-      entries' = splitString "-" str;
-      el = builtins.length entries';
-      entryAt = builtins.elemAt entries';
-
-      # Hack: Remove version "suffixes" like 2.11.4-1
-      entries =
-        if el == 6 then [
-          (entryAt 0) # name
-          (entryAt 1) # version
-          # build tag is skipped
-          (entryAt (el - 3)) # python version
-          (entryAt (el - 2)) # abi
-          (entryAt (el - 1)) # platform
-        ] else entries';
-      p = removeSuffix ".whl" (builtins.elemAt entries 4);
-    in
-    {
-      pkgName = builtins.elemAt entries 0;
-      pkgVer = builtins.elemAt entries 1;
-      pyVer = builtins.elemAt entries 2;
-      abi = builtins.elemAt entries 3;
-      platform = p;
-    };
-
-  #
-  # Builds list of acceptable osx wheel files
-  #
-  # <versions>   accepted versions in descending order of preference
-  # <candidates> list of wheel files to select from
-  findBestMatches = versions: candidates:
-    let
-      v = lib.lists.head versions;
-      vs = lib.lists.tail versions;
-    in
-    if (builtins.length versions == 0)
-    then [ ]
-    else (builtins.filter (x: hasInfix v x.file) candidates) ++ (findBestMatches vs candidates);
-
-  # x = "cpXX" | "py2" | "py3" | "py2.py3"
-  isPyVersionCompatible = pyver@{ major, minor, tags }: x:
-    let
-      isCompat = m:
-        builtins.elem m.tag tags
-        && m.major == major
-        && builtins.compareVersions minor m.minor >= 0;
-      parseMarker = v:
-        let
-          tag = builtins.substring 0 2 v;
-          major = builtins.substring 2 1 v;
-          end = builtins.substring 3 3 v;
-          minor = if builtins.stringLength end > 0 then end else "0";
-        in
-        { inherit major minor tag; };
-      markers = splitString "." x;
-    in
-    lib.lists.any isCompat (map parseMarker markers);
-
-  #
-  # Selects the best matching wheel file from a list of files
-  #
-  selectWheel = files:
-    let
-      filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files);
-      isPyAbiCompatible = pyabi: x: x == "none" || hasPrefix pyabi x || hasPrefix x pyabi || (
-        # The CPython stable ABI is abi3 as in the shared library suffix.
-        python.passthru.implementation == "cpython" &&
-          builtins.elemAt (lib.splitString "." python.version) 0 == "3" &&
-          x == "abi3"
-      );
-      withPython = ver: abi: x: (isPyVersionCompatible ver x.pyVer) && (isPyAbiCompatible abi x.abi);
-      withPlatform =
-        if isLinux
-        then
-          if targetMachine != null
-          then
-          # See PEP 600 for details.
-            (p:
-              builtins.match "any|manylinux(1|2010|2014)_${escapeRegex targetMachine}|manylinux_[0-9]+_[0-9]+_${escapeRegex targetMachine}" p != null
-            )
-          else
-            (p: p == "any")
-        else
-          if stdenv.isDarwin
-          then
-            if stdenv.targetPlatform.isAarch64
-            then (p: p == "any" || (hasInfix "macosx" p && lib.lists.any (e: hasSuffix e p) [ "arm64" "aarch64" ]))
-            else (p: p == "any" || (hasInfix "macosx" p && hasSuffix "x86_64" p))
-          else (p: p == "any");
-      withPlatforms = x: lib.lists.any withPlatform (splitString "." x.platform);
-      filterWheel = x:
-        let
-          f = toWheelAttrs x.file;
-        in
-        (withPython pythonVer abiTag f) && (withPlatforms f);
-      filtered = builtins.filter filterWheel filesWithoutSources;
-      choose = files:
-        let
-          osxMatches = [ "12_0" "11_0" "10_15" "10_14" "10_12" "10_11" "10_10" "10_9" "10_8" "10_7" "any" ];
-          linuxMatches = [ "manylinux1_" "manylinux2010_" "manylinux2014_" "manylinux_" "any" ];
-          chooseLinux = x: lib.take 1 (findBestMatches linuxMatches x);
-          chooseOSX = x: lib.take 1 (findBestMatches osxMatches x);
-        in
-        if isLinux
-        then chooseLinux files
-        else chooseOSX files;
-    in
-    if (builtins.length filtered == 0)
-    then [ ]
-    else choose (filtered);
-in
-{
-  inherit selectWheel toWheelAttrs isPyVersionCompatible;
-}