mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-26 02:05:02 +00:00
python3Packages.pythonMetadataCheckHook: improve error message for mismatched pname
This commit is contained in:
@@ -368,6 +368,7 @@ in
|
||||
substitutions = {
|
||||
inherit pythonInterpreter pythonSitePackages;
|
||||
pythonWithPackaging = lib.getExe (pythonOnBuildForHost.withPackages (ps: [ ps.packaging ]));
|
||||
retrieveMetadata = ./python-metadata-check-hook-retrieve.py;
|
||||
};
|
||||
meta = {
|
||||
maintainers = [ lib.maintainers.dotlambda ];
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
from importlib.metadata import PackageNotFoundError, version
|
||||
from sys import argv, exit, stderr
|
||||
|
||||
|
||||
pname = argv[1]
|
||||
try:
|
||||
print(version(pname))
|
||||
except PackageNotFoundError as e:
|
||||
print(e, file=stderr)
|
||||
print("This usually means that the derivation's pname does not correspond to the project name, as found on PyPI, in pyproject.toml, or in setup.{py,cfg}.", file=stderr)
|
||||
print("Use the normalized name for the derivation's pname and its attribute name in python3Packages.", file=stderr)
|
||||
print("See https://packaging.python.org/en/latest/specifications/name-normalization/.", file=stderr)
|
||||
exit(1)
|
||||
@@ -19,7 +19,7 @@ pythonMetadataCheckPhase() {
|
||||
# `python -P` avoids picking up egg-info dirs in $PWD
|
||||
local metadataVersion
|
||||
metadataVersion="$(PYTHONPATH="$pythonMetadataCheckOutput/@pythonSitePackages@:$PYTHONPATH" \
|
||||
@pythonInterpreter@ -P -c 'from importlib.metadata import version; import sys; print(version(sys.argv[1]))' "$derivationPname")"
|
||||
@pythonInterpreter@ -P @retrieveMetadata@ "$derivationPname")"
|
||||
|
||||
# check that both versions can be parsed
|
||||
@pythonWithPackaging@ -c "from packaging.version import Version; from sys import argv; Version(argv[1]); Version(argv[2])" "$derivationVersion" "$metadataVersion"
|
||||
|
||||
Reference in New Issue
Block a user