[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 ", "Pieter Robberechts "] 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"