Skip to content

Commit 3a2e74b

Browse files
committed
Add mypy pre-commit
Signed-off-by: Cristian Le <cristian.le@mpsd.mpg.de>
1 parent 25b4d8e commit 3a2e74b

5 files changed

Lines changed: 29 additions & 2 deletions

File tree

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,9 @@ repos:
3838
- id: end-of-file-fixer
3939
- id: mixed-line-ending
4040
- id: trailing-whitespace
41+
42+
- repo: https://github.com/pre-commit/mirrors-mypy
43+
rev: "v1.4.1"
44+
hooks:
45+
- id: mypy
46+
files: ^(fmf)

fmf/base.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,17 @@
66
import os
77
import re
88
import subprocess
9+
import sys
910
from collections.abc import Iterator, Mapping
1011
from io import open
1112
from pprint import pformat as pretty
1213
# TODO: py3.10: typing.Optional, typing.Union -> '|' operator
13-
from typing import Any, Optional, TypeAlias, Union
14+
from typing import Any, Optional, Union
15+
16+
if sys.version_info >= (3, 10):
17+
from typing import TypeAlias
18+
else:
19+
from typing_extensions import TypeAlias
1420

1521
import jsonschema
1622
from ruamel.yaml import YAML

fmf/context.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,15 @@
1919
from __future__ import annotations
2020

2121
import re
22+
import sys
2223
from collections.abc import Callable
2324
# TODO: py3.10: typing.Optional, typing.Union -> '|' operator
24-
from typing import Optional, TypeAlias, Union
25+
from typing import Optional, Union
26+
27+
if sys.version_info >= (3, 10):
28+
from typing import TypeAlias
29+
else:
30+
from typing_extensions import TypeAlias
2531

2632
# TypeHints
2733
ExpressionType: TypeAlias = tuple[Optional[str], Union[str, bool], Optional[list[str]]]

pyproject.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[tool.mypy]
2+
strict = true
3+
files = ["fmf"]
4+
python_version = "3.9"
5+
warn_unused_configs = true
6+
show_error_codes = true
7+
disallow_untyped_defs = false
8+
follow_imports = "normal"

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
'ruamel.yaml',
2525
'filelock',
2626
'jsonschema',
27+
'typing-extensions ; python_version<"3.10"',
2728
]
2829
extras_require = {
2930
'docs': ['sphinx>=3', 'sphinx_rtd_theme'],

0 commit comments

Comments
 (0)