qortex 0.1.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.
Files changed (253) hide show
  1. qortex-0.1.0/.github/workflows/ci.yml +83 -0
  2. qortex-0.1.0/.github/workflows/docs.yml +48 -0
  3. qortex-0.1.0/.github/workflows/publish.yml +35 -0
  4. qortex-0.1.0/.gitignore +58 -0
  5. qortex-0.1.0/CH5.txt +1133 -0
  6. qortex-0.1.0/CH5_from_pdf.txt +1735 -0
  7. qortex-0.1.0/PKG-INFO +142 -0
  8. qortex-0.1.0/README.md +83 -0
  9. qortex-0.1.0/SLUOP.md +975 -0
  10. qortex-0.1.0/buildlog/.buildlog/.gitkeep +1 -0
  11. qortex-0.1.0/buildlog/2026-02-06-extraction-density-improvements.md +35 -0
  12. qortex-0.1.0/buildlog/2026-02-07-issue-29-illustrative-concepts.md +179 -0
  13. qortex-0.1.0/buildlog/2026-02-07-mnemosyne-phase1-causal.md +182 -0
  14. qortex-0.1.0/ch05_manifest.json +4354 -0
  15. qortex-0.1.0/docker/docker-compose.yml +40 -0
  16. qortex-0.1.0/docs/architecture/overview.md +218 -0
  17. qortex-0.1.0/docs/architecture/projection-pipeline.md +373 -0
  18. qortex-0.1.0/docs/changelog.md +154 -0
  19. qortex-0.1.0/docs/demo-screenshots/01-memgraph-lab-initial.png +0 -0
  20. qortex-0.1.0/docs/demo-screenshots/02-memgraph-connected.png +0 -0
  21. qortex-0.1.0/docs/demo-screenshots/03-graph-visualization.png +0 -0
  22. qortex-0.1.0/docs/demo-screenshots/04-graph-results.png +0 -0
  23. qortex-0.1.0/docs/demo-screenshots/05-edge-types-distribution.png +0 -0
  24. qortex-0.1.0/docs/demo-screenshots/06-graph-after-ch12.png +0 -0
  25. qortex-0.1.0/docs/demo-screenshots/07-domains-concept-counts.png +0 -0
  26. qortex-0.1.0/docs/demo-screenshots/08-pagerank-top-concepts.png +0 -0
  27. qortex-0.1.0/docs/demo-screenshots/09-buildlog-mistakes-ingested.png +0 -0
  28. qortex-0.1.0/docs/demo-screenshots/10-cross-domain-mistake-links.png +0 -0
  29. qortex-0.1.0/docs/getting-started/concepts.md +137 -0
  30. qortex-0.1.0/docs/getting-started/installation.md +93 -0
  31. qortex-0.1.0/docs/getting-started/quickstart.md +139 -0
  32. qortex-0.1.0/docs/guides/buildlog-interop.md +288 -0
  33. qortex-0.1.0/docs/guides/consumer-integration.md +325 -0
  34. qortex-0.1.0/docs/guides/enrichment.md +198 -0
  35. qortex-0.1.0/docs/guides/memgraph.md +326 -0
  36. qortex-0.1.0/docs/guides/projecting-rules.md +245 -0
  37. qortex-0.1.0/docs/guides/visualization.md +147 -0
  38. qortex-0.1.0/docs/images/diagrams/3.1-what-do-i-have-1-pie-title-concept-connectivity.svg +1 -0
  39. qortex-0.1.0/docs/images/diagrams/3.3-following-the-connections-1-im-immutability-contradicts-ds.svg +1 -0
  40. qortex-0.1.0/docs/images/diagrams/3.3-following-the-connections-2-im-immutability-contradicts-ds.svg +1 -0
  41. qortex-0.1.0/docs/images/diagrams/3.5-finding-the-hubs-1-g-getters-p-properties-br-23-c.svg +1 -0
  42. qortex-0.1.0/docs/images/diagrams/3.6-paths-and-distances-1-ds-dangerous-setters-enables-i.svg +1 -0
  43. qortex-0.1.0/docs/images/diagrams/concepts-1-subgraph-domain-domain-error-h.svg +1 -0
  44. qortex-0.1.0/docs/images/diagrams/concepts-2-kg-knowledge-graph-source.svg +1 -0
  45. qortex-0.1.0/docs/images/diagrams/consumer-integration-1-subgraph-qortex.svg +1 -0
  46. qortex-0.1.0/docs/images/diagrams/enrichment-1-rules-pipeline.svg +1 -0
  47. qortex-0.1.0/docs/images/diagrams/full-loop-1-subgraph-forward-forward-knowl.svg +1 -0
  48. qortex-0.1.0/docs/images/diagrams/index-1-a-3-1-what-do-i-have-br-naive.svg +1 -0
  49. qortex-0.1.0/docs/images/diagrams/index-1-a-raw-text-ingest-b-concepts.svg +1 -0
  50. qortex-0.1.0/docs/images/diagrams/overview-1-subgraph-sources-source-materi.svg +1 -0
  51. qortex-0.1.0/docs/images/diagrams/overview-2-sequencediagram.svg +1 -0
  52. qortex-0.1.0/docs/images/diagrams/overview-3-sequencediagram.svg +1 -0
  53. qortex-0.1.0/docs/images/diagrams/overview-4-query-query-ppr-personalized-p.svg +1 -0
  54. qortex-0.1.0/docs/images/diagrams/overview-5-rewards-reward-events-dag-caus.svg +1 -0
  55. qortex-0.1.0/docs/images/diagrams/p1-edge-directions-1-a-encapsulation-requires-br-fo.svg +1 -0
  56. qortex-0.1.0/docs/images/diagrams/p1-fisher-metric-1-a-beta-alpha-beta-polygamma-b.svg +1 -0
  57. qortex-0.1.0/docs/images/diagrams/p1-welcome-1-subgraph-a-table-what-you-re-u.svg +1 -0
  58. qortex-0.1.0/docs/images/diagrams/p2-building-the-dag-1-a-encapsulation-requires-br-st.svg +1 -0
  59. qortex-0.1.0/docs/images/diagrams/p2-building-the-dag-2-a-encapsulation-requires-br-st.svg +1 -0
  60. qortex-0.1.0/docs/images/diagrams/p2-cypher-1-subgraph-the-pattern.svg +1 -0
  61. qortex-0.1.0/docs/images/diagrams/p2-trajectories-1-a-trajectory-plot-br-fisher-sp.svg +1 -0
  62. qortex-0.1.0/docs/images/diagrams/p3-d-separation-1-a-a-b-b-c-c.svg +1 -0
  63. qortex-0.1.0/docs/images/diagrams/p3-d-separation-2-b-b-a-a.svg +1 -0
  64. qortex-0.1.0/docs/images/diagrams/p3-d-separation-3-a-a-b-b.svg +1 -0
  65. qortex-0.1.0/docs/images/diagrams/p3-d-separation-4-ab-abstraction-requires-en-enc.svg +1 -0
  66. qortex-0.1.0/docs/images/diagrams/p3-geodesics-1-subgraph-state-vector-y.svg +1 -0
  67. qortex-0.1.0/docs/images/diagrams/p3-multi-hop-1-a-encapsulation-requires-b-pro.svg +1 -0
  68. qortex-0.1.0/docs/images/diagrams/p3-multi-hop-2-subgraph-2-hop-neighborhood.svg +1 -0
  69. qortex-0.1.0/docs/images/diagrams/p4-centrality-1-subgraph-sized-by-degree.svg +1 -0
  70. qortex-0.1.0/docs/images/diagrams/p4-centrality-2-a-a-b-b.svg +1 -0
  71. qortex-0.1.0/docs/images/diagrams/p4-credit-assignment-1-dp-design-principles-br-credit.svg +1 -0
  72. qortex-0.1.0/docs/images/diagrams/p4-credit-assignment-2-f-foundations-br-below-min-cre.svg +1 -0
  73. qortex-0.1.0/docs/images/diagrams/p5-communities-1-subgraph-cluster-1-core-hiding.svg +1 -0
  74. qortex-0.1.0/docs/images/diagrams/p5-communities-2-subgraph-your-mental-model.svg +1 -0
  75. qortex-0.1.0/docs/images/diagrams/p5-degradation-chain-1-start-causaldispatcher-auto-de.svg +1 -0
  76. qortex-0.1.0/docs/images/diagrams/p5-degradation-chain-2-ca-creditassigner-br-assign-cr.svg +1 -0
  77. qortex-0.1.0/docs/images/diagrams/p5-dynamical-systems-1-subgraph-stability-classificat.svg +1 -0
  78. qortex-0.1.0/docs/images/diagrams/p5-dynamical-systems-2-a-update-rule-br-alpha-beta-al.svg +1 -0
  79. qortex-0.1.0/docs/images/diagrams/p6-forging-rules-1-e-explicit-rules-br-from-text.svg +1 -0
  80. qortex-0.1.0/docs/images/diagrams/p6-forging-rules-2-subgraph-knowledge-types.svg +1 -0
  81. qortex-0.1.0/docs/images/diagrams/p6-interoception-1-a-evidence-br-bandit-updates-b.svg +1 -0
  82. qortex-0.1.0/docs/images/diagrams/p6-interoception-2-ch1-ch1-fisher-metric-br-the-r.svg +1 -0
  83. qortex-0.1.0/docs/images/diagrams/pipeline.svg +1 -0
  84. qortex-0.1.0/docs/images/diagrams/projecting-rules-1-kg-knowledge-graph-source.svg +1 -0
  85. qortex-0.1.0/docs/images/diagrams/projection-pipeline-1-kg-knowledge-graph.svg +1 -0
  86. qortex-0.1.0/docs/images/diagrams/projection-pipeline-2-subgraph-flatrulesource.svg +1 -0
  87. qortex-0.1.0/docs/images/diagrams/projection-pipeline-3-rules-rules-batch-batch.svg +1 -0
  88. qortex-0.1.0/docs/images/diagrams/projection-pipeline-4-edge-edge-derive-derive-rule.svg +1 -0
  89. qortex-0.1.0/docs/images/diagrams/the-road-ahead-1-a-evidence-bandit-updates-b-ge.svg +1 -0
  90. qortex-0.1.0/docs/images/graph-exploration/3.1-case-sensitive-no-results.png +0 -0
  91. qortex-0.1.0/docs/images/graph-exploration/3.1-case-sensitive-with-results.png +0 -0
  92. qortex-0.1.0/docs/images/graph-exploration/3.1-tolower-fix.png +0 -0
  93. qortex-0.1.0/docs/images/graph-exploration/3.2-domain-counts.png +0 -0
  94. qortex-0.1.0/docs/images/graph-exploration/3.3-edge-types.png +0 -0
  95. qortex-0.1.0/docs/images/graph-exploration/3.3-graph-default.png +0 -0
  96. qortex-0.1.0/docs/images/graph-exploration/3.3-graph-zoomed.png +0 -0
  97. qortex-0.1.0/docs/images/graph-exploration/3.5-degree-centrality.png +0 -0
  98. qortex-0.1.0/docs/images/graph-exploration/3.6-path-query.png +0 -0
  99. qortex-0.1.0/docs/index.md +100 -0
  100. qortex-0.1.0/docs/memgraph-lab-graph.png +0 -0
  101. qortex-0.1.0/docs/reference/api.md +411 -0
  102. qortex-0.1.0/docs/reference/cli.md +426 -0
  103. qortex-0.1.0/docs/reference/interop-schema.md +358 -0
  104. qortex-0.1.0/docs/reference/models.md +435 -0
  105. qortex-0.1.0/docs/requirements.txt +6 -0
  106. qortex-0.1.0/docs/tutorials/PART3-GRAPH-EXPLORATION-OUTLINE.md +393 -0
  107. qortex-0.1.0/docs/tutorials/REDESIGN-PLAN.md +435 -0
  108. qortex-0.1.0/docs/tutorials/SKILL-CHAPTER-GENERATOR.md +189 -0
  109. qortex-0.1.0/docs/tutorials/SKILL-CURRICULUM-PLANNER.md +271 -0
  110. qortex-0.1.0/docs/tutorials/causal-dag/CURRICULUM-OUTLINE.yaml +204 -0
  111. qortex-0.1.0/docs/tutorials/causal-dag/index.md +27 -0
  112. qortex-0.1.0/docs/tutorials/causal-dag/part1-edge-directions.md +238 -0
  113. qortex-0.1.0/docs/tutorials/causal-dag/part2-building-the-dag.md +326 -0
  114. qortex-0.1.0/docs/tutorials/causal-dag/part3-d-separation.md +360 -0
  115. qortex-0.1.0/docs/tutorials/causal-dag/part4-credit-assignment.md +316 -0
  116. qortex-0.1.0/docs/tutorials/causal-dag/part5-degradation-chain.md +203 -0
  117. qortex-0.1.0/docs/tutorials/fisher-information/CURRICULUM-OUTLINE.yaml +257 -0
  118. qortex-0.1.0/docs/tutorials/fisher-information/index.md +35 -0
  119. qortex-0.1.0/docs/tutorials/fisher-information/part1-fisher-metric.md +356 -0
  120. qortex-0.1.0/docs/tutorials/fisher-information/part2-trajectories.md +317 -0
  121. qortex-0.1.0/docs/tutorials/fisher-information/part3-geodesics.md +463 -0
  122. qortex-0.1.0/docs/tutorials/fisher-information/part4-curvature.md +331 -0
  123. qortex-0.1.0/docs/tutorials/fisher-information/part5-dynamical-systems.md +459 -0
  124. qortex-0.1.0/docs/tutorials/fisher-information/part6-interoception.md +414 -0
  125. qortex-0.1.0/docs/tutorials/full-loop-backward.md +153 -0
  126. qortex-0.1.0/docs/tutorials/full-loop-forward.md +182 -0
  127. qortex-0.1.0/docs/tutorials/full-loop-overview.md +60 -0
  128. qortex-0.1.0/docs/tutorials/full-loop.md +368 -0
  129. qortex-0.1.0/docs/tutorials/graph-analytics/BUG-PLAN-relations-extraction.md +86 -0
  130. qortex-0.1.0/docs/tutorials/graph-analytics/PLAN.md +361 -0
  131. qortex-0.1.0/docs/tutorials/graph-analytics/images/connected-graph.png +0 -0
  132. qortex-0.1.0/docs/tutorials/graph-analytics/images/data-results-table.png +0 -0
  133. qortex-0.1.0/docs/tutorials/graph-analytics/images/degree-centrality.png +0 -0
  134. qortex-0.1.0/docs/tutorials/graph-analytics/images/graph-50-concepts.png +0 -0
  135. qortex-0.1.0/docs/tutorials/graph-analytics/images/lab-connected.png +0 -0
  136. qortex-0.1.0/docs/tutorials/graph-analytics/images/rules-query.png +0 -0
  137. qortex-0.1.0/docs/tutorials/graph-analytics/index.md +55 -0
  138. qortex-0.1.0/docs/tutorials/graph-analytics/part1-welcome.md +226 -0
  139. qortex-0.1.0/docs/tutorials/graph-analytics/part2-cypher.md +305 -0
  140. qortex-0.1.0/docs/tutorials/graph-analytics/part3-multi-hop.md +283 -0
  141. qortex-0.1.0/docs/tutorials/graph-analytics/part4-centrality.md +271 -0
  142. qortex-0.1.0/docs/tutorials/graph-analytics/part5-communities.md +252 -0
  143. qortex-0.1.0/docs/tutorials/graph-analytics/part6-forging-rules.md +278 -0
  144. qortex-0.1.0/docs/tutorials/graph-exploration/3.1-what-do-i-have.md +392 -0
  145. qortex-0.1.0/docs/tutorials/graph-exploration/3.2-counting-and-grouping.md +169 -0
  146. qortex-0.1.0/docs/tutorials/graph-exploration/3.3-following-the-connections.md +375 -0
  147. qortex-0.1.0/docs/tutorials/graph-exploration/3.4-filtering-by-pattern.md +166 -0
  148. qortex-0.1.0/docs/tutorials/graph-exploration/3.5-finding-the-hubs.md +295 -0
  149. qortex-0.1.0/docs/tutorials/graph-exploration/3.6-paths-and-distances.md +326 -0
  150. qortex-0.1.0/docs/tutorials/graph-exploration/index.md +38 -0
  151. qortex-0.1.0/docs/tutorials/index.md +44 -0
  152. qortex-0.1.0/docs/tutorials/part1-multi-hop-problem.md +66 -0
  153. qortex-0.1.0/docs/tutorials/part2-knowledge-graphs.md +120 -0
  154. qortex-0.1.0/docs/tutorials/part3-projection-pipeline.md +119 -0
  155. qortex-0.1.0/docs/tutorials/part4-consumer-loop.md +99 -0
  156. qortex-0.1.0/docs/tutorials/part5-pattern-completion.md +103 -0
  157. qortex-0.1.0/docs/tutorials/part6-hipporag.md +117 -0
  158. qortex-0.1.0/docs/tutorials/the-road-ahead.md +162 -0
  159. qortex-0.1.0/docs/tutorials/why-knowledge-graphs.md +31 -0
  160. qortex-0.1.0/memgraph_graph.png +0 -0
  161. qortex-0.1.0/mkdocs.yml +97 -0
  162. qortex-0.1.0/notebooks/mistake_time_series.ipynb +559 -0
  163. qortex-0.1.0/pyproject.toml +121 -0
  164. qortex-0.1.0/scripts/batch-ingest-chapters.sh +91 -0
  165. qortex-0.1.0/scripts/render-mermaid.py +92 -0
  166. qortex-0.1.0/src/qortex/__init__.py +3 -0
  167. qortex-0.1.0/src/qortex/causal/__init__.py +44 -0
  168. qortex-0.1.0/src/qortex/causal/backend.py +79 -0
  169. qortex-0.1.0/src/qortex/causal/credit.py +136 -0
  170. qortex-0.1.0/src/qortex/causal/dag.py +233 -0
  171. qortex-0.1.0/src/qortex/causal/dispatch.py +104 -0
  172. qortex-0.1.0/src/qortex/causal/dsep.py +126 -0
  173. qortex-0.1.0/src/qortex/causal/projector.py +158 -0
  174. qortex-0.1.0/src/qortex/causal/refutation.py +208 -0
  175. qortex-0.1.0/src/qortex/causal/types.py +197 -0
  176. qortex-0.1.0/src/qortex/checkpoints/__init__.py +1 -0
  177. qortex-0.1.0/src/qortex/checkpoints/manager.py +119 -0
  178. qortex-0.1.0/src/qortex/cli/__init__.py +36 -0
  179. qortex-0.1.0/src/qortex/cli/_config.py +96 -0
  180. qortex-0.1.0/src/qortex/cli/_errors.py +66 -0
  181. qortex-0.1.0/src/qortex/cli/infra.py +74 -0
  182. qortex-0.1.0/src/qortex/cli/ingest.py +354 -0
  183. qortex-0.1.0/src/qortex/cli/inspect_cmd.py +57 -0
  184. qortex-0.1.0/src/qortex/cli/interop_cmd.py +267 -0
  185. qortex-0.1.0/src/qortex/cli/project.py +144 -0
  186. qortex-0.1.0/src/qortex/cli/prune.py +189 -0
  187. qortex-0.1.0/src/qortex/cli/viz.py +47 -0
  188. qortex-0.1.0/src/qortex/core/__init__.py +1 -0
  189. qortex-0.1.0/src/qortex/core/backend.py +816 -0
  190. qortex-0.1.0/src/qortex/core/memory.py +324 -0
  191. qortex-0.1.0/src/qortex/core/models.py +227 -0
  192. qortex-0.1.0/src/qortex/core/pruning.py +504 -0
  193. qortex-0.1.0/src/qortex/core/templates.py +353 -0
  194. qortex-0.1.0/src/qortex/enrichment/__init__.py +9 -0
  195. qortex-0.1.0/src/qortex/enrichment/anthropic.py +196 -0
  196. qortex-0.1.0/src/qortex/enrichment/base.py +30 -0
  197. qortex-0.1.0/src/qortex/enrichment/pipeline.py +128 -0
  198. qortex-0.1.0/src/qortex/hippocampus/__init__.py +15 -0
  199. qortex-0.1.0/src/qortex/hippocampus/retrieval.py +223 -0
  200. qortex-0.1.0/src/qortex/interop.py +476 -0
  201. qortex-0.1.0/src/qortex/interop_schemas.py +311 -0
  202. qortex-0.1.0/src/qortex/mcp/__init__.py +8 -0
  203. qortex-0.1.0/src/qortex/mcp/server.py +94 -0
  204. qortex-0.1.0/src/qortex/projectors/__init__.py +22 -0
  205. qortex-0.1.0/src/qortex/projectors/base.py +46 -0
  206. qortex-0.1.0/src/qortex/projectors/enrichers/__init__.py +7 -0
  207. qortex-0.1.0/src/qortex/projectors/enrichers/llm.py +30 -0
  208. qortex-0.1.0/src/qortex/projectors/enrichers/passthrough.py +18 -0
  209. qortex-0.1.0/src/qortex/projectors/enrichers/template.py +35 -0
  210. qortex-0.1.0/src/qortex/projectors/flat.py +62 -0
  211. qortex-0.1.0/src/qortex/projectors/models.py +79 -0
  212. qortex-0.1.0/src/qortex/projectors/projection.py +41 -0
  213. qortex-0.1.0/src/qortex/projectors/registry.py +60 -0
  214. qortex-0.1.0/src/qortex/projectors/sources/__init__.py +5 -0
  215. qortex-0.1.0/src/qortex/projectors/sources/flat.py +165 -0
  216. qortex-0.1.0/src/qortex/projectors/targets/__init__.py +13 -0
  217. qortex-0.1.0/src/qortex/projectors/targets/_serialize.py +155 -0
  218. qortex-0.1.0/src/qortex/projectors/targets/buildlog_seed.py +44 -0
  219. qortex-0.1.0/src/qortex/projectors/targets/flat_json.py +27 -0
  220. qortex-0.1.0/src/qortex/projectors/targets/flat_yaml.py +32 -0
  221. qortex-0.1.0/src/qortex_ingest/__init__.py +13 -0
  222. qortex-0.1.0/src/qortex_ingest/backends/__init__.py +65 -0
  223. qortex-0.1.0/src/qortex_ingest/backends/anthropic.py +442 -0
  224. qortex-0.1.0/src/qortex_ingest/backends/ollama.py +268 -0
  225. qortex-0.1.0/src/qortex_ingest/base.py +371 -0
  226. qortex-0.1.0/src/qortex_ingest/markdown.py +87 -0
  227. qortex-0.1.0/src/qortex_ingest/pdf.py +49 -0
  228. qortex-0.1.0/src/qortex_ingest/text.py +69 -0
  229. qortex-0.1.0/tests/__init__.py +1 -0
  230. qortex-0.1.0/tests/causal/__init__.py +0 -0
  231. qortex-0.1.0/tests/causal/conftest.py +130 -0
  232. qortex-0.1.0/tests/causal/test_backend.py +96 -0
  233. qortex-0.1.0/tests/causal/test_credit.py +104 -0
  234. qortex-0.1.0/tests/causal/test_dag.py +135 -0
  235. qortex-0.1.0/tests/causal/test_dispatch.py +54 -0
  236. qortex-0.1.0/tests/causal/test_dsep.py +151 -0
  237. qortex-0.1.0/tests/causal/test_projector.py +96 -0
  238. qortex-0.1.0/tests/causal/test_refutation.py +151 -0
  239. qortex-0.1.0/tests/causal/test_types.py +219 -0
  240. qortex-0.1.0/tests/test_cli.py +589 -0
  241. qortex-0.1.0/tests/test_cli_dogfood.py +652 -0
  242. qortex-0.1.0/tests/test_e2e_book_to_buildlog.py +812 -0
  243. qortex-0.1.0/tests/test_enrichment.py +252 -0
  244. qortex-0.1.0/tests/test_ingest_concept_roles.py +625 -0
  245. qortex-0.1.0/tests/test_interop.py +955 -0
  246. qortex-0.1.0/tests/test_memgraph_integration.py +313 -0
  247. qortex-0.1.0/tests/test_memory_backend.py +515 -0
  248. qortex-0.1.0/tests/test_models.py +354 -0
  249. qortex-0.1.0/tests/test_projectors.py +230 -0
  250. qortex-0.1.0/tests/test_pruning.py +231 -0
  251. qortex-0.1.0/tests/test_templates.py +97 -0
  252. qortex-0.1.0/tests/test_track_b.py +1051 -0
  253. qortex-0.1.0/uv.lock +2875 -0
