-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpyproject.toml
More file actions
143 lines (121 loc) · 5.5 KB
/
pyproject.toml
File metadata and controls
143 lines (121 loc) · 5.5 KB
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
# Project metadata (PEP 621) ===============================================
[project]
name = "FAST-OAD-CS25"
description = "FAST-OAD_CS25 is a FAST-OAD plugin with CS25/FAR25-related models."
readme = "README.md"
license = "GPL-3.0-only"
keywords = ["aircraft", "design", "multi-disciplinary"]
authors = [
{ name = "Christophe DAVID", email = "christophe.david@onera.fr" },
{ name = "Scott DELBECQ", email = "Scott.DELBECQ@isae-supaero.fr" },
]
maintainers = [
{ name = "Enrico STRAGIOTTI", email = "enrico.stragiotti@onera.fr" },
{ name = "Eric NGUYEN VAN", email = "Eric.Nguyen_Van@onera.fr" },
{ name = "Florent LUTZ", email = "Florent.LUTZ2@isae-supaero.fr" },
]
requires-python = ">=3.10,<3.15"
dynamic = ["classifiers", "version"] # Needed to use poetry-dynamic-versioning
# User dependencies ------------------------------------------------------------
dependencies = [
# IMPORTANT: when modifying this list, docs/requirements.txt must be updated for
# ReadTheDocs to be able to compile the documentation.
# A pre-commit hook has been added to do this task. As a result, any modification
# of poetry.lock file will modify docs/requirements.txt and make
# the commit fail because "files were modified by this hook". In that case,
# doing again the commit including changes in docs/requirements.txt will succeed.
"fast-oad-core>=1.9.0; python_version<'3.15'",
"pyparsing (>=3.2.5,<4.0.0)", # needed, but not declared as required, by OpenMDAO for file_wrap utility.
"jupyterlab-widgets (==3.0.15)",
]
[project.urls]
homepage = "https://github.com/fast-aircraft-design/FAST-OAD_CS25"
# Entry points -----------------------------------------------------------------
[project.entry-points."fastoad.plugins"]
cs25 = "fastoad_cs25"
# Poetry settings ==============================================================
[tool.poetry]
requires-poetry = ">=2.0" # This is the minimum required Poetry version
packages = [{ include = "fastoad_cs25", from = "src" }]
exclude = ["**/tests/**"]
# Suitable classifiers based on python requirement and license are not automatically added if classifiers are statically defined in the project section
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Physics",
]
# Development dependencies -----------------------------------------------------
# Development dependencies using Poetry groups instead of [project.optional-dependencies]
version = "0.8.1" # This version number is overwritten by GitHub packaging workflow
[tool.poetry.group.test.dependencies]
pytest = "^9.0"
pytest-cov = "^7.0"
coverage = { version = "^7.0", extras = ["toml"] }
nbval = "^0.11"
[tool.poetry.group.doc.dependencies]
sphinx = ">=7.1.2"
sphinx-rtd-theme = ">=2.0"
sphinxcontrib-bibtex = "^2.6.3"
[tool.poetry.group.lint.dependencies]
pre-commit = "^4.5.0"
nbstripout = "^0.6.0"
ruff = "0.15.0"
# Poetry plugins ==================================================
[tool.poetry.requires-plugins]
poetry-plugin-export = ">=1.9" # Used for the poetry export hook in pre-commit
# Dynamic versioning settings ==================================================
# poetry-dynamic-versioning has to be installed in the same environment as
# Poetry (normally outside your project environment).
# see https://github.com/mtkennerly/poetry-dynamic-versioning#installation
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
style = "semver"
# Packaging system =============================================================
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"
# Pytest settings ==============================================================
[tool.pytest.ini_options]
minversion = "8.0"
addopts = "--cov-report term-missing --cov-report html --verbose"
testpaths = ["src", "tests"]
norecursedirs = [".tox", "build", "dist"]
filterwarnings = ["default"]
# Use @pytest.mark.skip_if_no_xfoil() before a test to skip it if xfoil_path fixture returns None and OS is not Windows.
markers = ["skip_if_no_xfoil: skip test if XFOIL is not installed or not found in the system PATH"]
# Coverage settings ============================================================
[tool.coverage.run]
branch = true
source = ["fastoad_cs25"]
omit = ["*/test/*", "*/tests/*"]
[tool.coverage.paths]
source = ["src/"]
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_lines = [
# Have to re-enable the standard pragma
"pragma: no cover",
# Don't complain about missing debug-only code:
"def __repr__",
"if self.debug",
# Don't complain if tests don't hit defensive assertion code:
"raise AssertionError",
"raise NotImplementedError",
# Don't complain if non-runnable code isn't run:
"if 0:",
"if __name__ = = .__main__.:",
]