diff options
Diffstat (limited to 'pkgs/development/tools/poetry2nix/poetry2nix/lib.nix')
-rw-r--r-- | pkgs/development/tools/poetry2nix/poetry2nix/lib.nix | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix index b5bf0c975e0..dd1e2640a52 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix +++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix @@ -8,8 +8,16 @@ let genList (i: if i == idx then value else (builtins.elemAt list i)) (length list) ); - # Do some canonicalisation of module names - moduleName = name: lib.toLower (lib.replaceStrings [ "_" "." ] [ "-" "-" ] name); + # Normalize package names as per PEP 503 + normalizePackageName = name: + let + parts = builtins.split "[-_.]+" name; + partsWithoutSeparator = builtins.filter (x: builtins.typeOf x == "string") parts; + in + lib.strings.toLower (lib.strings.concatStringsSep "-" partsWithoutSeparator); + + # Normalize an entire attrset of packages + normalizePackageSet = lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair (normalizePackageName name) value); # Get a full semver pythonVersion from a python derivation getPythonVersion = python: @@ -233,7 +241,8 @@ in getBuildSystemPkgs satisfiesSemver cleanPythonSources - moduleName + normalizePackageName + normalizePackageSet getPythonVersion getTargetMachine ; |