coltrace 0.1.0.dev5__tar.gz → 0.1.0.dev6__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.
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/PKG-INFO +24 -3
- coltrace-0.1.0.dev5/src/coltrace.egg-info/PKG-INFO → coltrace-0.1.0.dev6/README.md +282 -287
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/architecture.md +15 -1
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/backlog.md +6 -1
- coltrace-0.1.0.dev6/docs/compatibility-checkpoint.md +88 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/decisions.md +4 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/lineage-json.md +5 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/supported-patterns.md +47 -6
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/troubleshooting.md +8 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/notebook_cell.py +47 -16
- coltrace-0.1.0.dev6/examples/robustness_pipeline/README.md +29 -0
- coltrace-0.1.0.dev6/examples/robustness_pipeline/extract.py +13 -0
- coltrace-0.1.0.dev6/examples/robustness_pipeline/pipeline.py +14 -0
- coltrace-0.1.0.dev6/examples/robustness_pipeline/transform.py +22 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/pyproject.toml +1 -1
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/__init__.py +1 -1
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/analysis.py +668 -39
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/cli.py +17 -11
- coltrace-0.1.0.dev6/src/coltrace/compatibility.py +172 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/history.py +2 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/journey.py +1 -1
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/lineage_models.py +1 -1
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/models.py +1 -1
- coltrace-0.1.0.dev5/README.md → coltrace-0.1.0.dev6/src/coltrace.egg-info/PKG-INFO +308 -261
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace.egg-info/SOURCES.txt +12 -0
- coltrace-0.1.0.dev6/tests/integration/test_annotation_effects.py +238 -0
- coltrace-0.1.0.dev6/tests/integration/test_compatibility_cli.py +51 -0
- coltrace-0.1.0.dev6/tests/integration/test_conditional_flow.py +332 -0
- coltrace-0.1.0.dev6/tests/integration/test_notebook_reporting.py +77 -0
- coltrace-0.1.0.dev6/tests/integration/test_pandas_observation.py +192 -0
- coltrace-0.1.0.dev6/tests/unit/test_compatibility.py +124 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/LICENSE +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/MANIFEST.in +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/accuracy.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/column-history.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/column-journey-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/database-patterns.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/database-sources.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/discovery-json.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/graph-workspace-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/history-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/mvp-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/nlp-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/other-column-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/pandas-sources-proposal.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/phase-1.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/read-capture.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/docs/source-checkpoint.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/database_pipeline/README.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/database_pipeline/build_query.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/database_pipeline/pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/database_pipeline/pyproject.toml +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/pricing_pipeline/extract/prices.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/pricing_pipeline/features/pricing.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/pricing_pipeline/pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/pricing_pipeline/transform/pricing.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/read_capture/README.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/read_capture/project/input.csv +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/read_capture/project/pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/read_capture/run_capture.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/sample_pipeline/prices.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/text_pipeline/README.md +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/text_pipeline/pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/text_pipeline/processing.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/text_pipeline/readers.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/examples/text_pipeline/text.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/setup.cfg +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/__main__.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/callbacks.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/capture.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/collector.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/exporters.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/graph.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/nosql_sources.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/py.typed +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/scanner.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/source_models.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/source_readers.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/sql_sources.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/templates/graph.html +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace/visual_layout.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace.egg-info/dependency_links.txt +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace.egg-info/entry_points.txt +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace.egg-info/requires.txt +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/src/coltrace.egg-info/top_level.txt +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/fixtures/sample_pipeline/extract/prices.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/fixtures/sample_pipeline/features/pricing.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/fixtures/sample_pipeline/pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/fixtures/sample_pipeline/transform/pricing.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_callback_roles.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_capture_workflow.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_cli.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_column_story.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_database_sources.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_journey_boundaries.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_lineage_acceptance.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_nosql_extraction.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_other_column_stories.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_pandas_boundaries.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_reader_inventory.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_resolution_boundaries.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_scan_project.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_source_config.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_source_precision.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_sql_reader_boundaries.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/integration/test_text_pipeline.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_analysis.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_callbacks.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_collector.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_exporters.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_graph.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_graph_workspace.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_history.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_journey.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_nosql_sources.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_read_capture.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_scanner.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_source_models.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_source_presentation.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_sql_sources.py +0 -0
- {coltrace-0.1.0.dev5 → coltrace-0.1.0.dev6}/tests/unit/test_visual_layout.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coltrace
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.dev6
|
|
4
4
|
Summary: Static Pandas column lineage, impact analysis, and local dependency graphs
|
|
5
5
|
Author: Cristiano Diniz
|
|
6
6
|
License-Expression: MIT
|
|
@@ -32,7 +32,7 @@ column versions across direct function calls. Static scanning never imports or
|
|
|
32
32
|
executes the project or reads its input data. Optional read capture observes
|
|
33
33
|
column labels while you explicitly execute your own pipeline.
|
|
34
34
|
|
|
35
|
-
**Development preview: `0.1.0.
|
|
35
|
+
**Development preview: `0.1.0.dev6`.** The supported subset is deliberately small.
|
|
36
36
|
Unsupported operations produce diagnostics and may interrupt lineage. A graph
|
|
37
37
|
with no edge is not proof that a dependency does not exist.
|
|
38
38
|
|
|
@@ -56,7 +56,7 @@ separate release step; these commands install the local project.
|
|
|
56
56
|
|
|
57
57
|
## Start at the data source
|
|
58
58
|
|
|
59
|
-
The
|
|
59
|
+
The source checkpoint recognizes supported SQL-to-Pandas and NoSQL-to-Pandas
|
|
60
60
|
extractions. Literal SQL projections, aliases and expressions describe source
|
|
61
61
|
fields before their first Python use. Query filters are control metadata rather
|
|
62
62
|
than value dependencies of every output. The supplied
|
|
@@ -91,6 +91,25 @@ See [database source usage](docs/database-sources.md), the
|
|
|
91
91
|
[executable capture example](examples/read_capture/README.md).
|
|
92
92
|
The [source checkpoint](docs/source-checkpoint.md) records validation and limits.
|
|
93
93
|
|
|
94
|
+
## Common Python scaffolding
|
|
95
|
+
|
|
96
|
+
The dev6 checkpoint preserves independent DataFrame lineage across ordinary
|
|
97
|
+
type annotations and unrelated configuration expressions. It supports bounded
|
|
98
|
+
`copy(deep=True)`, `head(n)` and immutable `shape` observations.
|
|
99
|
+
|
|
100
|
+
Selected `if`, `try`, `with` and loop paths are inspected independently. Facts
|
|
101
|
+
from uncertain paths have inferred evidence. Mutated pre-existing frames and
|
|
102
|
+
incompatible bindings remain explicit join boundaries; general path merging is
|
|
103
|
+
not claimed. This makes previously skipped reads visible without treating every
|
|
104
|
+
alternative as confirmed execution. Static scanning still executes no project
|
|
105
|
+
code. See the [compatibility checkpoint](docs/compatibility-checkpoint.md) and
|
|
106
|
+
[multi-module example](examples/robustness_pipeline/README.md).
|
|
107
|
+
|
|
108
|
+
Notebook output separates discovered files from modeled frames/columns, shows
|
|
109
|
+
configuration and versions, prints errors first, and saves full diagnostics
|
|
110
|
+
before attempting column selection. Listed static labels are not runtime
|
|
111
|
+
`df.columns`. Capture remains opt-in.
|
|
112
|
+
|
|
94
113
|
## Try the complete example
|
|
95
114
|
|
|
96
115
|
```sh
|
|
@@ -193,6 +212,8 @@ the shortest eligible distance, so a node reached both ways appears as direct.
|
|
|
193
212
|
| `frame["column"]`, `frame.loc[:, "column"]` | Single literal string labels, all rows |
|
|
194
213
|
| `frame["c"] = frame["a"] + frame["b"]` | Arithmetic, scalar constants, temporary values, versions |
|
|
195
214
|
| `alias = frame` | Same abstract object and shared mutation |
|
|
215
|
+
| `copy(deep=True)`, `head(n)`, `shape` | Bounded independent copies, row previews and immutable metadata observations |
|
|
216
|
+
| Selected conditional/exception/context blocks | Separate inferred paths; explicit uncertainty at joins |
|
|
196
217
|
| `rename(columns={"old": "new"})` | Literal, non-colliding map; new DataFrame, or shared mutation with `inplace=True` |
|
|
197
218
|
| `assign(b=lambda x: x["a"] * 2)` | Sequential simple lambdas; eager arguments use their original scope |
|
|
198
219
|
| `Series.apply(clean_text)` | Resolved scalar callbacks; bounded summaries and inferred evidence |
|