[project]
name = "yu-mcal"
version = "0.2.1"
description = "Program for the calculation of mobility tensor for organic semiconductor crystals"
requires-python = ">=3.9"
dependencies = [
    "matplotlib>=3.9.4",
    "numpy>=2.0.2",
    "pandas>=2.3.3",
    "yu-tcal==3.1.0",
]
authors = [
    {name = "Hiroyuki Matsui", email = "h-matsui@yz.yamagata-u.ac.jp"},
    {name = "Koki Ozawa"},
]
readme = "README.md"
license = {file = "LICENSE"}
keywords = ["organic semiconductor", "mobility", "mobility tensor", "transfer integral", "reorganization energy"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "License :: OSI Approved :: MIT License",
    "Intended Audience :: Science/Research",
    "Intended Audience :: Education",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Chemistry",
    "Topic :: Scientific/Engineering :: Physics",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/mcal"]

[dependency-groups]
dev = [
    "autodoc-pydantic>=2.2.0",
    "furo>=2025.12.19",
    "sphinx>=7.4.7",
    "taskipy>=1.14.1",
]

[tool.taskipy.tasks]
docs-generate = "sphinx-apidoc -f -o docs-src/source src/mcal && sphinx-build -M clean docs-src/source docs && sphinx-build -b html docs-src/source docs && touch docs/.nojekyll"

[project.scripts]
mcal = "mcal.mcal:main"

[tool.setuptools.packages.find]
where = ["src"]

[tool.setuptools.package-data]
mcal = ["constants/element_properties.csv"]
