Conversation
Only export FunctionPod, function_pod, and Pipeline at the root level. All other classes are now accessible via subpackage imports (e.g. orcapod.sources.ArrowTableSource, orcapod.databases.InMemoryArrowDatabase). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Register orcapod.sources/operators/nodes/streams in sys.modules so `from orcapod.sources import X` works, and update all consumer files to use the new import style. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create orcapod/sources/, orcapod/operators/, orcapod/nodes/, and orcapod/streams/ as thin re-export packages so that `from orcapod.sources import X` works through standard Python import resolution. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t rules Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a MkDocs-based documentation site while restructuring the public API so the root orcapod namespace is slim and functionality is accessed via dedicated subpackages (e.g., orcapod.sources, orcapod.operators).
Changes:
- Refactors public imports to prefer subpackages; updates tests/examples accordingly.
- Introduces a Material for MkDocs site with concept docs and mkdocstrings-driven API reference.
- Updates dev tooling/deps and project contributor rules; removes older pipeline design/plan documents.
Reviewed changes
Copilot reviewed 33 out of 35 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updates locked dependencies to include MkDocs tooling and remove Sphinx-related packages. |
| pyproject.toml | Replaces Sphinx dev dependency with MkDocs Material + mkdocstrings. |
| mkdocs.yml | Adds MkDocs configuration (theme, plugins, nav). |
| src/orcapod/init.py | Slims root exports and exposes subpackages for the new public import surface. |
| src/orcapod/sources/init.py | Adds public re-export package for orcapod.core.sources. |
| src/orcapod/operators/init.py | Adds public re-export package for orcapod.core.operators. |
| src/orcapod/nodes/init.py | Adds public re-export package for orcapod.core.nodes. |
| src/orcapod/streams/init.py | Adds public re-export package for orcapod.core.streams. |
| tests/test_channels/test_pipeline_async_integration.py | Updates imports to use the new orcapod.sources location. |
| examples/save_and_load_pipelines.py | Adds an example demonstrating pipeline save/load with the new import style. |
| examples/async_vs_sync_pipeline.py | Updates example imports and formats long print lines. |
| docs/index.md | Adds documentation home page and quick-start example. |
| docs/getting-started.md | Adds a getting started guide covering sources/streams/function pods/operators. |
| docs/concepts/sources.md | Adds “Sources” concept doc describing source types and provenance. |
| docs/concepts/streams.md | Adds “Streams” concept doc describing core stream model and inspection APIs. |
| docs/concepts/operators.md | Adds “Operators” concept doc describing available structural operators. |
| docs/concepts/function-pods.md | Adds “Function Pods” concept doc describing decorator usage and FunctionNode. |
| docs/concepts/identity.md | Adds “Identity & Hashing” concept doc explaining content vs pipeline hashes. |
| docs/api/index.md | Adds API reference landing page describing package structure. |
| docs/api/sources.md | Adds mkdocstrings-based API reference page for sources. |
| docs/api/streams.md | Adds mkdocstrings-based API reference page for streams. |
| docs/api/operators.md | Adds mkdocstrings-based API reference page for operators. |
| docs/api/function-pods.md | Adds mkdocstrings-based API reference page for function pods / packet functions. |
| docs/api/databases.md | Adds mkdocstrings-based API reference page for databases. |
| docs/api/nodes.md | Adds mkdocstrings-based API reference page for nodes. |
| docs/api/pipeline.md | Adds mkdocstrings-based API reference page for Pipeline. |
| docs/api/types.md | Adds mkdocstrings-based API reference page for core types. |
| docs/superpowers/specs/2026-03-12-pipeline-simplification-design.md | Removes large internal design spec document. |
| docs/superpowers/specs/2026-03-12-pipeline-serialization-design.md | Removes large internal design spec document. |
| docs/superpowers/plans/2026-03-12-pipeline-simplification.md | Removes large internal implementation plan document. |
| docs/superpowers/plans/2026-03-12-pipeline-serialization.md | Removes large internal implementation plan document. |
| CLAUDE.md | Adds contributor rules (e.g., prohibit sys.modules hacks; Linear issue template). |
| .zed/rules | Mirrors contributor rules for Zed editor configuration. |
| .gitignore | Removes Sphinx build ignore entries. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All standard pods and operators support __call__ as a shorthand for .process(), giving a more ergonomic feel. Updated examples throughout the docs to use this syntax. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t raw data content_hash includes the identity of sources recursively, not necessarily raw data values. In-memory sources hash data directly; storage-backed sources hash canonical identity. pipeline_hash ignores source identity entirely, caring only about schemas and topology. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sources use SourceStreamBuilder for enrichment, not delegation to ArrowTableSource. Updated concept page and API reference to reflect the builder-based architecture. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
orcapodnamespace to 3 core exports (FunctionPod,function_pod,Pipeline); everything else now lives in clean subpackage re-exports (orcapod.sources,orcapod.operators,orcapod.nodes,orcapod.streams,orcapod.databases,orcapod.types)@function_poddecorator,FunctionNodeDB-backed caching,__call__shorthandcontent_hash()as recursive source-inclusive identity (not raw data),pipeline_hash()as schema+topology only, Merkle chain, resolver patternsys.modulesmanipulation prohibition, and branch naming conventions to CLAUDE.md and .zed/rules.gitignoreadditions (superpowers/,/*.json), removed stalepipeline/nodes.pystubTest plan
uv run pytest tests/)uv run mkdocs build)from orcapod.sources import DictSource, etc.)uv run mkdocs serve)Resolves PLT-911
🤖 Generated with Claude Code