# ---------------------------------------------------------------------------
# Python bytecode and native extensions
# ---------------------------------------------------------------------------
__pycache__/
*.py[cod]
*$py.class
*.so
cython_debug/

# ---------------------------------------------------------------------------
# Build, packaging and distribution
# ---------------------------------------------------------------------------
.idea/
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# PyBuilder
.pybuilder/
target/

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

# Makefile stamps (make dist, make build-image-*)
.make-*

# ---------------------------------------------------------------------------
# Dependency lock files
# ---------------------------------------------------------------------------
.pdm.toml

# ---------------------------------------------------------------------------
# Environments and interpreter selection
# ---------------------------------------------------------------------------
.env
.venv*/
env/
venv*/
ENV/
env.bak/
venv.bak/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# ---------------------------------------------------------------------------
# Tests, coverage and benchmarks
# ---------------------------------------------------------------------------
.pytest_cache/
.tox/
.nox/
.hypothesis/
.cache
.coverage
.coverage.*
coverage.xml
nosetests.xml
htmlcov/
cover/
*.cover
*.py,cover

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

# ---------------------------------------------------------------------------
# Documentation
# ---------------------------------------------------------------------------
# Sphinx documentation
docs/_build/

# pdoc output, regenerated from the docstrings by `make api_docs_build`
docs/api/

# ---------------------------------------------------------------------------
# Notebooks
# ---------------------------------------------------------------------------
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py

# ---------------------------------------------------------------------------
# Web / task framework leftovers (kept from the upstream Python template)
# ---------------------------------------------------------------------------
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Translations
*.mo
*.pot

# ---------------------------------------------------------------------------
# IDE and editor settings
# ---------------------------------------------------------------------------
# PyCharm
#.idea/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject

# ---------------------------------------------------------------------------
# AI assistants and agent tooling
# ---------------------------------------------------------------------------
#.auto-claude/
#.gemini/
#.ia/
#.opencode/
.claude/*
!.claude/skills/
CLAUDE.local.md
AGENTS.md
.cursor/rules/openmemory.mdc
_bmad/
.ia/skills.new/bmad-*
.ia/skills.new/packmind-*

# https://docs.entire.io/introduction
# Capture IA session in git
#.entire/

# https://github.com/oraios/serena
# Serena provides essential semantic code retrieval and editing tools
.serena/

#.container-use/
#.planning/
#.ia_backup/

# CocoIndex Code (ccc)
/.cocoindex_code/

# graphify knowledge graph (manifest.json is mtime-based and breaks after a
# clone, cost.json is local only, cache/ could be committed for speed)
graphify-out/

# ---------------------------------------------------------------------------
# Project specific (pysandboxes)
# ---------------------------------------------------------------------------
.py-sandboxes
.local.py-sandboxes*
.pysandboxes
# Written in the working directory by qemu.show_boot_console=true
.pysandbox-qemu-console.log
netfilter*.net
run.sh
# Write probe of tst_usage: only ever created if a guard fails to deny it
/denied-write.probe
tmp*/
etudes/
tst_wasm/
PPR*
# Ignore the contents, not the directory: git does not descend into an ignored
# directory, so the !_tasks/lessons.md exception below would never be reached.
/_tasks/*

# ---------------------------------------------------------------------------
# Read-only stubs (0 byte, mode 444) dropped in the working directory by the
# Claude Code Bash sandbox on every sandboxed command, to hold a read-only bind
# mount over each path. They are not produced by the test suite: the full
# integration run over all six OS-sandbox providers creates none of them, while
# a bare `true` inside the sandbox creates all nine.
# ---------------------------------------------------------------------------
/.bashrc
/.zshrc
/.profile
/.bash_profile
/.zprofile
/.gitconfig
/.gitmodules
/.ripgreprc
/.mcp.json
**/.tgrep/
/openwiki/
/audits/
/lat.md/
/tmp/

# Written at build time by hatch-vcs, from the git tag
/pysandboxes/_version.py

# ---------------------------------------------------------------------------
# research/: the markdown sources are versioned, the LaTeX chain and its
# output are not. `make -C research` rebuilds them from confining-python-by-observation.md.
# ---------------------------------------------------------------------------
/research/*
!/research/*.md

# ---------------------------------------------------------------------------
# Per-agent local files. AGENTS.md is the versioned guide, and the tools read
# it directly; .claudeignore is personal tooling, kept on disk only.
# ---------------------------------------------------------------------------
/.claudeignore

# ---------------------------------------------------------------------------
# Per-session working notes: local to the clone, never versioned
# ---------------------------------------------------------------------------
_tasks/*
# lessons.md is the one versioned exception: it carries repo-level rules, not
# session workspace. Must stay last, after every _tasks pattern above.
!_tasks/lessons.md
