# Basecamp Developer: the Python packages for the week, pinned.
# setup.py installs this file into ~/bcdev/.venv (Windows %USERPROFILE%\bcdev\.venv) with
# wheels only (--only-binary=:all:). Do not run pip by hand. Run setup.py again instead.
# Needs Python 3.11 to 3.14 (rpds-py has no 3.10 wheel). Every pin has a prebuilt wheel for macOS arm64
# and x86_64, Linux x86_64 and aarch64, and Windows x64. Windows on ARM: cryptography 42.0.8 and
# claude-agent-sdk have no win_arm64 wheel, so install the x64 (not ARM64) Python 3.12 there and run the
# command again; setup.py finds it by itself. --python PATH is only for a Python installed somewhere it does not look.
# A free-threaded 3.14 build has no cryptography wheel either; use the normal build.
# These are exact pins, the same set the hands-on pack (build-along/setup/requirements.lock.txt) was
# verified against. Do not upgrade during the week. DEPENDENCIES.md says which session needs what.
#
# Not here on purpose: summit_systems (SUMMIT's side of the wall). It arrives on Day 1 inside the
# hands-on pack (summit-week/summit/) and build-along imports it from there; no install needed.

# Direct dependencies
anthropic==0.125.0            # every build session: the Messages API client, Managed Agents beta (client.beta.agents/...). Keep below 1.0.
claude-agent-sdk==0.2.145     # Day 2 Agent SDK 400
mcp==1.29.1                   # Day 2 Agent SDK 400 (tool servers)
cryptography==42.0.8          # Day 2 Agent SDK 400 (PII redaction, session store). Keep below 43.
python-dotenv==1.2.3          # .env key loading for every script
PyYAML==6.0.3                 # session configs and checks
pytest==9.1.1                 # `make test` and every CHECKS.md
rich==15.0.0                  # the lab and checker tables
inspect-ai==0.3.263           # Day 2 Evals 400: the eval runner (Inspect). The heaviest pin: numpy, boto3, fastapi and textual come with it

# Transitive pins (what the direct pins resolved to on 2026-08-27, plus inspect-ai's on 2026-09-13; kept so pip does not drift)
agent-client-protocol==0.12.1
aioboto3==15.5.0
aiobotocore==2.25.1
aiofiles==25.1.0
aiohappyeyeballs==2.7.1
aiohttp==3.14.3
aioitertools==0.13.0
aiosignal==1.4.0
annotated-doc==0.0.5
annotated-types==0.8.0
anyio==4.14.2
attrs==26.1.0
beautifulsoup4==4.15.0
boto3==1.40.61
botocore==1.40.61
certifi==2026.7.22
cffi==2.1.1
charset_normalizer==3.5.1
click==8.5.0
debugpy==1.8.21
distro==1.9.0
docstring_parser==0.18.0
fastapi==0.141.1
frozenlist==1.8.0
fsspec==2026.6.0
h11==0.16.0
httpcore==1.0.9
httpx-sse==0.4.3
httpx==0.28.1
idna==3.19
ijson==3.5.1
iniconfig==2.3.0
jiter==0.16.0
jmespath==1.1.0
jsonlines==4.0.0
jsonpatch==1.33
jsonpath-ng==1.8.0
jsonpointer==3.1.1
jsonref==1.1.0
jsonschema-specifications==2025.9.1
jsonschema==4.26.0
linkify-it-py==2.2.0
markdown-it-py==4.2.0
mdit-py-plugins==0.6.1
mdurl==0.1.2
mmh3==5.3.0
multidict==6.8.0
nest_asyncio2==1.7.2
numpy==2.4.6
packaging==26.3
pathlib-abc==0.5.2
platformdirs==4.11.8
pluggy==1.6.0
propcache==0.5.2
psutil==7.2.2
pycparser==3.0
pydantic-settings==2.15.0
pydantic==2.13.4
pydantic_core==2.46.4
Pygments==2.21.0
PyJWT==2.13.0
python-dateutil==2.9.0.post0
python-multipart==0.0.32
referencing==0.37.0
regex==2026.9.10
requests==2.34.2
rpds-py==2026.6.3
s3fs==2026.6.0
s3transfer==0.14.0
semver==3.1.0
shortuuid==1.0.13
six==1.17.0
sniffio==1.3.1
soupsieve==2.9.2
sse-starlette==3.4.8
starlette==1.6.0
tenacity==9.1.4
textual==8.2.8
tiktoken==0.14.0
typing-inspection==0.4.4
typing_extensions==4.16.0
universal-pathlib==0.3.10
urllib3==2.7.0
uvicorn==0.52.4
wrapt==1.17.3
yarl==1.24.5
zipfile-zstd==0.0.4
zipp==4.1.0
zstandard==0.25.0

# Windows-only transitive pins (pulled in on win32; pinned so the set stays closed there too)
pywin32==312; sys_platform == "win32"
colorama==0.4.6; sys_platform == "win32"
