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


[tool.poetry]
name = "swarms"
version = "7.2.7"
description = "Swarms - TGSC"
license = "MIT"
authors = ["Kye Gomez <kye@apac.ai>"]
homepage = "https://github.com/kyegomez/swarms"
documentation = "https://docs.swarms.world"
readme = "README.md"
repository = "https://github.com/kyegomez/swarms"
keywords = [
    "artificial intelligence",
    "deep learning",
    "optimizers",
    "Prompt Engineering",
    "swarms",
    "agents",
    "llms",
    "transformers",
    "multi-agent",
    "swarms of agents",
    "Enterprise-Grade Agents",
    "Production-Grade Agents",
    "Agents",
    "Multi-Grade-Agents",
    "Swarms",
    "Transformers",
    "LLMs",
    "Prompt Engineering",
    "Agents",
    "Generative Agents",
    "Generative AI",
    "Agent Marketplace",
    "Agent Store",
    "quant",
    "finance",
    "algorithmic trading",
    "portfolio optimization",
    "risk management",
    "financial modeling",
    "machine learning for finance",
    "natural language processing for finance",
]
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.10,<4.0"
# torch = ">=2.1.1,<3.0"
# transformers = ">= 4.39.0, <5.0.0"
setuptools = "*"
asyncio = ">=3.4.3,<4.0"
toml = "*"
pypdf = "5.1.0"
loguru = "*"
pydantic = "*"
tenacity = "*"
psutil = "*"
python-dotenv = "*"
PyYAML = "*"
docstring_parser = "0.16" # TODO:
networkx = "*"
aiofiles = "*"
rich = "*"
numpy = "*"
litellm = "*"

[tool.poetry.scripts]
swarms = "swarms.cli.main:main"


[tool.poetry.group.lint.dependencies]
black = ">=23.1,<26.0"
ruff = ">=0.5.1,<0.9.6"
types-toml = "^0.10.8.1"
types-pytz = ">=2023.3,<2025.0"
types-chardet = "^5.0.4.6"
mypy-protobuf = "^3.0.0"


[tool.poetry.group.test.dependencies]
pytest = "^8.1.1"

[tool.ruff]
line-length = 70

[tool.black]
target-version = ["py38"]
line-length = 70
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
  | docs
)/
'''

