a digital entity named phi that roams bsky
phi.zzstoatzz.io
1[project]
2name = "bot"
3description = "a bluesky bot"
4readme = "README.md"
5authors = [{ name = "zzstoatzz", email = "thrast36@gmail.com" }]
6requires-python = ">=3.12"
7dynamic = ["version"]
8dependencies = [
9 "anthropic",
10 "atproto@git+https://github.com/MarshalX/atproto.git@refs/pull/605/head",
11 "fastapi",
12 "fastmcp>=0.8.0",
13 "logfire[fastapi]",
14 "numpy>=2.4.4",
15 "openai",
16 "pillow>=12.3.0",
17 "pydantic-ai>=1.9",
18 "pydantic-ai-skills>=0.8.0",
19 "pydantic-settings",
20 "semble-api>=0.0.2",
21 "slowapi>=0.1.9",
22 "turbopuffer",
23 "uvicorn",
24]
25
26[tool.hatch.version]
27source = "vcs"
28
29[tool.ruff.lint]
30extend-select = ["I", "UP"]
31
32[tool.pytest.ini_options]
33asyncio_mode = "auto"
34asyncio_default_fixture_loop_scope = "function"
35filterwarnings = [
36 "ignore::logfire._internal.config.LogfireNotConfiguredWarning",
37 # upstream otel 1.39 renamed EventLogger → Logger; pydantic-ai + otel internals still use old names
38 "ignore:.*Deprecated since version 1\\.39\\.0:DeprecationWarning",
39 # atproto SDK's lexicon model loader uses Field(default=None) inside an Annotated
40 # type alias context that newer pydantic warns about. nothing we can do until the
41 # SDK fixes it; the warning fires once at import and isn't actionable on our side.
42 "ignore::pydantic.warnings.UnsupportedFieldAttributeWarning",
43]
44
45[dependency-groups]
46dev = [
47 "pytest-asyncio",
48 "pytest-sugar",
49 "ruff",
50 "ty",
51]
52
53[tool.hatch.metadata]
54allow-direct-references = true
55
56[build-system]
57requires = ["hatchling", "hatch-vcs"]
58build-backend = "hatchling.build"