content: [build-system]
  build-backend = "setuptools.build_meta"
  requires = ["setuptools>=68.0", "wheel", "Cython>=3.0"]
  
  [project]
  authors = [{name = "Mike Macpherson", email = "mmacpherson@users.noreply.github.com"}]
  classifiers = [
    "Programming Language :: Cython",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Operating System :: MacOS",
    "Operating System :: POSIX :: Linux",
    "License :: OSI Approved :: MIT License",
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Financial and Insurance Industry",
    "Topic :: Office/Business :: Financial :: Accounting"
  ]
  dependencies = [
    "pandas>=2.0",
    "pyarrow",  # To quiet pandas deprecation warning
    "pydantic>=2",
    "python-dotenv"
  ]
  description = "Library to compute US federal taxes, and state taxes for some states."
  license = {file = "LICENSE.txt", content-type = "text/plain"}
  name = "tenforty"
  readme = {file = "README.md", content-type = "text/markdown"}
  requires-python = ">= 3.10"
  version = "2024.5"
  
  [project.optional-dependencies]
  dev = [
    "hypothesis",
    "pytest>=7.0",
    "pytest-cov",
    "ruff>=0.2.0",
    "pre-commit"
  ]
  jupyter = [
    "jupyter",
    "seaborn",
    "ipykernel"
  ]
  
  [tool.cython]
  language_level = "3"
  
  [tool.ruff]
  # Exclude a variety of commonly ignored directories.
  exclude = [
    ".bzr",
    ".direnv",
    ".eggs",
    ".git",
    ".git-rewrite",
    ".hg",
    ".mypy_cache",
    ".nox",
    ".pants.d",
    ".pytype",
    ".ruff_cache",
    ".svn",
    ".tox",
    ".venv",
    "__pypackages__",
    "_build",
    "buck-out",
    "build",
    "dist",
    "node_modules",
    "venv"
  ]
  fix = true
  indent-width = 4
  line-length = 88  # Same as Black.
  
  [tool.ruff.lint]
  # Allow unused variables when underscore-prefixed.
  dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
  # Allow autofix for all enabled rules (when `--fix`) is provided.
  fixable = ["ALL"]
  ignore = [
    "ISC001",
    "D203",
    "D213",
    "E501"  # We're already running black; if it doesn't break down further so be it.
  ]
  select = ["A", "B", "D", "E", "F", "I", "ISC", "UP", "RUF", "W"]
  unfixable = []
  
  [tool.ruff.lint.per-file-ignores]
  "*.ipynb" = ["B018"]
  
  [tool.setuptools]
  ext-modules = [
    {name = "tenforty.otslib", sources = ["src/tenforty/otslib/ots.pyx"], library-dirs = ["src/tenforty/otslib"]}
  ]
  package-dir = {"" = "src"}
  packages = ["tenforty", "tenforty.otslib"]
  
  [tool.setuptools.package-data]
  "tenforty.otslib" = ["*.pyx", "*.pxd", "*.cpp"]
  