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.
- qortex-0.1.0/.github/workflows/ci.yml +83 -0
- qortex-0.1.0/.github/workflows/docs.yml +48 -0
- qortex-0.1.0/.github/workflows/publish.yml +35 -0
- qortex-0.1.0/.gitignore +58 -0
- qortex-0.1.0/CH5.txt +1133 -0
- qortex-0.1.0/CH5_from_pdf.txt +1735 -0
- qortex-0.1.0/PKG-INFO +142 -0
- qortex-0.1.0/README.md +83 -0
- qortex-0.1.0/SLUOP.md +975 -0
- qortex-0.1.0/buildlog/.buildlog/.gitkeep +1 -0
- qortex-0.1.0/buildlog/2026-02-06-extraction-density-improvements.md +35 -0
- qortex-0.1.0/buildlog/2026-02-07-issue-29-illustrative-concepts.md +179 -0
- qortex-0.1.0/buildlog/2026-02-07-mnemosyne-phase1-causal.md +182 -0
- qortex-0.1.0/ch05_manifest.json +4354 -0
- qortex-0.1.0/docker/docker-compose.yml +40 -0
- qortex-0.1.0/docs/architecture/overview.md +218 -0
- qortex-0.1.0/docs/architecture/projection-pipeline.md +373 -0
- qortex-0.1.0/docs/changelog.md +154 -0
- qortex-0.1.0/docs/demo-screenshots/01-memgraph-lab-initial.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/02-memgraph-connected.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/03-graph-visualization.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/04-graph-results.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/05-edge-types-distribution.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/06-graph-after-ch12.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/07-domains-concept-counts.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/08-pagerank-top-concepts.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/09-buildlog-mistakes-ingested.png +0 -0
- qortex-0.1.0/docs/demo-screenshots/10-cross-domain-mistake-links.png +0 -0
- qortex-0.1.0/docs/getting-started/concepts.md +137 -0
- qortex-0.1.0/docs/getting-started/installation.md +93 -0
- qortex-0.1.0/docs/getting-started/quickstart.md +139 -0
- qortex-0.1.0/docs/guides/buildlog-interop.md +288 -0
- qortex-0.1.0/docs/guides/consumer-integration.md +325 -0
- qortex-0.1.0/docs/guides/enrichment.md +198 -0
- qortex-0.1.0/docs/guides/memgraph.md +326 -0
- qortex-0.1.0/docs/guides/projecting-rules.md +245 -0
- qortex-0.1.0/docs/guides/visualization.md +147 -0
- qortex-0.1.0/docs/images/diagrams/3.1-what-do-i-have-1-pie-title-concept-connectivity.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/3.3-following-the-connections-1-im-immutability-contradicts-ds.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/3.3-following-the-connections-2-im-immutability-contradicts-ds.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/3.5-finding-the-hubs-1-g-getters-p-properties-br-23-c.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/3.6-paths-and-distances-1-ds-dangerous-setters-enables-i.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/concepts-1-subgraph-domain-domain-error-h.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/concepts-2-kg-knowledge-graph-source.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/consumer-integration-1-subgraph-qortex.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/enrichment-1-rules-pipeline.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/full-loop-1-subgraph-forward-forward-knowl.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/index-1-a-3-1-what-do-i-have-br-naive.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/index-1-a-raw-text-ingest-b-concepts.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/overview-1-subgraph-sources-source-materi.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/overview-2-sequencediagram.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/overview-3-sequencediagram.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/overview-4-query-query-ppr-personalized-p.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/overview-5-rewards-reward-events-dag-caus.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p1-edge-directions-1-a-encapsulation-requires-br-fo.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p1-fisher-metric-1-a-beta-alpha-beta-polygamma-b.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p1-welcome-1-subgraph-a-table-what-you-re-u.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p2-building-the-dag-1-a-encapsulation-requires-br-st.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p2-building-the-dag-2-a-encapsulation-requires-br-st.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p2-cypher-1-subgraph-the-pattern.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p2-trajectories-1-a-trajectory-plot-br-fisher-sp.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-d-separation-1-a-a-b-b-c-c.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-d-separation-2-b-b-a-a.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-d-separation-3-a-a-b-b.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-d-separation-4-ab-abstraction-requires-en-enc.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-geodesics-1-subgraph-state-vector-y.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-multi-hop-1-a-encapsulation-requires-b-pro.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p3-multi-hop-2-subgraph-2-hop-neighborhood.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p4-centrality-1-subgraph-sized-by-degree.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p4-centrality-2-a-a-b-b.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p4-credit-assignment-1-dp-design-principles-br-credit.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p4-credit-assignment-2-f-foundations-br-below-min-cre.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-communities-1-subgraph-cluster-1-core-hiding.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-communities-2-subgraph-your-mental-model.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-degradation-chain-1-start-causaldispatcher-auto-de.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-degradation-chain-2-ca-creditassigner-br-assign-cr.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-dynamical-systems-1-subgraph-stability-classificat.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p5-dynamical-systems-2-a-update-rule-br-alpha-beta-al.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p6-forging-rules-1-e-explicit-rules-br-from-text.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p6-forging-rules-2-subgraph-knowledge-types.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p6-interoception-1-a-evidence-br-bandit-updates-b.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/p6-interoception-2-ch1-ch1-fisher-metric-br-the-r.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/pipeline.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/projecting-rules-1-kg-knowledge-graph-source.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/projection-pipeline-1-kg-knowledge-graph.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/projection-pipeline-2-subgraph-flatrulesource.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/projection-pipeline-3-rules-rules-batch-batch.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/projection-pipeline-4-edge-edge-derive-derive-rule.svg +1 -0
- qortex-0.1.0/docs/images/diagrams/the-road-ahead-1-a-evidence-bandit-updates-b-ge.svg +1 -0
- qortex-0.1.0/docs/images/graph-exploration/3.1-case-sensitive-no-results.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.1-case-sensitive-with-results.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.1-tolower-fix.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.2-domain-counts.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.3-edge-types.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.3-graph-default.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.3-graph-zoomed.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.5-degree-centrality.png +0 -0
- qortex-0.1.0/docs/images/graph-exploration/3.6-path-query.png +0 -0
- qortex-0.1.0/docs/index.md +100 -0
- qortex-0.1.0/docs/memgraph-lab-graph.png +0 -0
- qortex-0.1.0/docs/reference/api.md +411 -0
- qortex-0.1.0/docs/reference/cli.md +426 -0
- qortex-0.1.0/docs/reference/interop-schema.md +358 -0
- qortex-0.1.0/docs/reference/models.md +435 -0
- qortex-0.1.0/docs/requirements.txt +6 -0
- qortex-0.1.0/docs/tutorials/PART3-GRAPH-EXPLORATION-OUTLINE.md +393 -0
- qortex-0.1.0/docs/tutorials/REDESIGN-PLAN.md +435 -0
- qortex-0.1.0/docs/tutorials/SKILL-CHAPTER-GENERATOR.md +189 -0
- qortex-0.1.0/docs/tutorials/SKILL-CURRICULUM-PLANNER.md +271 -0
- qortex-0.1.0/docs/tutorials/causal-dag/CURRICULUM-OUTLINE.yaml +204 -0
- qortex-0.1.0/docs/tutorials/causal-dag/index.md +27 -0
- qortex-0.1.0/docs/tutorials/causal-dag/part1-edge-directions.md +238 -0
- qortex-0.1.0/docs/tutorials/causal-dag/part2-building-the-dag.md +326 -0
- qortex-0.1.0/docs/tutorials/causal-dag/part3-d-separation.md +360 -0
- qortex-0.1.0/docs/tutorials/causal-dag/part4-credit-assignment.md +316 -0
- qortex-0.1.0/docs/tutorials/causal-dag/part5-degradation-chain.md +203 -0
- qortex-0.1.0/docs/tutorials/fisher-information/CURRICULUM-OUTLINE.yaml +257 -0
- qortex-0.1.0/docs/tutorials/fisher-information/index.md +35 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part1-fisher-metric.md +356 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part2-trajectories.md +317 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part3-geodesics.md +463 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part4-curvature.md +331 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part5-dynamical-systems.md +459 -0
- qortex-0.1.0/docs/tutorials/fisher-information/part6-interoception.md +414 -0
- qortex-0.1.0/docs/tutorials/full-loop-backward.md +153 -0
- qortex-0.1.0/docs/tutorials/full-loop-forward.md +182 -0
- qortex-0.1.0/docs/tutorials/full-loop-overview.md +60 -0
- qortex-0.1.0/docs/tutorials/full-loop.md +368 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/BUG-PLAN-relations-extraction.md +86 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/PLAN.md +361 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/connected-graph.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/data-results-table.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/degree-centrality.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/graph-50-concepts.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/lab-connected.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/images/rules-query.png +0 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/index.md +55 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part1-welcome.md +226 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part2-cypher.md +305 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part3-multi-hop.md +283 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part4-centrality.md +271 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part5-communities.md +252 -0
- qortex-0.1.0/docs/tutorials/graph-analytics/part6-forging-rules.md +278 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.1-what-do-i-have.md +392 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.2-counting-and-grouping.md +169 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.3-following-the-connections.md +375 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.4-filtering-by-pattern.md +166 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.5-finding-the-hubs.md +295 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/3.6-paths-and-distances.md +326 -0
- qortex-0.1.0/docs/tutorials/graph-exploration/index.md +38 -0
- qortex-0.1.0/docs/tutorials/index.md +44 -0
- qortex-0.1.0/docs/tutorials/part1-multi-hop-problem.md +66 -0
- qortex-0.1.0/docs/tutorials/part2-knowledge-graphs.md +120 -0
- qortex-0.1.0/docs/tutorials/part3-projection-pipeline.md +119 -0
- qortex-0.1.0/docs/tutorials/part4-consumer-loop.md +99 -0
- qortex-0.1.0/docs/tutorials/part5-pattern-completion.md +103 -0
- qortex-0.1.0/docs/tutorials/part6-hipporag.md +117 -0
- qortex-0.1.0/docs/tutorials/the-road-ahead.md +162 -0
- qortex-0.1.0/docs/tutorials/why-knowledge-graphs.md +31 -0
- qortex-0.1.0/memgraph_graph.png +0 -0
- qortex-0.1.0/mkdocs.yml +97 -0
- qortex-0.1.0/notebooks/mistake_time_series.ipynb +559 -0
- qortex-0.1.0/pyproject.toml +121 -0
- qortex-0.1.0/scripts/batch-ingest-chapters.sh +91 -0
- qortex-0.1.0/scripts/render-mermaid.py +92 -0
- qortex-0.1.0/src/qortex/__init__.py +3 -0
- qortex-0.1.0/src/qortex/causal/__init__.py +44 -0
- qortex-0.1.0/src/qortex/causal/backend.py +79 -0
- qortex-0.1.0/src/qortex/causal/credit.py +136 -0
- qortex-0.1.0/src/qortex/causal/dag.py +233 -0
- qortex-0.1.0/src/qortex/causal/dispatch.py +104 -0
- qortex-0.1.0/src/qortex/causal/dsep.py +126 -0
- qortex-0.1.0/src/qortex/causal/projector.py +158 -0
- qortex-0.1.0/src/qortex/causal/refutation.py +208 -0
- qortex-0.1.0/src/qortex/causal/types.py +197 -0
- qortex-0.1.0/src/qortex/checkpoints/__init__.py +1 -0
- qortex-0.1.0/src/qortex/checkpoints/manager.py +119 -0
- qortex-0.1.0/src/qortex/cli/__init__.py +36 -0
- qortex-0.1.0/src/qortex/cli/_config.py +96 -0
- qortex-0.1.0/src/qortex/cli/_errors.py +66 -0
- qortex-0.1.0/src/qortex/cli/infra.py +74 -0
- qortex-0.1.0/src/qortex/cli/ingest.py +354 -0
- qortex-0.1.0/src/qortex/cli/inspect_cmd.py +57 -0
- qortex-0.1.0/src/qortex/cli/interop_cmd.py +267 -0
- qortex-0.1.0/src/qortex/cli/project.py +144 -0
- qortex-0.1.0/src/qortex/cli/prune.py +189 -0
- qortex-0.1.0/src/qortex/cli/viz.py +47 -0
- qortex-0.1.0/src/qortex/core/__init__.py +1 -0
- qortex-0.1.0/src/qortex/core/backend.py +816 -0
- qortex-0.1.0/src/qortex/core/memory.py +324 -0
- qortex-0.1.0/src/qortex/core/models.py +227 -0
- qortex-0.1.0/src/qortex/core/pruning.py +504 -0
- qortex-0.1.0/src/qortex/core/templates.py +353 -0
- qortex-0.1.0/src/qortex/enrichment/__init__.py +9 -0
- qortex-0.1.0/src/qortex/enrichment/anthropic.py +196 -0
- qortex-0.1.0/src/qortex/enrichment/base.py +30 -0
- qortex-0.1.0/src/qortex/enrichment/pipeline.py +128 -0
- qortex-0.1.0/src/qortex/hippocampus/__init__.py +15 -0
- qortex-0.1.0/src/qortex/hippocampus/retrieval.py +223 -0
- qortex-0.1.0/src/qortex/interop.py +476 -0
- qortex-0.1.0/src/qortex/interop_schemas.py +311 -0
- qortex-0.1.0/src/qortex/mcp/__init__.py +8 -0
- qortex-0.1.0/src/qortex/mcp/server.py +94 -0
- qortex-0.1.0/src/qortex/projectors/__init__.py +22 -0
- qortex-0.1.0/src/qortex/projectors/base.py +46 -0
- qortex-0.1.0/src/qortex/projectors/enrichers/__init__.py +7 -0
- qortex-0.1.0/src/qortex/projectors/enrichers/llm.py +30 -0
- qortex-0.1.0/src/qortex/projectors/enrichers/passthrough.py +18 -0
- qortex-0.1.0/src/qortex/projectors/enrichers/template.py +35 -0
- qortex-0.1.0/src/qortex/projectors/flat.py +62 -0
- qortex-0.1.0/src/qortex/projectors/models.py +79 -0
- qortex-0.1.0/src/qortex/projectors/projection.py +41 -0
- qortex-0.1.0/src/qortex/projectors/registry.py +60 -0
- qortex-0.1.0/src/qortex/projectors/sources/__init__.py +5 -0
- qortex-0.1.0/src/qortex/projectors/sources/flat.py +165 -0
- qortex-0.1.0/src/qortex/projectors/targets/__init__.py +13 -0
- qortex-0.1.0/src/qortex/projectors/targets/_serialize.py +155 -0
- qortex-0.1.0/src/qortex/projectors/targets/buildlog_seed.py +44 -0
- qortex-0.1.0/src/qortex/projectors/targets/flat_json.py +27 -0
- qortex-0.1.0/src/qortex/projectors/targets/flat_yaml.py +32 -0
- qortex-0.1.0/src/qortex_ingest/__init__.py +13 -0
- qortex-0.1.0/src/qortex_ingest/backends/__init__.py +65 -0
- qortex-0.1.0/src/qortex_ingest/backends/anthropic.py +442 -0
- qortex-0.1.0/src/qortex_ingest/backends/ollama.py +268 -0
- qortex-0.1.0/src/qortex_ingest/base.py +371 -0
- qortex-0.1.0/src/qortex_ingest/markdown.py +87 -0
- qortex-0.1.0/src/qortex_ingest/pdf.py +49 -0
- qortex-0.1.0/src/qortex_ingest/text.py +69 -0
- qortex-0.1.0/tests/__init__.py +1 -0
- qortex-0.1.0/tests/causal/__init__.py +0 -0
- qortex-0.1.0/tests/causal/conftest.py +130 -0
- qortex-0.1.0/tests/causal/test_backend.py +96 -0
- qortex-0.1.0/tests/causal/test_credit.py +104 -0
- qortex-0.1.0/tests/causal/test_dag.py +135 -0
- qortex-0.1.0/tests/causal/test_dispatch.py +54 -0
- qortex-0.1.0/tests/causal/test_dsep.py +151 -0
- qortex-0.1.0/tests/causal/test_projector.py +96 -0
- qortex-0.1.0/tests/causal/test_refutation.py +151 -0
- qortex-0.1.0/tests/causal/test_types.py +219 -0
- qortex-0.1.0/tests/test_cli.py +589 -0
- qortex-0.1.0/tests/test_cli_dogfood.py +652 -0
- qortex-0.1.0/tests/test_e2e_book_to_buildlog.py +812 -0
- qortex-0.1.0/tests/test_enrichment.py +252 -0
- qortex-0.1.0/tests/test_ingest_concept_roles.py +625 -0
- qortex-0.1.0/tests/test_interop.py +955 -0
- qortex-0.1.0/tests/test_memgraph_integration.py +313 -0
- qortex-0.1.0/tests/test_memory_backend.py +515 -0
- qortex-0.1.0/tests/test_models.py +354 -0
- qortex-0.1.0/tests/test_projectors.py +230 -0
- qortex-0.1.0/tests/test_pruning.py +231 -0
- qortex-0.1.0/tests/test_templates.py +97 -0
- qortex-0.1.0/tests/test_track_b.py +1051 -0
- 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
|
qortex-0.1.0/.gitignore
ADDED
|
@@ -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
|