[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="Defence Science and Technology Laboratory UK", email="oss@dstl.gov.uk"}]
license = {file = "LICENSE"}
requires-python = ">=3.9, <3.12"
dynamic = ["version", "readme"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: MacOS",
    "Operating System :: POSIX :: Linux",
    "Operating System :: Unix",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3 :: Only",
]

dependencies = [
    "gymnasium==0.28.1",
    "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.20.30",
    "prettytable==3.8.0",
    "PyYAML==6.0",
    "typer[all]==0.9.0",
    "pydantic==2.7.0",
    "ipywidgets",
    "deepdiff"
]

[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]
rl = [
    "ray[rllib] >= 2.20.0, <2.33",
    "tensorflow==2.12.0",
    "stable-baselines3[extra]==2.1.0",
    "sb3-contrib==2.1.0",
]
dev = [
    "build==0.10.0",
    "flake8==6.0.0",
    "flake8-annotations",
    "furo==2024.01.29",
    "gputil==1.4.0",
    "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==7.1.2",
    "sphinx-copybutton==0.5.2",
    "wheel==0.38.4",
    "nbsphinx==0.9.4",
    "nbmake==1.5.4",
    "pytest-xdist==3.3.1",
    "md2pdf",
]

[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

[project.urls]
Homepage = "https://github.com/{todo:fill in URL}/PrimAITE"
Documentation = "https://{todo:fill in URL}.github.io/PrimAITE"
Repository = "https://github.com/{todo:fill in URL}/PrimAITE"
Changelog = "https://github.com/{todo:fill in URL}/PrimAITE/blob/main/CHANGELOG.md"
