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

[project]
name = "ins_pricing"
version = "0.9.6"
description = "Reusable modelling, pricing, governance, and reporting utilities."
readme = "README.md"
requires-python = ">=3.9"
license = { text = "Proprietary" }
authors = [{ name = "meishi125478" }]
keywords = ["pricing", "insurance", "bayesopt", "ml"]
classifiers = [
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.9",
  "License :: Other/Proprietary License",
  "Operating System :: OS Independent",
  "Intended Audience :: Developers",
]
dependencies = [
  "numpy>=1.20",
  "pandas>=1.4",
]

[project.optional-dependencies]
bayesopt = [
  "torch>=1.10.1",
  "optuna>=3.0",
  "xgboost>=1.6",
  "scikit-learn>=1.1",
  "statsmodels>=0.13",
  "joblib>=1.2",
  "matplotlib>=3.5",
]
plotting = [
  "matplotlib>=3.5",
  "scikit-learn>=1.1",
]
explain = [
  "torch>=1.10.1",
  "shap>=0.41",
  "scikit-learn>=1.1",
]
geo = [
  "contextily>=1.3",
  "matplotlib>=3.5",
]
gnn = [
  "torch>=1.13",
  "pynndescent>=0.5",
  "torch-geometric>=2.3",
]
frontend = [
  "nicegui>=3.6",
  "openpyxl>=3.1",
]
all = [
  "torch>=1.10.1",
  "optuna>=3.0",
  "xgboost>=1.6",
  "scikit-learn>=1.1",
  "statsmodels>=0.13",
  "joblib>=1.2",
  "matplotlib>=3.5",
  "shap>=0.41",
  "contextily>=1.3",
  "pynndescent>=0.5",
  "torch-geometric>=2.3",
  "nicegui>=3.6",
  "openpyxl>=3.1",
]

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["."]
include = ["ins_pricing*", "model_manager_tool*"]

[tool.setuptools.package-data]
ins_pricing = ["**/*.json", "**/*.md"]
model_manager_tool = ["web/*.html", "web/*.js", "web/*.css", "README.md"]

[tool.setuptools.exclude-package-data]
ins_pricing = ["examples/*", "examples/**/*"]
