[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "swarms"
version = "4.1.4"
description = "Swarms - Pytorch"
license = "MIT"
authors = ["Kye Gomez <kye@apac.ai>"]
homepage = "https://github.com/kyegomez/swarms"
documentation = "https://swarms.apac.ai"  
readme = "README.md"  # Assuming you have a README.md
repository = "https://github.com/kyegomez/swarms"
keywords = ["artificial intelligence", "deep learning", "optimizers", "Prompt Engineering", "swarms", "agents"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3.10"
]


[tool.poetry.dependencies]
python = ">=3.9,<4.0.0"
torch = "2.1.1"
transformers = "4.37.2"
openai = "0.28.0"
langchain = "0.0.333"
asyncio = "3.4.3"
einops = "0.7.0"
google-generativeai = "0.3.1"
langchain-experimental = "0.0.10"
tensorflow = "*"
weaviate-client = "3.25.3"
opencv-python-headless = "4.8.1.78"
faiss-cpu = "1.7.4"
backoff = "2.2.1"
datasets = "*"
optimum = "1.15.0"
diffusers = "*"
toml = "*"
PyPDF2 = "3.0.1"
accelerate = "*"
anthropic = "*"
sentencepiece = "0.1.98"
httpx = "0.25.0"
tiktoken = "0.4.0"
attrs = "22.2.0"
ratelimit = "2.2.1"
cohere = "4.24"
huggingface-hub = "*"
pydantic = "1.10.12"
tenacity = "8.2.2"
Pillow = "9.4.0"
chromadb = "0.4.14"
termcolor = "2.2.0"
black = "23.3.0"
soundfile = "0.12.1"
torchvision = "0.16.1"
rich = "13.5.2"
sqlalchemy = "*"
bitsandbytes = "*"
pgvector = "*"
qdrant-client = "*"
sentence-transformers = "*"
peft = "*"
psutil = "*"
ultralytics = "*"
timm = "*"
supervision = "*"
scikit-image = "*"
pinecone-client = "*"
roboflow = "1.1.4"
python-dotenv = "0.19.1"

[tool.poetry.extras]
playground = ["streamlit", "requests", "pygame", "speechrecognition", "playsound", "numpy"]


[tool.poetry.group.lint.dependencies]
ruff = ">=0.0.249,<0.1.7"
types-toml = "^0.10.8.1"
types-redis = "^4.3.21.6"
types-pytz = "^2023.3.0.0"
black = "^23.1.0"
types-chardet = "^5.0.4.6"
mypy-protobuf = "^3.0.0"


[tool.autopep8]
max_line_length = 70
ignore = "E501,W6"  # or ["E501", "W6"]
in-place = true
recursive = true
aggressive = 3

[tool.ruff]
line-length = 70

[tool.flake8]
line-length = 70
ignore = "E501,W6"  # or ["E501", "W6"]

[tool.black]
line-length = 70
target-version = ['py38']
preview = true


[tool.poetry.scripts]
swarms = 'swarms.cli._cli:main'


