__pycache__/
*.py[cod]
*$py.class
.env
.env.local
.venv/
venv/
# Any suffixed venv too. .venv141 (fastapi 0.141, the version the image builds --
# see pinfastapi) was NOT matched by the pattern above and a `git add -A` swallowed
# all ~4,000 files of it into a commit.
.venv*/
*.egg-info/
.mypy_cache/
.ruff_cache/
.pytest_cache/

# Throwaway investigation probes. Named so they sort together and are
# obviously not part of the service; there are usually a lot of them
# mid-investigation and none of them should ever be committed.
_qp_*

# Scratch: commit-message and one-off investigation files.
_*.txt
_*.md
_*.py

# A DUNDER FILE IS NOT A SCRATCH FILE. `_*.py` matches `__init__.py`, and while
# git keeps an already-tracked file regardless, HATCHLING APPLIES THESE PATTERNS
# WHEN SELECTING WHAT GOES IN THE WHEEL -- so from 2026-09-14 every published
# quantpad-data release shipped without its `__init__.py`, i.e. without Client,
# Historical, get_bars and every other documented name. `pip install
# quantpad-data` gave a namespace package that answered AttributeError to the
# README's first example. Verified against the artifact on PyPI, not inferred.
!__*.py
