Graphinate 0.3.1__tar.gz → 0.4.0__tar.gz
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.
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/workflows/test-beta.yml +1 -1
- graphinate-0.4.0/.sonarcloud.properties +15 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/PKG-INFO +54 -49
- {graphinate-0.3.1 → graphinate-0.4.0}/README.md +38 -33
- graphinate-0.4.0/docs/assets/stylesheets/extra.css +64 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/examples/github.md +0 -7
- graphinate-0.4.0/docs/examples/math.md +29 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/index.md +25 -19
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/intro.md +31 -30
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/start.md +7 -3
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/code/python_ast.py +1 -1
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/code/python_dependencies.py +3 -4
- graphinate-0.4.0/examples/code/requirements.txt +2 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/followers.py +6 -1
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/repositories.py +4 -2
- graphinate-0.4.0/examples/github/requirements.txt +2 -0
- graphinate-0.4.0/examples/math/graph_atlas.py +52 -0
- graphinate-0.4.0/examples/math/graphs.py +808 -0
- {graphinate-0.3.1/src/graphinate/tools → graphinate-0.4.0/examples/math}/gui.py +3 -3
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/math/polygonal_graph.py +7 -4
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/system/processes.py +3 -2
- graphinate-0.4.0/examples/system/requirements.txt +2 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/web/page_links.py +4 -1
- graphinate-0.4.0/examples/web/requirements.txt +4 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/pyproject.toml +21 -18
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/__init__.py +4 -5
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/builders.py +23 -12
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/cli.py +2 -2
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/color.py +1 -1
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/materializers/__init__.py +16 -26
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/modeling.py +25 -19
- graphinate-0.4.0/src/graphinate/server/web/static/js/murmurhash3_gc.js +64 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/viewer/index.html +1 -1
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/tools/mutators.py +2 -2
- graphinate-0.4.0/src/graphinate/typing.py +65 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/conftest.py +8 -7
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_builders.py +37 -34
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_cli.py +3 -2
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_color.py +1 -0
- graphinate-0.4.0/tests/graphinate/test_materializers.py +87 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_modeling.py +13 -5
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_server.py +4 -3
- graphinate-0.3.1/docs/assets/stylesheets/extra.css +0 -13
- graphinate-0.3.1/docs/examples/math.md +0 -15
- graphinate-0.3.1/examples/code/requirements.txt +0 -2
- graphinate-0.3.1/examples/github/requirements.txt +0 -2
- graphinate-0.3.1/examples/math/graph_atlas.py +0 -826
- graphinate-0.3.1/examples/system/requirements.txt +0 -2
- graphinate-0.3.1/examples/web/requirements.txt +0 -4
- graphinate-0.3.1/src/graphinate/typing.py +0 -54
- graphinate-0.3.1/tests/graphinate/test_materializers.py +0 -79
- {graphinate-0.3.1 → graphinate-0.4.0}/.coveragerc +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/dependabot.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/workflows/codeql.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/workflows/publish-docs.yaml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/workflows/publish.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.github/workflows/test.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/.gitignore +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/LICENSE +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/STATS.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/acknowledge.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/assets/images/logo-128.png +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/assets/images/network_graph.png +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/dev.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/examples/code.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/examples/system.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/examples/web.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/gen_ref_pages.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/usage/cli.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/docs/usage/lib.md +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/_client.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/commits_visibilty_graph.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/followers.graphql +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/graphql.config.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/github/repositories.graphql +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/examples/math/requirements.txt +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/mkdocs.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/ethernet/traceroute.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/genric_graph.graphql +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/graphql.config.yml +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/house_of_graphs.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/social/albums.json +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/social/musicisians.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/text/nlp_graph.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/text/requirements.txt +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/time_series/requirements.txt +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/playground/time_series/visibility_graph.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/sonar-project.properties +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/__main__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/materializers/matplotlib.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/starlette/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/starlette/views.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/elements/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/elements/index.html +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/graphiql/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/graphiql/index.html +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/rapidoc/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/rapidoc/index.html +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/static/images/logo-128.png +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/static/images/network_graph.png +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/viewer/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/voyager/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/server/web/voyager/index.html +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/tools/__init__.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/src/graphinate/tools/converters.py +0 -0
- {graphinate-0.3.1 → graphinate-0.4.0}/tests/graphinate/test_tools.py +0 -0
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
fail-fast: false
|
|
17
17
|
matrix:
|
|
18
18
|
# https://github.com/actions/python-versions/blob/main/versions-manifest.json
|
|
19
|
-
python-version: [ "3.14.0-alpha.
|
|
19
|
+
python-version: [ "3.14.0-alpha.4" ]
|
|
20
20
|
steps:
|
|
21
21
|
- uses: actions/checkout@v4
|
|
22
22
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Path to sources
|
|
2
|
+
#sonar.sources=.
|
|
3
|
+
#sonar.exclusions=
|
|
4
|
+
#sonar.inclusions=
|
|
5
|
+
|
|
6
|
+
# Path to tests
|
|
7
|
+
#sonar.tests=
|
|
8
|
+
#sonar.test.exclusions=
|
|
9
|
+
#sonar.test.inclusions=
|
|
10
|
+
|
|
11
|
+
# Source encoding
|
|
12
|
+
#sonar.sourceEncoding=UTF-8
|
|
13
|
+
|
|
14
|
+
# Exclusions for copy-paste detection
|
|
15
|
+
#sonar.cpd.exclusions=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: Graphinate
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Graphinate. Data to Graphs.
|
|
5
5
|
Project-URL: Homepage, https://erivlis.github.io/graphinate
|
|
6
6
|
Project-URL: Documentation, https://erivlis.github.io/graphinate
|
|
@@ -27,12 +27,12 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
27
27
|
Classifier: Topic :: Software Development :: Libraries
|
|
28
28
|
Classifier: Typing :: Typed
|
|
29
29
|
Requires-Python: >=3.10
|
|
30
|
-
Requires-Dist: click
|
|
31
|
-
Requires-Dist: inflect
|
|
32
|
-
Requires-Dist: loguru
|
|
33
|
-
Requires-Dist: matplotlib
|
|
34
|
-
Requires-Dist: networkx
|
|
35
|
-
Requires-Dist: strawberry-graphql[asgi,opentelemetry]
|
|
30
|
+
Requires-Dist: click
|
|
31
|
+
Requires-Dist: inflect
|
|
32
|
+
Requires-Dist: loguru
|
|
33
|
+
Requires-Dist: matplotlib
|
|
34
|
+
Requires-Dist: networkx
|
|
35
|
+
Requires-Dist: strawberry-graphql[asgi,opentelemetry]
|
|
36
36
|
Provides-Extra: dev
|
|
37
37
|
Requires-Dist: pipdeptree; extra == 'dev'
|
|
38
38
|
Requires-Dist: ruff; extra == 'dev'
|
|
@@ -45,17 +45,17 @@ Requires-Dist: mkdocs-material; extra == 'docs'
|
|
|
45
45
|
Requires-Dist: mkdocs-section-index; extra == 'docs'
|
|
46
46
|
Requires-Dist: mkdocstrings-python; extra == 'docs'
|
|
47
47
|
Provides-Extra: plot
|
|
48
|
-
Requires-Dist: scipy
|
|
48
|
+
Requires-Dist: scipy; extra == 'plot'
|
|
49
49
|
Provides-Extra: server
|
|
50
50
|
Requires-Dist: starlette-prometheus; extra == 'server'
|
|
51
|
-
Requires-Dist: uvicorn[standard]
|
|
51
|
+
Requires-Dist: uvicorn[standard]; extra == 'server'
|
|
52
52
|
Provides-Extra: test
|
|
53
|
-
Requires-Dist: faker
|
|
54
|
-
Requires-Dist: pytest
|
|
55
|
-
Requires-Dist: pytest-
|
|
56
|
-
Requires-Dist: pytest-
|
|
57
|
-
Requires-Dist: pytest-
|
|
58
|
-
Requires-Dist: pytest
|
|
53
|
+
Requires-Dist: faker; extra == 'test'
|
|
54
|
+
Requires-Dist: pytest; extra == 'test'
|
|
55
|
+
Requires-Dist: pytest-asyncio; extra == 'test'
|
|
56
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
57
|
+
Requires-Dist: pytest-randomly; extra == 'test'
|
|
58
|
+
Requires-Dist: pytest-xdist; extra == 'test'
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
|
|
61
61
|
# [Graphinate. Data to Graphs.](https://erivlis.github.io/graphinate/)
|
|
@@ -66,53 +66,58 @@ Description-Content-Type: text/markdown
|
|
|
66
66
|
<tr style="vertical-align: middle;">
|
|
67
67
|
<td>Package</td>
|
|
68
68
|
<td>
|
|
69
|
-
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate">
|
|
70
|
-
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate">
|
|
71
|
-
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate">
|
|
72
|
-
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate">
|
|
73
|
-
<
|
|
69
|
+
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
70
|
+
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
71
|
+
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate.svg?logo=python&label=Python&logoColor=lightblue">
|
|
72
|
+
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
73
|
+
<img alt="Libraries.io SourceRank" src="https://img.shields.io/librariesio/sourcerank/pypi/Graphinate.svg?logo=Libraries.io&label=SourceRank">
|
|
74
|
+
</td>
|
|
75
|
+
</tr>
|
|
76
|
+
<tr style="vertical-align: middle;">
|
|
77
|
+
<td>Code</td>
|
|
78
|
+
<td>
|
|
74
79
|
<img alt="GitHub" src="https://img.shields.io/github/license/erivlis/graphinate">
|
|
75
|
-
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate">
|
|
76
|
-
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate">
|
|
77
|
-
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg"></a>
|
|
80
|
+
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate.svg?label=Size&logo=git">
|
|
81
|
+
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate.svg?&logo=git">
|
|
82
|
+
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg?&logo=git"></a>
|
|
78
83
|
</td>
|
|
79
84
|
</tr>
|
|
80
|
-
<tr>
|
|
85
|
+
<tr style="vertical-align: middle;">
|
|
81
86
|
<td>Tools</td>
|
|
82
87
|
<td>
|
|
83
88
|
<a href="https://www.jetbrains.com/pycharm/"><img alt="PyCharm" src="https://img.shields.io/badge/PyCharm-FCF84A.svg?logo=PyCharm&logoColor=black&labelColor=21D789&color=FCF84A"></a>
|
|
84
|
-
<a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" style="max-width:100%;"></a>
|
|
85
89
|
<a href="https://github.com/astral-sh/uv"><img alt="uv" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json" style="max-width:100%;"></a>
|
|
86
|
-
<a href="https://
|
|
90
|
+
<a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" style="max-width:100%;"></a>
|
|
87
91
|
<a href="https://github.com/tox-dev/pipdeptree"><img alt="pipdeptree" src="https://img.shields.io/badge/pipdeptree-526CFE.svg?labelColor=gray&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADFElEQVR4nFxTW2tcVRRe39773E/mliZjwKRmhBaKt4BWRKmGgihCH3xUKNWC/Q/ii76IP8AHpSIiRfqmD5YKCinalhgiCMZLSVtMM0mTdDLTuZyZc9l7yTlp7WXBgXPW+fa31rfWtxU9FLMN79Crr028e+iJsZfb7fJMp23xRlOvbTR3L/y5cuOL3Vbv7/vxuPviecI/eWr6k/mj4+8AkM11y+zs2MKwMJvNgIgYINZX/rlx+tIvf72fZXr4P0EQyOCjjw98P9vwn8+/+z3Bq6sek7AJkNhsOjQcyjvFmHd2upd+PP/zsSxNI5mnPvjw8U9fPFJ9XVkgNuDVayEbcgVEfgikNfFg4JAmh1LyyfGq06QqE9vN6+fEs4fHnjv25vjbAOA4AsL2MVZ1hRcI4QXIH7ilMqQXkiYXRBJRbFNQnTsRlqfmxFvH66ccFyAQMxP3I5cqNZBSxIWcKORMO9g3yeSHzFkGbnVCIkDUZ+beEy+8VJ4XguC6TMPYokwrCAHUJsBxYptoFBYSMi0oLIlcAkuFYhal8Zl5VanZU0zErgfurufMFjEkWZ7iRFY4SlgYfW9bUIJKFQNjiNPYf1QZOZn/hTaStPQKTI4eDCxSjsL4I6BeJzOjgcnT0HqPqwBJCdHZjW/miWjkkG3hzqKIe5FVlM3llGuWqOxTDMBkWlJ/6PB2p0Sb21gXixdvLeTtDGOHLFvQHpkiYyTuNU5kuxJercTdpEK3Bz4yLdFrXVsQ33x1/bModjhvyrKKVXB/YD9gb8PgKAlolAZipmFTOIYcxq21Xz8XS5dbi+e+2zqbA3MjxYninH3PpkyZljwYjZE2FoxBIWm6YVHaW/k66qwtF05curz509OHHzvqBqWp232fE+2AoCjOXNMfhcRcjAxxoijNFNpbG0vL588cNzpLC4I00cnCD1fPBuVqffbA5DMGNjR5MOSBpC+UYxGE5G5PmNXff/vy4rdnTmRJHD1wG+9G42D9qVfeePLk/oONI8qv7+/2fbq11f53ZfnqhStLi6d3b67/cT/+vwAAAP//Xo5dwOtdLi4AAAAASUVORK5CYII="></a>
|
|
92
|
+
<a href="https://squidfunk.github.io/mkdocs-material/"><img alt="mkdocs-material" src="https://img.shields.io/badge/Material_for_MkDocs-526CFE?&logo=MaterialForMkDocs&logoColor=white&labelColor=grey"></a>
|
|
93
|
+
<a href="https://hatch.pypa.io"><img alt="Hatch project" class="off-glb" loading="lazy" src="https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg"></a>
|
|
88
94
|
</td>
|
|
89
95
|
</tr>
|
|
90
|
-
<tr>
|
|
96
|
+
<tr style="vertical-align: middle;">
|
|
91
97
|
<td>CI/CD</td>
|
|
92
98
|
<td>
|
|
93
|
-
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="
|
|
99
|
+
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="Test" src="https://github.com/erivlis/graphinate/actions/workflows/test.yml/badge.svg"></a>
|
|
100
|
+
<a href="https://github.com/erivlis/graphinate/actions/workflows/test-beta.yml"><img alt="Test (Beta)" src="https://github.com/erivlis/graphinate/actions/workflows/test-beta.yml/badge.svg"></a>
|
|
94
101
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish.yml"><img alt="Publish" src="https://github.com/erivlis/graphinate/actions/workflows/publish.yml/badge.svg"></a>
|
|
95
102
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml"><img alt="Publish Docs" src="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml/badge.svg"></a>
|
|
96
103
|
</td>
|
|
97
104
|
</tr>
|
|
98
|
-
<tr>
|
|
105
|
+
<tr style="vertical-align: middle;">
|
|
99
106
|
<td>Scans</td>
|
|
100
107
|
<td>
|
|
101
108
|
<a href="https://codecov.io/gh/erivlis/graphinate"><img alt="Coverage" src="https://codecov.io/gh/erivlis/graphinate/graph/badge.svg?token=POODT8M9NV"/></a>
|
|
102
|
-
<br>
|
|
103
109
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Quality Gate Status" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=alert_status"></a>
|
|
104
110
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Security Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=security_rating"></a>
|
|
105
111
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Maintainability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=sqale_rating"></a>
|
|
106
112
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Reliability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=reliability_rating"></a>
|
|
107
|
-
<br>
|
|
108
113
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Lines of Code" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=ncloc"></a>
|
|
109
114
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Vulnerabilities" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=vulnerabilities"></a>
|
|
110
115
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Bugs" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=bugs"></a>
|
|
111
|
-
<br>
|
|
112
116
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img alt="Codacy Badge" src="https://app.codacy.com/project/badge/Grade/54b33c3f7313448f9471d01e2a06f037"></a>
|
|
113
117
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage"><img alt="Codacy Coverage" src="https://app.codacy.com/project/badge/Coverage/54b33c3f7313448f9471d01e2a06f037"/></a>
|
|
114
118
|
<a href="https://scrutinizer-ci.com/g/erivlis/graphinate"><img alt="Scrutinizer" src="https://scrutinizer-ci.com/g/erivlis/graphinate/badges/quality-score.png?b=main"></a>
|
|
115
|
-
|
|
119
|
+
<a href="https://www.codefactor.io/repository/github/erivlis/graphinate"><img src="https://www.codefactor.io/repository/github/erivlis/graphinate/badge" alt="CodeFactor" /></a>
|
|
120
|
+
<a href="https://snyk.io/test/github/erivlis/graphinate"><img alt="Snyk" src="https://snyk.io/test/github/erivlis/Graphinate/badge.svg"></a>
|
|
116
121
|
</td>
|
|
117
122
|
</tr>
|
|
118
123
|
</table>
|
|
@@ -123,14 +128,14 @@ Description-Content-Type: text/markdown
|
|
|
123
128
|
|
|
124
129
|
### What is Graphinate?
|
|
125
130
|
|
|
126
|
-
**Graphinate** is a python library that
|
|
131
|
+
**Graphinate** is a python library that can be used to generate Graph Data Structures from Data Sources.
|
|
127
132
|
|
|
128
|
-
It can help create an efficient retrieval pipeline from a given data source, while also enabling the developer to
|
|
129
|
-
|
|
133
|
+
It can help create an efficient retrieval pipeline from a given data source, while also enabling the developer to map
|
|
134
|
+
data payloads and hierarchies to a Graph.
|
|
130
135
|
|
|
131
|
-
In addition, there are several modes of output to enable examination of the Graph
|
|
136
|
+
In addition, there are several modes of output to enable examination of the Graph and its content.
|
|
132
137
|
|
|
133
|
-
**Graphinate**
|
|
138
|
+
**Graphinate** uses and builds upon the excellent [**_NetworkX_**](https://networkx.org/).
|
|
134
139
|
|
|
135
140
|
### Links
|
|
136
141
|
|
|
@@ -158,29 +163,30 @@ pip install graphinate[server]
|
|
|
158
163
|
|
|
159
164
|
### Example
|
|
160
165
|
|
|
161
|
-
```python
|
|
166
|
+
```python title="Octagonal Graph"
|
|
162
167
|
import graphinate
|
|
163
168
|
|
|
164
169
|
N: int = 8
|
|
165
170
|
|
|
166
|
-
# Define GraphModel
|
|
167
|
-
graph_model = graphinate.model(name="Octagonal Graph")
|
|
171
|
+
# Define a GraphModel
|
|
172
|
+
graph_model: graphinate.GraphModel = graphinate.model(name="Octagonal Graph")
|
|
168
173
|
|
|
169
174
|
|
|
170
|
-
# Register edges supplier function
|
|
175
|
+
# Register in the Graph Model the edges' supplier function
|
|
171
176
|
@graph_model.edge()
|
|
172
177
|
def edge():
|
|
173
|
-
for i in range(N
|
|
178
|
+
for i in range(N):
|
|
174
179
|
yield {'source': i, 'target': i + 1}
|
|
175
|
-
yield {'source': N
|
|
180
|
+
yield {'source': N, 'target': 0}
|
|
176
181
|
|
|
177
182
|
|
|
183
|
+
# Choose builder and handler
|
|
184
|
+
builder, handler = graphinate.materializers.Materializers.NetworkX_with_edge_labels.value
|
|
185
|
+
|
|
178
186
|
# Materialize the GraphModel
|
|
179
|
-
graphinate.materialize(graph_model)
|
|
187
|
+
graphinate.materialize(graph_model, builder=builder, builder_output_handler=handler)
|
|
180
188
|
```
|
|
181
189
|
|
|
182
|
-
|
|
183
|
-
|
|
184
190
|
#### `graphinate.model` function
|
|
185
191
|
|
|
186
192
|
> [!NOTE]
|
|
@@ -191,7 +197,6 @@ graphinate.materialize(graph_model)
|
|
|
191
197
|
|
|
192
198
|
> [!NOTE]
|
|
193
199
|
> This function can be used to easily generate an output from a `GraphModel` instance.
|
|
194
|
-
> By default, it will prompt the user to choose the output format, using a popup GUI dialog box.
|
|
195
200
|
|
|
196
201
|
## CLI
|
|
197
202
|
|
|
@@ -6,53 +6,58 @@
|
|
|
6
6
|
<tr style="vertical-align: middle;">
|
|
7
7
|
<td>Package</td>
|
|
8
8
|
<td>
|
|
9
|
-
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate">
|
|
10
|
-
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate">
|
|
11
|
-
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate">
|
|
12
|
-
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate">
|
|
13
|
-
<
|
|
9
|
+
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
10
|
+
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
11
|
+
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate.svg?logo=python&label=Python&logoColor=lightblue">
|
|
12
|
+
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
13
|
+
<img alt="Libraries.io SourceRank" src="https://img.shields.io/librariesio/sourcerank/pypi/Graphinate.svg?logo=Libraries.io&label=SourceRank">
|
|
14
|
+
</td>
|
|
15
|
+
</tr>
|
|
16
|
+
<tr style="vertical-align: middle;">
|
|
17
|
+
<td>Code</td>
|
|
18
|
+
<td>
|
|
14
19
|
<img alt="GitHub" src="https://img.shields.io/github/license/erivlis/graphinate">
|
|
15
|
-
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate">
|
|
16
|
-
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate">
|
|
17
|
-
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg"></a>
|
|
20
|
+
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate.svg?label=Size&logo=git">
|
|
21
|
+
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate.svg?&logo=git">
|
|
22
|
+
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg?&logo=git"></a>
|
|
18
23
|
</td>
|
|
19
24
|
</tr>
|
|
20
|
-
<tr>
|
|
25
|
+
<tr style="vertical-align: middle;">
|
|
21
26
|
<td>Tools</td>
|
|
22
27
|
<td>
|
|
23
28
|
<a href="https://www.jetbrains.com/pycharm/"><img alt="PyCharm" src="https://img.shields.io/badge/PyCharm-FCF84A.svg?logo=PyCharm&logoColor=black&labelColor=21D789&color=FCF84A"></a>
|
|
24
|
-
<a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" style="max-width:100%;"></a>
|
|
25
29
|
<a href="https://github.com/astral-sh/uv"><img alt="uv" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json" style="max-width:100%;"></a>
|
|
26
|
-
<a href="https://
|
|
30
|
+
<a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" style="max-width:100%;"></a>
|
|
27
31
|
<a href="https://github.com/tox-dev/pipdeptree"><img alt="pipdeptree" src="https://img.shields.io/badge/pipdeptree-526CFE.svg?labelColor=gray&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADFElEQVR4nFxTW2tcVRRe39773E/mliZjwKRmhBaKt4BWRKmGgihCH3xUKNWC/Q/ii76IP8AHpSIiRfqmD5YKCinalhgiCMZLSVtMM0mTdDLTuZyZc9l7yTlp7WXBgXPW+fa31rfWtxU9FLMN79Crr028e+iJsZfb7fJMp23xRlOvbTR3L/y5cuOL3Vbv7/vxuPviecI/eWr6k/mj4+8AkM11y+zs2MKwMJvNgIgYINZX/rlx+tIvf72fZXr4P0EQyOCjjw98P9vwn8+/+z3Bq6sek7AJkNhsOjQcyjvFmHd2upd+PP/zsSxNI5mnPvjw8U9fPFJ9XVkgNuDVayEbcgVEfgikNfFg4JAmh1LyyfGq06QqE9vN6+fEs4fHnjv25vjbAOA4AsL2MVZ1hRcI4QXIH7ilMqQXkiYXRBJRbFNQnTsRlqfmxFvH66ccFyAQMxP3I5cqNZBSxIWcKORMO9g3yeSHzFkGbnVCIkDUZ+beEy+8VJ4XguC6TMPYokwrCAHUJsBxYptoFBYSMi0oLIlcAkuFYhal8Zl5VanZU0zErgfurufMFjEkWZ7iRFY4SlgYfW9bUIJKFQNjiNPYf1QZOZn/hTaStPQKTI4eDCxSjsL4I6BeJzOjgcnT0HqPqwBJCdHZjW/miWjkkG3hzqKIe5FVlM3llGuWqOxTDMBkWlJ/6PB2p0Sb21gXixdvLeTtDGOHLFvQHpkiYyTuNU5kuxJercTdpEK3Bz4yLdFrXVsQ33x1/bModjhvyrKKVXB/YD9gb8PgKAlolAZipmFTOIYcxq21Xz8XS5dbi+e+2zqbA3MjxYninH3PpkyZljwYjZE2FoxBIWm6YVHaW/k66qwtF05curz509OHHzvqBqWp232fE+2AoCjOXNMfhcRcjAxxoijNFNpbG0vL588cNzpLC4I00cnCD1fPBuVqffbA5DMGNjR5MOSBpC+UYxGE5G5PmNXff/vy4rdnTmRJHD1wG+9G42D9qVfeePLk/oONI8qv7+/2fbq11f53ZfnqhStLi6d3b67/cT/+vwAAAP//Xo5dwOtdLi4AAAAASUVORK5CYII="></a>
|
|
32
|
+
<a href="https://squidfunk.github.io/mkdocs-material/"><img alt="mkdocs-material" src="https://img.shields.io/badge/Material_for_MkDocs-526CFE?&logo=MaterialForMkDocs&logoColor=white&labelColor=grey"></a>
|
|
33
|
+
<a href="https://hatch.pypa.io"><img alt="Hatch project" class="off-glb" loading="lazy" src="https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg"></a>
|
|
28
34
|
</td>
|
|
29
35
|
</tr>
|
|
30
|
-
<tr>
|
|
36
|
+
<tr style="vertical-align: middle;">
|
|
31
37
|
<td>CI/CD</td>
|
|
32
38
|
<td>
|
|
33
|
-
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="
|
|
39
|
+
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="Test" src="https://github.com/erivlis/graphinate/actions/workflows/test.yml/badge.svg"></a>
|
|
40
|
+
<a href="https://github.com/erivlis/graphinate/actions/workflows/test-beta.yml"><img alt="Test (Beta)" src="https://github.com/erivlis/graphinate/actions/workflows/test-beta.yml/badge.svg"></a>
|
|
34
41
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish.yml"><img alt="Publish" src="https://github.com/erivlis/graphinate/actions/workflows/publish.yml/badge.svg"></a>
|
|
35
42
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml"><img alt="Publish Docs" src="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml/badge.svg"></a>
|
|
36
43
|
</td>
|
|
37
44
|
</tr>
|
|
38
|
-
<tr>
|
|
45
|
+
<tr style="vertical-align: middle;">
|
|
39
46
|
<td>Scans</td>
|
|
40
47
|
<td>
|
|
41
48
|
<a href="https://codecov.io/gh/erivlis/graphinate"><img alt="Coverage" src="https://codecov.io/gh/erivlis/graphinate/graph/badge.svg?token=POODT8M9NV"/></a>
|
|
42
|
-
<br>
|
|
43
49
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Quality Gate Status" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=alert_status"></a>
|
|
44
50
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Security Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=security_rating"></a>
|
|
45
51
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Maintainability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=sqale_rating"></a>
|
|
46
52
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Reliability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=reliability_rating"></a>
|
|
47
|
-
<br>
|
|
48
53
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Lines of Code" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=ncloc"></a>
|
|
49
54
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Vulnerabilities" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=vulnerabilities"></a>
|
|
50
55
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Bugs" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=bugs"></a>
|
|
51
|
-
<br>
|
|
52
56
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img alt="Codacy Badge" src="https://app.codacy.com/project/badge/Grade/54b33c3f7313448f9471d01e2a06f037"></a>
|
|
53
57
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage"><img alt="Codacy Coverage" src="https://app.codacy.com/project/badge/Coverage/54b33c3f7313448f9471d01e2a06f037"/></a>
|
|
54
58
|
<a href="https://scrutinizer-ci.com/g/erivlis/graphinate"><img alt="Scrutinizer" src="https://scrutinizer-ci.com/g/erivlis/graphinate/badges/quality-score.png?b=main"></a>
|
|
55
|
-
|
|
59
|
+
<a href="https://www.codefactor.io/repository/github/erivlis/graphinate"><img src="https://www.codefactor.io/repository/github/erivlis/graphinate/badge" alt="CodeFactor" /></a>
|
|
60
|
+
<a href="https://snyk.io/test/github/erivlis/graphinate"><img alt="Snyk" src="https://snyk.io/test/github/erivlis/Graphinate/badge.svg"></a>
|
|
56
61
|
</td>
|
|
57
62
|
</tr>
|
|
58
63
|
</table>
|
|
@@ -63,14 +68,14 @@
|
|
|
63
68
|
|
|
64
69
|
### What is Graphinate?
|
|
65
70
|
|
|
66
|
-
**Graphinate** is a python library that
|
|
71
|
+
**Graphinate** is a python library that can be used to generate Graph Data Structures from Data Sources.
|
|
67
72
|
|
|
68
|
-
It can help create an efficient retrieval pipeline from a given data source, while also enabling the developer to
|
|
69
|
-
|
|
73
|
+
It can help create an efficient retrieval pipeline from a given data source, while also enabling the developer to map
|
|
74
|
+
data payloads and hierarchies to a Graph.
|
|
70
75
|
|
|
71
|
-
In addition, there are several modes of output to enable examination of the Graph
|
|
76
|
+
In addition, there are several modes of output to enable examination of the Graph and its content.
|
|
72
77
|
|
|
73
|
-
**Graphinate**
|
|
78
|
+
**Graphinate** uses and builds upon the excellent [**_NetworkX_**](https://networkx.org/).
|
|
74
79
|
|
|
75
80
|
### Links
|
|
76
81
|
|
|
@@ -98,29 +103,30 @@ pip install graphinate[server]
|
|
|
98
103
|
|
|
99
104
|
### Example
|
|
100
105
|
|
|
101
|
-
```python
|
|
106
|
+
```python title="Octagonal Graph"
|
|
102
107
|
import graphinate
|
|
103
108
|
|
|
104
109
|
N: int = 8
|
|
105
110
|
|
|
106
|
-
# Define GraphModel
|
|
107
|
-
graph_model = graphinate.model(name="Octagonal Graph")
|
|
111
|
+
# Define a GraphModel
|
|
112
|
+
graph_model: graphinate.GraphModel = graphinate.model(name="Octagonal Graph")
|
|
108
113
|
|
|
109
114
|
|
|
110
|
-
# Register edges supplier function
|
|
115
|
+
# Register in the Graph Model the edges' supplier function
|
|
111
116
|
@graph_model.edge()
|
|
112
117
|
def edge():
|
|
113
|
-
for i in range(N
|
|
118
|
+
for i in range(N):
|
|
114
119
|
yield {'source': i, 'target': i + 1}
|
|
115
|
-
yield {'source': N
|
|
120
|
+
yield {'source': N, 'target': 0}
|
|
116
121
|
|
|
117
122
|
|
|
123
|
+
# Choose builder and handler
|
|
124
|
+
builder, handler = graphinate.materializers.Materializers.NetworkX_with_edge_labels.value
|
|
125
|
+
|
|
118
126
|
# Materialize the GraphModel
|
|
119
|
-
graphinate.materialize(graph_model)
|
|
127
|
+
graphinate.materialize(graph_model, builder=builder, builder_output_handler=handler)
|
|
120
128
|
```
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
|
|
124
130
|
#### `graphinate.model` function
|
|
125
131
|
|
|
126
132
|
> [!NOTE]
|
|
@@ -131,7 +137,6 @@ graphinate.materialize(graph_model)
|
|
|
131
137
|
|
|
132
138
|
> [!NOTE]
|
|
133
139
|
> This function can be used to easily generate an output from a `GraphModel` instance.
|
|
134
|
-
> By default, it will prompt the user to choose the output format, using a popup GUI dialog box.
|
|
135
140
|
|
|
136
141
|
## CLI
|
|
137
142
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* extra.css */
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
:root {
|
|
5
|
+
--md-primary-fg-color: #E3963E;
|
|
6
|
+
--md-primary-fg-color--dark: #FFBF00;
|
|
7
|
+
--md-primary-fg-color--light: #EBA937;
|
|
8
|
+
}
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
--md-primary-fg-color: rebeccapurple;
|
|
13
|
+
--md-primary-fg-color--dark: midnight;
|
|
14
|
+
--md-primary-fg-color--light: silver;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/* Title levels */
|
|
19
|
+
h1 {
|
|
20
|
+
color: royalblue;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
h2 {
|
|
24
|
+
color: slateblue;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
h3 {
|
|
28
|
+
color: mediumslateblue;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
h4, h5, h6 {
|
|
32
|
+
color: steelblue;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Blockquotes */
|
|
36
|
+
/*blockquote {*/
|
|
37
|
+
/* border-left: 4px solid #bdc3c7; !* Light gray *!*/
|
|
38
|
+
/* color: #7f8c8d; !* Gray *!*/
|
|
39
|
+
/* !*background-color: #ecf0f1; !* Very light gray *!*!*/
|
|
40
|
+
/* padding: 10px;*/
|
|
41
|
+
/*}*/
|
|
42
|
+
|
|
43
|
+
/* Code blocks */
|
|
44
|
+
/*pre, code {*/
|
|
45
|
+
/* background-color: #f8f9fa; !* Very light gray *!*/
|
|
46
|
+
/* color: #2c3e50; !* Dark blue *!*/
|
|
47
|
+
/*}*/
|
|
48
|
+
|
|
49
|
+
/* Tables */
|
|
50
|
+
/*table {*/
|
|
51
|
+
/* border-collapse: collapse;*/
|
|
52
|
+
/* width: 100%;*/
|
|
53
|
+
/*}*/
|
|
54
|
+
|
|
55
|
+
/*th, td {*/
|
|
56
|
+
/* border: 1px solid #bdc3c7; !* Light gray *!*/
|
|
57
|
+
/* padding: 8px;*/
|
|
58
|
+
/* text-align: left;*/
|
|
59
|
+
/*}*/
|
|
60
|
+
|
|
61
|
+
/*th {*/
|
|
62
|
+
/* background-color: #ecf0f1; !* Very light gray *!*/
|
|
63
|
+
/* color: #2c3e50; !* Dark blue *!*/
|
|
64
|
+
/*}*/
|
|
@@ -3,42 +3,35 @@
|
|
|
3
3
|
## Repositories
|
|
4
4
|
|
|
5
5
|
=== "Repositories"
|
|
6
|
-
|
|
7
6
|
``` python title="examples/github/repositories.py" linenums="1"
|
|
8
7
|
--8<-- "examples/github/repositories.py"
|
|
9
8
|
```
|
|
10
9
|
|
|
11
10
|
=== "Dependencies"
|
|
12
|
-
|
|
13
11
|
``` text title="examples/github/requirements.txt" linenums="1"
|
|
14
12
|
--8<-- "examples/github/requirements.txt"
|
|
15
13
|
```
|
|
16
14
|
|
|
17
|
-
|
|
18
15
|
``` python title="examples/github/_client.py" linenums="1"
|
|
19
16
|
--8<-- "examples/github/_client.py"
|
|
20
17
|
```
|
|
21
18
|
|
|
22
19
|
=== "Plot"
|
|
23
|
-
|
|
24
20
|

|
|
25
21
|
|
|
26
22
|
|
|
27
23
|
## Followers
|
|
28
24
|
|
|
29
25
|
=== "Followers"
|
|
30
|
-
|
|
31
26
|
``` python title="examples/github/followers.py" linenums="1"
|
|
32
27
|
--8<-- "examples/github/followers.py"
|
|
33
28
|
```
|
|
34
29
|
|
|
35
30
|
=== "Dependencies"
|
|
36
|
-
|
|
37
31
|
``` text title="examples/github/requirements.txt" linenums="1"
|
|
38
32
|
--8<-- "examples/github/requirements.txt"
|
|
39
33
|
```
|
|
40
34
|
|
|
41
|
-
|
|
42
35
|
``` python title="examples/github/_client.py" linenums="1"
|
|
43
36
|
--8<-- "examples/github/_client.py"
|
|
44
37
|
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Math
|
|
2
|
+
|
|
3
|
+
## Graph Atlas
|
|
4
|
+
|
|
5
|
+
=== "Graph Atlas"
|
|
6
|
+
``` python title="examples/math/graph_atlas.py" linenums="1"
|
|
7
|
+
--8<-- "examples/math/graph_atlas.py"
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
=== "Dependencies"
|
|
11
|
+
``` text title="examples/math/requirements.txt" linenums="1"
|
|
12
|
+
--8<-- "examples/math/requirements.txt"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
``` python title="examples/math/graph.py" linenums="1"
|
|
16
|
+
--8<-- "examples/math/graphs.py"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Polygonal Graph
|
|
20
|
+
|
|
21
|
+
=== "Polygonal Graph"
|
|
22
|
+
``` python title="examples/math/polygonal_graph.py" linenums="1"
|
|
23
|
+
--8<-- "examples/math/polygonal_graph.py"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
=== "Dependencies"
|
|
27
|
+
``` text title="examples/math/requirements.txt" linenums="1"
|
|
28
|
+
--8<-- "examples/math/requirements.txt"
|
|
29
|
+
```
|
|
@@ -2,55 +2,61 @@
|
|
|
2
2
|
|
|
3
3
|
<table style="border-width: 0;">
|
|
4
4
|
<tr style="vertical-align: middle; border-width: 0;">
|
|
5
|
-
<td rowspan="
|
|
5
|
+
<td rowspan="5"><img height="240" src="https://github.com/erivlis/graphinate/assets/9897520/dae41f9f-69e5-4eb5-a488-87ce7f51fa32" alt="Graphinate. Data to Graphs."></td>
|
|
6
6
|
<td>Package</td>
|
|
7
7
|
<td>
|
|
8
|
-
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate">
|
|
9
|
-
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate">
|
|
10
|
-
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate">
|
|
11
|
-
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate">
|
|
12
|
-
<
|
|
8
|
+
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
9
|
+
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
10
|
+
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate.svg?logo=python&label=Python&logoColor=lightblue">
|
|
11
|
+
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate.svg?logo=pypi&logoColor=lightblue">
|
|
12
|
+
<img alt="Libraries.io SourceRank" src="https://img.shields.io/librariesio/sourcerank/pypi/Graphinate.svg?logo=Libraries.io&label=SourceRank">
|
|
13
|
+
</td>
|
|
14
|
+
</tr>
|
|
15
|
+
<tr style="vertical-align: middle;">
|
|
16
|
+
<td>Code</td>
|
|
17
|
+
<td>
|
|
13
18
|
<img alt="GitHub" src="https://img.shields.io/github/license/erivlis/graphinate">
|
|
14
|
-
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate">
|
|
15
|
-
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate">
|
|
16
|
-
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg"></a>
|
|
17
|
-
<img alt="GitHub Watchers" src="https://img.shields.io/github/watchers/erivlis/graphinate.svg">
|
|
19
|
+
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate.svg?label=Size&logo=git">
|
|
20
|
+
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate.svg?&logo=git">
|
|
21
|
+
<a href="https://github.com/erivlis/graphinate/graphs/contributors"><img alt="Contributors" src="https://img.shields.io/github/contributors/erivlis/graphinate.svg?&logo=git"></a>
|
|
18
22
|
</td>
|
|
19
23
|
</tr>
|
|
20
|
-
<tr
|
|
24
|
+
<tr style="vertical-align: middle;">
|
|
21
25
|
<td>Tools</td>
|
|
22
26
|
<td>
|
|
23
27
|
<a href="https://www.jetbrains.com/pycharm/"><img alt="PyCharm" src="https://img.shields.io/badge/PyCharm-FCF84A.svg?logo=PyCharm&logoColor=black&labelColor=21D789&color=FCF84A"></a>
|
|
24
|
-
<a href="https://github.com/astral-sh/
|
|
25
|
-
<a href="https://github.com/astral-sh/
|
|
26
|
-
<a href="https://github.com/tox-dev/pipdeptree"><img src="https://img.shields.io/badge/pipdeptree-526CFE.svg?labelColor=gray&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADFElEQVR4nFxTW2tcVRRe39773E/mliZjwKRmhBaKt4BWRKmGgihCH3xUKNWC/Q/ii76IP8AHpSIiRfqmD5YKCinalhgiCMZLSVtMM0mTdDLTuZyZc9l7yTlp7WXBgXPW+fa31rfWtxU9FLMN79Crr028e+iJsZfb7fJMp23xRlOvbTR3L/y5cuOL3Vbv7/vxuPviecI/eWr6k/mj4+8AkM11y+zs2MKwMJvNgIgYINZX/rlx+tIvf72fZXr4P0EQyOCjjw98P9vwn8+/+z3Bq6sek7AJkNhsOjQcyjvFmHd2upd+PP/zsSxNI5mnPvjw8U9fPFJ9XVkgNuDVayEbcgVEfgikNfFg4JAmh1LyyfGq06QqE9vN6+fEs4fHnjv25vjbAOA4AsL2MVZ1hRcI4QXIH7ilMqQXkiYXRBJRbFNQnTsRlqfmxFvH66ccFyAQMxP3I5cqNZBSxIWcKORMO9g3yeSHzFkGbnVCIkDUZ+beEy+8VJ4XguC6TMPYokwrCAHUJsBxYptoFBYSMi0oLIlcAkuFYhal8Zl5VanZU0zErgfurufMFjEkWZ7iRFY4SlgYfW9bUIJKFQNjiNPYf1QZOZn/hTaStPQKTI4eDCxSjsL4I6BeJzOjgcnT0HqPqwBJCdHZjW/miWjkkG3hzqKIe5FVlM3llGuWqOxTDMBkWlJ/6PB2p0Sb21gXixdvLeTtDGOHLFvQHpkiYyTuNU5kuxJercTdpEK3Bz4yLdFrXVsQ33x1/bModjhvyrKKVXB/YD9gb8PgKAlolAZipmFTOIYcxq21Xz8XS5dbi+e+2zqbA3MjxYninH3PpkyZljwYjZE2FoxBIWm6YVHaW/k66qwtF05curz509OHHzvqBqWp232fE+2AoCjOXNMfhcRcjAxxoijNFNpbG0vL588cNzpLC4I00cnCD1fPBuVqffbA5DMGNjR5MOSBpC+UYxGE5G5PmNXff/vy4rdnTmRJHD1wG+9G42D9qVfeePLk/oONI8qv7+/2fbq11f53ZfnqhStLi6d3b67/cT/+vwAAAP//Xo5dwOtdLi4AAAAASUVORK5CYII="></a>
|
|
28
|
+
<a href="https://github.com/astral-sh/uv"><img alt="uv" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json" style="max-width:100%;"></a>
|
|
29
|
+
<a href="https://github.com/astral-sh/ruff"><img alt="ruff" src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" style="max-width:100%;"></a>
|
|
30
|
+
<a href="https://github.com/tox-dev/pipdeptree"><img alt="pipdeptree" src="https://img.shields.io/badge/pipdeptree-526CFE.svg?labelColor=gray&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADFElEQVR4nFxTW2tcVRRe39773E/mliZjwKRmhBaKt4BWRKmGgihCH3xUKNWC/Q/ii76IP8AHpSIiRfqmD5YKCinalhgiCMZLSVtMM0mTdDLTuZyZc9l7yTlp7WXBgXPW+fa31rfWtxU9FLMN79Crr028e+iJsZfb7fJMp23xRlOvbTR3L/y5cuOL3Vbv7/vxuPviecI/eWr6k/mj4+8AkM11y+zs2MKwMJvNgIgYINZX/rlx+tIvf72fZXr4P0EQyOCjjw98P9vwn8+/+z3Bq6sek7AJkNhsOjQcyjvFmHd2upd+PP/zsSxNI5mnPvjw8U9fPFJ9XVkgNuDVayEbcgVEfgikNfFg4JAmh1LyyfGq06QqE9vN6+fEs4fHnjv25vjbAOA4AsL2MVZ1hRcI4QXIH7ilMqQXkiYXRBJRbFNQnTsRlqfmxFvH66ccFyAQMxP3I5cqNZBSxIWcKORMO9g3yeSHzFkGbnVCIkDUZ+beEy+8VJ4XguC6TMPYokwrCAHUJsBxYptoFBYSMi0oLIlcAkuFYhal8Zl5VanZU0zErgfurufMFjEkWZ7iRFY4SlgYfW9bUIJKFQNjiNPYf1QZOZn/hTaStPQKTI4eDCxSjsL4I6BeJzOjgcnT0HqPqwBJCdHZjW/miWjkkG3hzqKIe5FVlM3llGuWqOxTDMBkWlJ/6PB2p0Sb21gXixdvLeTtDGOHLFvQHpkiYyTuNU5kuxJercTdpEK3Bz4yLdFrXVsQ33x1/bModjhvyrKKVXB/YD9gb8PgKAlolAZipmFTOIYcxq21Xz8XS5dbi+e+2zqbA3MjxYninH3PpkyZljwYjZE2FoxBIWm6YVHaW/k66qwtF05curz509OHHzvqBqWp232fE+2AoCjOXNMfhcRcjAxxoijNFNpbG0vL588cNzpLC4I00cnCD1fPBuVqffbA5DMGNjR5MOSBpC+UYxGE5G5PmNXff/vy4rdnTmRJHD1wG+9G42D9qVfeePLk/oONI8qv7+/2fbq11f53ZfnqhStLi6d3b67/cT/+vwAAAP//Xo5dwOtdLi4AAAAASUVORK5CYII="></a>
|
|
31
|
+
<a href="https://squidfunk.github.io/mkdocs-material/"><img alt="mkdocs-material" src="https://img.shields.io/badge/Material_for_MkDocs-526CFE?&logo=MaterialForMkDocs&logoColor=white&labelColor=grey"></a>
|
|
32
|
+
<a href="https://hatch.pypa.io"><img alt="Hatch project" class="off-glb" loading="lazy" src="https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg"></a>
|
|
27
33
|
</td>
|
|
28
34
|
</tr>
|
|
29
|
-
<tr style="vertical-align: middle;
|
|
35
|
+
<tr style="vertical-align: middle;">
|
|
30
36
|
<td>CI/CD</td>
|
|
31
37
|
<td>
|
|
32
38
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="Tests" src="https://github.com/erivlis/graphinate/actions/workflows/test.yml/badge.svg?branch=master"></a>
|
|
39
|
+
<a href="https://github.com/erivlis/graphinate/actions/workflows/test.yml"><img alt="Tests" src="https://github.com/erivlis/graphinate/actions/workflows/test-beta.yml/badge.svg?branch=master"></a>
|
|
33
40
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish.yml"><img alt="Publish" src="https://github.com/erivlis/graphinate/actions/workflows/publish.yml/badge.svg"></a>
|
|
34
41
|
<a href="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml"><img alt="Publish Docs" src="https://github.com/erivlis/graphinate/actions/workflows/publish-docs.yaml/badge.svg"></a>
|
|
35
42
|
</td>
|
|
36
43
|
</tr>
|
|
37
|
-
<tr style="vertical-align: middle;
|
|
44
|
+
<tr style="vertical-align: middle;">
|
|
38
45
|
<td>Scans</td>
|
|
39
46
|
<td>
|
|
40
47
|
<a href="https://codecov.io/gh/erivlis/graphinate"><img alt="Coverage" src="https://codecov.io/gh/erivlis/graphinate/graph/badge.svg?token=POODT8M9NV"/></a>
|
|
41
|
-
<br>
|
|
42
48
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Quality Gate Status" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=alert_status"></a>
|
|
43
49
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Security Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=security_rating"></a>
|
|
44
50
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Maintainability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=sqale_rating"></a>
|
|
45
51
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Reliability Rating" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=reliability_rating"></a>
|
|
46
|
-
<br>
|
|
47
52
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Lines of Code" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=ncloc"></a>
|
|
48
53
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Vulnerabilities" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=vulnerabilities"></a>
|
|
49
54
|
<a href="https://sonarcloud.io/summary/new_code?id=erivlis_graphinate"><img alt="Bugs" src="https://sonarcloud.io/api/project_badges/measure?project=erivlis_graphinate&metric=bugs"></a>
|
|
50
|
-
<br>
|
|
51
55
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade"><img alt="Codacy Badge" src="https://app.codacy.com/project/badge/Grade/54b33c3f7313448f9471d01e2a06f037"></a>
|
|
52
56
|
<a href="https://app.codacy.com/gh/erivlis/graphinate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_coverage"><img alt="Codacy Coverage" src="https://app.codacy.com/project/badge/Coverage/54b33c3f7313448f9471d01e2a06f037"/></a>
|
|
53
57
|
<a href="https://scrutinizer-ci.com/g/erivlis/graphinate"><img alt="Scrutinizer" src="https://scrutinizer-ci.com/g/erivlis/graphinate/badges/quality-score.png?b=main"></a>
|
|
58
|
+
<a href="https://www.codefactor.io/repository/github/erivlis/graphinate"><img src="https://www.codefactor.io/repository/github/erivlis/graphinate/badge" alt="CodeFactor" /></a>
|
|
59
|
+
<a href="https://snyk.io/test/github/erivlis/graphinate"><img alt="Snyk" src="https://snyk.io/test/github/erivlis/Graphinate/badge.svg"></a>
|
|
54
60
|
</td>
|
|
55
61
|
</tr>
|
|
56
62
|
</table>
|