Skip to content

Commit 77e911a

Browse files
committed
Support newer pyupgrade versions (up to 2.10)
1 parent eff28f8 commit 77e911a

File tree

8 files changed

+64
-113
lines changed

8 files changed

+64
-113
lines changed

.github/workflows/python_ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ jobs:
1919
fail-fast: False
2020
matrix:
2121
config:
22-
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7},build", experimental: False}
23-
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7},build", experimental: False}
24-
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7},build", experimental: False}
25-
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7},build", experimental: False}
26-
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7},build", experimental: True}
27-
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7},build", experimental: False}
22+
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
23+
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
24+
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
25+
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
26+
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: True}
27+
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
2828

2929
steps:
3030
- name: Checkout 🛎️

.github/workflows/python_ci_linux.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ jobs:
1919
fail-fast: False
2020
matrix:
2121
config:
22-
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7},build", experimental: False}
23-
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7},build", experimental: False}
24-
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7},build", experimental: False}
25-
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7},build", experimental: False}
26-
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7},build", experimental: True}
27-
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7},build", experimental: False}
22+
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
23+
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
24+
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
25+
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
26+
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: True}
27+
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
2828

2929
steps:
3030
- name: Checkout 🛎️

.github/workflows/python_ci_macos.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ jobs:
1919
fail-fast: False
2020
matrix:
2121
config:
22-
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7},build", experimental: False}
23-
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7},build", experimental: False}
24-
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7},build", experimental: False}
25-
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7},build", experimental: False}
26-
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7},build", experimental: True}
27-
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7},build", experimental: False}
22+
- {python-version: "3.6", testenvs: "py36-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
23+
- {python-version: "3.7", testenvs: "py37-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
24+
- {python-version: "3.8", testenvs: "py38-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
25+
- {python-version: "3.9", testenvs: "py39-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
26+
- {python-version: "3.10.0-alpha.5", testenvs: "py310-dev-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: True}
27+
- {python-version: "pypy-3.6", testenvs: "pypy3-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10},build", experimental: False}
2828

2929
steps:
3030
- name: Checkout 🛎️

pyupgrade_directories/__init__.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,26 @@
1313
import pathlib
1414
from typing import Iterable, List
1515

16-
__all__ = ["iter_py_files"]
17-
1816
__author__ = "Dominic Davis-Foster"
1917
__copyright__ = "2020 Dominic Davis-Foster"
2018
__license__ = "MIT"
2119
__version__ = "0.1.1"
2220
__email__ = "dominic@davis-foster.co.uk"
2321

22+
__all__ = ["iter_py_files"]
23+
2424

25-
def iter_py_files(files_and_dirs: Iterable[pathlib.Path], recursive: bool = False) -> Iterable[pathlib.Path]:
25+
def iter_py_files(
26+
files_and_dirs: Iterable[pathlib.Path],
27+
recursive: bool = False,
28+
) -> Iterable[pathlib.Path]:
2629
"""
2730
Iterate over all ``.py`` files in the given directories.
2831
2932
TODO: Wildcards in filename/directory
3033
3134
:param files_and_dirs: An iterable of filenames and directories
32-
:param recursive: Whether subdirectories should be recursed. Default :py:obj:`False`
33-
:type recursive: bool
35+
:param recursive: Whether subdirectories should be recursed.
3436
"""
3537

3638
all_py_files: List[pathlib.Path] = []

pyupgrade_directories/__main__.py

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Run pyupgrade on all files in a directory, and optionally recursively.
66
"""
77
#
8-
# Copyright (c) 2020 Dominic Davis-Foster <dominic@davis-foster.co.uk>
8+
# Copyright (c) 2020-2021 Dominic Davis-Foster <dominic@davis-foster.co.uk>
99
# Based on pyupgrade
1010
# https://github.com/asottile/pyupgrade
1111
# Copyright (c) 2017 Anthony Sottile
@@ -15,51 +15,40 @@
1515
# stdlib
1616
import argparse
1717
import pathlib
18+
import sys
1819
from typing import Optional, Sequence
1920

20-
# 3rd party
21-
from pyupgrade import _fix_file # type: ignore
22-
2321
# this package
2422
from pyupgrade_directories import iter_py_files
2523

24+
try:
25+
# < 2.8.0
26+
27+
# 3rd party
28+
from pyupgrade import main as _pyup_main # type: ignore
29+
30+
except ImportError:
31+
# 2.8.0+
32+
33+
# 3rd party
34+
from pyupgrade._main import main as _pyup_main # type: ignore
35+
2636
__all__ = ["main"]
2737

2838

2939
def main(argv: Optional[Sequence[str]] = None) -> int:
3040
"""
3141
Entry point for ``pyupgrade_directories``.
32-
33-
:rtype: int
3442
"""
3543

36-
parser = argparse.ArgumentParser()
44+
parser = argparse.ArgumentParser(add_help=False)
3745
parser.add_argument("filenames", nargs='*', type=pathlib.Path)
38-
parser.add_argument("--exit-zero-even-if-changed", action="store_true")
39-
parser.add_argument("--keep-percent-format", action="store_true")
40-
parser.add_argument("--keep-mock", action="store_true")
41-
parser.add_argument(
42-
"--py3-plus",
43-
"--py3-only",
44-
action="store_const",
45-
dest="min_version",
46-
default=(2, 7),
47-
const=(3, ),
48-
)
49-
parser.add_argument("--py36-plus", action="store_const", dest="min_version", const=(3, 6))
50-
parser.add_argument("--py37-plus", action="store_const", dest="min_version", const=(3, 7))
51-
parser.add_argument("--py38-plus", action="store_const", dest="min_version", const=(3, 8))
5246
parser.add_argument("--recursive", action="store_true", help="recurse subdirectories")
53-
args = parser.parse_args(argv)
54-
55-
ret = 0
5647

57-
for filename in iter_py_files(args.filenames, args.recursive):
58-
print(f"Checking '{filename}'")
59-
ret |= _fix_file(str(filename), args)
48+
args, argv = parser.parse_known_args(argv)
6049

61-
return ret
50+
return _pyup_main([*map(str, iter_py_files(args.filenames, args.recursive)), *argv])
6251

6352

6453
if __name__ == "__main__":
65-
exit(main())
54+
sys.exit(main())

repo_helper.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,6 @@ third_party_version_matrix:
4848
- "2.5"
4949
- "2.6"
5050
- "2.7"
51+
- "2.8"
52+
- "2.9"
53+
- "2.10"

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pyupgrade<2.8.0,>=2.5.0
1+
pyupgrade<2.11.0,>=2.5.0

tox.ini

Lines changed: 17 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414

1515
[tox]
1616
envlist =
17-
py36-pyupgrade{2.5,2.6,2.7}
18-
py37-pyupgrade{2.5,2.6,2.7}
19-
py38-pyupgrade{2.5,2.6,2.7}
20-
py39-pyupgrade{2.5,2.6,2.7}
21-
py310-dev-pyupgrade{2.5,2.6,2.7}
22-
pypy3-pyupgrade{2.5,2.6,2.7}
17+
py36-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
18+
py37-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
19+
py38-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
20+
py39-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
21+
py310-dev-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
22+
pypy3-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
2323
mypy
2424
build
2525
skip_missing_interpreters = True
@@ -31,12 +31,12 @@ requires =
3131

3232
[envlists]
3333
test =
34-
py36-pyupgrade{2.5,2.6,2.7}
35-
py37-pyupgrade{2.5,2.6,2.7}
36-
py38-pyupgrade{2.5,2.6,2.7}
37-
py39-pyupgrade{2.5,2.6,2.7}
38-
py310-dev-pyupgrade{2.5,2.6,2.7}
39-
pypy3-pyupgrade{2.5,2.6,2.7}
34+
py36-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
35+
py37-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
36+
py38-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
37+
py39-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
38+
py310-dev-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
39+
pypy3-pyupgrade{2.5,2.6,2.7,2.8,2.9,2.10}
4040
qa = mypy, lint
4141

4242
[testenv]
@@ -46,6 +46,9 @@ deps =
4646
pyupgrade2.5: pyupgrade~=2.5.0
4747
pyupgrade2.6: pyupgrade~=2.6.0
4848
pyupgrade2.7: pyupgrade~=2.7.0
49+
pyupgrade2.8: pyupgrade~=2.8.0
50+
pyupgrade2.9: pyupgrade~=2.9.0
51+
pyupgrade2.10: pyupgrade~=2.10.0
4952
commands =
5053
python --version
5154
python -m importcheck {posargs}
@@ -143,51 +146,5 @@ exclude_lines =
143146
if __name__ == .__main__.:
144147
\.\.\.
145148
146-
[gh-actions]
147-
python =
148-
3.6: py36, build, mypy
149-
3.7: py37, build
150-
3.8: py38, build
151-
3.9: py39, build
152-
3.10-dev: py310-dev, build
153-
pypy3: pypy3, build
154-
155-
[travis]
156-
python =
157-
3.6: py36, build, mypy
158-
3.7: py37, build
159-
3.8: py38, build
160-
3.9: py39, build
161-
3.10-dev: py310-dev, build
162-
pypy3: pypy3, build
163-
164-
[testenv:yapf]
165-
basepython = python3.7
166-
changedir = {toxinidir}
167-
skip_install = True
168-
ignore_errors = True
169-
deps = yapf
170-
commands = yapf -i --recursive pyupgrade_directories
171-
172-
[testenv:bumpversion]
173-
skip_install = true
174-
deps = bump2version
175-
commands = bumpversion --verbose {posargs}
176-
177-
178-
[testenv:isort]
179-
basepython = python3.6
180-
skip_install = true
181-
ignore_errors = true
182-
changedir = {toxinidir}
183-
deps = isort >=5.1.4
184-
commands = isort pyupgrade_directories
185-
186-
187-
[testenv:qa]
188-
basepython = python3.6
189-
skip_install = True
190-
ignore_errors = true
191-
whitelist_externals = tox
192-
changedir = {toxinidir}
193-
commands = tox -e pyup,isort,yapf,mypy,lint {posargs}
149+
[dep_checker]
150+
allowed_unused = pyupgrade

0 commit comments

Comments
 (0)