diff --git a/pyproject.toml b/pyproject.toml index c8f9c4c0..37c2abab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,51 @@ -[tool.ruff] -select = ["E", "F"] -ignore = ["E501"] +[build-system] +requires = ["setuptools >= 61.0"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +packages = ["propulate"] + +[project] +name = "propulate" +version = "1.1.0" +authors = [ + { name="Marie Weiel, Oskar Taubert, Helmholtz AI", email="propulate@lists.kit.edu" }, +] +description = "Massively parallel genetic optimization through asynchronous propagation of populations" +readme = "README.md" +requires-python = ">=3.8" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: TBD", + "Development Status :: 1 - Planning", +] +dependencies = [ + "deepdiff", + "mpi4py", + "numpy", + "colorlog", + "Gpy", +] +[project.optional-dependencies] +dev = [ + "pre-commit", + "black", + "ruff", + "pytest", + "pytest-cov", + "sphinx-autoapi", + "sphinx-rtd-theme", + "sphinxcontrib-napoleon", + "sphinxemoji", +] + +[project.urls] +Homepage = "https://github.com/Helmholtz-AI-Energy/propulate" +Issues = "https://github.com/Helmholtz-AI-Energy/propulate/issues" + +[tool.ruff] +# Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", @@ -9,21 +53,82 @@ exclude = [ ".git", ".git-rewrite", ".hg", + ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", + ".pyenv", + ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", + ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", + "site-packages", "venv", ] +# Same as Black. line-length = 88 +indent-width = 4 + +# Assume Python 3.8. +target-version = "py38" + +[tool.ruff.lint] +# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. +# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or +# McCabe complexity (`C901`) by default. +select = ["N", "E4", "E7", "E9", "F", "D"] +ignore = ["D100", "D104", "D404"] +# Enable import sorting +extend-select = ["I"] + +# Allow fix for all enabled rules (when `--fix`) is provided. +fixable = ["ALL"] +unfixable = [] + +# Allow unused variables when underscore-prefixed. +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" + +[tool.ruff.format] +# Like Black, use double quotes for strings. +quote-style = "double" + +# Like Black, indent with spaces, rather than tabs. +indent-style = "space" + +# Like Black, respect magic trailing commas. +skip-magic-trailing-comma = false + +# Like Black, automatically detect the appropriate line ending. +line-ending = "auto" + +# Enable auto-formatting of code examples in docstrings. Markdown, +# reStructuredText code/literal blocks and doctests are all supported. +# +# This is currently disabled by default, but it is planned for this +# to be opt-out in the future. +docstring-code-format = false + +# Set the line length limit used when formatting code snippets in +# docstrings. +# +# This only has an effect when the `docstring-code-format` setting is +# enabled. +docstring-code-line-length = "dynamic" + +[tool.ruff.lint.pydocstyle] +convention = "numpy" + +[tool.pytest.ini_options] +testpaths = [ + "tests", +]