Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Arize ai Phoenix Pyproject Config

From Leeroopedia

Overview

The pyproject.toml file is the main Python package configuration for the arize-phoenix project. It defines the package metadata, runtime dependencies, optional extras, CLI entry points, build system settings, and tool configurations for linting, formatting, type checking, and testing. This file serves as the single source of truth for how the Python distribution is built and published.

The package is described as "AI Observability and Evaluation" and is licensed under Elastic-2.0. It supports Python versions 3.10 through 3.13 (>=3.10, <3.14).

Code Reference

Attribute Value
Source File pyproject.toml
Lines 373
Domain Build_Configuration
Build Backend hatchling (Hatch)
Package Manager uv (required version 0.9.18)

Key Sections

Package Metadata

Field Value
Name arize-phoenix
Authors Arize AI (phoenix-devs@arize.com)
License Elastic-2.0
Python >=3.10, <3.14
Version Dynamic, read from src/phoenix/version.py

CLI Entry Points

Two console scripts are registered:

Command Target
arize-phoenix phoenix.server.main:main
phoenix phoenix.server.main:main

Both commands launch the Phoenix server process.

Core Dependencies

The package declares a substantial set of runtime dependencies including:

  • Web framework: fastapi, starlette, uvicorn
  • GraphQL: strawberry-graphql==0.287.3
  • Database: sqlalchemy[asyncio]>=2.0.4, alembic>=1.3.0, aiosqlite
  • OpenTelemetry: opentelemetry-sdk, opentelemetry-proto>=1.12.0, opentelemetry-exporter-otlp
  • OpenInference: openinference-semantic-conventions>=0.1.26, openinference-instrumentation>=0.1.44
  • Data science: scikit-learn, numpy, pandas>=1.0, scipy, pyarrow
  • Sub-packages: arize-phoenix-evals>=2.8.0, arize-phoenix-otel>=0.14.0, arize-phoenix-client>=1.29.0
  • Auth: authlib, ldap3
  • Serialization: orjson, protobuf>=4.25.8

Optional Extras

Extra Description
embeddings UMAP, HDBSCAN, numba for embedding analysis
pg PostgreSQL support via asyncpg and psycopg
aws AWS integration via aioboto3
container Full container deployment (Anthropic, Google GenAI, OpenAI, OTel instrumentation, uvloop, embeddings, AWS)

Build Configuration (Hatch)

The wheel build includes only the src/phoenix package while explicitly excluding sub-package directories (client/, evals/, otel/). Build artifacts include:

  • src/phoenix/server/static (frontend assets)
  • src/phoenix/db/migrations (Alembic migrations)
  • src/phoenix/server/cost_tracking/model_cost_manifest.json
  • src/phoenix/server/api/helpers/substitutions/server.yaml

Tool Configuration

Tool Key Settings
Ruff Line length 100, target Python 3.10, selects E/F/W/I/NPY201 rules
mypy Strict mode, Strawberry and Pydantic plugins, ignores missing imports for many third-party packages
pytest asyncio_mode = "auto", verbose output, doctest modules, import mode importlib
uv Required version 0.9.18, workspace members in packages/*, workspace sources for sub-packages

Workspace Configuration

The [tool.uv.workspace] section defines the uv workspace with members at packages/*. The [tool.uv.sources] section maps the three sub-packages (arize-phoenix-client, arize-phoenix-evals, arize-phoenix-otel) to workspace references, allowing local development against the monorepo versions.

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment