content: [project]
  name = "markus"
  description = "Metrics system for generating statistics about your app"
  version = "5.1.0"
  readme = "README.rst"
  keywords = ["metrics", "datadog", "statsd"]
  authors = [{name = "Will Kahn-Greene"}]
  license = {text = "MPLv2"}
  requires-python = ">=3.10"
  dependencies = []
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
      "Natural Language :: English",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
  ]
  urls.Homepage = "https://github.com/mozilla-services/markus"
  urls.Documentation = "https://markus.readthedocs.io/"
  urls.Source = "https://github.com/mozilla-services/markus/"
  urls.Issues = "https://github.com/mozilla-services/markus/issues"
  
  [project.entry-points.pytest11]
  markus = "markus.pytest_plugin"
  
  [project.optional-dependencies]
  datadog = ["datadog>=0.45.0"]
  statsd = ["statsd"]
  dev = [
      "build",
      "pytest",
      "ruff",
      "Sphinx",
      "sphinx_rtd_theme",
      "time-machine",
      "tomli>=1.1.0; python_version < '3.11'",
      "tox",
      "tox-gh-actions",
      "tox-uv",
      "twine",
      "wheel",
  ]
  
  
  [build-system]
  requires = ["setuptools", "setuptools-scm"]
  build-backend = "setuptools.build_meta"
  
  
  [tool.ruff]
  line-length = 88
  target-version = "py310"
  src = ["src"]
  
  [tool.ruff.lint]
  # Enable pycodestyle (E), pyflakes (F), and bugbear (B) rules
  select = ["E", "F", "B"]
  ignore = ["E501"]
  
  [tool.ruff.lint.flake8-quotes]
  docstring-quotes = "double"
  
  
  [tool.pytest.ini_options]
  filterwarnings = [
      "error",
      # datadog kicks up a DeprecationWarning for collections use.
      "ignore:.*ABCs:DeprecationWarning",
  ]
  
  
  [tool.tox]
  legacy_tox_ini = """
  [tox]
  envlist =
      py310
      py310-lint
      py311
      py312
      py313
  uv_python_preferences = only-managed
  
  [gh-actions]
  python =
      3.10: py310
      3.11: py311
      3.12: py312
      3.13: py313
  
  [testenv]
  extras = dev,datadog,statsd
  commands =
      pytest {posargs} tests/
      pytest --doctest-modules --pyargs markus
  
  [testenv:py310-lint]
  allowlist_externals = ruff
  basepython = python3.10
  changedir = {toxinidir}
  commands = 
      ruff format --check src tests
      ruff check src tests
  """
  