Graphinate 0.3.0__tar.gz → 0.3.2__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.0 → graphinate-0.3.2}/.github/workflows/test-beta.yml +2 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/.github/workflows/test.yml +10 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/.gitignore +1 -0
- graphinate-0.3.2/.sonarcloud.properties +15 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/PKG-INFO +52 -41
- {graphinate-0.3.0 → graphinate-0.3.2}/README.md +35 -25
- {graphinate-0.3.0 → graphinate-0.3.2}/STATS.md +7 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/acknowledge.md +1 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/index.md +1 -0
- graphinate-0.3.2/examples/code/requirements.txt +2 -0
- graphinate-0.3.2/examples/github/requirements.txt +2 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/math/graph_atlas.py +4 -2
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/math/polygonal_graph.py +11 -8
- graphinate-0.3.2/examples/system/requirements.txt +2 -0
- graphinate-0.3.2/examples/web/requirements.txt +4 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/pyproject.toml +22 -18
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/__init__.py +4 -5
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/builders.py +27 -16
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/color.py +1 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/materializers/__init__.py +7 -7
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/modeling.py +25 -19
- graphinate-0.3.2/src/graphinate/server/web/static/js/murmurhash3_gc.js +64 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/viewer/index.html +1 -1
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/tools/gui.py +2 -2
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/tools/mutators.py +2 -2
- graphinate-0.3.2/src/graphinate/typing.py +65 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/conftest.py +8 -7
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_builders.py +37 -34
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_cli.py +3 -2
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_color.py +1 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_materializers.py +9 -9
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_modeling.py +13 -5
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_server.py +4 -3
- graphinate-0.3.0/examples/code/requirements.txt +0 -2
- graphinate-0.3.0/examples/github/requirements.txt +0 -2
- graphinate-0.3.0/examples/system/requirements.txt +0 -2
- graphinate-0.3.0/examples/web/requirements.txt +0 -3
- graphinate-0.3.0/src/graphinate/typing.py +0 -54
- {graphinate-0.3.0 → graphinate-0.3.2}/.coveragerc +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/.github/dependabot.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/.github/workflows/codeql.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/.github/workflows/publish-docs.yaml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/.github/workflows/publish.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/LICENSE +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/assets/images/logo-128.png +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/assets/images/network_graph.png +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/assets/stylesheets/extra.css +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/dev.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/examples/code.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/examples/github.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/examples/math.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/examples/system.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/examples/web.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/gen_ref_pages.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/intro.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/start.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/usage/cli.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/docs/usage/lib.md +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/code/python_ast.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/code/python_dependencies.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/_client.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/commits_visibilty_graph.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/followers.graphql +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/followers.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/graphql.config.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/repositories.graphql +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/github/repositories.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/math/requirements.txt +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/system/processes.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/examples/web/page_links.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/mkdocs.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/ethernet/traceroute.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/genric_graph.graphql +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/graphql.config.yml +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/house_of_graphs.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/social/albums.json +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/social/musicisians.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/text/nlp_graph.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/text/requirements.txt +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/time_series/requirements.txt +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/playground/time_series/visibility_graph.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/sonar-project.properties +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/__main__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/cli.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/materializers/matplotlib.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/starlette/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/starlette/views.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/elements/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/elements/index.html +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/graphiql/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/graphiql/index.html +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/rapidoc/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/rapidoc/index.html +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/static/images/logo-128.png +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/static/images/network_graph.png +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/viewer/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/voyager/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/server/web/voyager/index.html +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/tools/__init__.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/src/graphinate/tools/converters.py +0 -0
- {graphinate-0.3.0 → graphinate-0.3.2}/tests/graphinate/test_tools.py +0 -0
|
@@ -15,7 +15,8 @@ jobs:
|
|
|
15
15
|
strategy:
|
|
16
16
|
fail-fast: false
|
|
17
17
|
matrix:
|
|
18
|
-
python-
|
|
18
|
+
# https://github.com/actions/python-versions/blob/main/versions-manifest.json
|
|
19
|
+
python-version: [ "3.14.0-alpha.2" ]
|
|
19
20
|
steps:
|
|
20
21
|
- uses: actions/checkout@v4
|
|
21
22
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -15,7 +15,7 @@ jobs:
|
|
|
15
15
|
strategy:
|
|
16
16
|
fail-fast: false
|
|
17
17
|
matrix:
|
|
18
|
-
python-version: [ "3.10", "3.11", "3.12" ]
|
|
18
|
+
python-version: [ "3.10", "3.11", "3.12", "3.13"]
|
|
19
19
|
steps:
|
|
20
20
|
- uses: actions/checkout@v4
|
|
21
21
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -43,3 +43,12 @@ jobs:
|
|
|
43
43
|
uses: codecov/codecov-action@v4
|
|
44
44
|
with:
|
|
45
45
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
46
|
+
- name: Run codacy-coverage-reporter
|
|
47
|
+
uses: codacy/codacy-coverage-reporter-action@v1.3.0
|
|
48
|
+
with:
|
|
49
|
+
#project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
50
|
+
# or
|
|
51
|
+
api-token: ${{ secrets.CODACY_API_TOKEN }}
|
|
52
|
+
coverage-reports: coverage.xml
|
|
53
|
+
# or a comma-separated list for multiple reports
|
|
54
|
+
# coverage-reports: <PATH_TO_REPORT>, <PATH_TO_REPORT>
|
|
@@ -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.
|
|
3
|
+
Version: 0.3.2
|
|
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
|
|
@@ -21,17 +21,18 @@ Classifier: Programming Language :: Python :: 3 :: Only
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
25
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
26
|
Classifier: Topic :: Scientific/Engineering
|
|
26
27
|
Classifier: Topic :: Software Development :: Libraries
|
|
27
28
|
Classifier: Typing :: Typed
|
|
28
29
|
Requires-Python: >=3.10
|
|
29
|
-
Requires-Dist: click
|
|
30
|
-
Requires-Dist: inflect
|
|
31
|
-
Requires-Dist: loguru
|
|
32
|
-
Requires-Dist: matplotlib
|
|
33
|
-
Requires-Dist: networkx
|
|
34
|
-
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]
|
|
35
36
|
Provides-Extra: dev
|
|
36
37
|
Requires-Dist: pipdeptree; extra == 'dev'
|
|
37
38
|
Requires-Dist: ruff; extra == 'dev'
|
|
@@ -44,17 +45,17 @@ Requires-Dist: mkdocs-material; extra == 'docs'
|
|
|
44
45
|
Requires-Dist: mkdocs-section-index; extra == 'docs'
|
|
45
46
|
Requires-Dist: mkdocstrings-python; extra == 'docs'
|
|
46
47
|
Provides-Extra: plot
|
|
47
|
-
Requires-Dist: scipy
|
|
48
|
+
Requires-Dist: scipy; extra == 'plot'
|
|
48
49
|
Provides-Extra: server
|
|
49
50
|
Requires-Dist: starlette-prometheus; extra == 'server'
|
|
50
|
-
Requires-Dist: uvicorn[standard]
|
|
51
|
+
Requires-Dist: uvicorn[standard]; extra == 'server'
|
|
51
52
|
Provides-Extra: test
|
|
52
|
-
Requires-Dist: faker
|
|
53
|
-
Requires-Dist: pytest
|
|
54
|
-
Requires-Dist: pytest-
|
|
55
|
-
Requires-Dist: pytest-
|
|
56
|
-
Requires-Dist: pytest-
|
|
57
|
-
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'
|
|
58
59
|
Description-Content-Type: text/markdown
|
|
59
60
|
|
|
60
61
|
# [Graphinate. Data to Graphs.](https://erivlis.github.io/graphinate/)
|
|
@@ -65,31 +66,38 @@ Description-Content-Type: text/markdown
|
|
|
65
66
|
<tr style="vertical-align: middle;">
|
|
66
67
|
<td>Package</td>
|
|
67
68
|
<td>
|
|
68
|
-
<img alt="PyPI - version" src="https://img.shields.io/pypi/v/graphinate">
|
|
69
|
-
<img alt="PyPI - Status" src="https://img.shields.io/pypi/status/graphinate">
|
|
70
|
-
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/graphinate">
|
|
71
|
-
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dd/graphinate">
|
|
72
|
-
<
|
|
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>
|
|
77
|
+
<td>Code</td>
|
|
78
|
+
<td>
|
|
73
79
|
<img alt="GitHub" src="https://img.shields.io/github/license/erivlis/graphinate">
|
|
74
|
-
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/erivlis/graphinate">
|
|
75
|
-
<img alt="GitHub last commit (by committer)" src="https://img.shields.io/github/last-commit/erivlis/graphinate">
|
|
76
|
-
<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>
|
|
77
83
|
</td>
|
|
78
84
|
</tr>
|
|
79
85
|
<tr>
|
|
80
86
|
<td>Tools</td>
|
|
81
87
|
<td>
|
|
82
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>
|
|
83
|
-
<a href="https://github.com/astral-sh/
|
|
84
|
-
<a href="https://github.com/astral-sh/
|
|
85
|
-
<a href="https://
|
|
86
|
-
<a href="https://github.
|
|
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>
|
|
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>
|
|
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>
|
|
87
94
|
</td>
|
|
88
95
|
</tr>
|
|
89
96
|
<tr>
|
|
90
97
|
<td>CI/CD</td>
|
|
91
98
|
<td>
|
|
92
99
|
<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>
|
|
100
|
+
<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>
|
|
93
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>
|
|
94
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>
|
|
95
103
|
</td>
|
|
@@ -98,19 +106,18 @@ Description-Content-Type: text/markdown
|
|
|
98
106
|
<td>Scans</td>
|
|
99
107
|
<td>
|
|
100
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>
|
|
101
|
-
<br>
|
|
102
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>
|
|
103
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>
|
|
104
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>
|
|
105
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>
|
|
106
|
-
<br>
|
|
107
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>
|
|
108
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>
|
|
109
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>
|
|
110
|
-
<br>
|
|
111
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>
|
|
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>
|
|
112
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>
|
|
113
|
-
|
|
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>
|
|
114
121
|
</td>
|
|
115
122
|
</tr>
|
|
116
123
|
</table>
|
|
@@ -132,9 +139,9 @@ In addition, there are several modes of output to enable examination of the Grap
|
|
|
132
139
|
|
|
133
140
|
### Links
|
|
134
141
|
|
|
135
|
-
- Website (including documentation): https://erivlis.github.io/graphinate
|
|
136
|
-
- Source: https://github.com/erivlis/graphinate
|
|
137
|
-
- Package: https://pypi.org/project/graphinate
|
|
142
|
+
- Website (including documentation): <https://erivlis.github.io/graphinate>
|
|
143
|
+
- Source: <https://github.com/erivlis/graphinate>
|
|
144
|
+
- Package: <https://pypi.org/project/graphinate>
|
|
138
145
|
|
|
139
146
|
## Quick Start
|
|
140
147
|
|
|
@@ -177,11 +184,15 @@ def edge():
|
|
|
177
184
|
graphinate.materialize(graph_model)
|
|
178
185
|
```
|
|
179
186
|
|
|
187
|
+
#### `graphinate.model` function
|
|
188
|
+
|
|
180
189
|
> [!NOTE]
|
|
181
|
-
> ### `graphinate.model` function
|
|
182
190
|
> This function creates `GraphModel` class that is used to declaratively register _Edge_ and/or _Node_ data
|
|
183
191
|
> supplier functions by using the `GraphModel.node()` and `GraphModel.edge()` decorators.
|
|
184
|
-
|
|
192
|
+
|
|
193
|
+
#### `graphinate.materialize` function
|
|
194
|
+
|
|
195
|
+
> [!NOTE]
|
|
185
196
|
> This function can be used to easily generate an output from a `GraphModel` instance.
|
|
186
197
|
> By default, it will prompt the user to choose the output format, using a popup GUI dialog box.
|
|
187
198
|
|
|
@@ -189,7 +200,7 @@ graphinate.materialize(graph_model)
|
|
|
189
200
|
|
|
190
201
|
### Commands
|
|
191
202
|
|
|
192
|
-
```
|
|
203
|
+
```text
|
|
193
204
|
Usage: python -m graphinate [OPTIONS] COMMAND [ARGS]...
|
|
194
205
|
|
|
195
206
|
Options:
|
|
@@ -202,7 +213,7 @@ Commands:
|
|
|
202
213
|
|
|
203
214
|
#### Save
|
|
204
215
|
|
|
205
|
-
```
|
|
216
|
+
```text
|
|
206
217
|
Usage: python -m graphinate save [OPTIONS]
|
|
207
218
|
|
|
208
219
|
Options:
|
|
@@ -215,7 +226,7 @@ Options:
|
|
|
215
226
|
|
|
216
227
|
#### Server
|
|
217
228
|
|
|
218
|
-
```
|
|
229
|
+
```text
|
|
219
230
|
Usage: python -m graphinate server [OPTIONS]
|
|
220
231
|
|
|
221
232
|
Options:
|
|
@@ -311,7 +322,7 @@ python -m mkdocs build
|
|
|
311
322
|
|
|
312
323
|
<a href="https://www.jetbrains.com/pycharm/"><img height="60" style="background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo."></a>
|
|
313
324
|
|
|
314
|
-
|
|
325
|
+
---------------------
|
|
315
326
|
|
|
316
327
|
<img alt="Star Chart" src="https://forthebadge.com/images/badges/works-on-my-machine.svg">
|
|
317
328
|
|
|
@@ -6,31 +6,38 @@
|
|
|
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>
|
|
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
25
|
<tr>
|
|
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/
|
|
25
|
-
<a href="https://github.com/astral-sh/
|
|
26
|
-
<a href="https://
|
|
27
|
-
<a href="https://github.
|
|
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>
|
|
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>
|
|
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
36
|
<tr>
|
|
31
37
|
<td>CI/CD</td>
|
|
32
38
|
<td>
|
|
33
39
|
<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>
|
|
40
|
+
<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>
|
|
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>
|
|
@@ -39,19 +46,18 @@
|
|
|
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>
|
|
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>
|
|
53
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>
|
|
54
|
-
|
|
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>
|
|
55
61
|
</td>
|
|
56
62
|
</tr>
|
|
57
63
|
</table>
|
|
@@ -73,9 +79,9 @@ In addition, there are several modes of output to enable examination of the Grap
|
|
|
73
79
|
|
|
74
80
|
### Links
|
|
75
81
|
|
|
76
|
-
- Website (including documentation): https://erivlis.github.io/graphinate
|
|
77
|
-
- Source: https://github.com/erivlis/graphinate
|
|
78
|
-
- Package: https://pypi.org/project/graphinate
|
|
82
|
+
- Website (including documentation): <https://erivlis.github.io/graphinate>
|
|
83
|
+
- Source: <https://github.com/erivlis/graphinate>
|
|
84
|
+
- Package: <https://pypi.org/project/graphinate>
|
|
79
85
|
|
|
80
86
|
## Quick Start
|
|
81
87
|
|
|
@@ -118,11 +124,15 @@ def edge():
|
|
|
118
124
|
graphinate.materialize(graph_model)
|
|
119
125
|
```
|
|
120
126
|
|
|
127
|
+
#### `graphinate.model` function
|
|
128
|
+
|
|
121
129
|
> [!NOTE]
|
|
122
|
-
> ### `graphinate.model` function
|
|
123
130
|
> This function creates `GraphModel` class that is used to declaratively register _Edge_ and/or _Node_ data
|
|
124
131
|
> supplier functions by using the `GraphModel.node()` and `GraphModel.edge()` decorators.
|
|
125
|
-
|
|
132
|
+
|
|
133
|
+
#### `graphinate.materialize` function
|
|
134
|
+
|
|
135
|
+
> [!NOTE]
|
|
126
136
|
> This function can be used to easily generate an output from a `GraphModel` instance.
|
|
127
137
|
> By default, it will prompt the user to choose the output format, using a popup GUI dialog box.
|
|
128
138
|
|
|
@@ -130,7 +140,7 @@ graphinate.materialize(graph_model)
|
|
|
130
140
|
|
|
131
141
|
### Commands
|
|
132
142
|
|
|
133
|
-
```
|
|
143
|
+
```text
|
|
134
144
|
Usage: python -m graphinate [OPTIONS] COMMAND [ARGS]...
|
|
135
145
|
|
|
136
146
|
Options:
|
|
@@ -143,7 +153,7 @@ Commands:
|
|
|
143
153
|
|
|
144
154
|
#### Save
|
|
145
155
|
|
|
146
|
-
```
|
|
156
|
+
```text
|
|
147
157
|
Usage: python -m graphinate save [OPTIONS]
|
|
148
158
|
|
|
149
159
|
Options:
|
|
@@ -156,7 +166,7 @@ Options:
|
|
|
156
166
|
|
|
157
167
|
#### Server
|
|
158
168
|
|
|
159
|
-
```
|
|
169
|
+
```text
|
|
160
170
|
Usage: python -m graphinate server [OPTIONS]
|
|
161
171
|
|
|
162
172
|
Options:
|
|
@@ -252,7 +262,7 @@ python -m mkdocs build
|
|
|
252
262
|
|
|
253
263
|
<a href="https://www.jetbrains.com/pycharm/"><img height="60" style="background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo."></a>
|
|
254
264
|
|
|
255
|
-
|
|
265
|
+
---------------------
|
|
256
266
|
|
|
257
267
|
<img alt="Star Chart" src="https://forthebadge.com/images/badges/works-on-my-machine.svg">
|
|
258
268
|
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
## Repos
|
|
9
9
|
|
|
10
|
-
### Graphinate
|
|
10
|
+
### Graphinate
|
|
11
11
|
|
|
12
12
|
<img alt="Graphinate Star Chart" src="https://starchart.cc/erivlis/graphinate.svg">
|
|
13
|
+
|
|
14
|
+
https://starchart.cc/erivlis/graphinate.svg
|
|
15
|
+
|
|
16
|
+
### MappingTools
|
|
17
|
+
|
|
18
|
+
<img alt="MappingTools Star Chart" src="https://starchart.cc/erivlis/mappingtools.svg">
|
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
|
|
26
26
|
## IDE
|
|
27
27
|
|
|
28
|
-
<a href="https://www.jetbrains.com/pycharm/"><img style="height: 50px; background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo."></a>
|
|
28
|
+
<a href="https://www.jetbrains.com/pycharm/"><img style="height: 50px; background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo."></a>
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
<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
50
|
<br>
|
|
51
51
|
<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
|
+
<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>
|
|
52
53
|
<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>
|
|
53
54
|
</td>
|
|
54
55
|
</tr>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import itertools
|
|
2
2
|
|
|
3
3
|
import graphinate
|
|
4
|
-
import graphinate.tools.gui
|
|
5
4
|
import networkx as nx
|
|
5
|
+
from graphinate.tools.gui import listbox_chooser
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def cylinder_edges(circumference: int, length: int):
|
|
@@ -820,7 +820,9 @@ def models(iterable):
|
|
|
820
820
|
model = next(models(atlas().items()))
|
|
821
821
|
|
|
822
822
|
if __name__ == '__main__':
|
|
823
|
-
choices = graphinate.tools.gui.modal_listbox_chooser('Choose Graph', atlas())
|
|
823
|
+
# choices = graphinate.tools.gui.modal_listbox_chooser('Choose Graph', atlas())
|
|
824
|
+
|
|
825
|
+
choices = listbox_chooser('Choose Graph', atlas())
|
|
824
826
|
|
|
825
827
|
for model in models(choices):
|
|
826
828
|
graphinate.materialize(model)
|
|
@@ -2,34 +2,37 @@ import graphinate
|
|
|
2
2
|
import graphinate.modeling
|
|
3
3
|
import networkx as nx
|
|
4
4
|
|
|
5
|
-
N: int = 8
|
|
6
5
|
|
|
6
|
+
def polygonal_graph_edges(edges_count: int):
|
|
7
|
+
for i in range(1, edges_count):
|
|
8
|
+
yield {'source': i, 'target': i + 1}
|
|
9
|
+
yield {'source': edges_count, 'target': 1}
|
|
7
10
|
|
|
8
|
-
|
|
11
|
+
|
|
12
|
+
def polygonal_graph_model(name: str, number_of_sides: int) -> graphinate.GraphModel:
|
|
9
13
|
"""
|
|
10
14
|
Create a polygonal graph model.
|
|
11
15
|
|
|
12
16
|
Args:
|
|
13
|
-
|
|
17
|
+
name (str): The Graph's name.
|
|
18
|
+
number_of_sides (int): Number of sides in the polygon.
|
|
14
19
|
|
|
15
20
|
Returns:
|
|
16
21
|
GraphModel: A graph model representing a polygonal graph.
|
|
17
22
|
"""
|
|
18
23
|
|
|
19
24
|
# Define GraphModel
|
|
20
|
-
graph_model = graphinate.model(name
|
|
25
|
+
graph_model = graphinate.model(name)
|
|
21
26
|
|
|
22
27
|
# Register edges supplier function
|
|
23
28
|
@graph_model.edge()
|
|
24
29
|
def edge():
|
|
25
|
-
|
|
26
|
-
yield {'source': i, 'target': i + 1}
|
|
27
|
-
yield {'source': number_of_sides - 1, 'target': 0}
|
|
30
|
+
yield from polygonal_graph_edges(number_of_sides)
|
|
28
31
|
|
|
29
32
|
return graph_model
|
|
30
33
|
|
|
31
34
|
|
|
32
|
-
model = polygonal_graph_model()
|
|
35
|
+
model = polygonal_graph_model("Octagonal Graph", 8)
|
|
33
36
|
|
|
34
37
|
if __name__ == '__main__':
|
|
35
38
|
use_materialize = True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Graphinate"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.2"
|
|
4
4
|
authors = [
|
|
5
5
|
{ name = "Eran Rivlis", email = "eran@rivlis.info" },
|
|
6
6
|
]
|
|
@@ -16,6 +16,7 @@ classifiers = [
|
|
|
16
16
|
"Programming Language :: Python :: 3.10",
|
|
17
17
|
"Programming Language :: Python :: 3.11",
|
|
18
18
|
"Programming Language :: Python :: 3.12",
|
|
19
|
+
"Programming Language :: Python :: 3.13",
|
|
19
20
|
"Programming Language :: Python :: 3 :: Only",
|
|
20
21
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
21
22
|
"License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
|
|
@@ -27,12 +28,12 @@ classifiers = [
|
|
|
27
28
|
]
|
|
28
29
|
keywords = ['graph', 'declarative']
|
|
29
30
|
dependencies = [
|
|
30
|
-
"click
|
|
31
|
-
"inflect
|
|
32
|
-
"loguru
|
|
33
|
-
"matplotlib
|
|
34
|
-
"networkx
|
|
35
|
-
"strawberry-graphql[asgi,opentelemetry]
|
|
31
|
+
"click",
|
|
32
|
+
"inflect",
|
|
33
|
+
"loguru",
|
|
34
|
+
"matplotlib",
|
|
35
|
+
"networkx",
|
|
36
|
+
"strawberry-graphql[asgi,opentelemetry]"
|
|
36
37
|
]
|
|
37
38
|
|
|
38
39
|
|
|
@@ -58,19 +59,19 @@ docs = [
|
|
|
58
59
|
"mkdocs-section-index",
|
|
59
60
|
]
|
|
60
61
|
test = [
|
|
61
|
-
"faker
|
|
62
|
-
"pytest
|
|
63
|
-
"pytest-asyncio
|
|
64
|
-
"pytest-cov
|
|
65
|
-
"pytest-randomly
|
|
66
|
-
"pytest-xdist
|
|
62
|
+
"faker",
|
|
63
|
+
"pytest",
|
|
64
|
+
"pytest-asyncio",
|
|
65
|
+
"pytest-cov",
|
|
66
|
+
"pytest-randomly",
|
|
67
|
+
"pytest-xdist"
|
|
67
68
|
]
|
|
68
69
|
plot = [
|
|
69
|
-
"scipy
|
|
70
|
+
"scipy"
|
|
70
71
|
]
|
|
71
72
|
server = [
|
|
72
73
|
"starlette-prometheus",
|
|
73
|
-
"uvicorn[standard]
|
|
74
|
+
"uvicorn[standard]"
|
|
74
75
|
]
|
|
75
76
|
|
|
76
77
|
|
|
@@ -78,16 +79,19 @@ server = [
|
|
|
78
79
|
requires = ["hatchling"]
|
|
79
80
|
build-backend = "hatchling.build"
|
|
80
81
|
|
|
81
|
-
|
|
82
82
|
[tool.hatch.metadata]
|
|
83
83
|
allow-direct-references = true
|
|
84
84
|
|
|
85
|
+
[tool.hatch.envs.default]
|
|
86
|
+
installer = "uv"
|
|
87
|
+
|
|
88
|
+
#[tool.hatch.build.targets.wheel]
|
|
89
|
+
#packages = ["src/graphinate"]
|
|
85
90
|
|
|
86
91
|
[tool.pytest.ini_options]
|
|
87
92
|
pythonpath = ["src"]
|
|
88
93
|
testpaths = ["tests"]
|
|
89
94
|
|
|
90
|
-
|
|
91
95
|
[tool.coverage.report]
|
|
92
96
|
exclude_also = [
|
|
93
97
|
"...",
|
|
@@ -128,7 +132,7 @@ select = [
|
|
|
128
132
|
"TRY",
|
|
129
133
|
"RUF",
|
|
130
134
|
]
|
|
131
|
-
ignore = ["
|
|
135
|
+
ignore = ["TRY003", "UP007", "UP038", "RUF100"]
|
|
132
136
|
# Exclude a variety of commonly ignored directories.
|
|
133
137
|
exclude = [
|
|
134
138
|
".bzr",
|