# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
env/
ENV/

# IDE
.vscode/
.idea/
*.swp
*.swo

# Testing
.pytest_cache/
.coverage
htmlcov/

# OS
.DS_Store
Thumbs.db

# Test artifacts: only RUNTIME OUTPUTS and local scratch are ignored — NEVER test code.
# All test source under tests/ is committed normally (no wildcard ignore + whitelist dance).
# Local throwaway lives in ONE obvious, clearly-named place:
tests/_local/
.tmp
.tmp/*/

# Conformance-suite runtime outputs (the suite's source is committed and tracked normally).
tests/conformance/_run.log
tests/conformance/_report.xml
conformance.xml

# Ignore JSON files (Delta logs, test data, etc.)
*.json

# Ignore CSV files
*.csv

# But DO keep integration test fixtures and dbt project files
!tests/integration_tests/**/*.csv
!tests/integration_tests/**/*.yml
!tests/integration_tests/**/*.json
# ...and the vendored connection-API fixtures (coffee dimension CSVs, and the Delta log of the
# Databricks-written column-mapped table -- the *.json rule above is aimed at RUNTIME Delta logs)
!tests/connection_api/**/*.csv
!tests/connection_api/data/**/_delta_log/*.json
# ...and the native-unit-test project's seeds (raw_customers / raw_orders / top_level_email_domains)
!tests/dbt_unit_tests/**/*.csv

# Keep the Claude Code plugin marketplace manifests (the *.json rule above ignores them)
!.claude-plugin/marketplace.json
!plugins/**/.claude-plugin/plugin.json
# ...except dbt's auto-generated local user file (aemo, any integration project)
tests/integration_tests/*/.user.yml
tests/performance/*/.user.yml
tests/parity_tests/*/.user.yml

# Delta output and dbt artifacts produced by the integration projects (runtime)
tests/integration_tests/*/warehouse/
tests/integration_tests/*/target/
tests/integration_tests/*/dbt_packages/
tests/integration_tests/*/logs/
tests/integration_tests/*/package-lock.yml
# multicatalog's dbt demo is one level deeper (tests/integration_tests/multicatalog/dbt/)
tests/integration_tests/multicatalog/dbt/target/
tests/integration_tests/multicatalog/dbt/dbt_packages/
tests/integration_tests/multicatalog/dbt/logs/
tests/integration_tests/multicatalog/dbt/.user.yml
# dbt run artifacts from the native-unit-test project (the harness runs dbt build into PROJECT_DIR)
tests/dbt_unit_tests/project/target/
tests/dbt_unit_tests/project/dbt_packages/
tests/dbt_unit_tests/project/logs/
tests/dbt_unit_tests/project/.user.yml
# dbt run artifacts from the correctness dbt projects (multi_catalog, snapshot_pin — harness runs dbt into the dir)
tests/correctness/*/target/
tests/correctness/*/dbt_packages/
tests/correctness/*/logs/
tests/correctness/*/warehouse/
tests/correctness/*/.user.yml
# Runtime artifacts from the performance projects (merge_spill / tpch write to external dirs by
# default, but a local run may drop these inside the project)
tests/performance/*/warehouse/
tests/performance/*/target/
tests/performance/*/dbt_packages/
tests/performance/*/logs/
tests/performance/*/package-lock.yml
# The MERGE benchmark scorecard the runner writes (injected into docs/merge-benchmark.md in CI)
docs/merge_card.md
# The snapshot-pin scorecard the runner writes (injected into docs/snapshot-pin.md in CI)
docs/snapshot_pin_card.md
# The TPC-H scorecard the runner writes (injected into docs/tpch.md in CI)
docs/tpch_card.md
# Per-run history rows the benches write; the workflow appends them to the tracked
# docs/*-benchmark-history.md files (which ARE committed) and then discards these.
docs/merge_history_row.md
docs/tpch_history_row.md
# The NYC-taxi demo HTML report the runner writes (published as taxi.html in CI)
taxi_run.html
# CI-only scorecards: rendered from test XML and injected into the docs/*.md beside them
docs/conformance_card.md
docs/connection_card.md
docs/workspace_card.md

# dbt logs written to the repo root (e.g. running dbt with --project-dir)
logs/

# Local smoke-test scaffolding
.localtest*

# Local scratch notebook (not part of the package)
simple_test.ipynb
# import profiling artifact
importtime.log

# Local scratch folder — review data, ad-hoc parquet, notes (never packaged/committed)
/_scratch/

# Draft blog post (not part of the package)
intro-blog.md

# Local planning / design docs — untracked scratch, never packaged/committed
*-plan.md
optimize-delta-stats-plan*.md
*vorder-mimic-plan*.md

# MkDocs build output — rebuilt from docs/*.md by `mkdocs build` on every deploy.
# (docs/taxi.html & docs/multicatalog.html are committed live-report fallbacks that
# mkdocs copies into the site verbatim, then CI overwrites with the live run.)
/site/
