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.
Files changed (210) hide show
  1. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/codspeed.yml +2 -2
  2. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/publish-docs.yaml +2 -2
  3. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/publish.yml +2 -2
  4. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/test-beta.yml +2 -2
  5. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/test.yml +2 -2
  6. {graphinate-0.15.2 → graphinate-0.15.3}/CHANGELOG.md +7 -0
  7. {graphinate-0.15.2 → graphinate-0.15.3}/PKG-INFO +3 -1
  8. {graphinate-0.15.2 → graphinate-0.15.3}/pyproject.toml +4 -2
  9. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/graphql.py +17 -11
  10. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/cli.py +9 -6
  11. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_cli.py +11 -10
  12. {graphinate-0.15.2 → graphinate-0.15.3}/.coveragerc +0 -0
  13. {graphinate-0.15.2 → graphinate-0.15.3}/.deepsource.toml +0 -0
  14. {graphinate-0.15.2 → graphinate-0.15.3}/.github/dependabot.yml +0 -0
  15. {graphinate-0.15.2 → graphinate-0.15.3}/.github/workflows/codeql.yml +0 -0
  16. {graphinate-0.15.2 → graphinate-0.15.3}/.gitignore +0 -0
  17. {graphinate-0.15.2 → graphinate-0.15.3}/.python-version +0 -0
  18. {graphinate-0.15.2 → graphinate-0.15.3}/.sonarcloud.properties +0 -0
  19. {graphinate-0.15.2 → graphinate-0.15.3}/AGENTS.md +0 -0
  20. {graphinate-0.15.2 → graphinate-0.15.3}/LICENSE +0 -0
  21. {graphinate-0.15.2 → graphinate-0.15.3}/PERSONA.md +0 -0
  22. {graphinate-0.15.2 → graphinate-0.15.3}/PRINCIPLES.md +0 -0
  23. {graphinate-0.15.2 → graphinate-0.15.3}/README.md +0 -0
  24. {graphinate-0.15.2 → graphinate-0.15.3}/STYLEGUIDE.md +0 -0
  25. {graphinate-0.15.2 → graphinate-0.15.3}/TELEMETRY.md +0 -0
  26. {graphinate-0.15.2 → graphinate-0.15.3}/TOOLS.md +0 -0
  27. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/color_benchmark.py +0 -0
  28. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/conftest.py +0 -0
  29. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_builders_benchmark.py +0 -0
  30. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_color_benchmark.py +0 -0
  31. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_converters_benchmark.py +0 -0
  32. {graphinate-0.15.2 → graphinate-0.15.3}/benchmarks/test_modeling_benchmark.py +0 -0
  33. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Builders_Analysis.md +0 -0
  34. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/CLI_Analysis.md +0 -0
  35. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Core_Analysis.md +0 -0
  36. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/GraphModel_Analysis.md +0 -0
  37. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Renderers_Analysis.md +0 -0
  38. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Server_Analysis.md +0 -0
  39. {graphinate-0.15.2 → graphinate-0.15.3}/design/analysis/Viewer_Analysis.md +0 -0
  40. {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts.md +0 -0
  41. {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts_v1.md +0 -0
  42. {graphinate-0.15.2 → graphinate-0.15.3}/design/art_prompts_v2.md +0 -0
  43. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Builders_Grading.md +0 -0
  44. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/CLI_Grading.md +0 -0
  45. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Core_Grading.md +0 -0
  46. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Modeling_Grading.md +0 -0
  47. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Renderers_Grading.md +0 -0
  48. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Server_Grading.md +0 -0
  49. {graphinate-0.15.2 → graphinate-0.15.3}/design/grading/Viewer_Grading.md +0 -0
  50. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/01_The_Foundations.md +0 -0
  51. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/02_The_Fantastical.md +0 -0
  52. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/03_The_Analog.md +0 -0
  53. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/04_The_Avant_Garde.md +0 -0
  54. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/05_The_Pop_Culture.md +0 -0
  55. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/06_The_Modern.md +0 -0
  56. {graphinate-0.15.2 → graphinate-0.15.3}/design/prompts/07_Graphinate_2.0.md +0 -0
  57. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-000_Graphinate_Enhancement_Proposals.md +0 -0
  58. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-001_The_Graphinate_Mission.md +0 -0
  59. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-002_Modularization_Strategy.md +0 -0
  60. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-003_Roadmap.md +0 -0
  61. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-007_Theoretical_Foundations.md +0 -0
  62. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-010_Explicit_Dependency_Injection.md +0 -0
  63. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-011_Standardized_Element_Factory.md +0 -0
  64. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-012_Robust_Model_Composition.md +0 -0
  65. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-013_Stable_ID_Serialization.md +0 -0
  66. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-014_Explicit_GraphQL_Schema_Generation.md +0 -0
  67. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-015_Refactored_Graph_Population_Strategies.md +0 -0
  68. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-016_CLI_Argument_Parsing_and_Path_Safety.md +0 -0
  69. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-017_Decoupled_Server_Architecture.md +0 -0
  70. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-018_Relay_Support.md +0 -0
  71. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-019_Offline_Viewer_Support.md +0 -0
  72. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-020_Modular_Frontend_Architecture.md +0 -0
  73. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-022_2D_Visualization_Mode.md +0 -0
  74. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-023_Async_Support.md +0 -0
  75. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-024_The_Graph_Engine.md +0 -0
  76. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-025_Signed_ID_Serialization.md +0 -0
  77. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-026_Pluggable_Visualization_and_Notebook_Support.md +0 -0
  78. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-027_Advanced_ThreeJS_Visualizations.md +0 -0
  79. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-028_MCP_Server_Integration.md +0 -0
  80. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-029_Extraction_Strategies.md +0 -0
  81. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-030_Node_Type_Taxonomy.md +0 -0
  82. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-031_High_Performance_Vectorized_Operations.md +0 -0
  83. {graphinate-0.15.2 → graphinate-0.15.3}/design/proposals/GEP-032_GraphModel_Compilation_and_Validation_Lifecycle.md +0 -0
  84. {graphinate-0.15.2 → graphinate-0.15.3}/docs/acknowledgements.md +0 -0
  85. {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/modeling.md +0 -0
  86. {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/optimization.md +0 -0
  87. {graphinate-0.15.2 → graphinate-0.15.3}/docs/advanced/secure_ids.md +0 -0
  88. {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/badge/v0.json +0 -0
  89. {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/images/logo-128.png +0 -0
  90. {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/images/network_graph.png +0 -0
  91. {graphinate-0.15.2 → graphinate-0.15.3}/docs/assets/stylesheets/extra.css +0 -0
  92. {graphinate-0.15.2 → graphinate-0.15.3}/docs/development.md +0 -0
  93. {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/class_diagram.md +0 -0
  94. {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/component_diagram.md +0 -0
  95. {graphinate-0.15.2 → graphinate-0.15.3}/docs/diagrams/function_call_graph.md +0 -0
  96. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/code.md +0 -0
  97. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/github.md +0 -0
  98. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/math.md +0 -0
  99. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/social.md +0 -0
  100. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/system.md +0 -0
  101. {graphinate-0.15.2 → graphinate-0.15.3}/docs/examples/web.md +0 -0
  102. {graphinate-0.15.2 → graphinate-0.15.3}/docs/gen_ref_pages.py +0 -0
  103. {graphinate-0.15.2 → graphinate-0.15.3}/docs/index.md +0 -0
  104. {graphinate-0.15.2 → graphinate-0.15.3}/docs/introduction.md +0 -0
  105. {graphinate-0.15.2 → graphinate-0.15.3}/docs/start.md +0 -0
  106. {graphinate-0.15.2 → graphinate-0.15.3}/docs/tutorial.md +0 -0
  107. {graphinate-0.15.2 → graphinate-0.15.3}/docs/usage/cli.md +0 -0
  108. {graphinate-0.15.2 → graphinate-0.15.3}/docs/usage/lib.md +0 -0
  109. {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/git_commits.py +0 -0
  110. {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/python_ast.py +0 -0
  111. {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/python_dependencies.py +0 -0
  112. {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/requirements.txt +0 -0
  113. {graphinate-0.15.2 → graphinate-0.15.3}/examples/code/tokens.py +0 -0
  114. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/_client.py +0 -0
  115. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/commits_visibilty_graph.py +0 -0
  116. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/followers.graphql +0 -0
  117. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/followers.py +0 -0
  118. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/graphql.config.yml +0 -0
  119. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/repositories.graphql +0 -0
  120. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/repositories.py +0 -0
  121. {graphinate-0.15.2 → graphinate-0.15.3}/examples/github/requirements.txt +0 -0
  122. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/_test_materializers.py +0 -0
  123. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/graph_atlas.py +0 -0
  124. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/graphs.py +0 -0
  125. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/gui.py +0 -0
  126. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/materializers.py +0 -0
  127. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/polygonal_graph.py +0 -0
  128. {graphinate-0.15.2 → graphinate-0.15.3}/examples/math/requirements.txt +0 -0
  129. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/13/dd/73ce25face7beb30b69b64feeb77.val +0 -0
  130. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/21/9e/00846f323987ba16cfbe0127d8eb.val +0 -0
  131. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/70/b6/2aefb0269adce7fedf877fa0d267.val +0 -0
  132. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/87/f5/ec1739bc369e84c3fcb302bf532a.val +0 -0
  133. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/ba/fe/3aca7b2c38abff60e7ce5eb486a8.val +0 -0
  134. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/c7/9e/ce82b0288020b7152779df09bd73.val +0 -0
  135. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/cache.db +0 -0
  136. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/d2/53/3b88f2fc162561cfdbbe9abc352a.val +0 -0
  137. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/cache/e2/d5/5d079f200eabf9b625b0473f6fbe.val +0 -0
  138. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/gui.py +0 -0
  139. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/music_artists.py +0 -0
  140. {graphinate-0.15.2 → graphinate-0.15.3}/examples/social/requirements.txt +0 -0
  141. {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/.ignore +0 -0
  142. {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/files.py +0 -0
  143. {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/processes.py +0 -0
  144. {graphinate-0.15.2 → graphinate-0.15.3}/examples/system/requirements.txt +0 -0
  145. {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/html_dom.py +0 -0
  146. {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/page_links.py +0 -0
  147. {graphinate-0.15.2 → graphinate-0.15.3}/examples/web/requirements.txt +0 -0
  148. {graphinate-0.15.2 → graphinate-0.15.3}/playground/check_repo.py +0 -0
  149. {graphinate-0.15.2 → graphinate-0.15.3}/playground/ethernet/traceroute.py +0 -0
  150. {graphinate-0.15.2 → graphinate-0.15.3}/playground/genric_graph.graphql +0 -0
  151. {graphinate-0.15.2 → graphinate-0.15.3}/playground/graphql.config.yml +0 -0
  152. {graphinate-0.15.2 → graphinate-0.15.3}/playground/house_of_graphs.py +0 -0
  153. {graphinate-0.15.2 → graphinate-0.15.3}/playground/octagonal_graph.py +0 -0
  154. {graphinate-0.15.2 → graphinate-0.15.3}/playground/science/caffeine.py +0 -0
  155. {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/db.xml +0 -0
  156. {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/music.py +0 -0
  157. {graphinate-0.15.2 → graphinate-0.15.3}/playground/social/requirements.txt +0 -0
  158. {graphinate-0.15.2 → graphinate-0.15.3}/playground/text/nlp_graph.py +0 -0
  159. {graphinate-0.15.2 → graphinate-0.15.3}/playground/text/requirements.txt +0 -0
  160. {graphinate-0.15.2 → graphinate-0.15.3}/playground/time_series/requirements.txt +0 -0
  161. {graphinate-0.15.2 → graphinate-0.15.3}/playground/time_series/visibility_graph.py +0 -0
  162. {graphinate-0.15.2 → graphinate-0.15.3}/playground/word_graph.py +0 -0
  163. {graphinate-0.15.2 → graphinate-0.15.3}/properdocs.yml +0 -0
  164. {graphinate-0.15.2 → graphinate-0.15.3}/sonar-project.properties +0 -0
  165. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/.agents/skills/graphinate/SKILL.md +0 -0
  166. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/__init__.py +0 -0
  167. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/__main__.py +0 -0
  168. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/_secure.py +0 -0
  169. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/__init__.py +0 -0
  170. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/builder.py +0 -0
  171. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/d3.py +0 -0
  172. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/mermaid.py +0 -0
  173. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/builders/networkx.py +0 -0
  174. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/color.py +0 -0
  175. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/constants.py +0 -0
  176. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/converters.py +0 -0
  177. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/enums.py +0 -0
  178. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/modeling.py +0 -0
  179. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/__init__.py +0 -0
  180. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/graphql.py +0 -0
  181. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/renderers/matplotlib.py +0 -0
  182. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/__init__.py +0 -0
  183. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/starlette/__init__.py +0 -0
  184. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/starlette/views.py +0 -0
  185. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/__init__.py +0 -0
  186. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/elements/index.html +0 -0
  187. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/graphiql/index.html +0 -0
  188. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/rapidoc/index.html +0 -0
  189. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/logo-128.png +0 -0
  190. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/logo.svg +0 -0
  191. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/static/images/network_graph.png +0 -0
  192. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/viewer/index.html +0 -0
  193. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/server/web/voyager/index.html +0 -0
  194. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/tools.py +0 -0
  195. {graphinate-0.15.2 → graphinate-0.15.3}/src/graphinate/typing.py +0 -0
  196. {graphinate-0.15.2 → graphinate-0.15.3}/tests/conftest.py +0 -0
  197. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_build.py +0 -0
  198. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_d3.py +0 -0
  199. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_graphql.py +0 -0
  200. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_mermaid.py +0 -0
  201. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/builders/test_networkx.py +0 -0
  202. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_graphql_server.py +0 -0
  203. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_matplotlib_draw.py +0 -0
  204. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/renderers/test_matplotlib_plot.py +0 -0
  205. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/server/test_starlette.py +0 -0
  206. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_color.py +0 -0
  207. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_converters.py +0 -0
  208. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_modeling.py +0 -0
  209. {graphinate-0.15.2 → graphinate-0.15.3}/tests/graphinate/test_modeling_add.py +0 -0
  210. {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@v9.0.0
26
+ uses: astral-sh/setup-uv@v10.3.0
27
27
  with:
28
- python-version: "3.14"
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@v9.0.0
15
+ uses: astral-sh/setup-uv@v10.3.0
16
16
  with:
17
- python-version: "3.14"
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@v9.0.0
25
+ uses: astral-sh/setup-uv@v10.3.0
26
26
  with:
27
- python-version: "3.14"
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.15.0-rc.1", "3.15.0-rc.1t" ]
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@v9.0.0
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@v9.0.0
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,3 +1,10 @@
1
+ ## v0.15.3 (2026-10-17)
2
+
3
+ ### Fix
4
+
5
+ - Corrects InfNumber scalar definition using NewType and config.
6
+ - Corrects `model_option` type instantiation and refines its type hint.
7
+
1
8
  ## v0.15.2 (2026-08-21)
2
9
 
3
10
  ### Fix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: Graphinate
3
- Version: 0.15.2
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.2"
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.10"
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 = strawberry.scalar(
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('-m', '--model',
83
- type=GraphModelType(),
84
- help="A GraphModel instance reference {module-name}:{GraphModel-instance-variable-name}"
85
- " For example given a var `model=GraphModel()` defined in app.py file, then the"
86
- " reference would be app:model")
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 runner.isolated_filesystem():
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 runner.isolated_filesystem():
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 runner.isolated_filesystem():
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 runner.isolated_filesystem():
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 runner.isolated_filesystem():
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