content: [build-system]
  requires = ["setuptools>=61.2", "versioneer"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "pint-pulsar"
  description = "A Pulsar Timing Package, written in Python from scratch"
  authors = [
      {name = "Luo Jing", email = "sransom@nrao.edu"},
      {name = "Scott Ransom"},
      {name = "Paul Demorest"},
      {name = "Paul Ray"},
      {name = "et al."},
  ]
  license = {text = "License :: OSI Approved :: BSD License"}
  classifiers = [
      "Intended Audience :: Science/Research",
      "License :: OSI Approved :: BSD License",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "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",
      "Topic :: Scientific/Engineering :: Astronomy",
      "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  requires-python = ">=3.9"
  dependencies = [
      "numpy>=1.23.0",
      "astropy>=5.0.5",
      "pyerfa",
      "scipy>=1.9.0",
      "jplephem>=2.6",
      "matplotlib>=3.4.3",
      "emcee>=3.0.1",
      "corner>=2.0.1",
      "uncertainties",
      "loguru",
      "nestle>=0.2.0",
      "numdifftools",
  ]
  dynamic = ["version"]
  
  [project.readme]
  file = "README.rst"
  content-type = "text/x-rst"
  
  [project.urls]
  Homepage = "https://github.com/nanograv/PINT"
  Documentation = "https://nanograv-pint.readthedocs.io/"
  
  [project.entry-points]
  # See the docstring in versioneer.py for instructions. Note that you must
  # re-run 'versioneer.py setup' after changing this section, and commit the
  # resulting files.
  
  [project.scripts]
  photonphase = "pint.scripts.photonphase:main"
  event_optimize = "pint.scripts.event_optimize:main"
  pintempo = "pint.scripts.pintempo:main"
  zima = "pint.scripts.zima:main"
  pintbary = "pint.scripts.pintbary:main"
  fermiphase = "pint.scripts.fermiphase:main"
  pintk = "pint.scripts.pintk:main"
  convert_parfile = "pint.scripts.convert_parfile:main"
  compare_parfiles = "pint.scripts.compare_parfiles:main"
  tcb2tdb = "pint.scripts.tcb2tdb:main"
  t2binary2pint = "pint.scripts.t2binary2pint:main"
  pintpublish = "pint.scripts.pintpublish:main"
  
  [tool.setuptools]
  zip-safe = false
  package-dir = {"" = "src"}
  include-package-data = true
  # These should match requirements.txt
  
  [tool.setuptools.packages.find]
  where = ["src"]
  namespaces = false
  
  [tool.setuptools.package-data]
  "*" = ["*.*"]
  
  [tool.versioneer]
  VCS = "git"
  style = "pep440"
  versionfile_source = "src/pint/extern/_version.py"
  versionfile_build = "pint/extern/_version.py"
  tag_prefix = "''"
  parentdir_prefix = "'pint-'"
  
  [tool.distutils.bdist_wheel]
  universal = 0
  
  [tool.aliases]
  test = "pytest"
  
  [tool.flake8]
  max-line-length = "100"
  # This is an inappropriate non-error for slicing
  extend-ignore = """
  E203,
  E265
  # __init__ doesn't need a docstring, should be in the class
  D107
  # Other magic methods don't necessarily need docstings, what they do is well-defined
  D105
  # Style issues, suppress these for a full flake8 run
  #    E111,E114,E115,E116,E122,E123,E124,E125,E126,E127,E128,E129,E131
  #    E201,E202,E203,E221,E222,E225,E226,E227,E228,E231,E241,E251,E261,E262,E265,E266,E271,E272
  #    E301,E302,E303,E305,E306
  #    E401,E501,E502
  #    E701,E702,E703,E704,E741
  #    W291,W293,W391,W503,W504
  #    D100,D101,D102,D103,D104,D105
  #    D200,D202,D204,D205,D207,D208,D209,D210
  #    D300
  #    D400,D401,D402,D403,D412,D413
  #    RST201,RST202,RST203,RST210,RST212,RST299
  #    RST301,RST304,RST306
  # Ugh people want to break these rules
  N802  # Function names should be lowercase
  N803  # argument name should be lowercase
  N806  # variable should be lowercase"""
  statistics = "True"
  exclude = """
  docs/conf.py
  versioneer.py
  pint/mcmc_fitter.py"""
  rst-roles = """
  class,
  module,
  func,"""
  
  [tool.isort]
  multi_line_output = 3
  line_length = 88
  skip_glob = ["src/pint/extern/*"]
  include_trailing_comma = true
  combine_as_imports = true
  