InfoTracker 0.1.0__py3-none-any.whl
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.
- infotracker/__init__.py +6 -0
- infotracker/__main__.py +6 -0
- infotracker/adapters.py +65 -0
- infotracker/cli.py +150 -0
- infotracker/config.py +57 -0
- infotracker/diff.py +291 -0
- infotracker/engine.py +340 -0
- infotracker/lineage.py +122 -0
- infotracker/models.py +302 -0
- infotracker/parser.py +807 -0
- infotracker-0.1.0.dist-info/METADATA +108 -0
- infotracker-0.1.0.dist-info/RECORD +14 -0
- infotracker-0.1.0.dist-info/WHEEL +4 -0
- infotracker-0.1.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,108 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: InfoTracker
|
3
|
+
Version: 0.1.0
|
4
|
+
Summary: Column-level SQL lineage, impact analysis, and breaking-change detection (MS SQL first)
|
5
|
+
Project-URL: homepage, https://example.com/infotracker
|
6
|
+
Project-URL: documentation, https://example.com/infotracker/docs
|
7
|
+
Author: InfoTracker Authors
|
8
|
+
License: MIT
|
9
|
+
Keywords: data-lineage,impact-analysis,lineage,mssql,openlineage,sql
|
10
|
+
Classifier: Environment :: Console
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
12
|
+
Classifier: Operating System :: OS Independent
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
15
|
+
Classifier: Topic :: Database
|
16
|
+
Classifier: Topic :: Software Development :: Libraries
|
17
|
+
Requires-Python: <3.13,>=3.10
|
18
|
+
Requires-Dist: click<9.0.0,>=8.1.3
|
19
|
+
Requires-Dist: networkx>=3.3
|
20
|
+
Requires-Dist: packaging>=24.0
|
21
|
+
Requires-Dist: pydantic>=2.8.2
|
22
|
+
Requires-Dist: pyyaml>=6.0.1
|
23
|
+
Requires-Dist: sqlglot>=23.0.0
|
24
|
+
Requires-Dist: typer[all]==0.12.3
|
25
|
+
Provides-Extra: dev
|
26
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
27
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
28
|
+
Description-Content-Type: text/markdown
|
29
|
+
|
30
|
+
### InfoTracker
|
31
|
+
|
32
|
+
This is a Python CLI that extracts column-level lineage from SQL, runs impact analysis, and detects breaking changes. First adapter targets MS SQL.
|
33
|
+
|
34
|
+
#### For Students
|
35
|
+
Start with a simple command: `infotracker extract --sql-dir examples/warehouse/sql --out-dir build/lineage`. This analyzes SQL files in the directory.
|
36
|
+
|
37
|
+
#### Setup & Installation
|
38
|
+
```bash
|
39
|
+
# Activate virtual environment first (REQUIRED)
|
40
|
+
source infotracker-env/bin/activate # or your venv path
|
41
|
+
|
42
|
+
# Install dependencies
|
43
|
+
pip install -e .
|
44
|
+
|
45
|
+
# Verify installation
|
46
|
+
infotracker --help
|
47
|
+
```
|
48
|
+
|
49
|
+
#### Quickstart
|
50
|
+
```bash
|
51
|
+
# IMPORTANT: Always run InfoTracker commands in the activated virtual environment
|
52
|
+
|
53
|
+
# Extract lineage from all SQL files
|
54
|
+
infotracker extract --sql-dir examples/warehouse/sql --out-dir build/lineage
|
55
|
+
|
56
|
+
# Impact analysis (downstream dependencies)
|
57
|
+
infotracker impact -s dbo.fct_sales.Revenue+
|
58
|
+
|
59
|
+
# Impact analysis (upstream sources)
|
60
|
+
infotracker impact -s +dbo.Orders.OrderID
|
61
|
+
|
62
|
+
# Branch diff for breaking changes
|
63
|
+
infotracker diff --base main --head feature/x --sql-dir examples/warehouse/sql
|
64
|
+
```
|
65
|
+
|
66
|
+
#### Configuration
|
67
|
+
InfoTracker follows this configuration precedence:
|
68
|
+
1. **CLI flags** (highest priority) - override everything
|
69
|
+
2. **infotracker.yml** config file - project defaults
|
70
|
+
3. **Built-in defaults** (lowest priority) - fallback values
|
71
|
+
|
72
|
+
Create an `infotracker.yml` file in your project root:
|
73
|
+
```yaml
|
74
|
+
default_adapter: mssql
|
75
|
+
sql_dir: examples/warehouse/sql
|
76
|
+
out_dir: build/lineage
|
77
|
+
include: ["*.sql"]
|
78
|
+
exclude: ["*_wip.sql"]
|
79
|
+
severity_threshold: BREAKING
|
80
|
+
```
|
81
|
+
|
82
|
+
#### Documentation
|
83
|
+
- `docs/overview.md` — what it is, goals, scope
|
84
|
+
- `docs/algorithm.md` — how extraction works
|
85
|
+
- `docs/lineage_concepts.md` — core concepts with visuals
|
86
|
+
- `docs/cli_usage.md` — commands and options
|
87
|
+
- `docs/breaking_changes.md` — definition and detection
|
88
|
+
- `docs/edge_cases.md` — SELECT *, UNION, temp tables, etc.
|
89
|
+
- `docs/adapters.md` — interface and MSSQL specifics
|
90
|
+
- `docs/architecture.md` — system and sequence diagrams
|
91
|
+
- `docs/configuration.md` — configuration reference
|
92
|
+
- `docs/openlineage_mapping.md` — how outputs map to OpenLineage
|
93
|
+
- `docs/faq.md` — common questions
|
94
|
+
- `docs/dbt_integration.md` — how to use with dbt projects
|
95
|
+
|
96
|
+
#### Requirements
|
97
|
+
- Python 3.10+
|
98
|
+
- Virtual environment (activated)
|
99
|
+
- Basic SQL knowledge
|
100
|
+
- Git and shell
|
101
|
+
|
102
|
+
#### Troubleshooting
|
103
|
+
- **Error tracebacks on help commands**: Make sure you're running in an activated virtual environment
|
104
|
+
- **Command not found**: Activate your virtual environment first
|
105
|
+
- **Import errors**: Ensure all dependencies are installed with `pip install -e .`
|
106
|
+
|
107
|
+
#### License
|
108
|
+
MIT (or your team’s preferred license)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
infotracker/__init__.py,sha256=XkoK2R_QULA1UDQqgaLbmKQ2bdsi-lO3mo_wi7dy9Gg,57
|
2
|
+
infotracker/__main__.py,sha256=_iCom0ddZ1myy6ly3ID1dBlLzzjf7iV7Kq9uUfkat74,121
|
3
|
+
infotracker/adapters.py,sha256=mfP5uep8HN4Xi-78rAKA8PqUY6q17amXLd2Zf0Jl1xU,2535
|
4
|
+
infotracker/cli.py,sha256=NER5jByK2AwAZKbqdxPsE713TdGkirE_tarKLs-aMjg,4841
|
5
|
+
infotracker/config.py,sha256=EKlETgAvbSQJbty87TsKMTbFjwI16RMBpOPrduw3pMk,1725
|
6
|
+
infotracker/diff.py,sha256=ziNFmNW6SEppdeD_iIdEsNHVYHT3AQdB2IQVPzhIRIk,12470
|
7
|
+
infotracker/engine.py,sha256=xW-10Jfxm0-MvPUBe1il37GBkNdchc8IC0-EZfZzPfk,13557
|
8
|
+
infotracker/lineage.py,sha256=Gb8NQj-igf8wjdyMhfkSmB1_bVS__cipMivXJCRmiJQ,4645
|
9
|
+
infotracker/models.py,sha256=cBsGOGmmGFfyz26TE-endA4AZc0qxzVMQ_7nZCJlcVA,10398
|
10
|
+
infotracker/parser.py,sha256=Mr4pWGCaodwEA6jKzf6HkLHjQGHNaHlqCFXv9jDjVtA,36269
|
11
|
+
infotracker-0.1.0.dist-info/METADATA,sha256=y9rMRDCAQ8faIngE7fU9gUT-26e6GopjJ-c3AxOM16A,3749
|
12
|
+
infotracker-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
13
|
+
infotracker-0.1.0.dist-info/entry_points.txt,sha256=5ulAYRSvW3SohjeMwlYRX6LoWIHkEtc1qnwxWJQgN2Y,59
|
14
|
+
infotracker-0.1.0.dist-info/RECORD,,
|