diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 159637ae9d5f..47690320e81e 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -94,6 +94,14 @@ in rec { name = "python-remove-bin-bytecode-hook"; } ./python-remove-bin-bytecode-hook.sh) {}; + pythonRemoveTestsDirHook = callPackage ({ }: + makeSetupHook { + name = "python-remove-tests-dir-hook"; + substitutions = { + inherit pythonSitePackages; + }; + } ./python-remove-tests-dir-hook.sh) {}; + setuptoolsBuildHook = callPackage ({ setuptools, wheel }: makeSetupHook { name = "setuptools-setup-hook"; diff --git a/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh b/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh new file mode 100644 index 000000000000..83bea786db6d --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/python-remove-tests-dir-hook.sh @@ -0,0 +1,15 @@ +# Clean up top-level tests directory in site-package installation. +echo "Sourcing python-remove-tests-dir-hook" + +pythonRemoveTestsDir() { + echo "Executing pythonRemoveTestsDir" + + rm -rf $out/@pythonSitePackages@/tests + + echo "Finished executing pythonRemoveTestsDir" +} + +if [ -z "${dontUsePythonRemoveTestsDir-}" ]; then + postFixupHooks+=(pythonRemoveTestsDir) +fi + diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 020298cc8e9f..180bc63857c2 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -17,6 +17,7 @@ , pythonCatchConflictsHook , pythonImportsCheckHook , pythonRemoveBinBytecodeHook +, pythonRemoveTestsDirHook , setuptoolsBuildHook , setuptoolsCheckHook , wheelUnpackHook @@ -108,6 +109,7 @@ let python wrapPython ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, flit, ...)? + pythonRemoveTestsDirHook ] ++ lib.optionals catchConflicts [ setuptools pythonCatchConflictsHook ] ++ lib.optionals removeBinBytecode [ diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 1ce9b7627a93..d260567f1c6c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -108,7 +108,7 @@ in { inherit buildSetupcfg; inherit (callPackage ../development/interpreters/python/hooks { }) - eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook; + eggUnpackHook eggBuildHook eggInstallHook flitBuildHook pipBuildHook pipInstallHook pytestCheckHook pythonCatchConflictsHook pythonImportsCheckHook pythonRemoveBinBytecodeHook pythonRemoveTestsDirHook setuptoolsBuildHook setuptoolsCheckHook venvShellHook wheelUnpackHook; # helpers