Graphinate 0.15.2__tar.gz → 0.15.3__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.15.2 → graphinate-0.15.3}/.github/workflows/codspeed.yml +2 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/publish-docs.yaml +2 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/publish.yml +2 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/test-beta.yml +2 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/test.yml +2 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/CHANGELOG.md +7 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/PKG-INFO +3 -1
- {graphinate-0.15.2 → graphinate-0.15.3}/pyproject.toml +4 -2
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/graphql.py +17 -11
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/cli.py +9 -6
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_cli.py +11 -10
- {graphinate-0.15.2 → graphinate-0.15.3}/.coveragerc +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.deepsource.toml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/dependabot.yml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/codeql.yml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.gitignore +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.python-version +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/.sonarcloud.properties +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/AGENTS.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/LICENSE +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/PERSONA.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/PRINCIPLES.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/README.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/STYLEGUIDE.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/TELEMETRY.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/TOOLS.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/color_benchmark.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/conftest.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_builders_benchmark.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_color_benchmark.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_converters_benchmark.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_modeling_benchmark.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Builders_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/CLI_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Core_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/GraphModel_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Renderers_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Server_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Viewer_Analysis.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts_v1.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts_v2.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Builders_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/CLI_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Core_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Modeling_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Renderers_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Server_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Viewer_Grading.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/01_The_Foundations.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/02_The_Fantastical.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/03_The_Analog.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/04_The_Avant_Garde.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/05_The_Pop_Culture.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/06_The_Modern.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/07_Graphinate_2.0.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-000_Graphinate_Enhancement_Proposals.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-001_The_Graphinate_Mission.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-002_Modularization_Strategy.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-003_Roadmap.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-007_Theoretical_Foundations.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-010_Explicit_Dependency_Injection.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-011_Standardized_Element_Factory.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-012_Robust_Model_Composition.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-013_Stable_ID_Serialization.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-014_Explicit_GraphQL_Schema_Generation.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-015_Refactored_Graph_Population_Strategies.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-016_CLI_Argument_Parsing_and_Path_Safety.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-017_Decoupled_Server_Architecture.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-018_Relay_Support.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-019_Offline_Viewer_Support.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-020_Modular_Frontend_Architecture.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-022_2D_Visualization_Mode.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-023_Async_Support.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-024_The_Graph_Engine.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-025_Signed_ID_Serialization.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-026_Pluggable_Visualization_and_Notebook_Support.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-027_Advanced_ThreeJS_Visualizations.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-028_MCP_Server_Integration.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-029_Extraction_Strategies.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-030_Node_Type_Taxonomy.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-031_High_Performance_Vectorized_Operations.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-032_GraphModel_Compilation_and_Validation_Lifecycle.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/acknowledgements.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/modeling.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/optimization.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/secure_ids.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/badge/v0.json +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/images/logo-128.png +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/images/network_graph.png +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/stylesheets/extra.css +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/development.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/class_diagram.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/component_diagram.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/function_call_graph.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/code.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/github.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/math.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/social.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/system.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/web.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/gen_ref_pages.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/index.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/introduction.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/start.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/tutorial.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/usage/cli.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/docs/usage/lib.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/git_commits.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/python_ast.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/python_dependencies.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/tokens.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/_client.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/commits_visibilty_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/followers.graphql +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/followers.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/graphql.config.yml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/repositories.graphql +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/repositories.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/_test_materializers.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/graph_atlas.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/graphs.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/gui.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/materializers.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/polygonal_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/13/dd/73ce25face7beb30b69b64feeb77.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/21/9e/00846f323987ba16cfbe0127d8eb.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/70/b6/2aefb0269adce7fedf877fa0d267.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/87/f5/ec1739bc369e84c3fcb302bf532a.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/ba/fe/3aca7b2c38abff60e7ce5eb486a8.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/c7/9e/ce82b0288020b7152779df09bd73.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/cache.db +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/d2/53/3b88f2fc162561cfdbbe9abc352a.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/e2/d5/5d079f200eabf9b625b0473f6fbe.val +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/gui.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/music_artists.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/.ignore +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/files.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/processes.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/html_dom.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/page_links.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/check_repo.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/ethernet/traceroute.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/genric_graph.graphql +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/graphql.config.yml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/house_of_graphs.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/octagonal_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/science/caffeine.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/db.xml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/music.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/text/nlp_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/text/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/time_series/requirements.txt +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/time_series/visibility_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/playground/word_graph.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/properdocs.yml +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/sonar-project.properties +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/.agents/skills/graphinate/SKILL.md +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/__main__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/_secure.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/builder.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/d3.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/mermaid.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/networkx.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/color.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/constants.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/converters.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/enums.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/modeling.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/graphql.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/matplotlib.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/starlette/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/starlette/views.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/__init__.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/elements/index.html +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/graphiql/index.html +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/rapidoc/index.html +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/logo-128.png +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/logo.svg +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/network_graph.png +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/viewer/index.html +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/voyager/index.html +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/tools.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/typing.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/conftest.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_build.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_d3.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_graphql.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_mermaid.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_networkx.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_graphql_server.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_matplotlib_draw.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_matplotlib_plot.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/server/test_starlette.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_color.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_converters.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_modeling.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_modeling_add.py +0 -0
- {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_server.py +0 -0
|
@@ -23,9 +23,9 @@ jobs:
|
|
|
23
23
|
steps:
|
|
24
24
|
- uses: actions/checkout@v7
|
|
25
25
|
- name: Set up UV and Python
|
|
26
|
-
uses: astral-sh/setup-uv@
|
|
26
|
+
uses: astral-sh/setup-uv@v10.3.0
|
|
27
27
|
with:
|
|
28
|
-
python-version: "3.
|
|
28
|
+
python-version: "3.15"
|
|
29
29
|
- name: Install dependencies
|
|
30
30
|
run: uv sync --all-extras --group test
|
|
31
31
|
- name: Run benchmarks
|
|
@@ -12,9 +12,9 @@ jobs:
|
|
|
12
12
|
- name: Checkout repository
|
|
13
13
|
uses: actions/checkout@v7
|
|
14
14
|
- name: Set up UV and Python
|
|
15
|
-
uses: astral-sh/setup-uv@
|
|
15
|
+
uses: astral-sh/setup-uv@v10.3.0
|
|
16
16
|
with:
|
|
17
|
-
python-version: "3.
|
|
17
|
+
python-version: "3.15"
|
|
18
18
|
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
19
19
|
- name: Cache mkdocs-materialx dependencies
|
|
20
20
|
uses: actions/cache@v6
|
|
@@ -22,9 +22,9 @@ jobs:
|
|
|
22
22
|
steps:
|
|
23
23
|
- uses: actions/checkout@v7
|
|
24
24
|
- name: Install uv
|
|
25
|
-
uses: astral-sh/setup-uv@
|
|
25
|
+
uses: astral-sh/setup-uv@v10.3.0
|
|
26
26
|
with:
|
|
27
|
-
python-version: "3.
|
|
27
|
+
python-version: "3.15"
|
|
28
28
|
- name: Build package
|
|
29
29
|
run: uv build
|
|
30
30
|
- name: Publish package
|
|
@@ -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.16.0-alpha.1", "3.16.0-alpha.1t" ]
|
|
20
20
|
steps:
|
|
21
21
|
- uses: actions/checkout@v7
|
|
22
22
|
- name: Set up UV and Python ${{ matrix.python-version }}
|
|
23
|
-
uses: astral-sh/setup-uv@
|
|
23
|
+
uses: astral-sh/setup-uv@v10.3.0
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
26
26
|
- 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.11", "3.12", "3.13", "3.14", "3.14t" ]
|
|
19
|
+
python-version: [ "3.11", "3.12", "3.13", "3.14", "3.14t", "3.15", "3.15t" ]
|
|
20
20
|
steps:
|
|
21
21
|
- uses: actions/checkout@v7
|
|
22
22
|
- name: Set up UV and Python ${{ matrix.python-version }}
|
|
23
|
-
uses: astral-sh/setup-uv@
|
|
23
|
+
uses: astral-sh/setup-uv@v10.3.0
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ matrix.python-version }}
|
|
26
26
|
- name: Install dependencies
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Graphinate
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.3
|
|
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,12 +22,14 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
25
26
|
Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
|
|
26
27
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
28
|
Classifier: Topic :: Scientific/Engineering
|
|
28
29
|
Classifier: Topic :: Software Development :: Libraries
|
|
29
30
|
Classifier: Typing :: Typed
|
|
30
31
|
Requires-Python: >=3.11
|
|
32
|
+
Requires-Dist: httpx2
|
|
31
33
|
Requires-Dist: inflect
|
|
32
34
|
Requires-Dist: loguru
|
|
33
35
|
Requires-Dist: mappingtools
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Graphinate"
|
|
3
|
-
version = "0.15.
|
|
3
|
+
version = "0.15.3"
|
|
4
4
|
description = "Graphinate. Data to Graphs."
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Eran Rivlis", email = "eran@rivlis.info" },
|
|
@@ -17,6 +17,7 @@ classifiers = [
|
|
|
17
17
|
"Programming Language :: Python :: 3.12",
|
|
18
18
|
"Programming Language :: Python :: 3.13",
|
|
19
19
|
"Programming Language :: Python :: 3.14",
|
|
20
|
+
"Programming Language :: Python :: 3.15",
|
|
20
21
|
"Programming Language :: Python :: 3 :: Only",
|
|
21
22
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
22
23
|
"Programming Language :: Python :: Free Threading :: 2 - Beta", # Build works, but multi-threaded testing might be incomplete.
|
|
@@ -29,6 +30,7 @@ classifiers = [
|
|
|
29
30
|
]
|
|
30
31
|
keywords = ['graph', 'declarative']
|
|
31
32
|
dependencies = [
|
|
33
|
+
"httpx2",
|
|
32
34
|
"inflect",
|
|
33
35
|
"loguru",
|
|
34
36
|
"mappingtools",
|
|
@@ -211,7 +213,7 @@ multiline-quotes = "single"
|
|
|
211
213
|
max-complexity = 18
|
|
212
214
|
|
|
213
215
|
[tool.mypy]
|
|
214
|
-
python_version = "3.
|
|
216
|
+
python_version = "3.11"
|
|
215
217
|
warn_return_any = true
|
|
216
218
|
warn_unused_configs = true
|
|
217
219
|
ignore_missing_imports = true
|
|
@@ -8,12 +8,13 @@ from collections.abc import Callable
|
|
|
8
8
|
from datetime import datetime
|
|
9
9
|
from enum import Enum
|
|
10
10
|
from enum import EnumMeta as EnumType # support Python 3.10
|
|
11
|
-
from typing import Any, Optional
|
|
11
|
+
from typing import Any, NewType, Optional
|
|
12
12
|
|
|
13
13
|
import inflect
|
|
14
14
|
import networkx as nx
|
|
15
15
|
import strawberry
|
|
16
16
|
from strawberry.extensions import ParserCache, QueryDepthLimiter, ValidationCache
|
|
17
|
+
from strawberry.schema.config import StrawberryConfig
|
|
17
18
|
from strawberry.types.base import StrawberryType
|
|
18
19
|
|
|
19
20
|
from .. import color, converters
|
|
@@ -35,12 +36,7 @@ class GraphQLBuilder(NetworkxBuilder):
|
|
|
35
36
|
|
|
36
37
|
# region - Strawberry Types
|
|
37
38
|
|
|
38
|
-
InfNumber =
|
|
39
|
-
converters.InfNumber,
|
|
40
|
-
description='Integer, Decimal or Float including Infinity and -Infinity',
|
|
41
|
-
serialize=converters.infnum_to_value,
|
|
42
|
-
parse_value=converters.value_to_infnum,
|
|
43
|
-
)
|
|
39
|
+
InfNumber = NewType('InfNumber', object)
|
|
44
40
|
|
|
45
41
|
@strawberry.type
|
|
46
42
|
class Measure:
|
|
@@ -497,10 +493,20 @@ class GraphQLBuilder(NetworkxBuilder):
|
|
|
497
493
|
mutation=self._graphql_mutation(),
|
|
498
494
|
types=self._graphql_types.values(),
|
|
499
495
|
extensions=[
|
|
500
|
-
ParserCache(maxsize=100),
|
|
501
|
-
QueryDepthLimiter(max_depth=10),
|
|
502
|
-
ValidationCache(maxsize=100)
|
|
503
|
-
]
|
|
496
|
+
lambda: ParserCache(maxsize=100),
|
|
497
|
+
lambda: QueryDepthLimiter(max_depth=10),
|
|
498
|
+
lambda: ValidationCache(maxsize=100),
|
|
499
|
+
],
|
|
500
|
+
config=StrawberryConfig(
|
|
501
|
+
scalar_map={
|
|
502
|
+
GraphQLBuilder.InfNumber: strawberry.scalar(
|
|
503
|
+
name='InfNumber',
|
|
504
|
+
description='Integer, Decimal or Float including Infinity and -Infinity',
|
|
505
|
+
serialize=converters.infnum_to_value,
|
|
506
|
+
parse_value=converters.value_to_infnum,
|
|
507
|
+
)
|
|
508
|
+
}
|
|
509
|
+
),
|
|
504
510
|
)
|
|
505
511
|
|
|
506
512
|
def build(self,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import importlib
|
|
2
2
|
import json
|
|
3
3
|
import sys
|
|
4
|
+
from collections.abc import Callable
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
from types import ModuleType
|
|
6
7
|
from typing import Any
|
|
@@ -69,7 +70,7 @@ class GraphModelType(click.ParamType):
|
|
|
69
70
|
def convert(self,
|
|
70
71
|
value: Any,
|
|
71
72
|
param: click.Parameter | None,
|
|
72
|
-
ctx: click.Context) -> GraphModel: # type: ignore[override]
|
|
73
|
+
ctx: click.Context | None) -> GraphModel: # type: ignore[override]
|
|
73
74
|
if isinstance(value, GraphModel):
|
|
74
75
|
return value
|
|
75
76
|
|
|
@@ -79,11 +80,13 @@ class GraphModelType(click.ParamType):
|
|
|
79
80
|
self.fail(str(e))
|
|
80
81
|
|
|
81
82
|
|
|
82
|
-
model_option = click.option(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
model_option: Callable[..., Any] = click.option(
|
|
84
|
+
'-m', '--model',
|
|
85
|
+
type=GraphModelType(),
|
|
86
|
+
help="A GraphModel instance reference {module-name}:{GraphModel-instance-variable-name}"
|
|
87
|
+
" For example given a var `model=GraphModel()` defined in app.py file, then the"
|
|
88
|
+
" reference would be app:model"
|
|
89
|
+
)
|
|
87
90
|
|
|
88
91
|
|
|
89
92
|
@click.group()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import sys
|
|
2
|
+
from contextlib import chdir
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
|
|
4
5
|
import pytest
|
|
@@ -15,8 +16,8 @@ def runner():
|
|
|
15
16
|
return CliRunner()
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
def test_save_model(octagonal_graph_model, runner):
|
|
19
|
-
with
|
|
19
|
+
def test_save_model(octagonal_graph_model, runner, tmp_path):
|
|
20
|
+
with chdir(tmp_path):
|
|
20
21
|
# Act
|
|
21
22
|
result = runner.invoke(cli, ['save', '-m', octagonal_graph_model])
|
|
22
23
|
|
|
@@ -24,11 +25,11 @@ def test_save_model(octagonal_graph_model, runner):
|
|
|
24
25
|
assert result.exit_code == 0
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
def test_save_model_reference(runner):
|
|
28
|
+
def test_save_model_reference(runner, tmp_path):
|
|
28
29
|
# Arrange
|
|
29
30
|
sys.path.append(str(Path(EXAMPLES_MATH).resolve()))
|
|
30
31
|
|
|
31
|
-
with
|
|
32
|
+
with chdir(tmp_path):
|
|
32
33
|
# Act
|
|
33
34
|
result = runner.invoke(cli, ['save', '-m', "polygonal_graph:model"])
|
|
34
35
|
|
|
@@ -36,8 +37,8 @@ def test_save_model_reference(runner):
|
|
|
36
37
|
assert result.exit_code == 0
|
|
37
38
|
|
|
38
39
|
|
|
39
|
-
def test_save_malformed_model_reference(runner):
|
|
40
|
-
with
|
|
40
|
+
def test_save_malformed_model_reference(runner, tmp_path):
|
|
41
|
+
with chdir(tmp_path):
|
|
41
42
|
# Act
|
|
42
43
|
result = runner.invoke(cli, ['save', '-m', "malformed_model_reference"])
|
|
43
44
|
|
|
@@ -104,8 +105,8 @@ def test_import_from_string_nested_module_not_found(monkeypatch):
|
|
|
104
105
|
import_from_string("some_module:model")
|
|
105
106
|
|
|
106
107
|
|
|
107
|
-
def test_save_model_file_exists_confirm(octagonal_graph_model, runner):
|
|
108
|
-
with
|
|
108
|
+
def test_save_model_file_exists_confirm(octagonal_graph_model, runner, tmp_path):
|
|
109
|
+
with chdir(tmp_path):
|
|
109
110
|
file_name = f"{octagonal_graph_model.name}.d3_graph.json"
|
|
110
111
|
Path(file_name).write_text("{}")
|
|
111
112
|
|
|
@@ -152,8 +153,8 @@ def test_server_command(octagonal_graph_model, runner, monkeypatch):
|
|
|
152
153
|
assert called[0] == (8080, False, False)
|
|
153
154
|
|
|
154
155
|
|
|
155
|
-
def test_save_model_debug_flag(octagonal_graph_model, runner):
|
|
156
|
-
with
|
|
156
|
+
def test_save_model_debug_flag(octagonal_graph_model, runner, tmp_path):
|
|
157
|
+
with chdir(tmp_path):
|
|
157
158
|
result = runner.invoke(cli, ['--debug', 'save', '-m', octagonal_graph_model])
|
|
158
159
|
assert result.exit_code == 0
|
|
159
160
|
result_cmd = runner.invoke(cli, ['save', '-m', octagonal_graph_model, '--debug'], input='y\n')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-000_Graphinate_Enhancement_Proposals.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-010_Explicit_Dependency_Injection.md
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-011_Standardized_Element_Factory.md
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-012_Robust_Model_Composition.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-017_Decoupled_Server_Architecture.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-020_Modular_Frontend_Architecture.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-027_Advanced_ThreeJS_Visualizations.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/13/dd/73ce25face7beb30b69b64feeb77.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/21/9e/00846f323987ba16cfbe0127d8eb.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/70/b6/2aefb0269adce7fedf877fa0d267.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/87/f5/ec1739bc369e84c3fcb302bf532a.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/ba/fe/3aca7b2c38abff60e7ce5eb486a8.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/c7/9e/ce82b0288020b7152779df09bd73.val
RENAMED
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/d2/53/3b88f2fc162561cfdbbe9abc352a.val
RENAMED
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/e2/d5/5d079f200eabf9b625b0473f6fbe.val
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/logo-128.png
RENAMED
|
File without changes
|
|
File without changes
|
{graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/network_graph.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|