content: [tool.poetry]
  name = "socceraction"
  version = "1.5.3"
  description = "Convert soccer event stream data to the SPADL format and value on-the-ball player actions"
  authors = ["Tom Decroos <tom.decroos.be@gmail.com>", "Pieter Robberechts <pieter.robberechts@kuleuven.be>"]
  license = "MIT"
  readme = 'README.md'
  homepage = "https://github.com/ML-KULeuven/socceraction"
  repository = "https://github.com/ML-KULeuven/socceraction"
  documentation = "https://socceraction.readthedocs.io"
  keywords = ["soccer", "football", "sports analytics"]
  classifiers = [
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent"
  ]
  
  [tool.poetry.urls]
  Changelog = "https://github.com/ML-KULeuven/socceraction/releases"
  
  [tool.poetry.dependencies]
  python = ">=3.9,<3.13"
  pandas = "^2.1.1"
  numpy = "^1.26.0"
  scikit-learn = "^1.3.1"
  lxml = "^4.9.3"
  pandera = "^0.17.2"
  statsbombpy = {version = "^1.11.0", optional = true}
  xgboost = {version = "^2.0.0", optional = true}
  tables = {version="^3.8.0", optional = true}
  kloppy = {version=">=3.15.0", optional = true}
  
  [tool.poetry.extras]
  statsbomb = ["statsbombpy"]
  xgboost = ["xgboost"]
  hdf = ["tables"]
  kloppy = ["kloppy"]
  
  [tool.poetry.group.test.dependencies]
  pytest = "^7.4.2"
  pytest-mock = "^3.11.1"
  pytest-cov = "^4.1.0"
  coverage = {version = "^7.3.1", extras = ["toml"]}
  codecov = "^2.1.13"
  
  [tool.poetry.group.dev.dependencies]
  pygments = "^2.16.1"
  bumpversion = "^0.6.0"
  darglint = "^1.8.1"
  ruff = "*"
  mypy = "*"
  pep8-naming = "^0.13.3"
  pre-commit = "^3.4.0"
  pre-commit-hooks = "^4.3.0"
  pyupgrade = "^3.13.0"
  
  [tool.poetry.group.docs.dependencies]
  sphinx = "^7.2.6"
  furo = "^2023.9.10"
  sphinx-autobuild = "^2021.3.14"
  sphinx-autodoc-typehints = "^1.24.0"
  
  [tool.pytest.ini_options]
  filterwarnings = "ignore::DeprecationWarning:tables.*:"
  
  [tool.coverage.paths]
  source = ["socceraction", "*/site-packages"]
  
  [tool.coverage.run]
  branch = true
  source = ["socceraction"]
  relative_files = true
  
  [tool.coverage.report]
  show_missing = true
  
  [tool.ruff]
  src = ["src", "tests"]
  line-length = 99
  target-version = 'py38'
  
  [tool.ruff.lint]
  select = [
      "ANN", # flake8-annotations
      "B",   # flake8-bugbear
      "C",   # pylint conventions
      "D",   # pydocstyle
      "E",   # pycodestyle errors
      "W",   # pylint warnings
      "F",   # pyflakes
      "I",   # isort
  ]
  ignore = [
      # ambiguous variable names (e.g., l -> 1)
      "E741",
      # missing type annotation for self in method
      "ANN101",
      # whitespace before ':'
      "E203",
      # line 79 characters
      "E501",
      # no explicit stacklevel argument found.
      "B028"
  ]
  
  
  [tool.ruff.lint.per-file-ignores]
  "socceraction/__init__.py"=["D205","D400"]
  # "socceraction/xthreat.py"=["DAR000"]
  "tests/**"=["D100","D101","D102","D103","S101"]
  
  [tool.ruff.lint.mccabe]
  max-complexity = 10
  
  [tool.ruff.lint.pydocstyle]
  convention = 'numpy'
  
  [tool.ruff.lint.isort]
  known-first-party = ["soccerdata", "tests"]
  
  [tool.mypy]
  check_untyped_defs = true
  disallow_any_generics = true
  disallow_incomplete_defs = true
  disallow_untyped_defs = true
  ignore_missing_imports = true
  no_implicit_optional = true
  
  [[tool.mypy.overrides]]
  module = ["test.*"]
  disallow_untyped_defs = true
  
  [[tool.mypy.overrides]]
  module = ["nox.*", "pytest", "pytest_mock", "_pytest.*"]
  ignore_missing_imports = true
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  