|
1 | | -# This file is autogenerated. Edit dependencies.py instead |
| 1 | +[project] |
| 2 | +name = "pymor_dealii" |
| 3 | +dynamic = ["version"] |
| 4 | +description = "pyMOR bindings for deal.II" |
| 5 | +readme = "README.md" |
| 6 | +authors = [ |
| 7 | + { name = "pyMOR developers", email = "[email protected]"} |
| 8 | +] |
| 9 | +maintainers = [ |
| 10 | + { name = "Stephan Rave", email = "[email protected]"}, |
| 11 | +] |
| 12 | +requires-python = ">=3.9" |
| 13 | +dependencies = [ |
| 14 | + "pymor==2024.2.*" |
| 15 | +] |
| 16 | + |
| 17 | +[project.urls] |
| 18 | +homepage = "https://pymor.org" |
| 19 | +source = "https://github.com/pymor/pymor-deal.II" |
| 20 | +tracker = "https://github.com/pymor/pymor-deal.II/issues" |
| 21 | + |
| 22 | +[project.optional-dependencies] |
| 23 | +test = [ |
| 24 | + "pytest", |
| 25 | + "pytest-regressions" |
| 26 | +] |
| 27 | + |
2 | 28 | [build-system] |
3 | | -requires = ['setuptools>=49.1', 'wheel', 'packaging'] |
4 | | -build-backend = "setuptools.build_meta" |
| 29 | +requires = ["scikit-build-core>=0.10", "pybind11"] |
| 30 | +build-backend = "scikit_build_core.build" |
| 31 | + |
| 32 | +[tool.scikit-build] |
| 33 | +minimum-version = "build-system.requires" |
| 34 | +build-dir = "build/{wheel_tag}" |
| 35 | + |
| 36 | +[tool.scikit-build.metadata.version] |
| 37 | +provider = "scikit_build_core.metadata.regex" |
| 38 | +input = "src/pymor_dealii/__init__.py" |
| 39 | + |
| 40 | +[tool.coverage.run] |
| 41 | +source = [ |
| 42 | + "src/pymor_dealii", |
| 43 | + "src/test" |
| 44 | +] |
| 45 | +omit = [ |
| 46 | + "src/pymor_dealii/version.py" |
| 47 | +] |
| 48 | +relative_files = true |
| 49 | + |
| 50 | +[tool.pytest.ini_options] |
| 51 | +testpaths = "test" |
| 52 | +# python_files = "src/test/*.py" |
| 53 | +junit_family = "xunit2" |
| 54 | +python_classes = "Test" |
| 55 | + |
| 56 | +[tool.ruff] |
| 57 | +src = ["src"] # this makes isort behave nicely |
| 58 | +line-length = 120 |
| 59 | + |
| 60 | +[tool.ruff.lint] |
| 61 | +select = [ |
| 62 | + "F", # Pyflakes |
| 63 | + "W", # pycodestyle warning |
| 64 | + "E", # pycodestyle error |
| 65 | + "I", # isort |
| 66 | + "N", # pep8-naming |
| 67 | + "D", # pydocstyle |
| 68 | + "UP", # pyupgrade |
| 69 | + "YTT", # flake8-2020 |
| 70 | + "ASYNC", # flake8-async |
| 71 | + "B", # flake8-bugbear |
| 72 | + "C4", # flake8-comprehensions |
| 73 | + "DTZ", # flake8-datetimez |
| 74 | + "EXE", # flake8-executable |
| 75 | + "ISC", # flake8-implicit-str-concat |
| 76 | + "ICN", # flake8-import-conventions |
| 77 | + "PT", # flake8-pytest-style |
| 78 | + "Q", # flake8-quotes |
| 79 | + "RSE", # flake8-raise |
| 80 | + "SIM", # flake8-simplify |
| 81 | + "TD", # flake8-todos |
| 82 | + "PGH", # pygrep-hooks |
| 83 | + "RUF", # Ruff-specific rules |
| 84 | + "NPY", # NumPy-specific rules |
| 85 | +] |
| 86 | +ignore = [ |
| 87 | + "B006", # do not use mutable data structures for argument defaults |
| 88 | + "B007", # loop control variable not used within loop body |
| 89 | + "B008", # do not perform function call in argument defaults |
| 90 | + "B011", # do not `assert False` |
| 91 | + "B017", # pytest.raises(Exception) should be considered evil |
| 92 | + "B028", # no explicit `stacklevel` keyword argument found |
| 93 | + "C408", # unnecessary collection (dict, list, tuple) call |
| 94 | + "D100", # missing docstring in public module |
| 95 | + "D101", # missing docstring in public class |
| 96 | + "D102", # missing docstring in public method |
| 97 | + "D103", # missing docstring in public function |
| 98 | + "D104", # missing docstring in public package |
| 99 | + "D105", # missing docstring in magic method |
| 100 | + "D106", # missing docstring in public nested class |
| 101 | + "D203", # 1 blank line required before class docstring |
| 102 | + "D212", # multi-line docstring summary should start at the first line |
| 103 | + "D401", # first line of docstring should be in imperative mood |
| 104 | + "D404", # first word of the docstring should not be "This" |
| 105 | + "D405", # the linter thinks the argument name 'parameters' is a docstring section |
| 106 | + "D407", # same as above |
| 107 | + "D410", # same as above |
| 108 | + "D411", # same as above |
| 109 | + "D414", # same as above |
| 110 | + "E402", # module level import not at top of file (due to config.require("PKG") syntax) |
| 111 | + "E731", # do not assign a lambda expression, use a def |
| 112 | + "E741", # do not use variables named 'l', 'O', or 'I' |
| 113 | + "N802", # function name should be lowercase |
| 114 | + "N803", # argument name should be lowercase (we use single capital letters everywhere for vectorarrays) |
| 115 | + "N806", # same for variables in function |
| 116 | + "PT011", # pytest.raises(Exception) is too broad |
| 117 | + "PT012", # pytest.raises() block should contain a single simple statement |
| 118 | + "PT015", # assertion always fails, replace with `pytest.fail()` |
| 119 | + "RUF005", # consider unpacking instead of concatenation |
| 120 | + "RUF021", # parenthesize a and b expressions when chaining and and or together, to make the precedence clear |
| 121 | + "RUF023", # __slots__ is not sorted |
| 122 | + "SIM102", # use a single if statement instead of nested if statements |
| 123 | + "SIM103", # return the condition directly |
| 124 | + "SIM105", # use contextlib.suppress instead of try-except-pass |
| 125 | + "SIM108", # use ternary operator instead of if-else-block |
| 126 | + "SIM114", # combine if branches using logical or operator |
| 127 | + "SIM116", # use a dictionary instead of consecutive `if` statements |
| 128 | + "SIM300", # Yoda conditions |
| 129 | + "TD002", # missing author in TODO |
| 130 | + "TD003", # missing issue link on the line following this TODO |
| 131 | +] |
| 132 | + |
| 133 | +[tool.ruff.lint.flake8-import-conventions] |
| 134 | +banned-from = ["numpy.linalg"] # avoids importing similar routines from numpy.linalg and scipy.linalg |
| 135 | + |
| 136 | +[tool.ruff.lint.flake8-import-conventions.extend-aliases] |
| 137 | +"scipy.linalg" = "spla" |
| 138 | + |
| 139 | +[tool.ruff.lint.flake8-quotes] |
| 140 | +inline-quotes = "single" |
| 141 | + |
| 142 | +[tool.ruff.lint.pycodestyle] |
| 143 | +max-doc-length = 100 |
| 144 | + |
| 145 | +[tool.ruff.lint.pydocstyle] |
| 146 | +convention = "numpy" |
0 commit comments