@@ -11,17 +11,18 @@ requires = [
1111name = " arch"
1212# Keep syned with requirements.txt
1313dependencies = [
14- " numpy>=1.22.3" ,
14+ " numpy>=1.22.3,<3" ,
15+ " pandas>=1.4.0" ,
1516 " scipy>=1.8" ,
16- " pandas>=1.4" ,
17- " statsmodels>=0.12" ,
17+ " statsmodels>=0.13.0" ,
1818 " packaging" ,
1919]
2020authors = [{ name = " Kevin Sheppard" , email = " kevin.k.sheppard@gmail.com" }]
2121classifiers = [
2222 " Development Status :: 5 - Production/Stable" ,
2323 " Intended Audience :: End Users/Desktop" ,
2424 " Intended Audience :: Financial and Insurance Industry" ,
25+ " Intended Audience :: Science/Research" ,
2526 " Programming Language :: Python :: 3.10" ,
2627 " Programming Language :: Python :: 3.11" ,
2728 " Programming Language :: Python :: 3.12" ,
@@ -125,7 +126,7 @@ dev = [
125126 " colorama" ,
126127 " flake8" ,
127128 " flake8-bugbear" ,
128- " mypy" ,
129+ " mypy>=1.3 " ,
129130 " ruff>=0.8.6" ,
130131 " pyupgrade>=3.4.0" ,
131132 " jupyterlab-code-formatter" ,
@@ -143,9 +144,6 @@ changelog = "https://bashtage.github.io/arch/changes.html"
143144[tool .meson-python .args ]
144145setup = [' --vsenv' ]
145146
146- [tool .setuptools .dynamic ]
147- dependencies = { file = [" requirements.txt" ] }
148-
149147[tool .black ]
150148target-version = [' py310' , ' py311' , ' py312' , ' py313' ]
151149exclude = '''
@@ -161,8 +159,10 @@ exclude = '''
161159)
162160'''
163161
164- [tool .setuptools_scm ]
165- write_to = " arch/_version.py"
162+ [tool .pyright ]
163+ exclude = [
164+ " **/tests/**" ,
165+ ]
166166
167167[tool .ruff ]
168168line-length = 88
@@ -232,8 +232,6 @@ ignore = [
232232 # Multiple statements on one line (colon) (E701)
233233 " E701" ,
234234 # Always ignore
235- # RUF005 Consider `[a, *b]` instead of concatenation - don't like
236- " RUF005" ,
237235 # TC do not work with doc building
238236 # Move application import `linearmodels....` into a type-checking block
239237 " TC001" ,
@@ -251,6 +249,8 @@ ignore = [
251249 " PLR0915" , # 21
252250 # Magic number
253251 " PLR2004" ,
252+ # Like to suggest use [a, *b] instead of [a] + b
253+ " RUF005" ,
254254]
255255
256256[tool .ruff .lint .per-file-ignores ]
@@ -265,7 +265,8 @@ ignore = [
265265minversion = " 8.4.1"
266266testpaths = " arch"
267267xfail_strict = true
268- empty_parameter_set_mark = " fail_at_collect"
268+ addopts = " --strict"
269+ empty_parameter_set_mark = " xfail"
269270filterwarnings = [
270271 " ignore:`formatargspec`:DeprecationWarning:statsmodels" ,
271272 " ignore:Using or importing:DeprecationWarning" ,
@@ -298,7 +299,6 @@ markers = [
298299]
299300
300301
301-
302302[tool .isort ]
303303profile = " black"
304304src_paths = [" arch" ]
@@ -317,12 +317,13 @@ use_parentheses=true
317317[tool .coverage .run ]
318318source = [" arch" ]
319319branch = true
320- plugins = [" Cython.Coverage" ]
320+ plugins = [ " Cython.Coverage" ]
321321omit = [
322322 # Version file
323323 " */_version.py" ,
324324 # Compatibility code
325325 " */compat/*" ,
326+ " */conftest.py" ,
326327]
327328
328329[tool .coverage .report ]
@@ -346,6 +347,7 @@ exclude_also = [
346347 # Ignore failure messages
347348 " pytest.xfail" ,
348349 # Ignore ImportError protection
350+ " raise ImportError" ,
349351 " except ImportError" ,
350352 # Ignore type checking code
351353 " if TYPE_CHECKING" ,
@@ -368,11 +370,14 @@ omit = [
368370 " *samplers.py" ,
369371]
370372
371-
372373[tool .coverage .html ]
373374directory = " coverage_html_report"
374375
375376[tool .mypy ]
377+ plugins =" numpy.typing.mypy_plugin"
378+ exclude = [
379+ " tests" ,
380+ ]
376381ignore_missing_imports =true
377382no_implicit_optional =true
378383strict_equality =true
0 commit comments