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

# C extensions
*.so

# Distribution / packaging
.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

# 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/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# Pipfile.lock

# UV
#   Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# uv.lock

# poetry
# poetry.lock
# poetry.toml

# pdm
.pdm-python
.pdm-build/

# pixi
.pixi

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

# Celery stuff
celerybeat-schedule
celerybeat.pid

# Redis
*.rdb
*.aof
*.pid

# RabbitMQ
mnesia/
rabbitmq/
rabbitmq-data/

# ActiveMQ
activemq-data/

# SageMath parsed files
*.sage.py

# Environments
.env
.envrc
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# .idea/

# Abstra
.abstra/

# Visual Studio Code
# .vscode/
tempCodeRunnerFile.py

# Ruff stuff:
.ruff_cache/

# PyPI configuration file
.pypirc

# Marimo
marimo/_static/
marimo/_lsp/
__marimo__/

# Streamlit
.streamlit/secrets.toml

# slife2's home, when it is the checkout itself.
#
# A checkout keeps its data beside itself, so the checked-in slife2.yaml is the
# one in use and agents/ is a directory you can open.  That puts generated
# state in the working tree, which is exactly what this keeps out of it:
# agents/ is where a conversation, a cabinet and a WeChat login live, and none
# of that belongs in a commit.  slife2.yaml and skills/ are deliberately NOT
# ignored — both are written by a person rather than produced by a run, and
# neither holds a secret, so both are the file the whole arrangement exists to
# read.
#
# The machine's runtime — records, locks, logs — is no longer here at all: it
# lives in ~/.slife2/runtime, because the servers are one set per machine and
# their bookkeeping is theirs (`slife2/libs/host/paths.py`).  The entry is kept
# for a checkout that still has an old one lying around.
runtime/
agents/

# The designer's own memory of intent, which is not part of what this repository
# publishes.
#
# sdd.md and DESIGN.md cite it as one of the four documents, and it stays that —
# in the checkout it is written in.  What leaves is the *copy*: it is a notebook
# revised on the machine that wrote it, nobody else's to edit, and a published
# copy can only be the version that was true the day it was pushed.  The
# citations keep working for whoever has the file, and the history keeps the
# copies already published, so nothing is lost by untracking it.
designer_notes.md

# Installer artifacts in a development checkout.
#
# The ownership record is per home, and a checkout's home is the checkout, so a
# development install keeps its record here rather than in ~/.slife2.  The
# reference copy is written only when a live slife2.yaml already exists; in a
# checkout the repository's own file is live, so this is normally absent.
.install-state.tsv
slife2-default.yaml
