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 "pydantic-ai>=1.9",
17 "pydantic-ai-skills>=0.8.0",
18 "pydantic-settings",
19 "slowapi>=0.1.9",
20 "turbopuffer",
21 "uvicorn",
22]
23
24[tool.hatch.version]
25source = "vcs"
26
27[tool.ruff.lint]
28extend-select = ["I", "UP"]
29
30[tool.pytest.ini_options]
31asyncio_mode = "auto"
32asyncio_default_fixture_loop_scope = "function"
33filterwarnings = [
34 "ignore::logfire._internal.config.LogfireNotConfiguredWarning",
35 # upstream otel 1.39 renamed EventLogger → Logger; pydantic-ai + otel internals still use old names
36 "ignore:.*Deprecated since version 1\\.39\\.0:DeprecationWarning",
37 # atproto SDK's lexicon model loader uses Field(default=None) inside an Annotated
38 # type alias context that newer pydantic warns about. nothing we can do until the
39 # SDK fixes it; the warning fires once at import and isn't actionable on our side.
40 "ignore::pydantic.warnings.UnsupportedFieldAttributeWarning",
41]
42
43[dependency-groups]
44dev = [
45 "pytest-asyncio",
46 "pytest-sugar",
47 "ruff",
48 "ty",
49]
50
51[tool.hatch.metadata]
52allow-direct-references = true
53
54[build-system]
55requires = ["hatchling", "hatch-vcs"]
56build-backend = "hatchling.build"