Spaces:
Paused
Paused
| [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" | |