content: [tool.poetry]
  name = "matchms"
  version = "0.31.0"
  description = "Python library for large-scale comparisons and processing of tandem mass spectral data"
  authors = ["matchms developer team <florian.huber@hs-duesseldorf.de>"]
  
  license = "Apache-2.0"
  readme = "README.rst"
  repository = "https://github.com/matchms/matchms"
  documentation = "https://matchms.readthedocs.io/en/latest/"
  keywords=[ "similarity measures",
             "mass spectrometry",
             "fuzzy matching",
             "fuzzy search" ]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Education",
      "Intended Audience :: Science/Research",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: Apache Software License",
      "Natural Language :: English",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13"
  ]
  
  [tool.poetry.dependencies]
  python = ">=3.10,<3.14"
  numpy = ">=2.0.0"
  scipy = "^1.15.3"
  pandas = "^2.2.3"
  lxml = "^5.4.0"
  matplotlib = ">=3.7"
  networkx = "^3.4.2"
  numba = "^0.61.0"
  pickydict = ">=0.4.0"
  pyteomics = ">=4.6"
  requests = ">=2.31.0"
  sparsestack = ">=0.7.0"
  tqdm = ">=4.65.0"
  rdkit = "^2024.3.5"
  pyyaml = ">=6.0.1"
  deprecated = ">=1.2.14"
  pubchempy = ">=1.0.5"
  pynndescent = ">=0.5.13"
  
  [tool.poetry.group.dev.dependencies]
  decorator = "^5.1.1"
  pytest = "^7.4.0"
  pytest-cov = "^4.1.0"
  yapf = "^0.40.1"
  testfixtures = "^7.1.0"
  twine = "^6.1.0"
  poetry-bumpversion = "^0.3.1"
  pre-commit = "^4.2.0"
  ruff = "^0.11.4"
  
  [tool.poetry.group.docs.dependencies]
  sphinxcontrib-apidoc = "^0.3.0"
  sphinx-rtd-theme = "^1.2.2"
  sphinx = "<7"
  
  [build-system]
  requires = ["poetry-core"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.poetry_bumpversion.file."matchms/__version__.py"]
  
  [tool.ruff]
  extend-exclude = ["integration-tests", "paper", "readthedocs"]
  line-length = 120
  output-format = "grouped"
  
  [tool.ruff.format]
  docstring-code-format = true
  line-ending = "lf"
  
  [tool.ruff.lint]
  # TODO: add some rules in future, eg. W291/292
  extend-select = ["D", "E", "I"]
  # TODO: some of these rules should be enforced in the future, eg. E713
  ignore = [
      "D100",
      "D101",
      "D102",
      "D103",
      "D104",
      "D105",
      "D107",
      "D200",
      "D201",
      "D202",
      "D203",
      "D204",
      "D205",
      "D209",
      "D210",
      "D212",
      "D213",
      "D4",
      "E713"
  ]
  
  [tool.ruff.lint.isort]
  known-first-party = ["matchms"]
  lines-after-imports = 2
  no-lines-before = ["future", "standard-library", "third-party", "first-party", "local-folder"]
  section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]
  
  # disable pydoc for tests
  [tool.ruff.lint.per-file-ignores]
  "tests/**" = ["D"]
  
  [tool.pytest.ini_options]
  testpaths = [
      "tests",
      "integration-tests",
  ]
  
  [build_sphinx]
  source-dir = "docs"
  build-dir = "docs/_build"
  all_files = 1
  builder = "html"
  