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

# Distribution / packaging
build/
dist/
sdist/
wheels/
*.egg-info/
*.egg
.eggs/
MANIFEST

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

# Testing / coverage
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.tox/
.nox/
.hypothesis/

# Type checkers / linters
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/
.pyre/
.pytype/

# uv
# (uv.lock is intentionally not ignored; it is committed for reproducible CI.)

# lanky's scratch directory, which loopty shares when it runs under `lanky check`
.lanky/

# Code generation and execution. The C target compiles a generated kernel and
# loads it back in, and loopy and pytools keep persistent caches. Those caches
# live under the user's cache directory by default, but the environment can
# point them into a checkout, and a compile that fails can leave its sources and
# object files where it ran.
.cache/
.codepy/
*.so
*.o
*.dylib
*.gen.c
loopy-tmp/

# Lean, reachable through lanky's optional oracle
.lake/
lake-packages/
*.olean

# Editors / OS
.idea/
.vscode/
*.swp
.DS_Store

# Jupyter
.ipynb_checkpoints
