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

[project]
name = "bibat"
authors = [
    {name = "Teddy Groves", email = "tedgro@dtu.dk"},
]
version = "0.2.0"
classifiers = [
    "Development Status :: 2 - Pre-Alpha",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Natural Language :: English",
    "Operating System :: MacOS :: MacOS X",
    "Operating System :: Microsoft :: Windows :: Windows 10",
    "Operating System :: POSIX",
    "Topic :: Scientific/Engineering :: Information Analysis",
]
license = {text = "GNU General Public License version 3"}
description = "Batteries-included Bayesian analysis template"
readme = "README.rst"
requires-python = ">=3.9"
dependencies = [
    "pip >= 20",
    "cookiecutter",
    "click",
    "pydantic >= 2.0.0",
]

[project.optional-dependencies]
development = [
    "black",
    "isort",
    "pre-commit",
    "codecov",
    "pytest",
    "pytest-cov",
    "tox",
    "sphinx",
    "sphinx-click",
    "furo",
]
[project.urls]
homepage = "https://github.com/teddygroves/bibat"
download = "https://pypi.org/project/bibat"
documentation = "https://bibat.readthedocs.io/"

[tool.setuptools]
include-package-data = true
packages = ["bibat", "bibat.hooks"]

[project.entry-points.console_scripts]
bibat = "bibat.cli:generate_project"

[tool.black]
line-length = 80
target-version = ['py311']
include = '\.pyi?$'
extend-exclude = '''
/(
   \.eggs         # exclude a few common directories in the
  | \.git          # root of the project
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
  | bibat/\{\{cookiecutter\.repo_name\}\}
)/
'''

[tool.isort]
known_first_party = ["bibat", "baseball"]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 80

[tool.pylint.messages_control]
disable = "C0330, C0326"

[tool.mypy]
ignore_missing_imports = true
plugins = ["pydantic.mypy"]
follow_imports = "skip"
strict_optional = true

[tool.pydantic-mypy]
init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
warn_untyped_fields = true

[tool.coverage.run]
omit = ["bibat/{{cookiecutter.repo_name}}/*"]
