content: [build-system]
  requires = ["hatchling", "hatch-vcs"]
  build-backend = "hatchling.build"
  
  [project]
  name = "cooler"
  version = "0.10.4"
  description = "Sparse binary format for genomic interaction matrices."
  requires-python = ">=3.9"
  license = {text = "BSD-3-Clause"}
  authors = [
    {name = "Nezar Abdennur", email = "nabdennur@gmail.com"},
  ]
  maintainers = [
    {name = "Open2C", email = "open.chromosome.collective@gmail.com"}
  ]
  keywords = [
      "genomics",
      "bioinformatics",
      "Hi-C",
      "contact",
      "matrix",
      "sparse",
      "format",
      "hdf5"
  ]
  classifiers = [
      "Development Status :: 4 - Beta",
      "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",
  ]
  
  readme = "README.md"
  
  dependencies = [
      "numpy>=1.26,<3",
      "scipy>=0.16",
      "pandas>1.5",
      "h5py>=2.5",
      "click>=7",
      "cytoolz",
      "multiprocess",
      "pyfaidx",
      "asciitree",
      "pyyaml",
      "simplejson",
  ]
  
  [project.optional-dependencies]
  all = [
      "biopython",
      "dask[array,dataframe]",
      "ipytree>=0.2.2",
      "ipywidgets>=8.0.0",
      "matplotlib",
  #    "pypairix; platform_system != 'Windows'", # doesn't compile, see 4dn-dcic/pairix#79
      "psutil",
      "pysam; platform_system != 'Windows'",
  ]
  test = [
      "coverage[toml]",
      "isort",
      "hypothesis",
      "pytest",
      "pytest-cov",
      "ruff",
  ]
  dev = [
      "cooler[all,test]",
      "pre-commit"
  ]
  docs = [
      "autodocsumm",
      "m2r",
      "recommonmark",
      "Sphinx>=1.6",
      "sphinx-autobuild",
      "sphinx_rtd_theme",
  ]
  
  [project.urls]
  homepage = "https://open2c.github.io/cooler"
  documentation = "https://cooler.readthedocs.io"
  repository = "https://github.com/open2c/cooler"
  changelog = "https://github.com/open2c/cooler/blob/master/CHANGES.md"
  
  [project.scripts]
  cooler = "cooler.cli:cli"
  
  [tool.hatch.version]
  path = "src/cooler/_version.py"
  
  [tool.ruff]
  src = ["src"]
  exclude = [
      ".venv",
      "__main__.py",
  ]
  
  [tool.ruff.lint]
  extend-select = [
      "B",  # bugbear
      # "C",  # complexity
      # "D",  # pydocstyle
      "E",  # style errors
      "F",  # pyflakes
      "I",  # isort
      "RUF", # ruff-specific rules
      "UP", # pyupgrade
      "W",  # style  warnings
  ]
  
  [tool.ruff.lint.isort]
  known-first-party = ["cooler"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  
  [tool.pytest.ini_options]
  minversion = "7"
  log_cli_level = "INFO"
  xfail_strict = true
  addopts = [
      "-ra",
      "--strict-config",
      "--strict-markers",
      "--cov=cooler",
      "--cov-config=pyproject.toml",
      "--cov-report=term-missing",
      "--cov-report=html",
      "--cov-report=xml",
  ]
  filterwarnings = ["ignore::PendingDeprecationWarning"]
  testpaths = ["tests"]
  
  [tool.coverage.run]
  source = ["cooler"]
  
  omit = [
      "*/cooler/__main__.py",
      "*/cooler/_version.py",
      "*/cooler/sandbox/*",
      "*/cooler/cli/csort.py"
  ]
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
      "return NotImplemented",
      "raise NotImplementedError"
  ]
  
  [tool.hatch.envs.default.scripts]
  fix = "ruff check --fix src tests"
  lint = "ruff check src tests"
  test = "pytest ."
  docs = "sphinx-autobuild docs docs/_build/html"
  
  [tool.hatch.envs.test]
  features = ["dev"]
  
  [[tool.hatch.envs.test.matrix]]
  python = ["3.8", "3.9", "3.10", "3.11", "3.12"]
  