[tool.poetry] name = "alns" version = "6.0.0" description = "A flexible implementation of the adaptive large neighbourhood search (ALNS) algorithm." authors = ["Niels Wouda "] license = "MIT" readme = "README.md" repository = "https://github.com/N-Wouda/ALNS" include = [ "LICENSE.md", ] packages = [ {include = "alns"}, ] classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Development Status :: 5 - Production/Stable", "Topic :: Software Development", "Topic :: Scientific/Engineering", ] [tool.poetry.urls] "Tracker" = "https://github.com/N-Wouda/ALNS/issues" [tool.poetry.dependencies] python = "^3.8, <4.0" numpy = ">=1.18.0" matplotlib = ">=3.5.0" mabwiser = { version = ">=2.7.1", optional = true } [tool.poetry.extras] mabwiser = ["mabwiser"] # optional integration with MABWiser # This group is needed to develop the package itself. [tool.poetry.group.dev.dependencies] pre-commit = "^2.20.0" pytest = ">=6.0.0" pytest-cov = ">=2.6.1" codecov = "*" mabwiser = ">=2.7.1" # This optional docs group is needed to build the documentation. It is not # required by the package itself. [tool.poetry.group.docs] optional = true [tool.poetry.group.docs.dependencies] tomli = ">=2.0.1" nbsphinx = ">=0.8.9" ipython = ">=8.6.0" numpydoc = ">=1.5.0" sphinx_rtd_theme = ">=0.5.1" sphinx-autoapi = ">=2.0.1" docutils = "==0.16" mabwiser = ">=2.7.1" # This optional examples group is needed to run the example notebooks, but not # required for the package itself. [tool.poetry.group.examples] optional = true [tool.poetry.group.examples.dependencies] vrplib = "^1.0.1" networkx = ">=2.4.0" tsplib95 = ">=0.7.0" jupyter = "^1.0.0" mabwiser = ">=2.7.1" [tool.black] line-length = 79 [tool.ruff] line-length = 79 select = ["E", "F", "I", "NPY", "RET", "RSE", "RUF", "SLF", "SIM", "TCH"] [tool.ruff.per-file-ignores] "__init__.py" = ["F401"] # unused imports [tool.ruff.isort] case-sensitive = true known-first-party = ["alns"] [tool.mypy] ignore_missing_imports = true [tool.pytest.ini_options] markers = [ "matplotlib: test related to matplotlib functionality.", ] addopts = "--cov=. --cov-report=xml" [tool.coverage.run] omit = [ "alns/show_versions.py", # only prints debug information "*/tests/*", "venv/*", "docs/*", ] [tool.coverage.report] exclude_lines = [ # This excludes all abstract methods from code coverage checks, # as they are never instantiated directly anyway "pragma: no cover", "@abstract" ] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"