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

# Virtual Environment
.venv
env/
venv/
ENV/

# Lock files — deliberately not committed (#273).
# fmp-data ships as a library, so the compatibility contract is the version
# floors in pyproject.toml; installers resolve against those and never read a
# committed lock. Freezing one here would only pin CI, at the cost of a ~1MB
# blob and a multi-thousand-line diff on every dependency bump.
# Drift is caught rather than frozen: `nox -s security` exports the live
# extras graph and audits it with `pip-audit --strict`, and the Actions used
# by CI/publish are SHA-pinned (#252 FMP-SEC-002/008). See CONTRIBUTING.md
# "Lock file policy".
# Generate locally with: uv sync
uv.lock
poetry.lock

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

# Testing
.coverage
htmlcov/
.tox/
.nox/
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
.mypy_cache/
.ruff_cache/

# VCR cassettes (large recorded API responses, regenerated locally)
tests/integration/vcr_cassettes/
tests/e2e/vcr_cassettes/
tests/e2e/reports/

# Build
*.manifest
*.spec
pip-log.txt
pip-delete-this-directory.txt

# Documentation build
site/

# Security reports
reports/

# Misc
.DS_Store

# Environment files (keep .env.example)
.env
.env.*
!.env.example

# Firecrawl example outputs
examples/firecrawl_app/outputs/

# Generated at build time by hatch-vcs (see [tool.hatch.build.hooks.vcs])
fmp_data/_version.py
