nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 cached-property,
6 eth-typing,
7 eth-utils,
8 pytestCheckHook,
9 pythonAtLeast,
10 setuptools,
11 pydantic,
12}:
13
14buildPythonPackage rec {
15 pname = "py-ecc";
16 version = "8.0.0";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "ethereum";
21 repo = "py_ecc";
22 rev = "v${version}";
23 hash = "sha256-4nmmX4TuErHxIDrBi+Ppr+4vuE7dSeqf8OqOxtqb3sY=";
24 };
25
26 nativeBuildInputs = [ setuptools ];
27
28 propagatedBuildInputs = [
29 cached-property
30 eth-typing
31 eth-utils
32 ];
33
34 nativeCheckInputs = [
35 pytestCheckHook
36 pydantic
37 ];
38
39 disabledTests = lib.optionals (pythonAtLeast "3.12") [
40 # https://github.com/ethereum/py_ecc/issues/133
41 "test_FQ2_object"
42 "test_pairing_bilinearity_on_G1"
43 "test_pairing_bilinearity_on_G2"
44 "test_pairing_composit_check"
45 "test_pairing_is_non_degenerate"
46 "test_pairing_negative_G1"
47 "test_pairing_negative_G2"
48 "test_pairing_output_order"
49 "test_install_local_wheel"
50 ];
51
52 pythonImportsCheck = [ "py_ecc" ];
53
54 meta = {
55 changelog = "https://github.com/ethereum/py_ecc/blob/${src.rev}/CHANGELOG.rst";
56 description = "ECC pairing and bn_128 and bls12_381 curve operations";
57 homepage = "https://github.com/ethereum/py_ecc";
58 license = lib.licenses.mit;
59 maintainers = [ ];
60 };
61}