griptape
/
pyproject.toml
200 строк · 5.5 Кб
1[tool.poetry]
2name = "griptape"
3version = "0.25.1"
4description = "Modular Python framework for LLM workflows, tools, memory, and data."
5authors = ["Griptape <hello@griptape.ai>"]
6license = "Apache 2.0"
7readme = "README.md"
8repository = "https://github.com/griptape-ai/griptape"
9
10packages = [
11{include = "griptape"}
12]
13
14[tool.poetry.dependencies]
15python = "^3.9"
16openai = "^1.1.1"
17attrs = ">=22"
18jinja2 = ">=3.1.3"
19marshmallow = ">=3"
20marshmallow-enum = ">=1.5"
21tiktoken = ">=0.7"
22rich = ">=13"
23schema = ">=0.7"
24pyyaml = ">=6"
25tenacity = ">=8.0"
26numpy = ">=1"
27stringcase = "^1.2.0"
28docker = "^6.1.3"
29sqlalchemy = "~=1.0"
30dateparser = "^1.1.8"
31requests = "^2"
32
33# drivers
34cohere = { version = ">=4", optional = true }
35anthropic = { version = "^0.20.0", optional = true }
36transformers = { version = "^4.30", optional = true }
37huggingface-hub = { version = ">=0.13", optional = true }
38boto3 = { version = "^1.28.2", optional = true }
39sqlalchemy-redshift = { version = "*", optional = true }
40snowflake-sqlalchemy = { version = "^1.4.7", optional = true }
41pinecone-client = { version = "^3", optional = true }
42pymongo = { version = "*", optional = true }
43marqo = { version = ">=1.1.0", optional = true }
44redis = { version = "^4.6.0", optional = true }
45opensearch-py = { version = "^2.3.1", optional = true }
46pgvector = { version = "^0.2.3", optional = true }
47psycopg2-binary = { version = "^2.9.9", optional = true }
48google-generativeai = { version = "^0.4.1", optional = true }
49trafilatura = {version = "^1.6", optional = true}
50playwright = {version = "^1.42", optional = true}
51beautifulsoup4 = {version = "^4.12.3", optional = true}
52markdownify = {version = "^0.11.6", optional = true}
53voyageai = {version = "^0.2.1", optional = true}
54elevenlabs = {version = "^1.1.2", optional = true}
55torch = {version = "^2.3.0", optional = true}
56
57# loaders
58pandas = {version = "^1.3", optional = true}
59pypdf = {version = "^3.9", optional = true}
60pillow = {version = "^10.2.0", optional = true}
61mail-parser = {version = "^3.15.0", optional = true}
62
63[tool.poetry.extras]
64drivers-prompt-cohere = ["cohere"]
65drivers-prompt-anthropic = ["anthropic"]
66drivers-prompt-huggingface = ["huggingface-hub", "transformers"]
67drivers-prompt-huggingface-pipeline = ["huggingface-hub", "transformers", "torch"]
68drivers-prompt-amazon-bedrock = ["boto3", "anthropic"]
69drivers-prompt-amazon-sagemaker = ["boto3", "transformers"]
70drivers-prompt-google = ["google-generativeai"]
71
72drivers-sql-redshift = ["sqlalchemy-redshift", "boto3"]
73drivers-sql-snowflake = ["snowflake-sqlalchemy", "snowflake", "snowflake-connector-python"]
74drivers-sql-postgres = ["pgvector", "psycopg2-binary"]
75
76drivers-memory-conversation-amazon-dynamodb = ["boto3"]
77drivers-memory-conversation-redis = ["redis"]
78
79drivers-vector-marqo = ["marqo"]
80drivers-vector-pinecone = ["pinecone-client"]
81drivers-vector-mongodb = ["pymongo"]
82drivers-vector-redis = ["redis"]
83drivers-vector-opensearch = ["opensearch-py"]
84drivers-vector-amazon-opensearch = ["opensearch-py", "boto3"]
85drivers-vector-postgresql = ["pgvector", "psycopg2-binary"]
86
87drivers-embedding-amazon-bedrock = ["boto3"]
88drivers-embedding-amazon-sagemaker = ["boto3"]
89drivers-embedding-huggingface = ["huggingface-hub", "transformers"]
90drivers-embedding-voyageai = ["voyageai"]
91drivers-embedding-google = ["google-generativeai"]
92
93drivers-web-scraper-trafilatura = ["trafilatura"]
94drivers-web-scraper-markdownify = ["playwright", "beautifulsoup4", "markdownify"]
95
96drivers-event-listener-amazon-sqs = ["boto3"]
97drivers-event-listener-amazon-iot = ["boto3"]
98
99loaders-dataframe = ["pandas"]
100loaders-pdf = ["pypdf"]
101loaders-image = ["pillow"]
102loaders-email = ["mail-parser"]
103
104all = [
105# drivers
106"cohere",
107"anthropic",
108"hugginface-hub",
109"transformers",
110"sqlalchemy-redshift",
111"boto3",
112"snowflake-sqlalchemy",
113"snowflake",
114"marqo",
115"pinecone-client",
116"pymongo",
117"redis",
118"opensearch-py",
119"pgvector",
120"psycopg2-binary",
121"google-generativeai",
122"trafilatura",
123"playwright",
124"beautifulsoup4",
125"markdownify",
126"voyageai",
127"elevenlabs",
128"torch",
129
130# loaders
131"pandas",
132"pypdf",
133"pillow",
134"mail-parser",
135]
136
137[tool.poetry.group.test]
138optional = true
139
140[tool.poetry.group.test.dependencies]
141pytest = "~=7.1"
142pytest-mock = "*"
143mongomock = "*"
144
145twine = ">=4"
146moto = {extras = ["dynamodb", "iotdata", "sqs"], version = "^4.2.13"}
147pytest-xdist = "^3.3.1"
148pytest-cov = "^5.0.0"
149pytest-env = "^1.1.1"
150fuzzywuzzy = "^0.18.0"
151pytest-clarity = "^1.0.1"
152
153
154[tool.poetry.group.dev]
155optional = true
156
157[tool.poetry.group.dev.dependencies]
158ruff = "^0.4.4"
159pyright = "^1.1.363"
160pre-commit = "^3.7.1"
161boto3-stubs = {extras = ["bedrock", "iam", "opensearch", "s3", "sagemaker"], version = "^1.34.105"}
162
163
164[tool.poetry.group.docs]
165optional = true
166
167[tool.poetry.group.docs.dependencies]
168mkdocs = "^1.5.2"
169mkdocs-material = "^9.2.8"
170mkdocs-glightbox = "^0.3.4"
171mkdocstrings = {extras = ["python"], version = "^0.23.0"}
172mkdocs-gen-files = "^0.5.0"
173mkdocs-literate-nav = "^0.6.0"
174mkdocs-section-index = "^0.3.6"
175pymdown-extensions = "^10.3"
176
177[tool.ruff]
178line-length = 120
179
180[tool.ruff.format]
181skip-magic-trailing-comma = true
182
183[tool.pyright]
184venvPath = "."
185venv = ".venv"
186include = ["griptape"]
187exclude = [
188"**/__pycache__",
189]
190pythonVersion = "3.9"
191reportOptionalMemberAccess = "none"
192reportIncompatibleVariableOverride = "none" # see thread: https://github.com/microsoft/pyright/issues/5933
193
194[tool.pytest_env]
195OPENAI_API_KEY = {value = "api-key", skip_if_set = true}
196AZURE_OPENAI_API_KEY = { value = "api-key", skip_if_set = true}
197
198[build-system]
199requires = ["poetry-core"]
200build-backend = "poetry.core.masonry.api"
201