Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pyupgrade for
openSUSE:Factory checked in at 2021-05-10 15:38:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyupgrade (Old)
and /work/SRC/openSUSE:Factory/.python-pyupgrade.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyupgrade"
Mon May 10 15:38:39 2021 rev:9 rq:891802 version:2.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyupgrade/python-pyupgrade.changes
2021-05-02 18:39:14.108150348 +0200
+++
/work/SRC/openSUSE:Factory/.python-pyupgrade.new.2988/python-pyupgrade.changes
2021-05-10 15:41:10.965132527 +0200
@@ -1,0 +2,8 @@
+Sun May 2 07:38:55 UTC 2021 - Sebastian Wagner <[email protected]>
+
+- update to version 2.14.0:
+ - replace universal_newlines with text if py37+
+ - upgrade subprocess.run(universal_newlines=True) to
subprocess.run(text=True) in --py37-plus
+ - reorder_python_imports: v2.4.0 ??? v2.5.0
+
+-------------------------------------------------------------------
Old:
----
python-pyupgrade-2.13.0.tar.gz
New:
----
python-pyupgrade-2.14.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyupgrade.spec ++++++
--- /var/tmp/diff_new_pack.St8uRv/_old 2021-05-10 15:41:11.381130900 +0200
+++ /var/tmp/diff_new_pack.St8uRv/_new 2021-05-10 15:41:11.385130883 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-pyupgrade
-Version: 2.13.0
+Version: 2.14.0
Release: 0
Summary: A tool to automatically upgrade syntax for newer versions
License: MIT
++++++ python-pyupgrade-2.13.0.tar.gz -> python-pyupgrade-2.14.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyupgrade-2.13.0/.pre-commit-config.yaml
new/pyupgrade-2.14.0/.pre-commit-config.yaml
--- old/pyupgrade-2.13.0/.pre-commit-config.yaml 2021-04-20
23:21:45.000000000 +0200
+++ new/pyupgrade-2.14.0/.pre-commit-config.yaml 2021-05-01
22:38:32.000000000 +0200
@@ -24,7 +24,7 @@
hooks:
- id: autopep8
- repo: https://github.com/asottile/reorder_python_imports
- rev: v2.4.0
+ rev: v2.5.0
hooks:
- id: reorder-python-imports
args: [--py3-plus]
@@ -34,7 +34,7 @@
- id: add-trailing-comma
args: [--py36-plus]
- repo: https://github.com/asottile/pyupgrade
- rev: v2.13.0
+ rev: v2.14.0
hooks:
- id: pyupgrade
args: [--py36-plus]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyupgrade-2.13.0/README.md
new/pyupgrade-2.14.0/README.md
--- old/pyupgrade-2.13.0/README.md 2021-04-20 23:21:45.000000000 +0200
+++ new/pyupgrade-2.14.0/README.md 2021-05-01 22:38:32.000000000 +0200
@@ -20,7 +20,7 @@
```yaml
- repo: https://github.com/asottile/pyupgrade
- rev: v2.13.0
+ rev: v2.14.0
hooks:
- id: pyupgrade
```
@@ -462,6 +462,18 @@
if it would make the expression longer or if the substitution parameters are
anything but simple names or dotted names (as this can decrease readability).
+
+### `subprocess.run`: replace `universal_newlines` with `text`
+
+Availability:
+- `--py37-plus` is passed on the commandline.
+
+```diff
+-output = subprocess.run(['foo'], universal_newlines=True)
++output = subprocess.run(['foo'], text=True)
+```
+
+
### remove parentheses from `@functools.lru_cache()`
Availability:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyupgrade-2.13.0/pyupgrade/_data.py
new/pyupgrade-2.14.0/pyupgrade/_data.py
--- old/pyupgrade-2.13.0/pyupgrade/_data.py 2021-04-20 23:21:45.000000000
+0200
+++ new/pyupgrade-2.14.0/pyupgrade/_data.py 2021-05-01 22:38:32.000000000
+0200
@@ -49,6 +49,7 @@
'select',
'six',
'socket',
+ 'subprocess',
'sys',
'typing',
))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyupgrade-2.13.0/pyupgrade/_plugins/universal_newlines_to_text.py
new/pyupgrade-2.14.0/pyupgrade/_plugins/universal_newlines_to_text.py
--- old/pyupgrade-2.13.0/pyupgrade/_plugins/universal_newlines_to_text.py
1970-01-01 01:00:00.000000000 +0100
+++ new/pyupgrade-2.14.0/pyupgrade/_plugins/universal_newlines_to_text.py
2021-05-01 22:38:32.000000000 +0200
@@ -0,0 +1,61 @@
+import ast
+import functools
+from typing import Iterable
+from typing import List
+from typing import Tuple
+
+from tokenize_rt import Offset
+from tokenize_rt import Token
+from tokenize_rt import tokens_to_src
+
+from pyupgrade._ast_helpers import ast_to_offset
+from pyupgrade._ast_helpers import is_name_attr
+from pyupgrade._data import register
+from pyupgrade._data import State
+from pyupgrade._data import TokenFunc
+from pyupgrade._token_helpers import find_open_paren
+from pyupgrade._token_helpers import parse_call_args
+
+
+def _replace_universal_newlines_with_text(
+ i: int,
+ tokens: List[Token],
+ *,
+ arg_idx: int,
+) -> None:
+ j = find_open_paren(tokens, i)
+ func_args, _ = parse_call_args(tokens, j)
+ src = tokens_to_src(tokens[slice(*func_args[arg_idx])])
+ new_src = src.replace('universal_newlines', 'text', 1)
+ tokens[slice(*func_args[arg_idx])] = [Token('SRC', new_src)]
+
+
+@register(ast.Call)
+def visit_Call(
+ state: State,
+ node: ast.Call,
+ parent: ast.AST,
+) -> Iterable[Tuple[Offset, TokenFunc]]:
+ if (
+ state.settings.min_version >= (3, 7) and
+ is_name_attr(
+ node.func,
+ state.from_imports,
+ 'subprocess',
+ ('run',),
+ )
+ ):
+ kwarg_idx = next(
+ (
+ n
+ for n, keyword in enumerate(node.keywords)
+ if keyword.arg == 'universal_newlines'
+ ),
+ None,
+ )
+ if kwarg_idx is not None:
+ func = functools.partial(
+ _replace_universal_newlines_with_text,
+ arg_idx=len(node.args) + kwarg_idx,
+ )
+ yield ast_to_offset(node), func
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyupgrade-2.13.0/setup.cfg
new/pyupgrade-2.14.0/setup.cfg
--- old/pyupgrade-2.13.0/setup.cfg 2021-04-20 23:21:45.000000000 +0200
+++ new/pyupgrade-2.14.0/setup.cfg 2021-05-01 22:38:32.000000000 +0200
@@ -1,6 +1,6 @@
[metadata]
name = pyupgrade
-version = 2.13.0
+version = 2.14.0
description = A tool to automatically upgrade syntax for newer versions.
long_description = file: README.md
long_description_content_type = text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyupgrade-2.13.0/tests/features/universal_newlines_to_text_test.py
new/pyupgrade-2.14.0/tests/features/universal_newlines_to_text_test.py
--- old/pyupgrade-2.13.0/tests/features/universal_newlines_to_text_test.py
1970-01-01 01:00:00.000000000 +0100
+++ new/pyupgrade-2.14.0/tests/features/universal_newlines_to_text_test.py
2021-05-01 22:38:32.000000000 +0200
@@ -0,0 +1,77 @@
+import pytest
+
+from pyupgrade._data import Settings
+from pyupgrade._main import _fix_plugins
+
+
[email protected](
+ ('s', 'version'),
+ (
+ pytest.param(
+ 'import subprocess\n'
+ 'subprocess.run(["foo"], universal_newlines=True)\n',
+ (3,),
+ id='not Python3.7+',
+ ),
+ pytest.param(
+ 'from foo import run\n'
+ 'run(["foo"], universal_newlines=True)\n',
+ (3, 7),
+ id='run imported, but not from subprocess',
+ ),
+ pytest.param(
+ 'from subprocess import run\n'
+ 'run(["foo"], shell=True)\n',
+ (3, 7),
+ id='universal_newlines not used',
+ ),
+ ),
+)
+def test_fix_universal_newlines_to_text_noop(s, version):
+ assert _fix_plugins(s, settings=Settings(min_version=version)) == s
+
+
[email protected](
+ ('s', 'expected'),
+ (
+ pytest.param(
+ 'import subprocess\n'
+ 'subprocess.run(["foo"], universal_newlines=True)\n',
+
+ 'import subprocess\n'
+ 'subprocess.run(["foo"], text=True)\n',
+
+ id='subprocess.run attribute',
+ ),
+ pytest.param(
+ 'from subprocess import run\n'
+ 'run(["foo"], universal_newlines=True)\n',
+
+ 'from subprocess import run\n'
+ 'run(["foo"], text=True)\n',
+
+ id='run imported from subprocess',
+ ),
+ pytest.param(
+ 'from subprocess import run\n'
+ 'run(["foo"], universal_newlines=universal_newlines)\n',
+
+ 'from subprocess import run\n'
+ 'run(["foo"], text=universal_newlines)\n',
+
+ id='universal_newlines appears as value',
+ ),
+ pytest.param(
+ 'from subprocess import run\n'
+ 'run(["foo"], *foo, universal_newlines=universal_newlines)\n',
+
+ 'from subprocess import run\n'
+ 'run(["foo"], *foo, text=universal_newlines)\n',
+
+ id='with starargs',
+ ),
+ ),
+)
+def test_fix_universal_newlines_to_text(s, expected):
+ ret = _fix_plugins(s, settings=Settings(min_version=(3, 7)))
+ assert ret == expected