Martin Weinelt ae4a1a485a
treewide: add explicit format attribute for Python packages
If a Python package does not come with either `format` or `pyproject` we
consider it a setuptools build, that calls `setup.py` directly, which is
deprecated.

This change, as a first step, migrates a large chunk of these packages to
set setuptools as their explicit format

This is so we can unify the problem space for the next step of the
migration.
2025-07-02 05:56:47 +02:00

46 lines
974 B
Nix

{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
isPy3k,
isPyPy,
unittestCheckHook,
pythonAtLeast,
}:
let
testDir = if isPy3k then "src" else "python2";
in
buildPythonPackage rec {
pname = "typing";
version = "3.10.0.0";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "13b4ad211f54ddbf93e5901a9967b1e07720c1d1b78d596ac6a439641aa1b130";
};
disabled = pythonAtLeast "3.5";
# Error for Python3.6: ImportError: cannot import name 'ann_module'
# See https://github.com/python/typing/pull/280
# Also, don't bother on PyPy: AssertionError: TypeError not raised
doCheck = pythonOlder "3.6" && !isPyPy;
nativeCheckInputs = [ unittestCheckHook ];
unittestFlagsArray = [
"-s"
testDir
];
meta = with lib; {
description = "Backport of typing module to Python versions older than 3.5";
homepage = "https://docs.python.org/3/library/typing.html";
license = licenses.psfl;
};
}