1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 numpy,
6 platformdirs,
7 pytestCheckHook,
8 pythonOlder,
9 setuptools,
10 typing-extensions,
11}:
12
13buildPythonPackage rec {
14 pname = "pytools";
15 version = "2024.1.14";
16 pyproject = true;
17
18 disabled = pythonOlder "3.8";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-OeW7r4H6Qy5oi4LdCYAhLRj5eyPlGox6/nWSJJ/kCrE=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 platformdirs
29 typing-extensions
30 ];
31
32 optional-dependencies = {
33 numpy = [ numpy ];
34 # siphash = [ siphash ];
35 };
36
37 nativeCheckInputs = [ pytestCheckHook ];
38
39 pythonImportsCheck = [
40 "pytools"
41 "pytools.batchjob"
42 "pytools.lex"
43 ];
44
45 disabledTests = [
46 # siphash is not available
47 "test_class_hashing"
48 "test_dataclass_hashing"
49 "test_datetime_hashing"
50 "test_hash_function"
51 ];
52
53 meta = {
54 description = "Miscellaneous Python lifesavers";
55 homepage = "https://github.com/inducer/pytools/";
56 changelog = "https://github.com/inducer/pytools/releases/tag/v${version}";
57 license = lib.licenses.mit;
58 maintainers = with lib.maintainers; [ artuuge ];
59 };
60}