1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, coreutils
5, jinja2
6, pandas
7, pyparsing
8, pytestCheckHook
9, pythonOlder
10, which
11, yosys
12}:
13
14buildPythonPackage rec {
15 pname = "edalize";
16 version = "0.5.1";
17 format = "setuptools";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "olofk";
23 repo = pname;
24 rev = "refs/tags/v${version}";
25 hash = "sha256-foq1CwIe86d+s7PlhLlGpnJCwrpOyr+uf5/RMLASSJU=";
26 };
27
28 postPatch = ''
29 substituteInPlace tests/test_edam.py \
30 --replace /usr/bin/touch ${coreutils}/bin/touch
31 patchShebangs tests/mock_commands/vsim
32 '';
33
34 propagatedBuildInputs = [
35 jinja2
36 ];
37
38 passthru.optional-dependencies = {
39 reporting = [
40 pandas
41 pyparsing
42 ];
43 };
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 which
48 yosys
49 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
50
51 pythonImportsCheck = [
52 "edalize"
53 ];
54
55 disabledTests = [
56 # disable failures related to pandas 2.1.0 apply(...,errors="ignore")
57 # behavior change. upstream pins pandas to 2.0.3 as of 2023-10-10
58 # https://github.com/olofk/edalize/commit/2a3db6658752f97c61048664b478ebfe65a909f8
59 "test_picorv32_artix7_summary"
60 "test_picorv32_artix7_resources"
61 "test_picorv32_artix7_timing"
62 "test_picorv32_kusp_summary"
63 "test_picorv32_kusp_resources"
64 "test_picorv32_kusp_timing"
65 "test_linux_on_litex_vexriscv_arty_a7_summary"
66 "test_linux_on_litex_vexriscv_arty_a7_resources"
67 "test_linux_on_litex_vexriscv_arty_a7_timing"
68 ];
69
70 disabledTestPaths = [
71 "tests/test_questa_formal.py"
72 "tests/test_slang.py"
73 "tests/test_apicula.py"
74 "tests/test_ascentlint.py"
75 "tests/test_diamond.py"
76 "tests/test_gatemate.py"
77 "tests/test_ghdl.py"
78 "tests/test_icarus.py"
79 "tests/test_icestorm.py"
80 "tests/test_ise.py"
81 "tests/test_mistral.py"
82 "tests/test_openlane.py"
83 "tests/test_oxide.py"
84 "tests/test_quartus.py"
85 "tests/test_radiant.py"
86 "tests/test_spyglass.py"
87 "tests/test_symbiyosys.py"
88 "tests/test_trellis.py"
89 "tests/test_vcs.py"
90 "tests/test_veribleformat.py"
91 "tests/test_veriblelint.py"
92 "tests/test_vivado.py"
93 "tests/test_xcelium.py"
94 "tests/test_xsim.py"
95 ];
96
97 meta = with lib; {
98 description = "Abstraction library for interfacing EDA tools";
99 homepage = "https://github.com/olofk/edalize";
100 changelog = "https://github.com/olofk/edalize/releases/tag/v${version}";
101 license = licenses.bsd2;
102 maintainers = with maintainers; [ astro ];
103 };
104}