Graphinate 0.8.5__tar.gz → 0.9.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.9.0/.coveragerc +9 -0
- graphinate-0.9.0/.deepsource.toml +28 -0
- graphinate-0.9.0/.github/workflows/ci.yml +54 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/workflows/codeql.yml +1 -1
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/workflows/publish-docs.yaml +9 -6
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/workflows/publish.yml +2 -2
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/workflows/test-beta.yml +4 -4
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/workflows/test.yml +5 -5
- {graphinate-0.8.5 → graphinate-0.9.0}/PKG-INFO +28 -16
- {graphinate-0.8.5 → graphinate-0.9.0}/README.md +23 -13
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/.dates_cache.json +4 -4
- graphinate-0.8.5/docs/acknowledge.md → graphinate-0.9.0/docs/acknowledgements.md +7 -7
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/code/python_ast.py +3 -1
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/_client.py +6 -6
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/followers.py +2 -3
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/repositories.py +18 -19
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/materializers.py +3 -4
- {graphinate-0.8.5 → graphinate-0.9.0}/mkdocs.yml +27 -5
- {graphinate-0.8.5 → graphinate-0.9.0}/pyproject.toml +27 -8
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/builders.py +70 -24
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/color.py +1 -1
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/modeling.py +33 -31
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/renderers/graphql.py +10 -4
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/starlette/__init__.py +3 -5
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/rapidoc/index.html +3 -2
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/viewer/index.html +73 -24
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/voyager/index.html +7 -5
- graphinate-0.9.0/src/graphinate/typing.py +75 -0
- graphinate-0.9.0/tests/graphinate/renderers/test_graphql.py +225 -0
- graphinate-0.9.0/tests/graphinate/renderers/test_matplotlib_draw.py +251 -0
- graphinate-0.9.0/tests/graphinate/renderers/test_matplotlib_plot.py +265 -0
- graphinate-0.9.0/tests/graphinate/server/test_starlette.py +77 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/graphinate/test_builders.py +210 -0
- graphinate-0.9.0/tests/graphinate/test_modeling.py +197 -0
- graphinate-0.8.5/.coveragerc +0 -3
- graphinate-0.8.5/src/graphinate/typing.py +0 -65
- graphinate-0.8.5/tests/graphinate/test_modeling.py +0 -39
- {graphinate-0.8.5 → graphinate-0.9.0}/.github/dependabot.yml +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/.gitignore +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/.sonarcloud.properties +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/LICENSE +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/assets/badge/v0.json +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/assets/images/logo-128.png +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/assets/images/network_graph.png +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/assets/stylesheets/extra.css +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/code.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/github.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/math.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/social.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/system.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/examples/web.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/gen_ref_pages.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/index.md +0 -0
- /graphinate-0.8.5/docs/intro.md → /graphinate-0.9.0/docs/introduction.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/start.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/tutorial.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/usage/cli.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/docs/usage/lib.md +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/code/git_commits.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/code/python_dependencies.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/code/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/code/tokens.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/commits_visibilty_graph.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/followers.graphql +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/graphql.config.yml +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/repositories.graphql +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/github/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/_test_materializers.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/graph_atlas.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/graphs.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/gui.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/polygonal_graph.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/math/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/13/dd/73ce25face7beb30b69b64feeb77.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/21/9e/00846f323987ba16cfbe0127d8eb.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/70/b6/2aefb0269adce7fedf877fa0d267.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/87/f5/ec1739bc369e84c3fcb302bf532a.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/ba/fe/3aca7b2c38abff60e7ce5eb486a8.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/c7/9e/ce82b0288020b7152779df09bd73.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/cache.db +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/d2/53/3b88f2fc162561cfdbbe9abc352a.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/cache/e2/d5/5d079f200eabf9b625b0473f6fbe.val +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/gui.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/music_artists.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/social/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/system/.ignore +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/system/files.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/system/processes.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/system/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/web/html_dom.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/web/page_links.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/examples/web/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/ethernet/traceroute.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/genric_graph.graphql +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/graphql.config.yml +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/house_of_graphs.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/science/caffeine.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/social/albums.json +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/social/musicisians.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/text/nlp_graph.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/text/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/time_series/requirements.txt +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/playground/time_series/visibility_graph.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/sonar-project.properties +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/__main__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/cli.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/constants.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/converters.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/renderers/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/renderers/matplotlib.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/starlette/views.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/elements/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/elements/index.html +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/graphiql/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/graphiql/index.html +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/rapidoc/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/static/images/logo-128.png +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/static/images/logo.svg +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/static/images/network_graph.png +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/viewer/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/server/web/voyager/__init__.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/src/graphinate/tools.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/conftest.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/graphinate/test_cli.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/graphinate/test_color.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/graphinate/test_converters.py +0 -0
- {graphinate-0.8.5 → graphinate-0.9.0}/tests/graphinate/test_server.py +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
version = 1
|
|
2
|
+
|
|
3
|
+
test_patterns = [
|
|
4
|
+
"tests/**",
|
|
5
|
+
"test_*.py"
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
exclude_patterns = [
|
|
9
|
+
"docs/**",
|
|
10
|
+
"examples/**",
|
|
11
|
+
"playground/**"
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
[[analyzers]]
|
|
15
|
+
name = "javascript"
|
|
16
|
+
|
|
17
|
+
[analyzers.meta]
|
|
18
|
+
environment = ["browser"]
|
|
19
|
+
|
|
20
|
+
[[analyzers]]
|
|
21
|
+
name = "test-coverage"
|
|
22
|
+
|
|
23
|
+
[[analyzers]]
|
|
24
|
+
name = "python"
|
|
25
|
+
|
|
26
|
+
[analyzers.meta]
|
|
27
|
+
runtime_version = "3.x.x"
|
|
28
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
|
|
2
|
+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
|
|
3
|
+
|
|
4
|
+
name: CI
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
pull_request:
|
|
11
|
+
branches:
|
|
12
|
+
- main
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
strategy:
|
|
18
|
+
fail-fast: false
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v5
|
|
23
|
+
- name: Set up UV and Python ${{ matrix.python-version }}
|
|
24
|
+
uses: astral-sh/setup-uv@v7
|
|
25
|
+
with:
|
|
26
|
+
python-version: ${{ matrix.python-version }}
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: uv sync
|
|
29
|
+
- name: Run Ruff Linter
|
|
30
|
+
run: uvx ruff check .
|
|
31
|
+
- name: Check Ruff Formatting
|
|
32
|
+
run: uvx ruff format --check .
|
|
33
|
+
- name: Test with pytest
|
|
34
|
+
run: |
|
|
35
|
+
uv sync --group test
|
|
36
|
+
uvx pytest tests --cov=src --cov-branch --cov-report=xml --junitxml=junit.xml -o junit_family=legacy -n auto
|
|
37
|
+
- name: Upload coverage reports to Codecov
|
|
38
|
+
uses: codecov/codecov-action@v5
|
|
39
|
+
with:
|
|
40
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
41
|
+
- name: Upload test results to Codecov
|
|
42
|
+
if: ${{ !cancelled() }}
|
|
43
|
+
uses: codecov/test-results-action@v1
|
|
44
|
+
with:
|
|
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>
|
|
@@ -9,21 +9,24 @@ jobs:
|
|
|
9
9
|
deploy:
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
|
-
-
|
|
13
|
-
|
|
12
|
+
- name: Checkout repository
|
|
13
|
+
uses: actions/checkout@v5
|
|
14
|
+
- name: Set up Python
|
|
15
|
+
uses: actions/setup-python@v6
|
|
14
16
|
with:
|
|
15
17
|
python-version: 3.x
|
|
18
|
+
- name: Install uv
|
|
19
|
+
uses: astral-sh/setup-uv@v7
|
|
16
20
|
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
17
|
-
-
|
|
21
|
+
- name: Cache mkdocs-material dependencies
|
|
22
|
+
uses: actions/cache@v4
|
|
18
23
|
with:
|
|
19
24
|
key: mkdocs-material-${{ env.cache_id }}
|
|
20
25
|
path: .cache
|
|
21
26
|
restore-keys: |
|
|
22
27
|
mkdocs-material-
|
|
23
28
|
- run: |
|
|
24
|
-
python -m pip install pip --upgrade
|
|
25
|
-
pip install uv
|
|
26
29
|
uv venv
|
|
27
30
|
source .venv/bin/activate
|
|
28
|
-
uv
|
|
31
|
+
uv sync --only-group docs
|
|
29
32
|
mkdocs gh-deploy --force
|
|
@@ -16,9 +16,9 @@ jobs:
|
|
|
16
16
|
deploy:
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v5
|
|
20
20
|
- name: Set up Python
|
|
21
|
-
uses: actions/setup-python@
|
|
21
|
+
uses: actions/setup-python@v6
|
|
22
22
|
with:
|
|
23
23
|
python-version: '3.x'
|
|
24
24
|
- name: Install dependencies
|
|
@@ -16,11 +16,11 @@ 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.
|
|
19
|
+
python-version: [ "3.15.0-alpha.1" ]
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@v5
|
|
22
22
|
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
26
26
|
- name: Install dependencies
|
|
@@ -38,5 +38,5 @@ jobs:
|
|
|
38
38
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
39
39
|
- name: Test with pytest
|
|
40
40
|
run: |
|
|
41
|
-
python -m pip install faker pytest pytest-asyncio pytest-cov pytest-randomly pytest-xdist starlette-prometheus uvicorn[standard]
|
|
41
|
+
python -m pip install faker httpx pytest pytest-asyncio pytest-cov pytest-mock pytest-randomly pytest-xdist starlette-prometheus uvicorn[standard]
|
|
42
42
|
pytest tests --cov=src --cov-branch --cov-report=xml --junitxml=test_results.xml -n auto
|
|
@@ -15,18 +15,18 @@ jobs:
|
|
|
15
15
|
strategy:
|
|
16
16
|
fail-fast: false
|
|
17
17
|
matrix:
|
|
18
|
-
python-version: [ "3.10", "3.11", "3.12", "3.13"]
|
|
18
|
+
python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ]
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v5
|
|
21
21
|
- name: Set up Python ${{ matrix.python-version }}
|
|
22
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v6
|
|
23
23
|
with:
|
|
24
24
|
python-version: ${{ matrix.python-version }}
|
|
25
25
|
- name: Install dependencies
|
|
26
26
|
run: |
|
|
27
27
|
python -m pip install --upgrade pip
|
|
28
28
|
python -m pip install --upgrade setuptools wheel
|
|
29
|
-
python -m pip install .
|
|
29
|
+
python -m pip install .[test]
|
|
30
30
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
31
31
|
- name: Lint with flake8
|
|
32
32
|
run: |
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
38
38
|
- name: Test with pytest
|
|
39
39
|
run: |
|
|
40
|
-
python -m pip install faker pytest pytest-asyncio pytest-cov pytest-randomly pytest-xdist starlette-prometheus uvicorn[standard]
|
|
40
|
+
python -m pip install faker httpx pytest pytest-asyncio pytest-cov pytest-mock pytest-randomly pytest-xdist starlette-prometheus uvicorn[standard]
|
|
41
41
|
pytest tests --cov=src --cov-branch --cov-report=xml --junitxml=junit.xml -o junit_family=legacy -n auto
|
|
42
42
|
- name: Upload coverage reports to Codecov
|
|
43
43
|
uses: codecov/codecov-action@v5
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Graphinate
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.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
|
|
@@ -22,18 +22,20 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
26
27
|
Classifier: Topic :: Scientific/Engineering
|
|
27
28
|
Classifier: Topic :: Software Development :: Libraries
|
|
28
29
|
Classifier: Typing :: Typed
|
|
29
|
-
Requires-Python:
|
|
30
|
+
Requires-Python: <3.15,>=3.10
|
|
30
31
|
Requires-Dist: click
|
|
31
32
|
Requires-Dist: inflect
|
|
32
33
|
Requires-Dist: loguru
|
|
33
34
|
Requires-Dist: mappingtools
|
|
34
35
|
Requires-Dist: matplotlib
|
|
35
36
|
Requires-Dist: networkx
|
|
36
|
-
Requires-Dist: networkx-mermaid
|
|
37
|
+
Requires-Dist: networkx-mermaid>=0.3.0
|
|
38
|
+
Requires-Dist: networkx-query>=2.1.3
|
|
37
39
|
Requires-Dist: strawberry-graphql[asgi,opentelemetry]
|
|
38
40
|
Provides-Extra: plot
|
|
39
41
|
Requires-Dist: scipy; extra == 'plot'
|
|
@@ -72,8 +74,8 @@ Description-Content-Type: text/markdown
|
|
|
72
74
|
<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>
|
|
73
75
|
<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>
|
|
74
76
|
<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>
|
|
75
|
-
<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>
|
|
76
77
|
<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>
|
|
78
|
+
<a href="https://github.com/hukkin/mdformat"><img alt="mdformat" src="https://img.shields.io/badge/mdformat-526CFE?&logo=markdown&logoColor=white&labelColor=grey"></a>
|
|
77
79
|
<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>
|
|
78
80
|
</td>
|
|
79
81
|
</tr>
|
|
@@ -99,8 +101,9 @@ Description-Content-Type: text/markdown
|
|
|
99
101
|
<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>
|
|
100
102
|
<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>
|
|
101
103
|
<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>
|
|
102
|
-
<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>
|
|
103
104
|
<a href="https://www.codefactor.io/repository/github/erivlis/graphinate"><img src="https://www.codefactor.io/repository/github/erivlis/graphinate/badge" alt="CodeFactor" /></a>
|
|
105
|
+
<a href="https://app.deepsource.com/gh/erivlis/graphinate/" target="_blank"><img alt="DeepSource" title="DeepSource" src="https://app.deepsource.com/gh/erivlis/graphinate.svg/?label=active+issues&show_trend=true&token=5n11jDEmcZB-6eyGR34rQaxF"/></a>
|
|
106
|
+
<a href="https://app.deepsource.com/gh/erivlis/graphinate/" target="_blank"><img alt="DeepSource" title="DeepSource" src="https://app.deepsource.com/gh/erivlis/graphinate.svg/?label=resolved+issues&show_trend=true&token=5n11jDEmcZB-6eyGR34rQaxF"/></a>
|
|
104
107
|
<a href="https://snyk.io/test/github/erivlis/graphinate"><img alt="Snyk" src="https://snyk.io/test/github/erivlis/Graphinate/badge.svg"></a>
|
|
105
108
|
</td>
|
|
106
109
|
</tr>
|
|
@@ -137,10 +140,13 @@ Description-Content-Type: text/markdown
|
|
|
137
140
|
- [Python AST - 3D Force-Directed Animation](#python-ast---3d-force-directed-animation)
|
|
138
141
|
- [Web Page Links](#web-page-links)
|
|
139
142
|
- [Development](#development)
|
|
143
|
+
- [Install dependencies](#install-dependencies)
|
|
144
|
+
- [Update dependencies](#update-dependencies)
|
|
140
145
|
- [Ruff](#ruff)
|
|
141
146
|
- [Test](#test)
|
|
142
147
|
- [Standard (cobertura) XML Coverage Report](#standard-cobertura-xml-coverage-report)
|
|
143
148
|
- [HTML Coverage Report](#html-coverage-report)
|
|
149
|
+
- [Terminal Coverage Report](#terminal-coverage-report)
|
|
144
150
|
- [Docs](#docs)
|
|
145
151
|
- [test](#test-1)
|
|
146
152
|
- [build](#build)
|
|
@@ -199,6 +205,7 @@ N: int = 8
|
|
|
199
205
|
# It will be used to hold the graph definitions
|
|
200
206
|
graph_model: graphinate.GraphModel = graphinate.model(name="Octagonal Graph")
|
|
201
207
|
|
|
208
|
+
|
|
202
209
|
# Register in the Graph Model the edges' supplier generator function
|
|
203
210
|
@graph_model.edge()
|
|
204
211
|
def edge():
|
|
@@ -236,6 +243,7 @@ schema = builder.build()
|
|
|
236
243
|
# and serve it using Uvicorn web server
|
|
237
244
|
graphinate.graphql.server(schema)
|
|
238
245
|
```
|
|
246
|
+
|
|
239
247
|
## CLI
|
|
240
248
|
|
|
241
249
|
### Commands
|
|
@@ -298,7 +306,6 @@ Options:
|
|
|
298
306
|
|
|
299
307
|

|
|
300
308
|
|
|
301
|
-
|
|
302
309
|
### Web Links
|
|
303
310
|
|
|
304
311
|

|
|
@@ -320,6 +327,7 @@ uv lock --upgrade
|
|
|
320
327
|
uv sync --all-extras --all-groups
|
|
321
328
|
```
|
|
322
329
|
|
|
330
|
+
|
|
323
331
|
### Ruff
|
|
324
332
|
|
|
325
333
|
#### Report issues
|
|
@@ -374,35 +382,39 @@ python -m mkdocs build
|
|
|
374
382
|
|
|
375
383
|
#### Python
|
|
376
384
|
|
|
377
|
-
<a href="https://palletsprojects.com/
|
|
385
|
+
<a href="https://palletsprojects.com/projects/click/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://palletsprojects.com/static/content/projects/click-name.svg" alt="Click Logo"></a>
|
|
378
386
|
<a href="https://github.com/Delgan/loguru"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/Delgan/loguru/master/docs/_static/img/logo.png" alt="Loguru Logo"></a>
|
|
379
|
-
<a href="https://matplotlib.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo
|
|
380
|
-
<a href="https://networkx.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo
|
|
387
|
+
<a href="https://matplotlib.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo"></a>
|
|
388
|
+
<a href="https://networkx.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo"></a>
|
|
389
|
+
<a href="https://www.starlette.io/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://www.starlette.io/img/starlette.svg#only-light" alt="Starlette Logo"></a>
|
|
381
390
|
<a href="https://strawberry.rocks/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://github.com/strawberry-graphql/strawberry/raw/main/.github/logo.png" alt="Strawberry GraphQL Logo"></a>
|
|
382
391
|
|
|
383
392
|
#### Javascript and HTML
|
|
384
393
|
|
|
385
|
-
<a href="https://vasturiano.github.io/3d-force-graph/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="http://gist.github.com/vasturiano/02affe306ce445e423f992faeea13521/raw/preview.png" alt="3D Force-Directed Graph
|
|
394
|
+
<a href="https://vasturiano.github.io/3d-force-graph/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="http://gist.github.com/vasturiano/02affe306ce445e423f992faeea13521/raw/preview.png" alt="3D Force-Directed Graph"></a>
|
|
386
395
|
<a href="https://github.com/graphql-kit/graphql-voyager"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://github.com/graphql-kit/graphql-voyager/raw/main/docs/cover.png" alt="Graphql Voyager Logo"></a>
|
|
387
|
-
<a href="https://github.com/cocopon/tweakpane"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://user-images.githubusercontent.com/602961/184479032-38f50be3-e235-4914-85c0-dce316b33ed2.png" alt="Tweakpane
|
|
396
|
+
<a href="https://github.com/cocopon/tweakpane"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://user-images.githubusercontent.com/602961/184479032-38f50be3-e235-4914-85c0-dce316b33ed2.png" alt="Tweakpane"></a>
|
|
388
397
|
|
|
389
398
|
### Dev Tools
|
|
390
399
|
|
|
391
|
-
<a href="https://
|
|
400
|
+
<a href="https://astral.sh/uv"><img height="60" style="padding: 16px; background: #261230;" src="https://docs.astral.sh/uv/assets/logo-letter.svg" alt="uv logo"></a>
|
|
401
|
+
<a href="https://astral.sh/ruff"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://astralcms.wpengine.com/wp-content/uploads/2023/03/Ruff-Logo.svg" alt="Ruff logo"></a>
|
|
402
|
+
<a href="https://mdformat.readthedocs.io"><img height="60" width="60" style="aspect-ratio: auto; padding: 4px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://mdformat.readthedocs.io/en/stable/_static/logo-150px.png" alt="mdformat"></a>
|
|
392
403
|
<a href="https://squidfunk.github.io/mkdocs-material/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo.svg" alt="Material for MkDocs"></a>
|
|
393
404
|
<a href="https://pytest.org"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://docs.pytest.org/en/7.4.x/_static/pytest_logo_curves.svg" alt="pytest logo"></a>
|
|
394
|
-
<a href="https://
|
|
395
|
-
|
|
405
|
+
<a href="https://hatch.pypa.io/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://hatch.pypa.io/latest/assets/images/logo.svg" alt="Hatch logo."></a>
|
|
406
|
+
|
|
407
|
+
|
|
396
408
|
|
|
397
409
|
### IDE
|
|
398
410
|
|
|
399
411
|
<a href="https://www.jetbrains.com/pycharm/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo"></a>
|
|
400
412
|
|
|
401
|
-
|
|
413
|
+
______________________________________________________________________
|
|
402
414
|
|
|
403
415
|

|
|
404
416
|
|
|
405
|
-
|
|
417
|
+
______________________________________________________________________
|
|
406
418
|
|
|
407
419
|
<img alt="Work on my Machine" src="https://forthebadge.com/images/badges/works-on-my-machine.svg">
|
|
408
420
|
|
|
@@ -28,8 +28,8 @@
|
|
|
28
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>
|
|
29
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
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
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://github.com/hukkin/mdformat"><img alt="mdformat" src="https://img.shields.io/badge/mdformat-526CFE?&logo=markdown&logoColor=white&labelColor=grey"></a>
|
|
33
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>
|
|
34
34
|
</td>
|
|
35
35
|
</tr>
|
|
@@ -55,8 +55,9 @@
|
|
|
55
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>
|
|
56
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
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>
|
|
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>
|
|
59
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://app.deepsource.com/gh/erivlis/graphinate/" target="_blank"><img alt="DeepSource" title="DeepSource" src="https://app.deepsource.com/gh/erivlis/graphinate.svg/?label=active+issues&show_trend=true&token=5n11jDEmcZB-6eyGR34rQaxF"/></a>
|
|
60
|
+
<a href="https://app.deepsource.com/gh/erivlis/graphinate/" target="_blank"><img alt="DeepSource" title="DeepSource" src="https://app.deepsource.com/gh/erivlis/graphinate.svg/?label=resolved+issues&show_trend=true&token=5n11jDEmcZB-6eyGR34rQaxF"/></a>
|
|
60
61
|
<a href="https://snyk.io/test/github/erivlis/graphinate"><img alt="Snyk" src="https://snyk.io/test/github/erivlis/Graphinate/badge.svg"></a>
|
|
61
62
|
</td>
|
|
62
63
|
</tr>
|
|
@@ -93,10 +94,13 @@
|
|
|
93
94
|
- [Python AST - 3D Force-Directed Animation](#python-ast---3d-force-directed-animation)
|
|
94
95
|
- [Web Page Links](#web-page-links)
|
|
95
96
|
- [Development](#development)
|
|
97
|
+
- [Install dependencies](#install-dependencies)
|
|
98
|
+
- [Update dependencies](#update-dependencies)
|
|
96
99
|
- [Ruff](#ruff)
|
|
97
100
|
- [Test](#test)
|
|
98
101
|
- [Standard (cobertura) XML Coverage Report](#standard-cobertura-xml-coverage-report)
|
|
99
102
|
- [HTML Coverage Report](#html-coverage-report)
|
|
103
|
+
- [Terminal Coverage Report](#terminal-coverage-report)
|
|
100
104
|
- [Docs](#docs)
|
|
101
105
|
- [test](#test-1)
|
|
102
106
|
- [build](#build)
|
|
@@ -155,6 +159,7 @@ N: int = 8
|
|
|
155
159
|
# It will be used to hold the graph definitions
|
|
156
160
|
graph_model: graphinate.GraphModel = graphinate.model(name="Octagonal Graph")
|
|
157
161
|
|
|
162
|
+
|
|
158
163
|
# Register in the Graph Model the edges' supplier generator function
|
|
159
164
|
@graph_model.edge()
|
|
160
165
|
def edge():
|
|
@@ -192,6 +197,7 @@ schema = builder.build()
|
|
|
192
197
|
# and serve it using Uvicorn web server
|
|
193
198
|
graphinate.graphql.server(schema)
|
|
194
199
|
```
|
|
200
|
+
|
|
195
201
|
## CLI
|
|
196
202
|
|
|
197
203
|
### Commands
|
|
@@ -254,7 +260,6 @@ Options:
|
|
|
254
260
|
|
|
255
261
|

|
|
256
262
|
|
|
257
|
-
|
|
258
263
|
### Web Links
|
|
259
264
|
|
|
260
265
|

|
|
@@ -276,6 +281,7 @@ uv lock --upgrade
|
|
|
276
281
|
uv sync --all-extras --all-groups
|
|
277
282
|
```
|
|
278
283
|
|
|
284
|
+
|
|
279
285
|
### Ruff
|
|
280
286
|
|
|
281
287
|
#### Report issues
|
|
@@ -330,35 +336,39 @@ python -m mkdocs build
|
|
|
330
336
|
|
|
331
337
|
#### Python
|
|
332
338
|
|
|
333
|
-
<a href="https://palletsprojects.com/
|
|
339
|
+
<a href="https://palletsprojects.com/projects/click/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://palletsprojects.com/static/content/projects/click-name.svg" alt="Click Logo"></a>
|
|
334
340
|
<a href="https://github.com/Delgan/loguru"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/Delgan/loguru/master/docs/_static/img/logo.png" alt="Loguru Logo"></a>
|
|
335
|
-
<a href="https://matplotlib.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo
|
|
336
|
-
<a href="https://networkx.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo
|
|
341
|
+
<a href="https://matplotlib.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo"></a>
|
|
342
|
+
<a href="https://networkx.org/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo"></a>
|
|
343
|
+
<a href="https://www.starlette.io/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://www.starlette.io/img/starlette.svg#only-light" alt="Starlette Logo"></a>
|
|
337
344
|
<a href="https://strawberry.rocks/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://github.com/strawberry-graphql/strawberry/raw/main/.github/logo.png" alt="Strawberry GraphQL Logo"></a>
|
|
338
345
|
|
|
339
346
|
#### Javascript and HTML
|
|
340
347
|
|
|
341
|
-
<a href="https://vasturiano.github.io/3d-force-graph/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="http://gist.github.com/vasturiano/02affe306ce445e423f992faeea13521/raw/preview.png" alt="3D Force-Directed Graph
|
|
348
|
+
<a href="https://vasturiano.github.io/3d-force-graph/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="http://gist.github.com/vasturiano/02affe306ce445e423f992faeea13521/raw/preview.png" alt="3D Force-Directed Graph"></a>
|
|
342
349
|
<a href="https://github.com/graphql-kit/graphql-voyager"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://github.com/graphql-kit/graphql-voyager/raw/main/docs/cover.png" alt="Graphql Voyager Logo"></a>
|
|
343
|
-
<a href="https://github.com/cocopon/tweakpane"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://user-images.githubusercontent.com/602961/184479032-38f50be3-e235-4914-85c0-dce316b33ed2.png" alt="Tweakpane
|
|
350
|
+
<a href="https://github.com/cocopon/tweakpane"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://user-images.githubusercontent.com/602961/184479032-38f50be3-e235-4914-85c0-dce316b33ed2.png" alt="Tweakpane"></a>
|
|
344
351
|
|
|
345
352
|
### Dev Tools
|
|
346
353
|
|
|
347
|
-
<a href="https://
|
|
354
|
+
<a href="https://astral.sh/uv"><img height="60" style="padding: 16px; background: #261230;" src="https://docs.astral.sh/uv/assets/logo-letter.svg" alt="uv logo"></a>
|
|
355
|
+
<a href="https://astral.sh/ruff"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://astralcms.wpengine.com/wp-content/uploads/2023/03/Ruff-Logo.svg" alt="Ruff logo"></a>
|
|
356
|
+
<a href="https://mdformat.readthedocs.io"><img height="60" width="60" style="aspect-ratio: auto; padding: 4px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://mdformat.readthedocs.io/en/stable/_static/logo-150px.png" alt="mdformat"></a>
|
|
348
357
|
<a href="https://squidfunk.github.io/mkdocs-material/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo.svg" alt="Material for MkDocs"></a>
|
|
349
358
|
<a href="https://pytest.org"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://docs.pytest.org/en/7.4.x/_static/pytest_logo_curves.svg" alt="pytest logo"></a>
|
|
350
|
-
<a href="https://
|
|
351
|
-
|
|
359
|
+
<a href="https://hatch.pypa.io/"><img height="60" style="background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://hatch.pypa.io/latest/assets/images/logo.svg" alt="Hatch logo."></a>
|
|
360
|
+
|
|
361
|
+
|
|
352
362
|
|
|
353
363
|
### IDE
|
|
354
364
|
|
|
355
365
|
<a href="https://www.jetbrains.com/pycharm/"><img height="60" style="padding: 5px; background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo"></a>
|
|
356
366
|
|
|
357
|
-
|
|
367
|
+
______________________________________________________________________
|
|
358
368
|
|
|
359
369
|

|
|
360
370
|
|
|
361
|
-
|
|
371
|
+
______________________________________________________________________
|
|
362
372
|
|
|
363
373
|
<img alt="Work on my Machine" src="https://forthebadge.com/images/badges/works-on-my-machine.svg">
|
|
364
374
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"acknowledgements.md": {
|
|
3
3
|
"created": "2023-08-20T00:21:55.621436",
|
|
4
|
-
"modified": "2025-
|
|
4
|
+
"modified": "2025-08-22T22:30:50.704535"
|
|
5
5
|
},
|
|
6
6
|
"index.md": {
|
|
7
7
|
"created": "2023-08-15T00:05:21.586874",
|
|
8
8
|
"modified": "2025-03-12T00:40:46.459147"
|
|
9
9
|
},
|
|
10
|
-
"
|
|
10
|
+
"introduction.md": {
|
|
11
11
|
"created": "2023-08-19T23:54:18.668094",
|
|
12
|
-
"modified": "2025-
|
|
12
|
+
"modified": "2025-08-22T22:30:50.705536"
|
|
13
13
|
},
|
|
14
14
|
"start.md": {
|
|
15
15
|
"created": "2023-08-20T00:07:42.683716",
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
### Python
|
|
6
6
|
|
|
7
|
-
<a href="https://palletsprojects.com/
|
|
8
|
-
<a href="https://github.com/Delgan/loguru"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/Delgan/loguru/master/docs/_static/img/logo.png" alt="Loguru Logo
|
|
9
|
-
<a href="https://matplotlib.org/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo
|
|
10
|
-
<a href="https://networkx.org/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo
|
|
11
|
-
<a href="https://
|
|
7
|
+
<a href="https://palletsprojects.com/projects/click/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://palletsprojects.com/static/content/projects/click-name.svg" alt="Click Logo"></a>
|
|
8
|
+
<a href="https://github.com/Delgan/loguru"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/Delgan/loguru/master/docs/_static/img/logo.png" alt="Loguru Logo"></a>
|
|
9
|
+
<a href="https://matplotlib.org/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://matplotlib.org/_static/logo_dark.svg" alt="matplotlib Logo"></a>
|
|
10
|
+
<a href="https://networkx.org/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://networkx.org/_static/networkx_logo.svg" alt="NetworkX Logo"></a>
|
|
11
|
+
<a href="https://www.starlette.io/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://www.starlette.io/img/starlette.svg" alt="Starlette Logo"></a>
|
|
12
|
+
<a href="https://strawberry.rocks/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://github.com/strawberry-graphql/strawberry/raw/main/.github/logo.png" alt="Strawberry GraphQL Logo"></a>
|
|
12
13
|
|
|
13
14
|
### Javascript and HTML
|
|
14
15
|
|
|
@@ -20,12 +21,11 @@
|
|
|
20
21
|
|
|
21
22
|
<a href="https://astral.sh/uv"><img style="height: 50px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://avatars.githubusercontent.com/u/115962839" alt="uv logo."></a>
|
|
22
23
|
<a href="https://astral.sh/ruff"><img style="height: 50px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://astralcms.wpengine.com/wp-content/uploads/2023/03/Ruff-Logo.svg" alt="Ruff logo."></a>
|
|
24
|
+
<a href="https://mdformat.readthedocs.io"><img style="height: 50px; width: 50px; aspect-ratio: auto; padding: 4px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://mdformat.readthedocs.io/en/stable/_static/logo-150px.png" alt="mdformat"></a>
|
|
23
25
|
<a href="https://squidfunk.github.io/mkdocs-material/"><img style="height: 50px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/.github/assets/logo.svg" alt="Material for MkDocs"></a>
|
|
24
26
|
<a href="https://pytest.org"><img style="height: 50px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://docs.pytest.org/en/7.4.x/_static/pytest_logo_curves.svg" alt="pytest logo."></a>
|
|
25
27
|
<a href="https://hatch.pypa.io/"><img style="height: 50px; background: linear-gradient(-45deg, #FFFFFF, #CCCCCC);" src="https://hatch.pypa.io/latest/assets/images/logo.svg" alt="Hatch logo."></a>
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
29
|
## IDE
|
|
30
30
|
|
|
31
31
|
<a href="https://www.jetbrains.com/pycharm/"><img style="height: 50px; padding: 5px; background: linear-gradient(-45deg, #FCF84A, #3DEA62, #21D789);" src="https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png" alt="PyCharm logo."></a>
|
|
@@ -51,7 +51,9 @@ def ast_graph_model():
|
|
|
51
51
|
GraphModel: A graph model representing the AST nodes and their relationships.
|
|
52
52
|
"""
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
code_object = graphinate.builders.D3Builder
|
|
55
|
+
|
|
56
|
+
graph_model = graphinate.model(name=f'AST Graph - {code_object.__qualname__}',)
|
|
55
57
|
|
|
56
58
|
root_ast_node = ast.parse(inspect.getsource(graphinate.builders.D3Builder))
|
|
57
59
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import os
|
|
3
3
|
from collections.abc import Iterable
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import Union
|
|
5
5
|
|
|
6
6
|
# see requirements.txt
|
|
7
7
|
from github import Auth, Github
|
|
@@ -26,7 +26,7 @@ client = Github(auth=auth)
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
@functools.lru_cache
|
|
29
|
-
def github_user(user_id:
|
|
29
|
+
def github_user(user_id: str | None = None) -> Union[NamedUser, AuthenticatedUser]:
|
|
30
30
|
"""
|
|
31
31
|
Get the GitHub user object for the specified user ID or the authenticated user.
|
|
32
32
|
|
|
@@ -46,8 +46,8 @@ def github_user(user_id: Optional[str] = None) -> Union[NamedUser, Authenticated
|
|
|
46
46
|
|
|
47
47
|
@functools.lru_cache
|
|
48
48
|
def github_repositories(
|
|
49
|
-
user_id:
|
|
50
|
-
repo_id:
|
|
49
|
+
user_id: str | None = None,
|
|
50
|
+
repo_id: str | None = None) -> Iterable[Repository]:
|
|
51
51
|
"""
|
|
52
52
|
Get the GitHub repositories for the specified user ID or the authenticated user.
|
|
53
53
|
|
|
@@ -74,7 +74,7 @@ def github_repositories(
|
|
|
74
74
|
|
|
75
75
|
def github_commits(
|
|
76
76
|
repo: Repository,
|
|
77
|
-
commit_id:
|
|
77
|
+
commit_id: str | None = None) -> Iterable[Commit]:
|
|
78
78
|
"""
|
|
79
79
|
Retrieve commits from a GitHub repository.
|
|
80
80
|
|
|
@@ -111,7 +111,7 @@ def github_commits(
|
|
|
111
111
|
|
|
112
112
|
def github_files(
|
|
113
113
|
commit: Commit,
|
|
114
|
-
file_id:
|
|
114
|
+
file_id: str | None = None) -> Iterable[File]:
|
|
115
115
|
"""
|
|
116
116
|
Retrieves Files from a GitHub Commit
|
|
117
117
|
|