content: [build-system]
  build-backend = "hatchling.build"
  requires = [
    "hatchling>=1.13",
  ]
  
  [project]
  name = "sims"
  description = "Turn Terraform scripts into automated adversary emulation for the Cloud."
  readme = "README.md"
  authors = [
    { name = "Chris Lo", email = "chris@tracecat.com" },
    { name = "Daryl Lim", email = "daryl@tracecat.com" },
  ]
  requires-python = ">=3.11.6"
  classifiers = [
    "Development Status :: 4 - Beta",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.12",
    "Topic :: Security",
  ]
  dynamic = [
    "version",
  ]
  dependencies = [
    "cryptography",
    "fastapi",
    "modal",
    "openai",
    "orjson",
    "pydantic==2.6.1",
    "python-dotenv",
    "python-multipart",
    "tenacity",
    "uvicorn",
    "websockets",
  ]
  [project.optional-dependencies]
  test = [
    "coverage[toml]",
    "pytest",
  ]
  
  [tool.hatch.version]
  path = "sims/__init__.py"
  
  [tool.ruff]
  exclude = ["tests/scenarios/*.py"]
  select = [
    "E",  # pycodestyle errors
    "W",  # pycodestyle warnings
    "F",  # pyflakes
    "I",  # isort
    "C",  # flake8-comprehensions
    "B",  # flake8-bugbear
    "UP", # pyupgrade
  ]
  ignore = [
    "E501", # line too long, handled by black
    "B008", # do not perform function calls in argument defaults
    "C901", # too complex
    "W191", # indentation contains tabs
    "UP",   # pyupgrade
  ]
  
  [tool.coverage.run]
  parallel = true
  source = ["tests"]
  