
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
*.egg

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Jupyter
.ipynb_checkpoints

# pyenv
.python-version

# pipenv
Pipfile.lock

# Poetry / other lock files (optional)
poetry.lock
uv.lock

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

# Spyder project settings
.spyproject

# Rope
.ropeproject

# mkdocs
/site

# mypy
.mypy_cache/

# ruff
.ruff_cache/

# IDEs and editors
.vscode/
.idea/
*.sublime-project
*.sublime-workspace

# OS files
.DS_Store
Thumbs.db

# Logs and databases
*.log
*.sql
*.sqlite
*.sqlite3
*.db
session.db
*.bak
*.swp

# Environment / secrets
.env
.env.*

# Project-specific artifacts
max_client.egg-info/
cache/

# Keep lockfiles and important configs tracked? If you want to track specific lockfiles,
# remove them from this .gitignore (for example: remove poetry.lock or uv.lock).
tests/


# Bad dev's requirements
requirements.txt