1{
2 lib,
3 buildPythonPackage,
4 setuptools-scm,
5 pythonOlder,
6 pythonRelaxDepsHook,
7 fetchFromGitHub,
8 pytestCheckHook,
9 pytest-xdist,
10 numpy,
11 numba,
12 typing-extensions,
13}:
14
15buildPythonPackage rec {
16 pname = "galois";
17 version = "0.3.8";
18 format = "pyproject";
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "mhostetter";
24 repo = "galois";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-Nfr9gD2FLZ+KvHh1mcpReUWnzFr/NxpvperzZPoFeT4=";
27 };
28
29 nativeBuildInputs = [
30 setuptools-scm
31 pythonRelaxDepsHook
32 ];
33
34 propagatedBuildInputs = [
35 numpy
36 numba
37 typing-extensions
38 ];
39
40 nativeCheckInputs = [
41 pytestCheckHook
42 pytest-xdist
43 ];
44
45 pythonRelaxDeps = [
46 "numpy"
47 "numba"
48 ];
49
50 pythonImportsCheck = [ "galois" ];
51
52 meta = with lib; {
53 description = "Python package that extends NumPy arrays to operate over finite fields";
54 homepage = "https://github.com/mhostetter/galois";
55 changelog = "https://github.com/mhostetter/galois/releases/tag/v${version}";
56 downloadPage = "https://github.com/mhostetter/galois/releases/tag/v${version}";
57 license = licenses.mit;
58 maintainers = with maintainers; [ chrispattison ];
59 };
60}