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

# Environment variables
.env

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*

# VS Code
.vscode/*
!.vscode/settings.json
.idea/

# Jupyter Notebook
.ipynb_checkpoints

# Local configuration
*.local

# Logs
logs/
*.log

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

# Sphinx documentation
docs/_build/
docs/api/

# PyBuilder
target/

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# IDE specific files
*.swp
*.swo
*.sublime-project
*.sublime-workspace
.spyderproject
.spyproject
.ropeproject
.project
.pydevproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
**/.mypy_cache/
.mypy_cache_test/
**/.mypy_cache_test/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# Temporary files
*.tmp

# Test sample data that shouldn't be published
testdata/
testing/

.idea/
**/.idea/
.venv/
install_and_test.sh

.ruff_cache/
**/.ruff_cache/
.benchmarks/
.claude/
.codex/
AGENTS.md
python_modules/
.venv-workers/
.wrangler/
# examples/workers/uv.lock resolves the local dev venv (pywrangler, pytest),
# not what ships to the Worker, and is never touched by CI -- leave it out.
# examples/workers/pylock.toml is deliberately NOT ignored: it is the Pyodide
# lockfile pywrangler actually vendors into python_modules, so leaving it
# untracked lets transitive deps jump versions silently on any fresh sync.
# That is how a langsmith bump pulled in uuid_utils -- which has no Pyodide
# wheel -- and broke Worker startup with no source change to blame.
**/examples/workers/uv.lock
node_modules/
dev/
