1{ lib
2, buildPythonPackage
3, dnspython
4, deprecat
5, fetchFromGitHub
6, loguru
7, passlib
8, poetry-core
9, pytestCheckHook
10, pythonOlder
11, toml
12}:
13
14buildPythonPackage rec {
15 pname = "ciscoconfparse";
16 version = "1.7.24";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "mpenning";
23 repo = pname;
24 rev = "refs/tags/${version}";
25 hash = "sha256-vL/CQdYcOP356EyRToviWylP1EBtxmeov6qkhfQNZ2Y=";
26 };
27
28 postPatch = ''
29 patchShebangs tests
30 '';
31
32 nativeBuildInputs = [
33 poetry-core
34 ];
35
36 propagatedBuildInputs = [
37 passlib
38 deprecat
39 dnspython
40 loguru
41 toml
42 ];
43
44 nativeCheckInputs = [
45 pytestCheckHook
46 ];
47
48 disabledTestPaths = [
49 "tests/parse_test.py"
50 ];
51
52 disabledTests = [
53 # Tests require network access
54 "test_dns_lookup"
55 "test_reverse_dns_lookup"
56 # Path issues with configuration files
57 "testParse_valid_filepath"
58 ];
59
60 pythonImportsCheck = [
61 "ciscoconfparse"
62 ];
63
64 meta = with lib; {
65 description = "Module to parse, audit, query, build, and modify Cisco IOS-style configurations";
66 homepage = "https://github.com/mpenning/ciscoconfparse";
67 changelog = "https://github.com/mpenning/ciscoconfparse/blob/${version}/CHANGES.md";
68 license = licenses.gpl3Only;
69 maintainers = with maintainers; [ astro ];
70 };
71}