# Python
__pycache__/
*.py[cod]
*$py.class

# pytest
.pytest_cache/

# Hypothesis writes its own .hypothesis/.gitignore on first run, but
# that's regenerated only when the directory is missing — so a stale
# checkout that pre-dates the auto-ignore could still see contents
# show up under `git status`. Belt + suspenders.
.hypothesis/

# Coverage artifacts
.coverage
.coverage.*
htmlcov/
coverage.xml

# Build artifacts
dist/
build/
*.egg-info/

# User-local runtime data (library is user-specific; seeded on first run)
plasmid_library.json
parts_bin.json
primers.json
*.json.bak

# Stray plasmid files dropped in the working directory during testing.
# Scoped to the repo root only so the committed `tests/*.dna` /
# `tests/*.gb` fixtures stay tracked.
/*.dna
/*.gb
/*.gbk

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

# Claude Code local settings / cache
.claude/

# uv resolver lock — generated locally, not committed
# (contributed by Harley King in closed PR #7)
uv.lock
