Skip to content

Commit 77dcefc

Browse files
authored
Merge pull request #719 from pre-commit/all-repos_autofix_drop-py36
drop python3.6 support
2 parents 2aef4c7 + 8f61529 commit 77dcefc

File tree

76 files changed

+229
-145
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+229
-145
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ repos:
2525
rev: v2.6.0
2626
hooks:
2727
- id: reorder-python-imports
28-
args: [--py3-plus]
28+
args: [--py37-plus, --add-import, 'from __future__ import annotations']
2929
- repo: https://github.com/asottile/pyupgrade
3030
rev: v2.31.0
3131
hooks:
3232
- id: pyupgrade
33-
args: [--py36-plus]
33+
args: [--py37-plus]
3434
- repo: https://github.com/asottile/add-trailing-comma
3535
rev: v2.2.1
3636
hooks:

azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ resources:
1010
type: github
1111
endpoint: github
1212
name: asottile/azure-pipeline-templates
13-
ref: refs/tags/v2.1.0
13+
ref: refs/tags/v2.4.0
1414

1515
jobs:
1616
- template: job--python-tox.yml@asottile
@@ -19,5 +19,5 @@ jobs:
1919
os: windows
2020
- template: job--python-tox.yml@asottile
2121
parameters:
22-
toxenvs: [pypy3, py36, py37, py38]
22+
toxenvs: [py37, py38, py39, py310]
2323
os: linux

pre_commit_hooks/check_added_large_files.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1+
from __future__ import annotations
2+
13
import argparse
24
import math
35
import os
46
import subprocess
5-
from typing import Optional
67
from typing import Sequence
7-
from typing import Set
88

99
from pre_commit_hooks.util import added_files
1010
from pre_commit_hooks.util import zsplit
1111

1212

