content: [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [project]
  name = "chemperium"
  readme = "README.md"
  requires-python = ">=3.8"
  license = {file = "LICENSE"}
  description = "Chemperium package"
  dependencies = [
      "rdkit",
      "pandas",
      "scikit-learn",
      "numpy",
      "tqdm",
      "tensorflow<=2.15",
      "keras<3.0",
      "scipy",
  ]
  authors = [
      {name = "Maarten R. Dobbelaere", email = "mrodobbe.dobbelaere@ugent.be"},
  ]
  
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Intended Audience :: Developers",
      "Topic :: Software Development :: Build Tools",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
  ]
  dynamic = ["version"]
  
  [project.urls]
  source = "https://github.com/mrodobbe/chemperium"
  tracker = "https://github.com/mrodobbe/chemperium/issues"
  # documentation = "https://chemperium.readthedocs.io"
  
  [project.optional-dependencies]
  test = [
      "mypy",
      "hypothesis",
      "pytest",
      "pytest-cov",
      "tox",
      "genbadge[coverage]",
  ]
  
  [tool.hatch.version]
  path = "src/chemperium/__about__.py"
  
  [tool.ruff]
  show-fixes = true
  
  [tool.ruff.lint]
  select = [
      "F",  # Pyflakes
      "E",  # Pycodestyle
      "W",  # Pycodestyle
      "D",  # Pydocstyle
      "UP",  # pyupgrade
      "I",  # isort
      "PL",  # Pylint
  ]
  
  [tool.ruff.lint.per-file-ignores]
  "tests/**/*" = ["D", "PLR2004"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.mypy]
  python_version = "3.11"
  warn_redundant_casts = true
  warn_unused_configs = true
  pretty = true
  show_error_codes = true
  show_error_context = true
  show_column_numbers = true
  
  disallow_any_generics = true
  disallow_subclassing_any = true
  disallow_untyped_calls = true
  disallow_incomplete_defs = true
  check_untyped_defs = true
  disallow_untyped_decorators = true
  no_implicit_optional = true
  warn_unused_ignores = true
  warn_return_any = true
  no_implicit_reexport = true
  
  # More strict checks for library code
  [[tool.mypy.overrides]]
  module = "chemperium.*"
  disallow_untyped_defs = true
  ignore_missing_imports = true
  disable_error_code = ["assignment", "import-untyped", "no-any-return"]
  
  # Ignore certain missing imports
  # [[tool.mypy.overrides]]
  # module = "thirdparty.*"
  # ignore_missing_imports = true
  
  [tool.pytest.ini_options]
  testpaths = [
      "tests",
  ]
  
  [tool.coverage.run]
  omit = [
      '__about__.py'
  ]
  
  
  [tool.coverage.report]
  exclude_also = [
      "if __name__ == .__main__.:",
  ]
  