-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathpyproject.toml
150 lines (136 loc) · 4.58 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
# Basic project data
[project]
name = "queens"
authors = [{ name = "QUEENS developers" }]
dynamic = ["version", "dependencies", "optional-dependencies"]
description = "A general purpose framework for Uncertainty Quantification, Physics-Informed Machine Learning, Bayesian Optimization, Inverse Problems and Simulation Analytics"
readme = "README.md"
requires-python = ">=3.10"
keywords = [
"gaussian processes",
"uncertainty quantification",
"inverse analysis",
"optimization",
"sensitivity analysis",
"multi-fidelity",
"bayesian inference",
]
[tool.setuptools.packages.find]
include = ["queens.*", "queens"]
[tool.setuptools.dynamic]
version = { attr = "queens.__VERSION__" }
dependencies = { file = ["requirements.txt"] }
optional-dependencies = { develop = { file = ["dev-requirements.txt"] } }
# cli utils
[project.scripts]
queens = "queens.main:main"
queens-inject-template = "queens.utils.cli_utils:inject_template_cli"
queens-print-pickle = "queens.utils.cli_utils:print_pickle_data_cli"
queens-input-to-script = "queens.utils.cli_utils:input_to_script_cli"
queens-build-html-coverage-report = "queens.utils.cli_utils:build_html_coverage_report"
queens-remove-html-coverage-report = "queens.utils.cli_utils:remove_html_coverage_report"
queens-export-metadata = "queens.utils.cli_utils:gather_metadata_and_write_to_csv"
# urls
[project.urls]
Homepage = "https://www.queens-py.org"
Documentation = "https://queens-py.github.io/queens"
Repository = "https://github.com/queens-py/queens.git"
Issues = "https://github.com/queens-py/queens/issues"
Changelog = "https://github.com/queens-py/queens/blob/main/CHANGELOG.md"
# Tools section
[tool.black]
line-length = 100
[tool.isort]
profile = "black"
line_length = 100
use_parentheses = true
force_grid_wrap = 0
multi_line_output = 3
include_trailing_comma = true
[tool.ruff.lint]
select = ["D"] # pydocstyle rules
ignore = ["D104"] # Missing docstring in public package
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.pytest.ini_options]
addopts = '-m "unit_tests or integration_tests" --doctest-modules --doctest-continue-on-failure --doctest-ignore-import-errors'
testpaths = ["tests"]
pythonpath = ["test_utils"]
markers = [
"benchmark: Benchmark tests, involving full QUEENS-iterator runs for performance benchmarks (excluded from the main pipeline)",
"integration_tests: Integration tests with Python interface",
"unit_tests: Unit tests",
"integration_tests_fourc: Integration tests with fourc",
"lnm_cluster: Integration tests with LNM clusters (require access to LNM network)",
"imcs_cluster: Integration tests with LNM clusters (require access to IMCS network)",
"max_time_for_test(time_in_seconds): Maximum time this test should take (if exceeded and used with '--test-timing' an error is raised)",
]
[tool.coverage.run]
source = ["queens"]
parallel = true
branch = true
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
"pragma: no cover", # Have to re-enable the standard pragma
"if __name__ == .__main__.:", # Don't complain if non-runnable code isn't run
]
show_missing = false
[tool.coverage.html]
directory = "html_coverage_report"
[tool.liccheck]
authorized_licenses = [
"apache",
"apache 2.0",
"Apache-2.0",
"apache software license",
"apache license, version 2.0",
"apache license version 2.0",
"apache license 2.0",
"apache software",
"bsd",
"new bsd",
"bsd license",
"new bsd license",
"3-clause bsd",
"BSD 3-Clause",
"BSD-3-Clause",
"simplified bsd",
"CMU License (MIT-CMU)",
"gnu lgpl",
"GNU Library or Lesser General Public License (LGPL)",
"lgpl",
"historical permission notice and disclaimer (hpnd)",
"isc",
"isc license",
"isc license (iscl)",
"mit",
"mit license",
"mozilla public license 2.0",
"mozilla public license 2.0 (mpl 2.0)",
"python software foundation",
"python software foundation license",
"University of Illinois/NCSA Open Source",
"zlib/libpng",
]
unauthorized_licenses = [
"gpl v3",
"gpl v2",
"gpl",
"GNU general public license (gpl)",
"IBM Public License",
"RPL",
"Reciprocal Public License",
"Sleepycat License",
]
[tool.liccheck.authorized_packages]
# filelock has public domain license without restrictions
# see https://github.com/tox-dev/py-filelock
filelock = ">=3"
# cons is under LGPL-3
cons = ">=0.4.5"
# namex is under Apache 2.0 see https://github.com/fchollet/namex?tab=License-1-ov-file
namex = "==0.0.8"