python3Packages.pythonMetadataCheckHook: init (#532778)

This commit is contained in:
Martin Weinelt
2026-07-11 13:08:42 +00:00
committed by GitHub
151 changed files with 692 additions and 83 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
];
nativeCheckInputs = with python3.pkgs; [
aspell-python
aspell-python-py3
chardet
pytestCheckHook
pytest-cov-stub
+1 -1
View File
@@ -60,7 +60,7 @@ let
yubico
setuptools
jinja2
augeas
python-augeas
samba
ifaddr
];
@@ -77,7 +77,7 @@ python3Packages.buildPythonPackage {
doCheck = python3Packages.stdenv.hostPlatform.isLinux; # maybe in future
nativeCheckInputs = with python3Packages; [
augeas
python-augeas
dnspython
lief
pytestCheckHook
@@ -361,6 +361,20 @@ in
} ./python-imports-check-hook.sh
) { };
pythonMetadataCheckHook = callPackage (
{ makePythonHook }:
makePythonHook {
name = "python-metadata-check-hook.sh";
substitutions = {
inherit pythonInterpreter pythonSitePackages;
pythonWithPackaging = lib.getExe (pythonOnBuildForHost.withPackages (ps: [ ps.packaging ]));
};
meta = {
maintainers = [ lib.maintainers.dotlambda ];
};
} ./python-metadata-check-hook.sh
) { };
pythonNamespacesHook = callPackage (
{ makePythonHook, buildPackages }:
makePythonHook {
@@ -0,0 +1,37 @@
# shellcheck shell=bash
# Setup hook for checking whether metadata in .dist-info matches the derivation
echo "Sourcing python-metadata-check-hook.sh"
pythonMetadataCheckPhase() {
echo "Executing pythonMetadataCheckPhase"
# shellcheck disable=SC2154
pythonMetadataCheckOutput="$out"
if [[ -n "${python-}" ]]; then
echo "Using python specific output \$python for metadata check"
pythonMetadataCheckOutput=$python
fi
# shellcheck disable=SC2154
derivationPname="$pname"
# shellcheck disable=SC2154
derivationVersion="$version"
# `python -P` avoids picking up egg-info dirs in $PWD
metadataVersion="$(PYTHONPATH="$pythonMetadataCheckOutput/@pythonSitePackages@:$PYTHONPATH" \
@pythonInterpreter@ -P -c 'from importlib.metadata import version; import sys; print(version(sys.argv[1]))' "$derivationPname")"
# chethat both versions can be parsed
@pythonWithPackaging@ -c "from packaging.version import Version; from sys import argv; Version(argv[1]); Version(argv[2])" "$derivationVersion" "$metadataVersion"
if @pythonWithPackaging@ -c "from packaging.version import Version; from sys import argv, exit; exit(Version(argv[1]) == Version(argv[2]))" "$derivationVersion" "$metadataVersion"; then
echo "The '$derivationPname' derivation has version '$derivationVersion' but .dist-info/METADATA specifies version '$metadataVersion'."
echo "This usually means that the wrong version is hardcoded in pyproject.toml or setup.{py,cfg}."
echo "Use the pyprojectVersionPatchHook or patch the version manually so that the project metadata matches the derivation's version."
exit 1
fi
}
if [ -z "${dontCheckPythonMetadata-}" ]; then
echo "Using pythonMetadataCheckPhase"
appendToVar preDistPhases pythonMetadataCheckPhase
fi
@@ -18,6 +18,7 @@
pypaInstallHook,
pythonCatchConflictsHook,
pythonImportsCheckHook,
pythonMetadataCheckHook,
pythonNamespacesHook,
pythonOutputDistHook,
pythonRelaxDepsHook,
@@ -358,6 +359,21 @@ lib.extendMkDerivation {
# This is a test, however, it should be ran independent of the checkPhase and checkInputs
pythonImportsCheckHook
]
++
optionals
(
finalAttrs ? "pname"
&& finalAttrs ? "version"
# We don't care about the METADATA of Python applications.
&& isPythonModule finalAttrs.passthru
# METADATA is unlikely to be correct if pyproject is false or null.
&& pyproject == true
&& !lib.hasInfix "unstable-" finalAttrs.version
&& !isBootstrapPackage
)
[
pythonMetadataCheckHook
]
++ optionals (python.pythonAtLeast "3.3") [
# Optionally enforce PEP420 for python3
pythonNamespacesHook
@@ -5,6 +5,7 @@
buildPythonPackage,
fetchFromGitHub,
orjson,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-error-for-skips,
pytestCheckHook,
@@ -27,6 +28,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
orjson
@@ -34,6 +34,11 @@ buildPythonPackage rec {
hash = "sha256-0KQHL9DmNeRvEs51XPcncxNzXb+SqYM5xPDvOdKSQMI=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail .dev0 ""
'';
build-system = [
incremental
setuptools
@@ -4,6 +4,7 @@
fetchFromGitHub,
poetry-core,
protobuf,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
zeroconf,
@@ -21,6 +22,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-EXLMrZobSICAmWPREjx5D8boj/S/3AH5+lsWQlTCl1g=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ poetry-core ];
dependencies = [
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchFromGitHub,
meteocalc,
pyprojectVersionPatchHook,
pytest-aiohttp,
pytestCheckHook,
setuptools,
@@ -23,6 +24,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
meteocalc
@@ -23,6 +23,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
pythonRelaxDeps = [
"caio"
];
dependencies = [ caio ];
nativeCheckInputs = [
@@ -22,6 +22,11 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-+OYMe63sX5TtvJpNn6dzvnephlhS/MyFXmUerYZqF5A=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail .dev0 ""
'';
build-system = [
setuptools
];
@@ -8,6 +8,7 @@
mashumaro,
orjson,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -29,6 +30,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
awesomeversion
@@ -19,8 +19,8 @@ buildPythonPackage rec {
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"0.0.0"' '"${version}"'
substituteInPlace aiomusiccast/__init__.py \
--replace-fail '__version__ = "0.0.0"' '__version__ = "${version}"'
'';
build-system = [ hatchling ];
@@ -8,6 +8,7 @@
fetchFromGitHub,
habluetooth,
orjson,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
setuptools,
@@ -29,6 +30,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
bleak-retry-connector
@@ -12,7 +12,7 @@
setuptools,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "aioskybell";
version = "23.12.0";
pyproject = true;
@@ -20,13 +20,13 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "tkdrob";
repo = "aioskybell";
tag = version;
tag = finalAttrs.version;
hash = "sha256-5F0B5z0pJLKJPzKIowE07vEgmNXnDVEeGFbPGnJ6H9I=";
};
postPatch = ''
substituteInPlace setup.py \
--replace 'version="master",' 'version="${version}",'
--replace 'version="master",' 'version="${finalAttrs.version}",'
'';
nativeBuildInputs = [ setuptools ];
@@ -59,4 +59,4 @@ buildPythonPackage rec {
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -7,6 +7,7 @@
cargo,
rustc,
rustPlatform,
semver,
}:
buildPythonPackage rec {
@@ -26,6 +27,15 @@ buildPythonPackage rec {
hash = "sha256-Yf6N615X9ZB+HDp3xehMc3kjKbdsSbIJrqARRXwCRDQ=";
};
postPatch = ''
patchShebangs release.py
./release.py finalize
'';
build-system = [
semver # required for release.py
];
nativeBuildInputs = [
cargo
rustPlatform.cargoSetupHook
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchFromGitHub,
orjson,
pyprojectVersionPatchHook,
setuptools,
yarl,
}:
@@ -22,6 +23,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
pythonRelaxDeps = [ "orjson" ];
dependencies = [
@@ -5,6 +5,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -26,6 +27,10 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
yarl
@@ -7,6 +7,7 @@
hatchling,
lib,
lxml,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -26,6 +27,10 @@ buildPythonPackage rec {
hash = "sha256-W3TdumweNyGz2qDFgSGu+ZPnEpLvWQQ216jER6e4k18=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ hatchling ];
dependencies = [
@@ -5,6 +5,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -24,6 +25,10 @@ buildPythonPackage rec {
hash = "sha256-YC1rUyPXWbJ/xfUus5a7vw44gw7PIAdwhrUstXB/+nI=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ poetry-core ];
dependencies = [
@@ -9,7 +9,7 @@
}:
buildPythonPackage rec {
pname = "ancp-bids";
pname = "ancpbids";
version = "0.3.1";
pyproject = true;
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
graphql-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest8_3CheckHook,
pythonAtLeast,
@@ -32,6 +33,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
optional-dependencies = {
graphql = [ graphql-core ];
};
@@ -33,6 +33,8 @@ buildPythonPackage rec {
postPatch = ''
test -f setup.py || mv setup/setup.approvaltests.py setup.py
python3 setup/set_version.py '${version}'
patchShebangs internal_documentation/scripts
'';
@@ -9,7 +9,7 @@
}:
buildPythonPackage rec {
pname = "aspell-python";
pname = "aspell-python-py3";
version = "1.15";
pyproject = true;
@@ -10,13 +10,13 @@
buildPythonPackage rec {
pname = "asyncclick";
version = "8.3.0.5+async";
version = "8.3.0.5";
pyproject = true;
src = fetchFromGitHub {
owner = "python-trio";
repo = "asyncclick";
tag = version;
tag = "${version}+async";
hash = "sha256-gKtxwI/vDB2pDrhiA+e1TClwW5nXvBRCMF3oCNoLaDo=";
};
@@ -21,6 +21,9 @@ buildPythonPackage (finalAttrs: {
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version="0.2.7"' 'version="${finalAttrs.version}"'
sed -i "/from past.builtins import map/d" aurorapy/client.py
'';
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
hatchling,
pyprojectVersionPatchHook,
pytest-codspeed,
pytest-snapshot,
pytestCheckHook,
@@ -20,13 +21,12 @@ buildPythonPackage rec {
hash = "sha256-2CEuJagUkYwtjzpQLYLlz+V5e2feEU6di3wI0+uWuy4=";
};
postPatch = ''
nativeBuildInputs = [
# Upstream doesn't set a version
substituteInPlace pyproject.toml \
--replace-fail 'version = "0"' 'version = "${version}"'
'';
pyprojectVersionPatchHook
];
nativeBuildInputs = [ hatchling ];
build-system = [ hatchling ];
pythonImportsCheck = [ "awesomeversion" ];
@@ -17,6 +17,11 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-Jwj07yAl9LrHRy1y3cjipObqEcwP+j+a5dcvXj02kgA=";
};
postPatch = ''
substituteInPlace AWSIoTPythonSDK/__init__.py \
--replace-fail '__version__ = "1.5.4"' '__version__ = "${finalAttrs.version}"'
'';
nativeBuildInputs = [ setuptools ];
# Module has no tests
@@ -7,7 +7,7 @@
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "beconde-py";
pname = "bencode-py";
version = "4.0.0";
pyproject = true;
@@ -5,6 +5,7 @@
setuptools,
pytz,
websockets,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-mock,
pytestCheckHook,
@@ -22,6 +23,10 @@ buildPythonPackage rec {
hash = "sha256-px4kZOvMUP5aGOQ1uxWnY6w77Woie/hVVdyylW8uSX4=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ setuptools ];
dependencies = [
@@ -4,6 +4,7 @@
fetchFromGitHub,
freezegun,
dacite,
pyprojectVersionPatchHook,
pysnmp,
pytest-asyncio,
pytest-error-for-skips,
@@ -27,6 +28,10 @@ buildPythonPackage rec {
hash = "sha256-7m0fakQCckIpG8Tc09P81xzHlIgeal9L2BwerUvBuX8=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ setuptools ];
dependencies = [
@@ -20,6 +20,13 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-IeyksrYpLMc9PJjpYeaOgLx26CeVMoR/3r2RX66ucDs=";
};
postPatch = ''
substituteInPlace caio/version.py \
--replace-fail 'version_info = (0, 9, 25)' 'version_info = (${
lib.replaceString "." ", " finalAttrs.version
})'
'';
build-system = [ setuptools ];
nativeCheckInputs = [
@@ -42,6 +42,8 @@ buildPythonPackage rec {
hash = "sha256-MnUsl4ozMamKcQ13TV6mtoG7VKq8BuiDSIVq1RPn2rs=";
};
env.CGAL_PYTHON_MODULE_VERSION = version;
dontUseCmakeConfigure = true;
build-system = [
@@ -21,6 +21,11 @@ buildPythonPackage rec {
hash = "sha256-Fs/BuocZblMSlmP6yp+aykbs0n1AdvL3AVAQI1AnZ9o=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail '__version__ = "0.7.6"' '__version__ = "${version}"'
'';
nativeBuildInputs = [
numpy
pybind11
@@ -4,6 +4,7 @@
llvmPackages,
setuptools,
writeText,
pytestCheckHook,
}:
let
@@ -51,6 +52,10 @@ buildPythonPackage {
echo 'Config.set_library_path("${lib.getLib libclang}/lib")' >>./clang/cindex.py
'';
nativeCheckInputs = [
pytestCheckHook
];
meta = libclang.meta // {
description = "Python bindings for the C language family frontend for LLVM";
maintainers = [ ];
@@ -6,7 +6,7 @@
setuptools,
}:
buildPythonPackage {
buildPythonPackage (finalAttrs: {
pname = "compressed-rtf";
version = "1.0.7";
pyproject = true;
@@ -14,12 +14,11 @@ buildPythonPackage {
src = fetchFromGitHub {
owner = "delimitry";
repo = "compressed_rtf";
# https://github.com/delimitry/compressed_rtf/issues/15
rev = "581400c1b4c69ab0d944cfb5ca82c32059bbcc96";
hash = "sha256-ivvND+cOCAmRyO8yL0+WhFY/2OkrJ+E/o4xWWd7ivHA=";
tag = finalAttrs.version;
hash = "sha256-eQ1rX+IyQG6oStd+ELIMNJ3EjTKJTA3tHzuxdIuKgGs=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
@@ -28,9 +27,10 @@ buildPythonPackage {
enabledTestPaths = [ "tests/tests.py" ];
meta = {
changelog = "https://github.com/delimitry/compressed_rtf/releases/tag/${finalAttrs.src.tag}";
description = "Compressed Rich Text Format (RTF) compression and decompression";
homepage = "https://github.com/delimitry/compressed_rtf";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pyprojectVersionPatchHook,
rustPlatform,
# tests
@@ -28,9 +29,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-evXYLbv+GwSBUJBb0upjQTFtMPdQbKka8KfJltMUmDs=";
};
nativeBuildInputs = with rustPlatform; [
cargoSetupHook
maturinBuildHook
nativeBuildInputs = [
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
pyprojectVersionPatchHook
];
nativeCheckInputs = [
@@ -10,6 +10,7 @@
hatchling,
httpx,
litestar,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-django,
pytestCheckHook,
@@ -35,6 +36,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-JxwzTU17jCQMFNCtmcZVAZQnwDZjHNxCGNdKhkCMoPs=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ hatchling ];
dependencies = [ typing-extensions ];
@@ -22,6 +22,8 @@ buildPythonPackage (finalAttrs: {
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "setuptools>=70.1,<75" "setuptools"
echo '${finalAttrs.version}' > VERSION
''
# The flag -soname isn't recognized by the linker on darwin. Only -install_name is valid.
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
@@ -1,6 +1,7 @@
{
lib,
fetchFromGitHub,
fetchpatch,
buildPythonPackage,
pytestCheckHook,
pythonAtLeast,
@@ -19,6 +20,14 @@ buildPythonPackage rec {
hash = "sha256-mAPqWvBpkTbtzHpwtCSDXMNkoc8/hbRH3OIEeK2yStU=";
};
patches = [
(fetchpatch {
name = "fix-version-in-setup.py.patch";
url = "https://github.com/konradhalas/dacite/commit/daad7e4a15569321d3cf118f8083a71a65d7e044.patch";
hash = "sha256-5udIgEf2P9SCZVGnPg/rMtFtkPJyLw9RWvVO47BddK8=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "--benchmark-autosave --benchmark-json=benchmark.json" ""
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
hatchling,
pyprojectVersionPatchHook,
typing-extensions,
}:
@@ -20,6 +21,10 @@ buildPythonPackage rec {
build-system = [ hatchling ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [ typing-extensions ];
pythonImportsCheck = [ "diskcache-stubs" ];
@@ -25,6 +25,11 @@ buildPythonPackage rec {
hash = "sha256-ZsF+GUVG9bZNZE5daROQJIZZgqpjAkB/bFyre2oGu+E=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'VERSION = "24.1.0"' 'VERSION = "${version}"'
'';
build-system = [ setuptools ];
dependencies = [
@@ -6,6 +6,7 @@
bleak,
bleak-retry-connector,
construct-typing,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
}:
@@ -24,6 +25,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
bleak
bleak-retry-connector
@@ -5,8 +5,8 @@
setuptools,
fastcore,
numpy,
fasthtml,
ipython,
python-fasthtml,
}:
buildPythonPackage (finalAttrs: {
@@ -26,8 +26,8 @@ buildPythonPackage (finalAttrs: {
dependencies = [
fastcore
numpy
fasthtml
ipython
python-fasthtml
];
# no real tests
@@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "flask-login";
version = "0.7.0dev0-2024-06-18";
version = "0.6.3-unstable-2024-06-18";
pyproject = true;
src = fetchFromGitHub {
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyprojectVersionPatchHook,
pytestCheckHook,
}:
@@ -20,6 +21,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "flatten_dict" ];
@@ -6,6 +6,7 @@
aiohttp,
aresponses,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytest-freezer,
@@ -28,7 +29,9 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
env.PACKAGE_VERSION = version;
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiodns
@@ -5,6 +5,7 @@
hatchling,
httpx,
pydantic,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytest-mock,
@@ -24,6 +25,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-gJsE/1HnUXEDa5Y7eLtHexx+G00MGQDZJu3pui9OeMM=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ hatchling ];
dependencies = [
@@ -16,13 +16,13 @@
buildPythonPackage rec {
pname = "gattlib";
version = "20210616";
version = "0.20210616";
pyproject = true;
src = fetchFromGitHub {
owner = "oscaracena";
repo = "pygattlib";
rev = "v.${version}";
tag = "v.${lib.removePrefix "0." version}";
hash = "sha256-n3D9CWKvgw4FYmbvsfhaHN963HARBG0p4CcZBC8Gkb0=";
};
@@ -5,6 +5,7 @@
buildPythonPackage,
dacite,
fetchFromGitHub,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-error-for-skips,
pytestCheckHook,
@@ -27,6 +28,10 @@ buildPythonPackage rec {
hash = "sha256-m7baTU7oWcjqCgiZ7GcOYVM23jcvycQcAbPhO1jWahk=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ setuptools ];
dependencies = [
@@ -1,8 +1,9 @@
{
lib,
buildPythonPackage,
setuptools-scm,
setuptools,
fetchFromGitLab,
pyprojectVersionPatchHook,
}:
buildPythonPackage rec {
@@ -13,11 +14,15 @@ buildPythonPackage rec {
src = fetchFromGitLab {
owner = "alelec";
repo = "__version__";
rev = "v${version}";
tag = "v${version}";
hash = "sha256-bnpuFJSd4nBXJA75V61kiB+nU5pUzdEAIScfKx7aaGU=";
};
nativeBuildInputs = [ setuptools-scm ];
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
pythonImportsCheck = [ "__version__" ];
@@ -18,6 +18,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-2wnfc+W1lhUgvWa1iwHxJu4WGZHaXvmxgtBAkTJHJ3E=";
};
postPatch = ''
echo '${finalAttrs.version}' > VERSION
'';
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
@@ -18,6 +18,11 @@ buildPythonPackage rec {
hash = "sha256-Z3+GijoI+351zV7IpLSBQu6LE2OhhXho4ygNMVbg2xs=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "version='0.7.3'" "version='${version}'"
'';
build-system = [ setuptools ];
dependencies = [ aiohttp ];
@@ -21,6 +21,9 @@ buildPythonPackage {
doCheck = false;
pythonImportsCheck = [ "gpiod" ];
# the tag component of the version doesn't align
dontCheckPythonMetadata = true;
meta = {
description = "Python bindings for libgpiod";
homepage = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/";
@@ -439,6 +439,7 @@ buildPythonPackage (finalAttrs: {
shopt -u globstar
'';
pythonImportsCheck = null;
dontCheckPythonMetadata = true;
dontCheckRuntimeDeps = true;
});
@@ -3,9 +3,9 @@
aiohttp,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pytest-socket,
pytestCheckHook,
setuptools,
siobrultech-protocols,
}:
@@ -21,7 +21,19 @@ buildPythonPackage rec {
hash = "sha256-7EDuQ+wECcTzxkEufMpg3WSzosWeiwfxcVIVtQi+0BI=";
};
build-system = [ setuptools ];
postPatch = ''
cat >> pyproject.toml << EOF
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
EOF
'';
build-system = [ poetry-core ];
pythonRelaxDeps = [
"siobrultech-protocols"
];
dependencies = [
aiohttp
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "ha-philipsjs";
version = "3.3.4";
version = "3.3.4"; # FIXME Can we check metadata again?
pyproject = true;
src = fetchFromGitHub {
@@ -39,6 +39,9 @@ buildPythonPackage rec {
pythonImportsCheck = [ "haphilipsjs" ];
# the tag 3.3.4 actually corresponds to version 3.2.4
dontCheckPythonMetadata = true;
meta = {
description = "Library to interact with Philips TVs with jointSPACE API";
homepage = "https://github.com/danielperna84/ha-philipsjs";
@@ -7,6 +7,7 @@
async-timeout,
yarl,
aresponses,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -24,6 +25,10 @@ buildPythonPackage rec {
hash = "sha256-h3y5hjaSHH6oIfSt5JTt1+pH7mFLOFiq1RuMZ1uYtTE=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ hatchling ];
dependencies = [
@@ -7,6 +7,7 @@
async-timeout,
yarl,
aresponses,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
}:
@@ -28,6 +29,10 @@ buildPythonPackage rec {
sed -i "/^addopts/d" pyproject.toml
'';
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ hatchling ];
dependencies = [
@@ -8,6 +8,7 @@
freezegun,
lib,
orjson,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
setuptools,
@@ -28,6 +29,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
pythonRelaxDeps = [
"aiohttp"
];
@@ -62,6 +62,9 @@ buildPythonPackage {
pythonImportsCheck = [ "inkex" ];
# The inkex version isn't update in tandem with inkscape
dontCheckPythonMetadata = true;
nativeCheckInputs = [
gobject-introspection
pytestCheckHook
@@ -4,7 +4,7 @@
fetchFromGitHub,
flit-core,
python,
py-multiaddr,
multiaddr,
requests,
pytestCheckHook,
pytest-cov-stub,
@@ -34,7 +34,7 @@ buildPythonPackage rec {
nativeBuildInputs = [ flit-core ];
propagatedBuildInputs = [
py-multiaddr
multiaddr
requests
];
@@ -26,6 +26,12 @@ buildPythonPackage rec {
hash = "sha256-C7TwGlbTwpcJ0rE7notWzZHthWzXKMPbHq00zMhfHeA=";
};
postPatch = ''
# get_version() appends a date to the version prefix
substituteInPlace setup.py \
--replace-fail 'version=get_version()' 'version="${version}"'
'';
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
@@ -12,7 +12,7 @@
}:
buildPythonPackage rec {
pname = "iterative-telemtry";
pname = "iterative-telemetry";
version = "0.0.10";
pyproject = true;
@@ -18,6 +18,11 @@ buildPythonPackage rec {
hash = "sha256-hNJXoUIyrCB9PCWLCmN81F6pBRwZApDR6JWA0adyklw=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "tag_build = .dev" ""
'';
build-system = [ setuptools ];
pythonImportsCheck = [ "kgb" ];
@@ -7,6 +7,7 @@
mashumaro,
orjson,
poetry-core,
pyprojectVersionPatchHook,
pytestCheckHook,
pytest-aiohttp,
pytest-cov-stub,
@@ -28,6 +29,10 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
mashumaro
@@ -14,7 +14,7 @@
}:
buildPythonPackage (finalAttrs: {
pname = "laszip-python";
pname = "laszip";
version = "0.3.0";
pyproject = true;
@@ -6,6 +6,7 @@
freezegun,
lib,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
}:
@@ -22,6 +23,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-w4WS0AyNd4dNtA/fBKieDW2YXwBFltRkJvaGemRjsv4=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ poetry-core ];
dependencies = [
@@ -7,7 +7,7 @@
}:
buildPythonPackage (finalAttrs: {
pname = "libvalkey-py";
pname = "libvalkey";
version = "4.0.1";
pyproject = true;
@@ -20,6 +20,11 @@ buildPythonPackage rec {
hash = "sha256-0uDCrF3abx94X47LQxgALirSF/spJPVD91G2WqXaDVs=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'VERSION = "0.6.1"' 'VERSION = "${version}"'
'';
build-system = [
setuptools
];
@@ -32,6 +32,11 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-YIMmP8CIGUlgnB8/96lR9yDvEZTES766dSN0vT0JfbM=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "tag_build = dev" ""
'';
build-system = [ setuptools_80 ];
dependencies = [ markupsafe ];
@@ -3,6 +3,7 @@
buildPythonPackage,
fetchFromGitHub,
lib,
pyprojectVersionPatchHook,
pytest-asyncio,
pytestCheckHook,
setuptools,
@@ -22,6 +23,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
];
@@ -17,6 +17,11 @@ buildPythonPackage rec {
hash = "sha256-Ut3iKc7Sr28uGgWCV3K3CS+gBta2icvbUPMjjo4fflU=";
};
postPatch = ''
substituteInPlace minimock.py \
--replace-fail "__version__ = '1.2.10.dev0'" "__version__ = '${version}'"
'';
nativeBuildInputs = [ setuptools ];
# Module has no tests
@@ -17,7 +17,7 @@
}:
buildPythonPackage rec {
pname = "py-multiaddr";
pname = "multiaddr";
version = "0.0.11";
pyproject = true;
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pyprojectVersionPatchHook,
# build-system
hatchling,
@@ -33,6 +34,10 @@ buildPythonPackage rec {
hatchling
];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
ipykernel
nbclient
@@ -20,6 +20,11 @@ buildPythonPackage rec {
hash = "sha256-5I5WItOl1QpyI4OXZgZf8GiQ7Jlo+SJbDicIbernaU4=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail 'version = 1.5.9' 'version = ${version}'
'';
build-system = [
setuptools
setuptools-scm
@@ -18,6 +18,11 @@ buildPythonPackage rec {
hash = "sha256-748cDMxPjOQFKdSt1GrQqZHmPgz20HN1+lMzo2vMj6c=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'version="1.5.1"' 'version="${version}"'
'';
build-system = [ setuptools ];
dependencies = [ requests ];
@@ -20,6 +20,11 @@ buildPythonPackage rec {
hash = "sha256-3nkBDLmFOfYLvG5fi2subA9zxb51c7zWlhT4GaCQo9I=";
};
postPatch = ''
substituteInPlace nsw_fuel/__init__.py \
--replace-fail '__version__ = "0.0.0-dev"' '__version__ = "${version}"'
'';
build-system = [
setuptools
];
@@ -7,6 +7,7 @@
mashumaro,
orjson,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -28,6 +29,10 @@ buildPythonPackage rec {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
mashumaro
@@ -8,7 +8,7 @@
}:
buildPythonPackage (finalAttrs: {
pname = "obsws-python";
version = "5.5";
version = "1.8.0";
pyproject = true;
src = fetchFromGitHub {
@@ -27,7 +27,7 @@
}:
buildPythonPackage (finalAttrs: {
pname = "whisper";
pname = "openai-whisper";
version = "20250625";
pyproject = true;
__structuredAttrs = true;
@@ -11,7 +11,7 @@
}:
buildPythonPackage rec {
pname = "openant-unstable";
pname = "openant";
version = "1.3.1";
pyproject = true;
@@ -24,6 +24,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-vcSaWDX8P07Bj035vGq5dZYO+WkZOod7tTubWygl27k=";
};
postPatch = ''
echo '${finalAttrs.version}' > VERSION
'';
build-system = [
setuptools
];
@@ -19,6 +19,11 @@ buildPythonPackage rec {
hash = "sha256-tlgctQvbR2YzM6Q1A/P1i40LSt4/2hsetlDeO07RBPE=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "version='1.5.3'" "version='${version}'"
'';
build-system = [ setuptools ];
dependencies = [
@@ -22,6 +22,11 @@ buildPythonPackage rec {
hash = "sha256-oWJxpiC83C/ghs/Ik8+DrPWtP/j5jWEZ3+9Nqg4ARKU=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail .dev0 ""
'';
build-system = [
incremental
setuptools
@@ -7,6 +7,7 @@
mashumaro,
orjson,
poetry-core,
pyprojectVersionPatchHook,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
@@ -28,6 +29,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ poetry-core ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
aiohttp
mashumaro
@@ -8,6 +8,7 @@
aioquic,
python-daemon,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
@@ -22,7 +23,10 @@ buildPythonPackage rec {
hash = "sha256-DWxbU2LtXzec1T175cMVJuWuhnxWYhe0FH67stMyOTM=";
};
nativeBuildInputs = [ setuptools ];
build-system = [
setuptools
setuptools-scm
];
optional-dependencies = {
accelerated = [
@@ -108,6 +108,9 @@ let
dependencies = [ typing-extensions ];
# the psycopg-pool version isn't updated in tandem with psycopg
dontCheckPythonMetadata = true;
# tested in psycopg
doCheck = false;
@@ -22,6 +22,11 @@ buildPythonPackage rec {
hash = "sha256-AkdWWiw1FMs/uuJNSocMBpReXY2mrxouQfWuu4ntRWY=";
};
postPatch = ''
substituteInPlace pyanglianwater/_version.py \
--replace-fail '__version__ = "0.0.0"' '__version__ = "${version}"'
'';
build-system = [ setuptools ];
dependencies = [
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pyprojectVersionPatchHook,
pytestCheckHook,
setuptools,
simpleeval,
@@ -22,6 +23,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
simpleeval
wcmatch
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyprojectVersionPatchHook,
}:
buildPythonPackage rec {
@@ -18,14 +19,13 @@ buildPythonPackage rec {
hash = "sha256-bLzDakxKq8fcjEKSxc6D5VN9gfAu1M3/zaAU2UYnwSs=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'version="0",' 'version="${version}",'
'';
nativeBuildInputs = [
pyprojectVersionPatchHook
];
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [ aiohttp ];
dependencies = [ aiohttp ];
# Project has no tests
doCheck = false;
@@ -31,6 +31,9 @@ buildPythonPackage rec {
pythonImportsCheck = [ "equihash" ];
# The Python bindings' version isn't updated in tandem with equihash
dontCheckPythonMetadata = true;
checkPhase = ''
runHook preCheck
@@ -18,6 +18,11 @@ buildPythonPackage rec {
hash = "sha256-DBiHHiKXR26/WPJDmEZpRgjvJitFaidbV41Tvn0etLY=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'VERSION = "0.6.7"' 'VERSION = "${version}"'
'';
build-system = [ setuptools ];
dependencies = [ lml ];
@@ -10,7 +10,7 @@
setuptools,
# dependencies
dedupe-pylbfgs,
pylbfgs,
# tests
pytestCheckHook,
@@ -37,7 +37,7 @@ buildPythonPackage {
];
dependencies = [
dedupe-pylbfgs
pylbfgs
numpy
];
@@ -153,6 +153,10 @@ buildPythonPackage (finalAttrs: {
build-system = [ setuptools ];
nativeBuildInputs = [
pyprojectVersionPatchHook
];
dependencies = [
certomancer
pyhanko-certvalidator
@@ -14,7 +14,7 @@
}:
buildPythonPackage rec {
pname = "dedupe-pylbfgs";
pname = "pylbfgs";
version = "0.2.0.16";
pyproject = true;
@@ -21,6 +21,11 @@ buildPythonPackage rec {
hash = "sha256-plaWXwDAIsVzEtrabZuZj7T4WNfz2ntQHgcMCVf5S70=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "version = '1.0.5'" "version = '${version}'"
'';
build-system = [
setuptools
];
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchFromGitHub,
poetry-core,
pyprojectVersionPatchHook,
}:
buildPythonPackage (finalAttrs: {
@@ -18,6 +19,10 @@ buildPythonPackage (finalAttrs: {
hash = "sha256-HDbYrwQ4v5cqej5aUat0gVzaRpJz5jaFHjWUC98gacg=";
};
nativeBuildInputs = [
pyprojectVersionPatchHook
];
build-system = [ poetry-core ];
dependencies = [ aiohttp ];

Some files were not shown because too many files have changed in this diff Show More