[build-system]
requires = ["setuptools", "setuptools-scm", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "primaite"
description = "PrimAITE (Primary-level AI Training Environment) is a simulation environment for training AI under the ARCD programme."
authors = [{name="QinetiQ Training and Simulation Ltd"}]
license = {text = "MIT License"}
requires-python = ">=3.8, <3.11"
dynamic = ["version", "readme"]
classifiers = [
    "License :: MIT License",
    "Development Status :: 4 - Beta",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: MacOS",
    "Operating System :: POSIX :: Linux",
    "Operating System :: Unix",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3 :: Only",
]

dependencies = [
    "gym==0.21.0",
    "jupyterlab==3.6.1",
    "kaleido==0.2.1",
    "matplotlib==3.7.1",
    "networkx==3.1",
    "numpy==1.23.5",
    "platformdirs==3.5.1",
    "plotly==5.15.0",
    "polars==0.18.4",
    "PyYAML==6.0",
    "ray[rllib]==2.2.0",
    "stable-baselines3==1.6.2",
    "tensorflow==2.12.0",
    "typer[all]==0.9.0"
]

[tool.setuptools.dynamic]
version = {file = ["src/primaite/VERSION"]}
readme = {file = ["README.md"]}

[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = true
license-files = ["LICENSE"]


[project.optional-dependencies]
dev = [
    "build==0.10.0",
    "flake8==6.0.0",
    "furo==2023.3.27",
    "pip-licenses==4.3.0",
    "pre-commit==2.20.0",
    "pytest==7.2.0",
    "pytest-xdist==3.3.1",
    "pytest-cov==4.0.0",
    "pytest-flake8==1.1.1",
    "setuptools==66",
    "Sphinx==6.1.3",
    "sphinx-code-tabs==0.5.3",
    "sphinx-copybutton==0.5.2",
    "wheel==0.38.4"
]

[project.scripts]
primaite = "primaite.cli:app"

[tool.isort]
profile = "black"
line_length = 120
force_sort_within_sections = "False"
order_by_type = "False"

[tool.black]
line-length = 120
