-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
134 lines (115 loc) · 3.21 KB
/
pyproject.toml
File metadata and controls
134 lines (115 loc) · 3.21 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
# ======================================================================================
# Project metadata
# ======================================================================================
[project]
name = "optimini"
description = "A super minimalist bare bones rewrite to illustrate the core architectural ideas behind optimagic."
requires-python = ">=3.10"
dependencies = [
"numpy",
"scipy",
"pandas",
"nlopt",
"matplotlib",
"seaborn",
]
dynamic = ["version"]
authors = [
{ name = "Janos Gabler", email = "janos.gabler@gmail.com" },
]
maintainers = [
{ name = "Janos Gabler", email = "janos.gabler@gmail.com" },
]
[project.readme]
file = "README.md"
content-type = "text/markdown"
[project.license]
text = "Apache-2.0"
[project.urls]
Repository = "https://github.com/optimagic-dev/optimini"
Github = "https://github.com/optimagic-dev/optimini"
Tracker = "https://github.com/optimagic-dev/optimini/issues"
# ======================================================================================
# Build system configuration
# ======================================================================================
[build-system]
requires = ["hatchling", "hatch_vcs"]
build-backend = "hatchling.build"
[tool.hatch.build.hooks.vcs]
version-file = "src/optimini/_version.py"
[tool.hatch.build.targets.sdist]
exclude = ["tests"]
only-packages = true
[tool.hatch.build.targets.wheel]
only-include = ["src"]
sources = ["src"]
[tool.hatch.version]
source = "vcs"
[tool.hatch.metadata]
allow-direct-references = true
# ======================================================================================
# Ruff configuration
# ======================================================================================
[tool.ruff]
target-version = "py310"
fix = true
[tool.ruff.lint]
select = [
# isort
"I",
# pyflakes
"F",
# pycodestyle
"E",
"W",
# flake8-2020
"YTT",
# flake8-bugbear
"B",
# flake8-quotes
"Q",
# pylint
"PLE", "PLR", "PLW",
# misc lints
"PIE",
# tidy imports
"TID",
# implicit string concatenation
"ISC",
]
extend-ignore = [
# allow module import not at top of file, important for notebooks
"E402",
# do not assign a lambda expression, use a def
"E731",
# Too many arguments to function call
"PLR0913",
# Too many returns
"PLR0911",
# Too many branches
"PLR0912",
# Too many statements
"PLR0915",
# Magic number
"PLR2004",
# Consider `elif` instead of `else` then `if` to remove indentation level
"PLR5501",
# For calls to warnings.warn(): No explicit `stacklevel` keyword argument found
"B028",
# Incompatible with formatting
"ISC001",
]
[tool.ruff.lint.pydocstyle]
convention = "google"
# ======================================================================================
# Pytest configuration
# ======================================================================================
[tool.pytest.ini_options]
filterwarnings = [
"ignore:Using or importing the ABCs from 'collections'",
]
markers = [
"wip: Tests that are work-in-progress.",
"slow: Tests that take a long time to run and are skipped in continuous integration.",
"jax: Tests that require jax to be installed and are skipped on non-Linux systems.",
]