Spaces:
Running
Running
[tool.poetry] | |
name = "starfish-core" | |
version = "0.1.3" | |
description = "" | |
authors = ["Starfish AI Inc."] | |
readme = "README.md" | |
packages = [ | |
{include = "starfish", from = "src"} | |
] | |
[tool.poetry.dependencies] | |
python = ">=3.10,<4.0" | |
litellm = ">=1.65.1,<2.0.0" | |
fastapi = ">=0.95.0" | |
loguru = ">=0.7.3,<0.8.0" | |
cachetools = ">=5.5.2,<6.0.0" | |
ollama = ">=0.4.7,<0.5.0" | |
python-dotenv = ">=1.1.0,<2.0.0" | |
aiosqlite = ">=0.21.0,<0.22.0" | |
aiofiles = ">=24.1.0,<25.0.0" | |
typing-extensions = ">=4.0.0,<5.0.0" | |
posthog = "^3.11.0" | |
cloudpickle = "^2.2.0" | |
datasets = "3.6.0" | |
psutil = ">=7.0.0,<8.0.0" | |
nest_asyncio = "^1.6.0" | |
docstring_parser = "^0.16.0" | |
mcp = "^1.8.1" | |
# Force cryptography >=44.0.1 due to transitive security vulnerability | |
# See: https://openssl-library.org/news/secadv/20250211.txt | |
cryptography = ">=44.0.1" | |
# Embedding dependencies | |
faiss-cpu = "^1.7.4" | |
sentence-transformers = "^4.1.0" | |
unstructured = { version = "^0.10.0", extras = ["pdf"], optional = true } | |
python-docx = { version = "*", optional = true } | |
python-pptx = { version = "*", optional = true } | |
openpyxl = { version = "*", optional = true } | |
pytube = { version = "^15.0.0", optional = true } | |
youtube-transcript-api = { version = "^0.6.1", optional = true } | |
pdfminer_six = { version = "^20250506", optional = true } | |
# Add optional dependencies for parsers | |
[tool.poetry.extras] | |
docx = ["python-docx"] | |
ppt = ["python-pptx"] | |
excel = ["openpyxl"] | |
youtube = ["pytube", "youtube-transcript-api"] | |
pdf = ["pdfminer_six"] | |
unstructured = ["unstructured"] | |
all = [ | |
"python-docx", | |
"python-pptx", | |
"openpyxl", | |
"pytube", | |
"youtube-transcript-api", | |
"pdfminer_six", | |
"unstructured", | |
] | |
[build-system] | |
requires = ["poetry-core>=2.0.0,<3.0.0"] | |
build-backend = "poetry.core.masonry.api" | |
[tool.poetry.group.dev.dependencies] | |
ipykernel = "^6.29.5" | |
twine = "^5.0.0" | |
ruff = "^0.8.6" | |
vcrpy = "^7.0.0" | |
isort = "^5.13.2" | |
pre-commit = "^4.0.1" | |
pytest = "^8.3.3" | |
pytest-asyncio = "^0.24.0" | |
pytest-dependency = "^0.6.0" | |
pytest-timeout = "^2.3.1" | |
pytest-cov = "^6.0.0" | |
nbval = "^0.11.0" | |
[tool.poetry.scripts] | |
starfish = "starfish.api.cli:main" | |
data-template = "src.starfish.data_gen_template.cli:main" | |
[tool.ruff] | |
line-length = 160 | |
# Auto-fix settings | |
fix = true | |
unsafe-fixes = true | |
[tool.ruff.lint] | |
select = [ | |
"E", # pycodestyle errors | |
"W", # pycodestyle warnings | |
"F", # pyflakes | |
"F401", # Unused imports | |
"I", # isort | |
"B", # flake8-bugbear | |
"C4", # flake8-comprehensions | |
"N", # PEP8 naming convetions | |
"D" # pydocstyle | |
] | |
ignore = [ | |
"D100", # Remove this eventually | |
"C901", # too complex | |
"W191", # indentation contains tabs | |
"D401", # imperative mood | |
"N806", # uppercase variable names, for example, "API_KEY" | |
] | |
exclude = [ | |
".git", | |
"__pycache__", | |
"venv", | |
"build", | |
"dist", | |
] | |
[tool.ruff.lint.per-file-ignores] | |
"tests/**/*" = ["D"] # ignore tests for now | |
[tool.ruff.lint.pydocstyle] | |
convention = "google" | |
[tool.isort] | |
profile = "black" | |
line_length = 88 | |
[tool.pytest.ini_options] | |
asyncio_mode = "strict" | |
asyncio_default_fixture_loop_scope = "function" | |