13-
def filter_lfs_files(filenames: Set[str]) -> None: # pragma: no cover (lfs)
13+
def filter_lfs_files(filenames: set[str]) -> None: # pragma: no cover (lfs)
1414
"""Remove files tracked by git-lfs from the set."""
1515
if not filenames:
1616
return
@@ -54,7 +54,7 @@ def find_large_added_files(
5454
return retv
5555

5656

57-
def main(argv: Optional[Sequence[str]] = None) -> int:
57+
def main(argv: Sequence[str] | None = None) -> int:
5858
parser = argparse.ArgumentParser()
5959
parser.add_argument(
6060
'filenames', nargs='*',

pre_commit_hooks/check_ast.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
from __future__ import annotations
2+
13
import argparse
24
import ast
35
import platform
46
import sys
57
import traceback
6-
from typing import Optional
78
from typing import Sequence
89

910

10-
def main(argv: Optional[Sequence[str]] = None) -> int:
11+
def main(argv: Sequence[str] | None = None) -> int:
1112
parser = argparse.ArgumentParser()
1213
parser.add_argument('filenames', nargs='*')
1314
args = parser.parse_args(argv)

pre_commit_hooks/check_builtin_literals.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1+
from __future__ import annotations
2+
13
import argparse
24
import ast
3-
from typing import List
45
from typing import NamedTuple
5-
from typing import Optional
66
from typing import Sequence
7-
from typing import Set
87

98

109
BUILTIN_TYPES = {
@@ -27,10 +26,10 @@ class Call(NamedTuple):
2726
class Visitor(ast.NodeVisitor):
2827
def __init__(
2928
self,
30-
ignore: Optional[Sequence[str]] = None,
29+
ignore: Sequence[str] | None = None,
3130
allow_dict_kwargs: bool = True,
3231
) -> None:
33-
self.builtin_type_calls: List[Call] = []
32+
self.builtin_type_calls: list[Call] = []
3433
self.ignore = set(ignore) if ignore else set()
3534
self.allow_dict_kwargs = allow_dict_kwargs
3635

@@ -56,21 +55,21 @@ def visit_Call(self, node: ast.Call) -> None:
5655

5756
def check_file(
5857
filename: str,
59-
ignore: Optional[Sequence[str]] = None,
58+
ignore: Sequence[str] | None = None,
6059
allow_dict_kwargs: bool = True,
61-
) -> List[Call]:
60+
) -> list[Call]:
6261
with open(filename, 'rb') as f:
6362
tree = ast.parse(f.read(), filename=filename)
6463
visitor = Visitor(ignore=ignore, allow_dict_kwargs=allow_dict_kwargs)
6564
visitor.visit(tree)
6665
return visitor.builtin_type_calls
6766

6867

69-
def parse_ignore(value: str) -> Set[str]:
68+
def parse_ignore(value: str) -> set[str]:
7069
return set(value.split(','))
7170

7271

73-
def main(argv: Optional[Sequence[str]] = None) -> int:
72+
def main(argv: Sequence[str] | None = None) -> int:
7473
parser = argparse.ArgumentParser()
7574
parser.add_argument('filenames', nargs='*')
7675
parser.add_argument('--ignore', type=parse_ignore, default=set())

pre_commit_hooks/check_byte_order_marker.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
from __future__ import annotations
2+
13
import argparse
2-
from typing import Optional
34
from typing import Sequence
45

56

6-
def main(argv: Optional[Sequence[str]] = None) -> int:
7+
def main(argv: Sequence[str] | None = None) -> int:
78
parser = argparse.ArgumentParser()
89
parser.add_argument('filenames', nargs='*', help='Filenames to check')
910
args = parser.parse_args(argv)

pre_commit_hooks/check_case_conflict.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1+
from __future__ import annotations
2+
13
import argparse
24
from typing import Iterable
35
from typing import Iterator
4-
from typing import Optional
56
from typing import Sequence
6-
from typing import Set
77

88
from pre_commit_hooks.util import added_files
99
from pre_commit_hooks.util import cmd_output
1010

1111

12-
def lower_set(iterable: Iterable[str]) -> Set[str]:
12+
def lower_set(iterable: Iterable[str]) -> set[str]:
1313
return {x.lower() for x in iterable}
1414

1515

@@ -21,7 +21,7 @@ def parents(file: str) -> Iterator[str]:
2121
path_parts.pop()
2222

2323

24-
def directories_for(files: Set[str]) -> Set[str]:
24+
def directories_for(files: set[str]) -> set[str]:
2525
return {parent for file in files for parent in parents(file)}
2626

2727

@@ -56,7 +56,7 @@ def find_conflicting_filenames(filenames: Sequence[str]) -> int:
5656
return retv
5757

5858

59-
def main(argv: Optional[Sequence[str]] = None) -> int:
59+
def main(argv: Sequence[str] | None = None) -> int:
6060
parser = argparse.ArgumentParser()
6161
parser.add_argument(
6262
'filenames', nargs='*',

pre_commit_hooks/check_docstring_first.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
from __future__ import annotations
2+
13
import argparse
24
import io
35
import tokenize
46
from tokenize import tokenize as tokenize_tokenize
5-
from typing import Optional
67
from typing import Sequence
78

89
NON_CODE_TOKENS = frozenset((
@@ -45,7 +46,7 @@ def check_docstring_first(src: bytes, filename: str = '<unknown>') -> int:
4546
return 0
4647

4748

48-
def main(argv: Optional[Sequence[str]] = None) -> int:
49+
def main(argv: Sequence[str] | None = None) -> int:
4950
parser = argparse.ArgumentParser()
5051
parser.add_argument('filenames', nargs='*')
5152
args = parser.parse_args(argv)

pre_commit_hooks/check_executables_have_shebangs.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
"""Check that executable text files have a shebang."""
2+
from __future__ import annotations
3+
24
import argparse
35
import shlex
46
import sys
57
from typing import Generator
6-
from typing import List
78
from typing import NamedTuple
8-
from typing import Optional
99
from typing import Sequence
10-
from typing import Set
1110

1211
from pre_commit_hooks.util import cmd_output
1312
from pre_commit_hooks.util import zsplit
1413

1514
EXECUTABLE_VALUES = frozenset(('1', '3', '5', '7'))
1615

1716

18-
def check_executables(paths: List[str]) -> int:
17+
def check_executables(paths: list[str]) -> int:
1918
if sys.platform == 'win32': # pragma: win32 cover
2019
return _check_git_filemode(paths)
2120
else: # pragma: win32 no cover
@@ -42,7 +41,7 @@ def git_ls_files(paths: Sequence[str]) -> Generator[GitLsFile, None, None]:
4241

4342

4443
def _check_git_filemode(paths: Sequence[str]) -> int:
45-
seen: Set[str] = set()
44+
seen: set[str] = set()
4645
for ls_file in git_ls_files(paths):
4746
is_executable = any(b in EXECUTABLE_VALUES for b in ls_file.mode[-3:])
4847
if is_executable and not has_shebang(ls_file.filename):
@@ -71,7 +70,7 @@ def _message(path: str) -> None:
7170
)
7271

7372

74-
def main(argv: Optional[Sequence[str]] = None) -> int:
73+
def main(argv: Sequence[str] | None = None) -> int:
7574
parser = argparse.ArgumentParser(description=__doc__)
7675
parser.add_argument('filenames', nargs='*')
7776
args = parser.parse_args(argv)

pre_commit_hooks/check_json.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
1+
from __future__ import annotations
2+
13
import argparse
24
import json
35
from typing import Any
4-
from typing import Dict
5-
from typing import List
6-
from typing import Optional
76
from typing import Sequence
8-
from typing import Tuple
97

108

119
def raise_duplicate_keys(
12-
ordered_pairs: List[Tuple[str, Any]],
13-
) -> Dict[str, Any]:
10+
ordered_pairs: list[tuple[str, Any]],
11+
) -> dict[str, Any]:
1412
d = {}
1513
for key, val in ordered_pairs:
1614
if key in d:
@@ -20,7 +18,7 @@ def raise_duplicate_keys(
2018
return d
2119

2220

23-
def main(argv: Optional[Sequence[str]] = None) -> int:
21+
def main(argv: Sequence[str] | None = None) -> int:
2422
parser = argparse.ArgumentParser()
2523
parser.add_argument('filenames', nargs='*', help='Filenames to check.')
2624
args = parser.parse_args(argv)

0 commit comments

Comments
 (0)