1{
2 lib,
3 attrs,
4 buildPythonPackage,
5 dnspython,
6 fetchFromGitHub,
7 hatchling,
8 hier-config,
9 loguru,
10 macaddress,
11 passlib,
12 pyparsing,
13 pytest-cov-stub,
14 pytestCheckHook,
15 pyyaml,
16 rich,
17 scrypt,
18 tomlkit,
19 typeguard,
20}:
21
22buildPythonPackage rec {
23 pname = "ciscoconfparse2";
24 version = "0.8.17";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "mpenning";
29 repo = "ciscoconfparse2";
30 tag = version;
31 hash = "sha256-G6FR2v/FJE0ySpNXJ9603O16UjSqOkRB2+7xNoLBJAM=";
32 };
33
34 pythonRelaxDeps = [
35 "attrs"
36 "hier-config"
37 "passlib"
38 "typeguard"
39 ];
40
41 build-system = [ hatchling ];
42
43 dependencies = [
44 attrs
45 dnspython
46 hier-config
47 loguru
48 macaddress
49 passlib
50 pyparsing
51 pyyaml
52 rich
53 scrypt
54 tomlkit
55 typeguard
56 ];
57
58 nativeCheckInputs = [
59 pytest-cov-stub
60 pytestCheckHook
61 ];
62
63 pythonImportsCheck = [ "ciscoconfparse2" ];
64
65 disabledTests = [
66 # Fixtures are missing
67 "testParse_parse_syntax"
68 "testParse_syntax"
69 "testVal_IOSHSRPGroups"
70 "testVal_IOSSDWAN"
71 "testVal_junos_factory"
72 "testVal_JunosCfgLine"
73 "testValues_ccp_script_entry_cliapplication"
74 "testValues_Diff"
75 "testValues_IOSCfgLine"
76 "testValues_pickle"
77 "testValues_save_as_01"
78 ];
79
80 meta = {
81 description = "Module to parse, audit, query, build and modify device configurations";
82 homepage = "https://github.com/mpenning/ciscoconfparse2";
83 changelog = "https://github.com/mpenning/ciscoconfparse2/blob/${src.tag}/CHANGES.md";
84 license = lib.licenses.gpl3Only;
85 maintainers = with lib.maintainers; [ fab ];
86 };
87}