Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
115 lines (98 loc) · 3.42 KB
/
Copy pathpyproject.toml
File metadata and controls
115 lines (98 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "skyflo-engine"
dynamic = ["version"]
description = "Skyflo.ai Engine Service - Middleware for Cloud Native AI Agent"
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
keywords = ["ai", "agent", "cloud native", "engine", "open source"]
dependencies = [
"fastapi>=0.110.0",
"uvicorn>=0.27.1",
"pydantic>=2.10.6",
"pydantic-settings>=2.2.1",
"python-jose[cryptography]>=3.3.0",
"passlib[bcrypt]>=1.7.4",
"email-validator>=2.1.0.post1",
"casbin>=1.41.0",
"httpx>=0.27.0",
"python-multipart>=0.0.9",
"aiohttp>=3.11.14",
"fastapi-websocket-pubsub>=0.3.9",
"tortoise-orm>=0.24.2",
"aerich==0.8.2",
"broadcaster>=0.3.1",
"redis>=5.0.1",
"fastapi-limiter>=0.1.6",
"langgraph>=0.3.18",
"fastmcp>=2.12.3",
"openai>=1.68.2",
"typer>=0.15.2",
"fastapi-users-tortoise>=0.2.0",
"python-decouple>=3.8",
"litellm>=1.67.4",
"langgraph-checkpoint-postgres>=2.0.23",
"psycopg[binary]>=3.1.0",
"asyncpg>=0.30.0",
]
[[project.authors]]
name = "Karan Jagtiani"
email = "karan@skyflo.ai"
[project.optional-dependencies]
default = ["pytest>=8.0.2", "pytest-cov>=4.1.0", "pytest-asyncio>=0.23.5", "pytest-mock>=3.12.0", "pytest-env>=1.1.3", "mypy>=1.8.0", "black>=24.2.0", "ruff>=0.3.0"]
[project.scripts]
skyflo-engine = "engine.main:run"
[project.urls]
Documentation = "https://github.com/skyflo-ai/skyflo#readme"
Issues = "https://github.com/skyflo-ai/skyflo/issues"
Source = "https://github.com/skyflo-ai/skyflo"
[tool.hatch.version]
path = "src/api/__about__.py"
[tool.hatch.build.targets.wheel]
packages = ["src/api"]
[tool.hatch.envs.default]
dependencies = ["pytest>=8.0.2", "pytest-cov>=4.1.0", "pytest-asyncio>=0.23.5", "pytest-mock>=3.12.0", "pytest-env>=1.1.3", "mypy>=1.8.0", "black>=24.2.0", "ruff>=0.3.0"]
[tool.hatch.envs.default.scripts]
test = "pytest {args:tests}"
test-cov = "pytest --cov {args:src/api}"
format = "black {args:src/api}"
lint = "ruff check {args:src/api}"
type-check = "mypy --install-types --non-interactive {args:src/api}"
[tool.coverage.run]
source_pkgs = ["api", "tests"]
branch = true
parallel = true
omit = ["src/api/__about__.py"]
[tool.coverage.paths]
api = ["src/api", "*/api/src/api"]
tests = ["tests", "*/api/tests"]
[tool.mypy]
python_version = "3.11"
warn_unused_configs = true
ignore_missing_imports = true
[tool.ruff]
target-version = "py311"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "B", "I"]
ignore = [
"B008", # Do not perform function call in argument defaults - standard FastAPI pattern with Depends()
]
[tool.ruff.lint.per-file-ignores]
"src/api/agent/prompts.py" = ["E501"] # Allow long lines in prompt files
"src/api/agent/graph.py" = ["E501"] # Allow long lines in graph error messages
"src/api/agent/model_node.py" = ["E501"] # Allow long lines in model node messages
"src/api/endpoints/agent.py" = ["E501"] # Allow long lines in endpoint messages
"src/api/endpoints/conversation.py" = ["E501"] # Allow long lines in endpoint messages
"src/api/integrations/jenkins/jenkins.py" = ["E501"] # Allow long lines in integration messages
"src/api/services/integrations.py" = ["E501"] # Allow long lines in integration messages
[tool.black]
line-length = 100
target-version = ["py311"]
[tool.aerich]
tortoise_orm = "src.api.config.database.TORTOISE_ORM_CONFIG"
location = "./migrations"
src_folder = "./."