-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
127 lines (110 loc) · 2.8 KB
/
pyproject.toml
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
116
117
118
119
120
121
122
123
124
125
126
127
[project]
name = "shadow"
dynamic = ["version"]
description = "A batteries-included library for building AI-powered software."
readme = "README.md"
license = { file = "LICENSE" }
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
keywords = ["ai", "chatbot", "llm"]
requires-python = ">=3.9"
dependencies = [
"aiofiles~=23.1",
"aiosqlite~=0.18",
"alembic~=1.10",
"asyncpg~=0.27",
"cloudpickle~=2.2",
"datamodel-code-generator~=0.17",
"fastapi~=0.89",
"httpx~=0.23",
"jinja2~=3.1",
"langchain~=0.0.179",
"nest_asyncio~=1.5",
"openai~=0.27",
"pendulum~=2.1",
"prefect~=2.8",
"pydantic[dotenv]~=1.10",
"pyperclip~=1.8",
"python-multipart~=0.0.6",
"rich~=13.3",
"sqlalchemy[asyncio]~=1.4",
"sqlitedict~=2.1",
"sqlmodel~=0.0.8",
"textual~=0.18",
"tiktoken~=0.3",
"ulid-py~=1.1",
"uvicorn~=0.20",
"xxhash~=3.2",
"yake~=0.4",
"typer~=0.7",
"beautifulsoup4~=4.11",
"bleach~=6.0",
"duckduckgo_search~=3.8",
"fake-useragent~=1.1",
"google_api_python_client~=2.72",
"simpleeval~=0.9",
"trafilatura~=1.4",
"chardet~=5.1",
"wikipedia~=1.4",
]
[project.optional-dependencies]
dev = [
"black[jupyter]",
"ipython",
"mkdocs-autolinks-plugin~=0.7",
"mkdocs-awesome-pages-plugin~=2.8",
"mkdocs-material~=9.1",
"mkdocstrings[python]~=0.20",
"pandas>=2.0",
"pdbpp~=0.10",
"pre-commit>=2.21,<4.0",
"pytest-asyncio~=0.20",
"pytest-env~=0.8",
"pytest-sugar~=0.9",
"pytest~=7.2",
"ruff",
]
postgres = ["asyncpg~=0.27.0"]
chromadb = ["chromadb~=0.3.25"]
pdf = ["pypdf~=3.7.0"]
[project.urls]
Code = "https://github.com/TheShadowEngine/shadowAI"
Documentation = "https://github.com/TheShadowEngine/shadowAI"
[project.scripts]
shadow = "shadow.cli.cli:app"
[build-system]
requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
[tool.setuptools_scm]
[tool.pytest.ini_options]
markers = ["llm: indicates that a test calls an LLM (may be slow)."]
testpaths = ["tests"]
norecursedirs = [
"*.egg-info",
".git",
".mypy_cache",
".pytest_cache",
".ruff_cache",
".vscode",
"node_modules",
]
asyncio_mode = 'auto'
filterwarnings = [
"ignore:'crypt' is deprecated and slated for removal in Python 3.13:DeprecationWarning",
]
env = [
"SHADOW_TEST_MODE=1",
"D:SHADOW_DATABASE_CONNECTION_URL=sqlite+aiosqlite:////tmp/shadow/shadow-tests.sqlite",
"SHADOW_LOG_CONSOLE_WIDTH=120",
'SHADOW_LLM_MODEL=gpt-3.5-turbo',
]
[tool.black]
preview = true
[tool.ruff]
extend-select = ["I"]
[tool.ruff.per-file-ignores]
"__init__.py" = ['I', 'F401', 'E402']
"conftest.py" = ["F401", "F403"]
'tests/fixtures/*.py' = ['F403']