How a545996726-ctrl/cnequity works
CNEquity is a self-hosted China-market financial data lake: users configure and run collection or backfills, then query and inspect published Parquet datasets. The documented lifecycle runs source adapters through orchestration and validation into curated or derived data; research APIs, SQL, the read-only console, and MCP consume the lake. The graph keeps documented capabilities such as quality auditing, provenance, historical-universe/PIT semantics, and derivatives visible. Relationships not explicit in the sampled source are cited to the README rather than inferred from module names.
Main entry points: engine.py Run orchestrator · parquet.py Curated Parquet lake · reader.py Query layer · main.py CLI
Components 21
Collection and control
- CLI
src/cnequity/cli/main.py - Configuration
src/cnequity/config/loader.py - Run orchestrator
src/cnequity/orchestrator/engine.py - Collection steps
src/cnequity/steps - Source adapters
src/cnequity/adapters
Data lifecycle
- Dataset registry
src/cnequity/domain/datasets.py - Canonical rows
src/cnequity/domain/canonical.py - Raw archive
src/cnequity/storage/raw_archive.py - Curated Parquet lake
src/cnequity/storage/parquet.py - Derived datasets
src/cnequity/derive - Versions and run state
src/cnequity/storage/revisions.py
Research and quality
- Quality audits
src/cnequity/quality - Query layer
src/cnequity/query/reader.py - Parquet scanning
src/cnequity/query/parquet_scan.py - PIT and universe rules
src/cnequity/domain/pit.py
User interfaces
- Read-only console
src/cnequity/serve/app.py - Read-only MCP
src/cnequity/mcp_server
Other components
- Researcher
- Market data sources
- Python and SQL users
- Browser user
Connections 22
- Researcher → CLI: runs commands
README.md - CLI → Configuration: loads settings
- CLI → Run orchestrator: starts jobs
README.md - Run orchestrator → Collection steps: dispatches steps
src/cnequity/orchestrator/engine.py - Collection steps → Source adapters: collects through
README.md - Source adapters → Market data sources: fetches data
README.md - Run orchestrator → Dataset registry: uses dataset metadata
src/cnequity/orchestrator/engine.py - Collection steps → Raw archive: archives raw data
README.md - Run orchestrator → Curated Parquet lake: publishes validated batches
README.md - Run orchestrator → Quality audits: runs quality checks
README.md - Canonical rows → Dataset registry: uses dataset definitions
src/cnequity/domain/canonical.py - Derived datasets → Curated Parquet lake: publishes derived data
README.md - Run orchestrator → Versions and run state: records versions
README.md - Curated Parquet lake → Query layer: serves published data
README.md - Query layer → Parquet scanning: scans Parquet
src/cnequity/query/parquet_scan.py - Parquet scanning → Canonical rows: canonicalizes rows
src/cnequity/query/parquet_scan.py - Parquet scanning → Versions and run state: resolves revisions
src/cnequity/query/parquet_scan.py - Query layer → PIT and universe rules: applies research semantics
README.md - Python and SQL users → Query layer: queries datasets
README.md - Curated Parquet lake → Read-only console: provides lake views
src/cnequity/serve/app.py - Browser user → Read-only console: views dashboard
README.md - Curated Parquet lake → Read-only MCP: provides read-only data
README.md