blob: 67a6b66f07edb27f740bd9f1fa93e6966592bb11 [file]
[build-system]
requires = ["setuptools >= 61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "burr"
version = "0.38.0"
dependencies = [] # yes, there are none
requires-python = ">=3.9"
authors = [
{name = "Elijah ben Izzy", email = "elijah@dagworks.io"},
{name = "Stefan Krawczyk", email = "stefan@dagworks.io"},
]
maintainers = [
{name = "Elijah ben Izzy", email = "elijah@dagworks.io"},
{name = "Stefan Krawczyk", email = "stefan@dagworks.io"},
]
description = "A state machine for data projects"
readme = "README.md"
#license = {file = "LICENSE.txt"}
keywords = ["mlops", "data", "state-machine", "llmops"]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python"
]
[project.optional-dependencies]
streamlit = [
"streamlit",
"graphviz",
"matplotlib",
"sf-hamilton",
]
hamilton = [
"sf-hamilton"
]
graphviz = [
"graphviz"
]
aiosqlite = [
"aiosqlite"
]
asyncpg = [
"asyncpg"
]
postgresql = [
"psycopg2-binary"
] # leaving it here for backwards compatibility
psycopg2 = [
"psycopg2-binary"
]
pymongo = [
"pymongo"
]
redis = [
"redis"
]
tests = [
"pytest",
"pytest-asyncio",
"burr[hamilton]",
"burr[hamilton]",
"langchain_core",
"langchain_community",
"pandas",
"pydantic[email]",
"pyarrow",
"burr[aiosqlite]",
"burr[asyncpg]",
"burr[psycopg2]",
"burr[pymongo]",
"burr[redis]",
"burr[opentelemetry]",
"burr[haystack]",
"burr[ray]"
]
documentation = [
"burr[tests]",
"sphinx",
"sphinx-autobuild",
"myst-nb",
"furo",
"sphinx-sitemap",
"sphinx-toolbox",
"burr[aiosqlite]",
"burr[asyncpg]",
"burr[psycopg2]",
"burr[pymongo]",
"burr[redis]",
"burr[ray]",
"sphinxcontrib-googleanalytics"
]
tracking-client = [
"pydantic>1"
]
tracking-client-s3 = [
"burr[tracking-client]",
"boto3"
]
tracking-server-s3 = [
"aerich",
"aiobotocore",
"fastapi",
"tortoise-orm[accel, asyncmy]",
"burr[tracking-server]",
"typing-inspect"
]
tracking-server = [
"click",
"fastapi",
"uvicorn",
"pydantic",
"pydantic-settings",
"fastapi-pagination",
"fastapi-utils",
"aiofiles",
"requests",
"jinja2",
"openai", # temporary for the demo, we will likely remove
"typing-inspect",
]
pydantic = [
"pydantic"
]
haystack = [
"haystack-ai"
]
cli = [
"loguru",
"click",
"requests"
]
tracking = [
"burr[tracking-client]",
"burr[tracking-server]",
]
learn = [
"burr[tracking,streamlit,graphviz,hamilton, cli]"
]
start = [
"burr[learn]"
]
# All the bloatware from various LLM demos
# In the future most people will be relying on simple APIs, not this
# But its good for demos!
# TODO -- fill this up with whatever is needed for the demos, it's not complete
examples = [
"langchain",
"langchain-community",
"langchain-openai",
"opentelemetry-api",
"opentelemetry-sdk",
'opentelemetry-instrumentation-openai',
]
# just install everything for developers
developer = [
"burr[streamlit]",
"burr[graphviz]",
"burr[tracking]",
"burr[tests]",
"burr[documentation]",
"burr[bloat]",
"build",
"twine",
"pre-commit",
]
opentelemetry = [
"opentelemetry-api",
"opentelemetry-sdk",
]
ray = [
"ray[default]"
]
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages.find]
include = ["burr", "burr.*"]
# we need to ensure this is there...
[tool.setuptools.package-data]
burr = [
"burr/tracking/server/build/**/*",
"burr/tracking/server/demo_data/**/*",
"py.typed",
]
[tool.aerich]
tortoise_orm = "burr.tracking.server.s3.settings.TORTOISE_ORM"
location = "./burr/tracking/server/s3/migrations"
src_folder = "./."
[project.urls]
Homepage = "https://github.com/dagworks-inc/burr"
Documentation = "https://github.com/dagworks-inc/burr"
Repository = "https://github.com/dagworks-inc/burr"
"Bug Tracker" = "https://github.com/dagworks-inc/burr"
[project.scripts]
burr = "burr.cli.__main__:cli_run_server"
burr-demo = "burr.cli.__main__:cli_demo_server"
burr-admin-server = "burr.cli.__main__:cli_run_server"
burr-admin-publish = "burr.cli.__main__:cli_build_and_publish"
burr-admin-build-ui = "burr.cli.__main__:cli_build_ui"
burr-admin-generate-demo-data = "burr.cli.__main__:cli_generate_demo_data"
burr-test-case = "burr.cli.__main__:cli_test_case"