@@ -0,0 +1,83 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint:
11
+ name: Lint
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: "3.12"
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v4
22
+
23
+ - name: Install dependencies
24
+ run: uv pip install --system -e ".[dev]"
25
+
26
+ - name: Ruff check
27
+ run: ruff check src/ tests/
28
+
29
+ - name: Ruff format check
30
+ run: ruff format --check src/ tests/
31
+
32
+ typecheck:
33
+ name: Type Check
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Install uv
43
+ uses: astral-sh/setup-uv@v4
44
+
45
+ - name: Install dependencies
46
+ run: uv pip install --system -e ".[dev,llm,memgraph]"
47
+
48
+ - name: MyPy
49
+ run: mypy src/
50
+
51
+ test:
52
+ name: Test (Python ${{ matrix.python-version }})
53
+ runs-on: ubuntu-latest
54
+ strategy:
55
+ matrix:
56
+ python-version: ["3.11", "3.12"]
57
+ steps:
58
+ - uses: actions/checkout@v4
59
+
60
+ - uses: actions/setup-python@v5
61
+ with:
62
+ python-version: ${{ matrix.python-version }}
63
+
64
+ - name: Install uv
65
+ uses: astral-sh/setup-uv@v4
66
+
67
+ - name: Install dependencies
68
+ run: uv pip install --system -e ".[dev,llm,memgraph]"
69
+
70
+ - name: Run tests
71
+ run: pytest tests/ -v --tb=short
72
+
73
+ - name: Run tests with coverage
74
+ if: matrix.python-version == '3.12'
75
+ run: pytest tests/ --cov=src --cov-report=xml
76
+
77
+ - name: Upload coverage
78
+ if: matrix.python-version == '3.12'
79
+ uses: codecov/codecov-action@v4
80
+ with:
81
+ files: coverage.xml
82
+ fail_ci_if_error: false
83
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,48 @@
1
+ name: Deploy Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "docs/**"
8
+ - "mkdocs.yml"
9
+ - ".github/workflows/docs.yml"
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+ pages: write
15
+ id-token: write
16
+
17
+ concurrency:
18
+ group: "pages"
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+ build:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ - uses: actions/setup-python@v5
28
+ with:
29
+ python-version: "3.12"
30
+
31
+ - name: Install mkdocs dependencies
32
+ run: pip install mkdocs pymdown-extensions
33
+
34
+ - name: Build docs
35
+ run: mkdocs build --strict
36
+
37
+ - uses: actions/upload-pages-artifact@v3
38
+ with:
39
+ path: site
40
+
41
+ deploy:
42
+ needs: build
43
+ runs-on: ubuntu-latest
44
+ environment:
45
+ name: github-pages
46
+ steps:
47
+ - id: deployment
48
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,35 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - uses: actions/setup-python@v5
14
+ with:
15
+ python-version: "3.12"
16
+ - run: pip install build
17
+ - run: python -m build
18
+ - uses: actions/upload-artifact@v4
19
+ with:
20
+ name: dist
21
+ path: dist/
22
+
23
+ publish:
24
+ if: startsWith(github.ref, 'refs/tags/v')
25
+ needs: build
26
+ runs-on: ubuntu-latest
27
+ environment: pypi
28
+ permissions:
29
+ id-token: write
30
+ steps:
31
+ - uses: actions/download-artifact@v4
32
+ with:
33
+ name: dist
34
+ path: dist/
35
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,58 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual environments
24
+ .venv/
25
+ venv/
26
+ ENV/
27
+
28
+ # IDE
29
+ .idea/
30
+ .vscode/
31
+ *.swp
32
+ *.swo
33
+ .DS_Store
34
+
35
+ # Testing
36
+ .pytest_cache/
37
+ .hypothesis/
38
+ .coverage
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+
43
+ # Type checking
44
+ .mypy_cache/
45
+
46
+ # Local data
47
+ *.db
48
+ *.sqlite
49
+ data/
50
+
51
+ # MkDocs
52
+ site/
53
+
54
+ # Secrets
55
+ .env
56
+ .env.local
57
+ *.pem
58
+ *.key