!62 同步openEuler-22.03-LTS-SP3的修改到openEuler-22.03-LTS-SP4
From: @wu-leilei Reviewed-by: @lyn1001 Signed-off-by: @lyn1001
This commit is contained in:
commit
0054644eeb
@ -0,0 +1,75 @@
|
||||
From 13cad915e6b181b2f6a85efc2ead4856b23bccc0 Mon Sep 17 00:00:00 2001
|
||||
From: Angus L'Herrou <piraka@brandeis.edu>
|
||||
Date: Tue, 5 Oct 2021 18:44:29 -0400
|
||||
Subject: [PATCH] Detect typing module attributes with 'import typing as
|
||||
<name>' (#632)
|
||||
|
||||
* added functionality to detect typing module attributes with 'import typing as <name>'
|
||||
|
||||
* remove async keyword from test_aliased_import
|
||||
---
|
||||
pyflakes/checker.py | 12 +++++++++++-
|
||||
pyflakes/test/test_type_annotations.py | 17 +++++++++++++++++
|
||||
2 files changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
|
||||
index 6fafe89..45c7a4a 100644
|
||||
--- a/pyflakes/checker.py
|
||||
+++ b/pyflakes/checker.py
|
||||
@@ -720,6 +720,16 @@ def _is_typing_helper(node, is_name_match_fn, scope_stack):
|
||||
|
||||
return False
|
||||
|
||||
+ def _module_scope_is_typing(name):
|
||||
+ for scope in reversed(scope_stack):
|
||||
+ if name in scope:
|
||||
+ return (
|
||||
+ isinstance(scope[name], Importation) and
|
||||
+ scope[name].fullName in TYPING_MODULES
|
||||
+ )
|
||||
+
|
||||
+ return False
|
||||
+
|
||||
return (
|
||||
(
|
||||
isinstance(node, ast.Name) and
|
||||
@@ -727,7 +737,7 @@ def _is_typing_helper(node, is_name_match_fn, scope_stack):
|
||||
) or (
|
||||
isinstance(node, ast.Attribute) and
|
||||
isinstance(node.value, ast.Name) and
|
||||
- node.value.id in TYPING_MODULES and
|
||||
+ _module_scope_is_typing(node.value.id) and
|
||||
is_name_match_fn(node.attr)
|
||||
)
|
||||
)
|
||||
diff --git a/pyflakes/test/test_type_annotations.py b/pyflakes/test/test_type_annotations.py
|
||||
index 6a66bcd..f3b6c24 100644
|
||||
--- a/pyflakes/test/test_type_annotations.py
|
||||
+++ b/pyflakes/test/test_type_annotations.py
|
||||
@@ -121,6 +121,23 @@ class TestTypeAnnotations(TestCase):
|
||||
def f(self, x): return x
|
||||
""")
|
||||
|
||||
+ def test_aliased_import(self):
|
||||
+ """Detect when typing is imported as another name"""
|
||||
+ self.flakes("""
|
||||
+ import typing as t
|
||||
+
|
||||
+ @t.overload
|
||||
+ def f(s): # type: (None) -> None
|
||||
+ pass
|
||||
+
|
||||
+ @t.overload
|
||||
+ def f(s): # type: (int) -> int
|
||||
+ pass
|
||||
+
|
||||
+ def f(s):
|
||||
+ return s
|
||||
+ """)
|
||||
+
|
||||
def test_not_a_typing_overload(self):
|
||||
"""regression test for @typing.overload detection bug in 2.1.0"""
|
||||
self.flakes("""
|
||||
--
|
||||
2.42.0.windows.2
|
||||
|
||||
42
0001-remove-old-and-unused-tracing-code-625.patch
Normal file
42
0001-remove-old-and-unused-tracing-code-625.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From da197ee94e791640d82940396c19d2d82ca8defb Mon Sep 17 00:00:00 2001
|
||||
From: Terence Honles <terence@honles.com>
|
||||
Date: Thu, 20 May 2021 07:47:19 -0700
|
||||
Subject: [PATCH] remove old and unused "tracing" code (#625)
|
||||
|
||||
---
|
||||
pyflakes/checker.py | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/pyflakes/checker.py b/pyflakes/checker.py
|
||||
index 48d3841..135ad33 100644
|
||||
--- a/pyflakes/checker.py
|
||||
+++ b/pyflakes/checker.py
|
||||
@@ -868,7 +868,6 @@ class Checker(object):
|
||||
|
||||
nodeDepth = 0
|
||||
offset = None
|
||||
- traceTree = False
|
||||
_in_annotation = AnnotationState.NONE
|
||||
_in_deferred = False
|
||||
|
||||
@@ -1393,8 +1392,6 @@ class Checker(object):
|
||||
if self.offset and getattr(node, 'lineno', None) is not None:
|
||||
node.lineno += self.offset[0]
|
||||
node.col_offset += self.offset[1]
|
||||
- if self.traceTree:
|
||||
- print(' ' * self.nodeDepth + node.__class__.__name__)
|
||||
if self.futuresAllowed and not (isinstance(node, ast.ImportFrom) or
|
||||
self.isDocstring(node)):
|
||||
self.futuresAllowed = False
|
||||
@@ -1406,8 +1403,6 @@ class Checker(object):
|
||||
handler(node)
|
||||
finally:
|
||||
self.nodeDepth -= 1
|
||||
- if self.traceTree:
|
||||
- print(' ' * self.nodeDepth + 'end ' + node.__class__.__name__)
|
||||
|
||||
_getDoctestExamples = doctest.DocTestParser().get_examples
|
||||
|
||||
--
|
||||
2.42.0.windows.2
|
||||
|
||||
@ -3,11 +3,13 @@
|
||||
Pyflakes A simple program which checks Python source files for errors.Pyflakes
|
||||
Name: python-pyflakes
|
||||
Version: 2.3.1
|
||||
Release: 1
|
||||
Release: 5
|
||||
Summary: passive checker of Python programs
|
||||
License: MIT
|
||||
URL: https://github.com/PyCQA/pyflakes
|
||||
Source0: https://files.pythonhosted.org/packages/a8/0f/0dc480da9162749bf629dca76570972dd9cce5bedc60196a3c912875c87d/pyflakes-2.3.1.tar.gz
|
||||
Patch0001: 0001-Detect-typing-module-attributes-with-import-typing-a.patch
|
||||
Patch0002: 0001-remove-old-and-unused-tracing-code-625.patch
|
||||
BuildArch: noarch
|
||||
%description
|
||||
%{common_desc}
|
||||
@ -31,7 +33,7 @@ Provides: python3-pyflakes-doc
|
||||
%{common_desc}
|
||||
|
||||
%prep
|
||||
%autosetup -n pyflakes-2.3.1
|
||||
%autosetup -n pyflakes-2.3.1 -p1
|
||||
|
||||
%build
|
||||
%py3_build
|
||||
@ -76,6 +78,18 @@ mv %{buildroot}/doclist.lst .
|
||||
%{_docdir}/*
|
||||
|
||||
%changelog
|
||||
* Wed Jan 31 2024 liubo <liubo1@xfusion.com> - 2.3.1-5
|
||||
- Rebuild
|
||||
|
||||
* Fri Jan 26 2024 liubo <liubo1@xfusion.com> - 2.3.1-4
|
||||
- remove old and unused "tracing" code (#625)
|
||||
|
||||
* Fri Jan 19 2024 liubo <liubo1@xfusion.com> - 2.3.1-3
|
||||
- Rebuild
|
||||
|
||||
* Tue Nov 7 2023 liubo <liubo1@xfusion.com> - 2.3.1-2
|
||||
- Detect typing module attributes with 'import typing as <name>'
|
||||
|
||||
* Mon Jul 19 2021 OpenStack_SIG <openstack@openeuler.org> - 2.3.1-1
|
||||
- update to 2.3.1
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user