unifi-network-maps 1.4.4__py3-none-any.whl → 1.4.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unifi_network_maps/__init__.py +1 -1
- unifi_network_maps/cli/__init__.py +2 -38
- unifi_network_maps/cli/args.py +166 -0
- unifi_network_maps/cli/main.py +18 -752
- unifi_network_maps/cli/render.py +255 -0
- unifi_network_maps/cli/runtime.py +157 -0
- unifi_network_maps/io/mkdocs_assets.py +21 -0
- unifi_network_maps/io/mock_generate.py +2 -294
- unifi_network_maps/model/mock.py +307 -0
- unifi_network_maps/render/device_ports_md.py +44 -27
- unifi_network_maps/render/legend.py +30 -0
- unifi_network_maps/render/lldp_md.py +81 -60
- unifi_network_maps/render/markdown_tables.py +21 -0
- unifi_network_maps/render/mermaid.py +72 -85
- unifi_network_maps/render/mkdocs.py +167 -0
- unifi_network_maps/render/templates/device_port_block.md.j2 +5 -0
- unifi_network_maps/render/templates/legend_compact.html.j2 +14 -0
- unifi_network_maps/render/templates/lldp_device_section.md.j2 +15 -0
- unifi_network_maps/render/templates/markdown_section.md.j2 +3 -0
- unifi_network_maps/render/templates/mermaid_legend.mmd.j2 +30 -0
- unifi_network_maps/render/templates/mkdocs_document.md.j2 +23 -0
- unifi_network_maps/render/templates/mkdocs_dual_theme_style.html.j2 +8 -0
- unifi_network_maps/render/templates/mkdocs_html_block.html.j2 +2 -0
- unifi_network_maps/render/templates/mkdocs_legend.css.j2 +29 -0
- unifi_network_maps/render/templates/mkdocs_legend.js.j2 +18 -0
- unifi_network_maps/render/templates/mkdocs_mermaid_block.md.j2 +4 -0
- unifi_network_maps/render/templating.py +19 -0
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/METADATA +2 -1
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/RECORD +33 -13
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/WHEEL +0 -0
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/entry_points.txt +0 -0
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/licenses/LICENSE +0 -0
- {unifi_network_maps-1.4.4.dist-info → unifi_network_maps-1.4.5.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# {{ title }}
|
|
2
|
+
|
|
3
|
+
{% if timestamp_line -%}
|
|
4
|
+
{{ timestamp_line }}
|
|
5
|
+
|
|
6
|
+
{% endif -%}
|
|
7
|
+
{% if dual_style -%}
|
|
8
|
+
{{ dual_style }}{% endif -%}
|
|
9
|
+
{% set title = "Map" %}
|
|
10
|
+
{% set body = map_block %}
|
|
11
|
+
{% include "markdown_section.md.j2" %}
|
|
12
|
+
|
|
13
|
+
{% if legend_title -%}
|
|
14
|
+
{% set title = legend_title %}
|
|
15
|
+
{% set body = legend_block %}
|
|
16
|
+
{% include "markdown_section.md.j2" %}
|
|
17
|
+
|
|
18
|
+
{% else -%}
|
|
19
|
+
{{ legend_block }}
|
|
20
|
+
|
|
21
|
+
{% endif -%}
|
|
22
|
+
|
|
23
|
+
{{ device_overview }}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
.unifi-mermaid--light,.unifi-legend--light{display:none;}
|
|
3
|
+
.unifi-mermaid--dark,.unifi-legend--dark{display:none;}
|
|
4
|
+
[data-md-color-scheme="default"] .unifi-mermaid--light{display:block;}
|
|
5
|
+
[data-md-color-scheme="default"] .unifi-legend--light{display:block;}
|
|
6
|
+
[data-md-color-scheme="slate"] .unifi-mermaid--dark{display:block;}
|
|
7
|
+
[data-md-color-scheme="slate"] .unifi-legend--dark{display:block;}
|
|
8
|
+
</style>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
.unifi-legend-hidden,
|
|
2
|
+
.unifi-legend-hidden.unifi-legend,
|
|
3
|
+
.unifi-legend-hidden.unifi-legend--light,
|
|
4
|
+
.unifi-legend-hidden.unifi-legend--dark {
|
|
5
|
+
display: none !important;
|
|
6
|
+
}
|
|
7
|
+
.unifi-legend-sidebar {
|
|
8
|
+
margin-top: 1rem;
|
|
9
|
+
padding: 0.5rem 0.75rem;
|
|
10
|
+
border: 1px solid rgba(0, 0, 0, 0.08);
|
|
11
|
+
border-radius: 6px;
|
|
12
|
+
font-size: 0.75rem;
|
|
13
|
+
}
|
|
14
|
+
.unifi-legend-title {
|
|
15
|
+
font-weight: 600;
|
|
16
|
+
margin-bottom: 0.5rem;
|
|
17
|
+
}
|
|
18
|
+
.unifi-legend-sidebar table {
|
|
19
|
+
width: 100%;
|
|
20
|
+
border-collapse: collapse;
|
|
21
|
+
}
|
|
22
|
+
.unifi-legend-sidebar td,
|
|
23
|
+
.unifi-legend-sidebar th {
|
|
24
|
+
border: 0;
|
|
25
|
+
padding: 0.15rem 0;
|
|
26
|
+
}
|
|
27
|
+
.unifi-legend-sidebar svg {
|
|
28
|
+
display: block;
|
|
29
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
document.addEventListener("DOMContentLoaded", () => {
|
|
2
|
+
const legends = document.querySelectorAll("[data-unifi-legend]");
|
|
3
|
+
const sidebar = document.querySelector(".md-sidebar--secondary .md-sidebar__scrollwrap");
|
|
4
|
+
if (!legends.length || !sidebar) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
const wrapper = document.createElement("div");
|
|
8
|
+
wrapper.className = "unifi-legend-sidebar";
|
|
9
|
+
const title = document.createElement("div");
|
|
10
|
+
title.className = "unifi-legend-title";
|
|
11
|
+
title.textContent = "Legend";
|
|
12
|
+
wrapper.appendChild(title);
|
|
13
|
+
legends.forEach((legend) => {
|
|
14
|
+
wrapper.appendChild(legend.cloneNode(true));
|
|
15
|
+
legend.classList.add("unifi-legend-hidden");
|
|
16
|
+
});
|
|
17
|
+
sidebar.appendChild(wrapper);
|
|
18
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Jinja2 helpers for Markdown/HTML rendering."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from jinja2 import Environment, PackageLoader, StrictUndefined, select_autoescape
|
|
6
|
+
|
|
7
|
+
_ENV = Environment(
|
|
8
|
+
loader=PackageLoader("unifi_network_maps.render", "templates"),
|
|
9
|
+
autoescape=select_autoescape(enabled_extensions=("html", "xml")),
|
|
10
|
+
trim_blocks=True,
|
|
11
|
+
lstrip_blocks=True,
|
|
12
|
+
keep_trailing_newline=True,
|
|
13
|
+
undefined=StrictUndefined,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def render_template(name: str, **context: object) -> str:
|
|
18
|
+
template = _ENV.get_template(name)
|
|
19
|
+
return template.render(**context)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: unifi-network-maps
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.5
|
|
4
4
|
Summary: Dynamic UniFi -> network maps in mermaid or svg
|
|
5
5
|
Author: Merlijn
|
|
6
6
|
License-Expression: MIT
|
|
@@ -23,6 +23,7 @@ License-File: LICENSE
|
|
|
23
23
|
Requires-Dist: unifi-controller-api==0.3.2
|
|
24
24
|
Requires-Dist: python-dotenv==1.2.1
|
|
25
25
|
Requires-Dist: PyYAML==6.0.3
|
|
26
|
+
Requires-Dist: Jinja2==3.1.6
|
|
26
27
|
Provides-Extra: dev
|
|
27
28
|
Requires-Dist: Faker==40.1.0; extra == "dev"
|
|
28
29
|
Requires-Dist: behave==1.3.3; extra == "dev"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
unifi_network_maps/__init__.py,sha256=
|
|
1
|
+
unifi_network_maps/__init__.py,sha256=Fv2JHnR-ADpzdVitwHAsUrkhe-BpoDkmx7MxtXxlm1k,22
|
|
2
2
|
unifi_network_maps/__main__.py,sha256=XsOjaqslAVgyVlOTokjVddZ2iT8apZXpJ_OB-9WEEe4,179
|
|
3
3
|
unifi_network_maps/adapters/__init__.py,sha256=nzx1KsiYalL_YuXKE6acW8Dj5flmMg0-i4gyYO0gV54,22
|
|
4
4
|
unifi_network_maps/adapters/config.py,sha256=Bx9JDZxxY7Gjxyb8FDT0dxiKfgXt_TmzTDbgvpwB53s,1548
|
|
@@ -50,30 +50,50 @@ unifi_network_maps/assets/icons/isometric/user.svg,sha256=bYpr0t8rETJ1M7RDTWaNkK
|
|
|
50
50
|
unifi_network_maps/assets/icons/isometric/vm.svg,sha256=in6x9cdS6JgQVJl0KAbA79rap4X140dfIBCuxmgQI7s,3694
|
|
51
51
|
unifi_network_maps/assets/themes/dark.yaml,sha256=6n4_H6MZbA6DKLdF2eaNcCXYLKNJjVjNN9gmwZX97sA,932
|
|
52
52
|
unifi_network_maps/assets/themes/default.yaml,sha256=F2Jj18NmdaJ_zyERvGAn8NEWBwapjtozrtZUxayd5AU,849
|
|
53
|
-
unifi_network_maps/cli/__init__.py,sha256=
|
|
53
|
+
unifi_network_maps/cli/__init__.py,sha256=cds9GvFNZmYAR22Ab3TSzfriSAW--kf9jvC5U-21AoA,70
|
|
54
54
|
unifi_network_maps/cli/__main__.py,sha256=nK_jh78VW3h3DRvSpjzpcf64zkCqniP2k82xUR9Hw2I,147
|
|
55
|
-
unifi_network_maps/cli/
|
|
55
|
+
unifi_network_maps/cli/args.py,sha256=lIgQDeob_SIhjXg76hJsnpgNOKupSjSYum_MqarWOkE,5552
|
|
56
|
+
unifi_network_maps/cli/main.py,sha256=8r4zxhDYzDNJ-JMzX3HjPD1QTIUIyrrQeCGxcqe2vqc,4015
|
|
57
|
+
unifi_network_maps/cli/render.py,sha256=sUyDWm_I_zbEcKuNEpKUXDxhe1XptgOYsmdMP9BJ3Eg,7040
|
|
58
|
+
unifi_network_maps/cli/runtime.py,sha256=Hln4LMpuTrEsy6gIBmqkOrUpMb4nTeZ-AH72KyxpZwA,4723
|
|
56
59
|
unifi_network_maps/io/__init__.py,sha256=nzx1KsiYalL_YuXKE6acW8Dj5flmMg0-i4gyYO0gV54,22
|
|
57
60
|
unifi_network_maps/io/debug.py,sha256=eUVs6GLfs6VqI6ma8ra7NLhC3q4ek2K8OSRLnpQDF9s,1745
|
|
58
61
|
unifi_network_maps/io/export.py,sha256=2vURunQDja-_fKKMb-gQG-n34aeM8GFprNJqcGaP4qg,843
|
|
62
|
+
unifi_network_maps/io/mkdocs_assets.py,sha256=oueDLiiIW05mN-mZ2BWV7oECX-EXDjJt8msCJHMcQwg,596
|
|
59
63
|
unifi_network_maps/io/mock_data.py,sha256=uiQ8Ta8oxs5D1MUA1ONWmp09sxH0-FNlz3SJBXMeezo,714
|
|
60
|
-
unifi_network_maps/io/mock_generate.py,sha256=
|
|
64
|
+
unifi_network_maps/io/mock_generate.py,sha256=xiJz_qtNW7iVj7dezLNyVXAHtCHAi8U5CSXK5mrJE4U,233
|
|
61
65
|
unifi_network_maps/model/__init__.py,sha256=nzx1KsiYalL_YuXKE6acW8Dj5flmMg0-i4gyYO0gV54,22
|
|
62
66
|
unifi_network_maps/model/labels.py,sha256=m_k8mbzWtOSDOjjHhLUqwIw93pg98HAtGtHkiERXmek,1135
|
|
63
67
|
unifi_network_maps/model/lldp.py,sha256=SrPW5XC2lfJgaGeVx-KnSFNltyok7gIWWQNg1SkOaj4,3300
|
|
68
|
+
unifi_network_maps/model/mock.py,sha256=kd1MSiIn-7KKu_nMVmheYPfTyAN5DHt4dzRrBifF_lI,8706
|
|
64
69
|
unifi_network_maps/model/ports.py,sha256=o3NBlXcC5VV5iPWJsO4Ll1mRKJZC0f8zTHdlkkE34GU,609
|
|
65
70
|
unifi_network_maps/model/topology.py,sha256=JfpY6Pam_pgqnnmsBmzy3oDv4OCi4Ezc8msxvp5Z5NQ,26784
|
|
66
71
|
unifi_network_maps/render/__init__.py,sha256=nzx1KsiYalL_YuXKE6acW8Dj5flmMg0-i4gyYO0gV54,22
|
|
67
|
-
unifi_network_maps/render/device_ports_md.py,sha256=
|
|
68
|
-
unifi_network_maps/render/
|
|
69
|
-
unifi_network_maps/render/
|
|
72
|
+
unifi_network_maps/render/device_ports_md.py,sha256=vt5kGFSIAabMbcSxIuVVLSzdb_i58NHGi4hJM2ZLZR4,15975
|
|
73
|
+
unifi_network_maps/render/legend.py,sha256=TmZsxgCVOM2CZImI9zgRVyzrcg01HZFDj9F715d4CGo,772
|
|
74
|
+
unifi_network_maps/render/lldp_md.py,sha256=K6qTaI8HPsU7Cn0rNCJxn-Gvzkol1-m4kt0atI2NAXA,11347
|
|
75
|
+
unifi_network_maps/render/markdown_tables.py,sha256=VvM0fSnSmpeeDPcD5pXaL_j_PTF0STrMCaqnr2BVHn4,547
|
|
76
|
+
unifi_network_maps/render/mermaid.py,sha256=xsC57Xg-nKhmlVATzEbwLkMM2BOeDYlBjZuxBIPhHeI,8324
|
|
70
77
|
unifi_network_maps/render/mermaid_theme.py,sha256=7nqLlvhaUA4z0YOs0ByEx_yHWcQD_hJJjhDtRcbSpg4,1781
|
|
78
|
+
unifi_network_maps/render/mkdocs.py,sha256=EOST9_eP1ZoZQax-p-2fjlelrl3AKEJ9Gn-KXW8TI-o,5389
|
|
71
79
|
unifi_network_maps/render/svg.py,sha256=RHmSmlKxrS8m3-zYsTJu-GZugsZt8X8TDsPpK7DA6tg,38807
|
|
72
80
|
unifi_network_maps/render/svg_theme.py,sha256=Si1ArM3v_-wAvHZyLFPiOZ0ohQRd6ezIckwC3_b-WIw,2684
|
|
81
|
+
unifi_network_maps/render/templating.py,sha256=VJbXzZFBPjL8LFFPcLf_EU5Eu53GN9_vpten2Mf9A-k,576
|
|
73
82
|
unifi_network_maps/render/theme.py,sha256=vKYdPhcGEOV1o_irwqzJlIXPgRvZqQEzYYV2_TxZn4E,4301
|
|
74
|
-
unifi_network_maps
|
|
75
|
-
unifi_network_maps
|
|
76
|
-
unifi_network_maps
|
|
77
|
-
unifi_network_maps
|
|
78
|
-
unifi_network_maps
|
|
79
|
-
unifi_network_maps
|
|
83
|
+
unifi_network_maps/render/templates/device_port_block.md.j2,sha256=ZfyE_lEHz6ZyYRxAYhAhwpxlLczn_U9eTkRLUrwU5Io,50
|
|
84
|
+
unifi_network_maps/render/templates/legend_compact.html.j2,sha256=DaY2m6N6Yd7qNKLuB5Bc395MHfrKOU9myAZvgcJrhpE,738
|
|
85
|
+
unifi_network_maps/render/templates/lldp_device_section.md.j2,sha256=ewX-SBrL5Hn1kuwDKo4fqqetj9tTpR7LQavSn6No_yY,206
|
|
86
|
+
unifi_network_maps/render/templates/markdown_section.md.j2,sha256=ZKWErGcMoLtrZ3AsXVFqf04sFW4E_cYQBpa0DX1koOY,27
|
|
87
|
+
unifi_network_maps/render/templates/mermaid_legend.mmd.j2,sha256=nuamV8SAaFuA3Fp9rkAmoIIJSsG-DKjWDDCIRhTQlh4,1253
|
|
88
|
+
unifi_network_maps/render/templates/mkdocs_document.md.j2,sha256=SW52jDxyyunC2ZOjp-n3iaFQzYB0mfCIqbDdJjAl9V8,408
|
|
89
|
+
unifi_network_maps/render/templates/mkdocs_dual_theme_style.html.j2,sha256=n1LTmihCHThKhKXhNcYeVlQxcfjnSd8o43Xky1RsLTE,407
|
|
90
|
+
unifi_network_maps/render/templates/mkdocs_html_block.html.j2,sha256=5l5-BbNujOcERnWwVlaQ4H3qZ3GTEn_KLBwIMHjwj5w,113
|
|
91
|
+
unifi_network_maps/render/templates/mkdocs_legend.css.j2,sha256=tkTI-RagBSgdjUygVenlTsQFenU09ePbXOfDt_Q7YRM,612
|
|
92
|
+
unifi_network_maps/render/templates/mkdocs_legend.js.j2,sha256=qMYyCKsJ84uXf1wGgzbc7Bc49RU4oyuaGK9KrgQDQEI,685
|
|
93
|
+
unifi_network_maps/render/templates/mkdocs_mermaid_block.md.j2,sha256=9IncllWQpoI8BN3A7b2zOQ5cksj97ddsjHJ-aBhpw7o,66
|
|
94
|
+
unifi_network_maps-1.4.5.dist-info/licenses/LICENSE,sha256=mYo1siIIfIwyfdOuK2-Zt0ij2xBTii2hnpeTu79nD80,1074
|
|
95
|
+
unifi_network_maps-1.4.5.dist-info/METADATA,sha256=AVMHFRRAIPqB5nH1lObiLgXDGnwx_Ia38TkZaUzi60k,9558
|
|
96
|
+
unifi_network_maps-1.4.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
97
|
+
unifi_network_maps-1.4.5.dist-info/entry_points.txt,sha256=cdJ7jsBgNgHxSflYUOqgz5BbvuM0Nnh-x8_Hbyh_LFg,67
|
|
98
|
+
unifi_network_maps-1.4.5.dist-info/top_level.txt,sha256=G0rUX1PNfVCn1u-KtB6QjFQHopCOVLnPMczvPOoraHg,19
|
|
99
|
+
unifi_network_maps-1.4.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|