[build-system]
requires = [
    "maturin>=1.0,<2.0",
    "cmdstanpy>=1.0.4",
]
build-backend = "maturin"

[project]
name = "farseer"
dynamic = ["version"]
description = "Fast Bayesian time series forecasting in Rust, with Python bindings"
readme = "README.md"
requires-python = ">=3.11"
authors = [
    {name = "Ryan Bieber", email = "ryan.bieber@protonmail.com"},
]
license = {text = "GPL-3.0-or-later"}
keywords = ["forecasting", "time-series", "prophet", "bayesian", "rust"]
classifiers = [
    "Programming Language :: Rust",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Development Status :: 4 - Beta",
    "Intended Audience :: Science/Research",
    "Intended Audience :: Developers",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Information Analysis",
    "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
    "Operating System :: POSIX :: Linux",
    "Operating System :: MacOS",
]
dependencies = [
    "cmdstanpy>=1.0.4",
    "numpy>=1.15.4",
    "matplotlib>=2.0.0",
    "pandas>=1.0.4",
    "polars>=0.20.0",
    "pyarrow>=10.0",
    "tqdm>=4.36.1",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "pytest-cov>=4.0",
]
parallel = [
    "tqdm>=4.36.1",
]
notebook = [
    "jupyter>=1.0",
    "notebook>=7.0",
    "ipykernel>=6.0",
    "prophet>=1.1",
    "pandas>=1.0",
    "seaborn>=0.12",
    "scikit-learn>=1.0",
]

[project.urls]
Homepage = "https://github.com/ryanbieber/seer"
Documentation = "https://github.com/ryanbieber/seer"
Repository = "https://github.com/ryanbieber/seer"
Issues = "https://github.com/ryanbieber/seer/issues"

[tool.maturin]
# Python source files are in the farseer/ directory
python-source = "."
# The Rust module will be named _farseer and placed inside the farseer package
module-name = "farseer._farseer"
# Include Stan model and related files
include = ["stan/*"]
