Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-parso for openSUSE:Factory 
checked in at 2024-07-30 11:53:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-parso (Old)
 and      /work/SRC/openSUSE:Factory/.python-parso.new.1882 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-parso"

Tue Jul 30 11:53:46 2024 rev:21 rq:1190186 version:0.8.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-parso/python-parso.changes        
2023-10-04 22:30:42.734038078 +0200
+++ /work/SRC/openSUSE:Factory/.python-parso.new.1882/python-parso.changes      
2024-07-30 11:53:58.468337179 +0200
@@ -1,0 +2,8 @@
+Mon Jul 22 11:38:30 UTC 2024 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to 0.8.4
+  * Add basic support for Python 3.13
+- Drop patches for issues fixed upstream
+  * cf5969d7a109798adbf9538d70e92138f077d700.patch
+
+-------------------------------------------------------------------

Old:
----
  cf5969d7a109798adbf9538d70e92138f077d700.patch
  parso-0.8.3.tar.gz

New:
----
  parso-0.8.4.tar.gz

BETA DEBUG BEGIN:
  Old:- Drop patches for issues fixed upstream
  * cf5969d7a109798adbf9538d70e92138f077d700.patch
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-parso.spec ++++++
--- /var/tmp/diff_new_pack.tyLoFC/_old  2024-07-30 11:53:59.024359612 +0200
+++ /var/tmp/diff_new_pack.tyLoFC/_new  2024-07-30 11:53:59.024359612 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-parso
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,13 +18,12 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-parso
-Version:        0.8.3
+Version:        0.8.4
 Release:        0
 Summary:        An autocompletion tool for Python
 License:        MIT AND Python-2.0
 URL:            https://github.com/davidhalter/parso
 Source0:        
https://files.pythonhosted.org/packages/source/p/parso/parso-%{version}.tar.gz
-Patch1:         
https://github.com/davidhalter/parso/commit/cf5969d7a109798adbf9538d70e92138f077d700.patch
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest >= 3.0.7}
 BuildRequires:  %{python_module setuptools}

++++++ parso-0.8.3.tar.gz -> parso-0.8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/CHANGELOG.rst 
new/parso-0.8.4/CHANGELOG.rst
--- old/parso-0.8.3/CHANGELOG.rst       2021-11-30 22:04:12.000000000 +0100
+++ new/parso-0.8.4/CHANGELOG.rst       2024-04-05 10:44:00.000000000 +0200
@@ -6,6 +6,11 @@
 Unreleased
 ++++++++++
 
+0.8.4 (2024-04-05)
+++++++++++++++++++
+
+- Add basic support for Python 3.13
+
 0.8.3 (2021-11-30)
 ++++++++++++++++++
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/PKG-INFO new/parso-0.8.4/PKG-INFO
--- old/parso-0.8.3/PKG-INFO    2021-11-30 22:05:45.521858000 +0100
+++ new/parso-0.8.4/PKG-INFO    2024-04-05 10:44:26.357275500 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: parso
-Version: 0.8.3
+Version: 0.8.4
 Summary: A Python Parser
 Home-page: https://github.com/davidhalter/parso
 Author: David Halter
@@ -113,6 +113,11 @@
         Unreleased
         ++++++++++
         
+        0.8.4 (2024-04-05)
+        ++++++++++++++++++
+        
+        - Add basic support for Python 3.13
+        
         0.8.3 (2021-11-30)
         ++++++++++++++++++
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/__init__.py 
new/parso-0.8.4/parso/__init__.py
--- old/parso-0.8.3/parso/__init__.py   2021-11-30 22:04:12.000000000 +0100
+++ new/parso-0.8.4/parso/__init__.py   2024-04-05 10:44:00.000000000 +0200
@@ -43,7 +43,7 @@
 from parso.utils import split_lines, python_bytes_to_unicode
 
 
-__version__ = '0.8.3'
+__version__ = '0.8.4'
 
 
 def parse(code=None, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/grammar.py 
new/parso-0.8.4/parso/grammar.py
--- old/parso-0.8.3/parso/grammar.py    2021-11-30 22:04:12.000000000 +0100
+++ new/parso-0.8.4/parso/grammar.py    2024-04-05 10:44:00.000000000 +0200
@@ -106,14 +106,14 @@
 
         if file_io is None:
             if code is None:
-                file_io = FileIO(path)  # type: ignore
+                file_io = FileIO(path)  # type: ignore[arg-type]
             else:
                 file_io = KnownContentFileIO(path, code)
 
         if cache and file_io.path is not None:
             module_node = load_module(self._hashed, file_io, 
cache_path=cache_path)
             if module_node is not None:
-                return module_node  # type: ignore
+                return module_node  # type: ignore[no-any-return]
 
         if code is None:
             code = file_io.read()
@@ -132,7 +132,7 @@
                 module_node = module_cache_item.node
                 old_lines = module_cache_item.lines
                 if old_lines == lines:
-                    return module_node  # type: ignore
+                    return module_node  # type: ignore[no-any-return]
 
                 new_node = self._diff_parser(
                     self._pgen_grammar, self._tokenizer, module_node
@@ -144,7 +144,7 @@
                                    # Never pickle in pypy, it's slow as hell.
                                    pickling=cache and not is_pypy,
                                    cache_path=cache_path)
-                return new_node  # type: ignore
+                return new_node  # type: ignore[no-any-return]
 
         tokens = self._tokenizer(lines)
 
@@ -160,7 +160,7 @@
                                # Never pickle in pypy, it's slow as hell.
                                pickling=cache and not is_pypy,
                                cache_path=cache_path)
-        return root_node  # type: ignore
+        return root_node  # type: ignore[no-any-return]
 
     def _get_token_namespace(self):
         ns = self._token_namespace
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/pgen2/generator.py 
new/parso-0.8.4/parso/pgen2/generator.py
--- old/parso-0.8.3/parso/pgen2/generator.py    2021-11-30 22:04:12.000000000 
+0100
+++ new/parso-0.8.4/parso/pgen2/generator.py    2024-04-05 10:44:00.000000000 
+0200
@@ -276,7 +276,7 @@
                     dfa_state.transitions[transition] = DFAPlan(next_dfa)
 
     _calculate_tree_traversal(rule_to_dfas)
-    return Grammar(start_nonterminal, rule_to_dfas, reserved_strings)  # type: 
ignore
+    return Grammar(start_nonterminal, rule_to_dfas, reserved_strings)  # type: 
ignore[arg-type]
 
 
 def _make_transition(token_namespace, reserved_syntax_strings, label):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/python/errors.py 
new/parso-0.8.4/parso/python/errors.py
--- old/parso-0.8.3/parso/python/errors.py      2021-11-30 22:04:12.000000000 
+0100
+++ new/parso-0.8.4/parso/python/errors.py      2024-04-05 10:44:00.000000000 
+0200
@@ -1,5 +1,6 @@
 # -*- coding: utf-8 -*-
 import codecs
+import sys
 import warnings
 import re
 from contextlib import contextmanager
@@ -33,7 +34,10 @@
                 return "literal"
             else:
                 if second.children[1] == ":" or second.children[0] == "**":
-                    return "dict display"
+                    if version < (3, 10):
+                        return "dict display"
+                    else:
+                        return "dict literal"
                 else:
                     return "set display"
         elif (
@@ -47,7 +51,10 @@
         elif first == "[":
             return "list"
         elif first == "{" and second == "}":
-            return "dict display"
+            if version < (3, 10):
+                return "dict display"
+            else:
+                return "dict literal"
         elif first == "{" and len(node.children) > 2:
             return "set display"
     elif type_ == "keyword":
@@ -58,7 +65,10 @@
         else:
             return str(node.value)
     elif type_ == "operator" and node.value == "...":
-        return "Ellipsis"
+        if version < (3, 10):
+            return "Ellipsis"
+        else:
+            return "ellipsis"
     elif type_ == "comparison":
         return "comparison"
     elif type_ in ("string", "number", "strings"):
@@ -83,7 +93,10 @@
         or "_test" in type_
         or type_ in ("term", "factor")
     ):
-        return "operator"
+        if version < (3, 10):
+            return "operator"
+        else:
+            return "expression"
     elif type_ == "star_expr":
         return "starred"
     elif type_ == "testlist_star_expr":
@@ -610,7 +623,10 @@
 
 @ErrorFinder.register_rule(type='string')
 class _StringChecks(SyntaxRule):
-    message = "bytes can only contain ASCII literal characters."
+    if sys.version_info < (3, 10):
+        message = "bytes can only contain ASCII literal characters."
+    else:
+        message = "bytes can only contain ASCII literal characters"
 
     def is_issue(self, leaf):
         string_prefix = leaf.string_prefix.lower()
@@ -1043,14 +1059,20 @@
                         error = 'literal'
                     else:
                         if second.children[1] == ':':
-                            error = 'dict display'
+                            if self._normalizer.version < (3, 10):
+                                error = 'dict display'
+                            else:
+                                error = 'dict literal'
                         else:
                             error = 'set display'
                 elif first == "{" and second == "}":
                     if self._normalizer.version < (3, 8):
                         error = 'literal'
                     else:
-                        error = "dict display"
+                        if self._normalizer.version < (3, 10):
+                            error = "dict display"
+                        else:
+                            error = "dict literal"
                 elif first == "{" and len(node.children) > 2:
                     if self._normalizer.version < (3, 8):
                         error = 'literal'
@@ -1083,7 +1105,10 @@
                 error = str(node.value)
         elif type_ == 'operator':
             if node.value == '...':
-                error = 'Ellipsis'
+                if self._normalizer.version < (3, 10):
+                    error = 'Ellipsis'
+                else:
+                    error = 'ellipsis'
         elif type_ == 'comparison':
             error = 'comparison'
         elif type_ in ('string', 'number', 'strings'):
@@ -1098,7 +1123,10 @@
             if node.children[0] == 'await':
                 error = 'await expression'
             elif node.children[-2] == '**':
-                error = 'operator'
+                if self._normalizer.version < (3, 10):
+                    error = 'operator'
+                else:
+                    error = 'expression'
             else:
                 # Has a trailer
                 trailer = node.children[-1]
@@ -1120,7 +1148,10 @@
         elif ('expr' in type_ and type_ != 'star_expr'  # is a substring
               or '_test' in type_
               or type_ in ('term', 'factor')):
-            error = 'operator'
+            if self._normalizer.version < (3, 10):
+                error = 'operator'
+            else:
+                error = 'expression'
         elif type_ == "star_expr":
             if is_deletion:
                 if self._normalizer.version >= (3, 9):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/python/grammar313.txt 
new/parso-0.8.4/parso/python/grammar313.txt
--- old/parso-0.8.3/parso/python/grammar313.txt 1970-01-01 01:00:00.000000000 
+0100
+++ new/parso-0.8.4/parso/python/grammar313.txt 2024-04-05 10:44:00.000000000 
+0200
@@ -0,0 +1,169 @@
+# Grammar for Python
+
+# NOTE WELL: You should also follow all the steps listed at
+# https://devguide.python.org/grammar/
+
+# Start symbols for the grammar:
+#       single_input is a single interactive statement;
+#       file_input is a module or sequence of commands read from an input file;
+#       eval_input is the input for the eval() functions.
+# NB: compound_stmt in single_input is followed by extra NEWLINE!
+single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
+file_input: stmt* ENDMARKER
+eval_input: testlist NEWLINE* ENDMARKER
+
+decorator: '@' namedexpr_test NEWLINE
+decorators: decorator+
+decorated: decorators (classdef | funcdef | async_funcdef)
+
+async_funcdef: 'async' funcdef
+funcdef: 'def' NAME parameters ['->' test] ':' suite
+
+parameters: '(' [typedargslist] ')'
+typedargslist: (
+  (tfpdef ['=' test] (',' tfpdef ['=' test])* ',' '/' [',' [ tfpdef ['=' test] 
(
+        ',' tfpdef ['=' test])* ([',' [
+        '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+      | '**' tfpdef [',']]])
+  | '*' [tfpdef] (',' tfpdef ['=' test])* ([',' ['**' tfpdef [',']]])
+  | '**' tfpdef [',']]] )
+|  (tfpdef ['=' test] (',' tfpdef ['=' test])* [',' [
+        '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+      | '**' tfpdef [',']]]
+  | '*' [tfpdef] (',' tfpdef ['=' test])* [',' ['**' tfpdef [',']]]
+  | '**' tfpdef [','])
+)
+tfpdef: NAME [':' test]
+varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ (vfpdef 
['=' test] (',' vfpdef ['=' test])* [',' [
+        '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+      | '**' vfpdef [',']]]
+  | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+  | '**' vfpdef [',']) ]] | (vfpdef ['=' test] (',' vfpdef ['=' test])* [',' [
+        '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+      | '**' vfpdef [',']]]
+  | '*' [vfpdef] (',' vfpdef ['=' test])* [',' ['**' vfpdef [',']]]
+  | '**' vfpdef [',']
+)
+vfpdef: NAME
+
+stmt: simple_stmt | compound_stmt | NEWLINE
+simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
+small_stmt: (expr_stmt | del_stmt | pass_stmt | flow_stmt |
+             import_stmt | global_stmt | nonlocal_stmt | assert_stmt)
+expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) |
+                     ('=' (yield_expr|testlist_star_expr))*)
+annassign: ':' test ['=' (yield_expr|testlist_star_expr)]
+testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
+augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
+            '<<=' | '>>=' | '**=' | '//=')
+# For normal and annotated assignments, additional restrictions enforced by 
the interpreter
+del_stmt: 'del' exprlist
+pass_stmt: 'pass'
+flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt
+break_stmt: 'break'
+continue_stmt: 'continue'
+return_stmt: 'return' [testlist_star_expr]
+yield_stmt: yield_expr
+raise_stmt: 'raise' [test ['from' test]]
+import_stmt: import_name | import_from
+import_name: 'import' dotted_as_names
+# note below: the ('.' | '...') is necessary because '...' is tokenized as 
ELLIPSIS
+import_from: ('from' (('.' | '...')* dotted_name | ('.' | '...')+)
+              'import' ('*' | '(' import_as_names ')' | import_as_names))
+import_as_name: NAME ['as' NAME]
+dotted_as_name: dotted_name ['as' NAME]
+import_as_names: import_as_name (',' import_as_name)* [',']
+dotted_as_names: dotted_as_name (',' dotted_as_name)*
+dotted_name: NAME ('.' NAME)*
+global_stmt: 'global' NAME (',' NAME)*
+nonlocal_stmt: 'nonlocal' NAME (',' NAME)*
+assert_stmt: 'assert' test [',' test]
+
+compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | 
funcdef | classdef | decorated | async_stmt
+async_stmt: 'async' (funcdef | with_stmt | for_stmt)
+if_stmt: 'if' namedexpr_test ':' suite ('elif' namedexpr_test ':' suite)* 
['else' ':' suite]
+while_stmt: 'while' namedexpr_test ':' suite ['else' ':' suite]
+for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
+try_stmt: ('try' ':' suite
+           ((except_clause ':' suite)+
+            ['else' ':' suite]
+            ['finally' ':' suite] |
+           'finally' ':' suite))
+with_stmt: 'with' with_item (',' with_item)*  ':' suite
+with_item: test ['as' expr]
+# NB compile.c makes sure that the default except clause is last
+except_clause: 'except' [test ['as' NAME]]
+suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
+
+namedexpr_test: test [':=' test]
+test: or_test ['if' or_test 'else' test] | lambdef
+lambdef: 'lambda' [varargslist] ':' test
+or_test: and_test ('or' and_test)*
+and_test: not_test ('and' not_test)*
+not_test: 'not' not_test | comparison
+comparison: expr (comp_op expr)*
+# <> isn't actually a valid comparison operator in Python. It's here for the
+# sake of a __future__ import described in PEP 401 (which really works :-)
+comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
+star_expr: '*' expr
+expr: xor_expr ('|' xor_expr)*
+xor_expr: and_expr ('^' and_expr)*
+and_expr: shift_expr ('&' shift_expr)*
+shift_expr: arith_expr (('<<'|'>>') arith_expr)*
+arith_expr: term (('+'|'-') term)*
+term: factor (('*'|'@'|'/'|'%'|'//') factor)*
+factor: ('+'|'-'|'~') factor | power
+power: atom_expr ['**' factor]
+atom_expr: ['await'] atom trailer*
+atom: ('(' [yield_expr|testlist_comp] ')' |
+       '[' [testlist_comp] ']' |
+       '{' [dictorsetmaker] '}' |
+       NAME | NUMBER | strings | '...' | 'None' | 'True' | 'False')
+testlist_comp: (namedexpr_test|star_expr) ( comp_for | (',' 
(namedexpr_test|star_expr))* [','] )
+trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
+subscriptlist: subscript (',' subscript)* [',']
+subscript: test [':=' test] | [test] ':' [test] [sliceop]
+sliceop: ':' [test]
+exprlist: (expr|star_expr) (',' (expr|star_expr))* [',']
+testlist: test (',' test)* [',']
+dictorsetmaker: ( ((test ':' test | '**' expr)
+                   (comp_for | (',' (test ':' test | '**' expr))* [','])) |
+                  ((test [':=' test] | star_expr)
+                   (comp_for | (',' (test [':=' test] | star_expr))* [','])) )
+
+classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
+
+arglist: argument (',' argument)*  [',']
+
+# The reason that keywords are test nodes instead of NAME is that using NAME
+# results in an ambiguity. ast.c makes sure it's a NAME.
+# "test '=' test" is really "keyword '=' test", but we have no such token.
+# These need to be in a single rule to avoid grammar that is ambiguous
+# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr,
+# we explicitly match '*' here, too, to give it proper precedence.
+# Illegal combinations and orderings are blocked in ast.c:
+# multiple (test comp_for) arguments are blocked; keyword unpackings
+# that precede iterable unpackings are blocked; etc.
+argument: ( test [comp_for] |
+            test ':=' test |
+            test '=' test |
+            '**' test |
+            '*' test )
+
+comp_iter: comp_for | comp_if
+sync_comp_for: 'for' exprlist 'in' or_test [comp_iter]
+comp_for: ['async'] sync_comp_for
+comp_if: 'if' or_test [comp_iter]
+
+# not used in grammar, but may appear in "node" passed from Parser to Compiler
+encoding_decl: NAME
+
+yield_expr: 'yield' [yield_arg]
+yield_arg: 'from' test | testlist_star_expr
+
+strings: (STRING | fstring)+
+fstring: FSTRING_START fstring_content* FSTRING_END
+fstring_content: FSTRING_STRING | fstring_expr
+fstring_conversion: '!' NAME
+fstring_expr: '{' (testlist_comp | yield_expr) ['='] [ fstring_conversion ] [ 
fstring_format_spec ] '}'
+fstring_format_spec: ':' fstring_content*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso/python/tree.py 
new/parso-0.8.4/parso/python/tree.py
--- old/parso-0.8.3/parso/python/tree.py        2021-11-30 22:04:12.000000000 
+0100
+++ new/parso-0.8.4/parso/python/tree.py        2024-04-05 10:44:00.000000000 
+0200
@@ -295,6 +295,8 @@
 
 
 class _StringComparisonMixin:
+    __slots__ = ()
+
     def __eq__(self, other):
         """
         Make comparisons with strings easy.
@@ -544,6 +546,7 @@
         4. annotation (if present)
     """
     type = 'funcdef'
+    __slots__ = ()
 
     def __init__(self, children):
         super().__init__(children)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso.egg-info/PKG-INFO 
new/parso-0.8.4/parso.egg-info/PKG-INFO
--- old/parso-0.8.3/parso.egg-info/PKG-INFO     2021-11-30 22:05:45.000000000 
+0100
+++ new/parso-0.8.4/parso.egg-info/PKG-INFO     2024-04-05 10:44:26.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: parso
-Version: 0.8.3
+Version: 0.8.4
 Summary: A Python Parser
 Home-page: https://github.com/davidhalter/parso
 Author: David Halter
@@ -113,6 +113,11 @@
         Unreleased
         ++++++++++
         
+        0.8.4 (2024-04-05)
+        ++++++++++++++++++
+        
+        - Add basic support for Python 3.13
+        
         0.8.3 (2021-11-30)
         ++++++++++++++++++
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso.egg-info/SOURCES.txt 
new/parso-0.8.4/parso.egg-info/SOURCES.txt
--- old/parso-0.8.3/parso.egg-info/SOURCES.txt  2021-11-30 22:05:45.000000000 
+0100
+++ new/parso-0.8.4/parso.egg-info/SOURCES.txt  2024-04-05 10:44:26.000000000 
+0200
@@ -51,6 +51,7 @@
 parso/python/grammar310.txt
 parso/python/grammar311.txt
 parso/python/grammar312.txt
+parso/python/grammar313.txt
 parso/python/grammar36.txt
 parso/python/grammar37.txt
 parso/python/grammar38.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/parso.egg-info/requires.txt 
new/parso-0.8.4/parso.egg-info/requires.txt
--- old/parso-0.8.3/parso.egg-info/requires.txt 2021-11-30 22:05:45.000000000 
+0100
+++ new/parso-0.8.4/parso.egg-info/requires.txt 2024-04-05 10:44:26.000000000 
+0200
@@ -1,8 +1,9 @@
 
 [qa]
-flake8==3.8.3
-mypy==0.782
+flake8==5.0.4
+mypy==0.971
+types-setuptools==67.2.0.1
 
 [testing]
 docopt
-pytest<6.0.0
+pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/setup.cfg new/parso-0.8.4/setup.cfg
--- old/parso-0.8.3/setup.cfg   2021-11-30 22:05:45.521858000 +0100
+++ new/parso-0.8.4/setup.cfg   2024-04-05 10:44:26.357275500 +0200
@@ -9,6 +9,8 @@
        W503,
 
 [mypy]
+show_error_codes = true
+enable_error_code = ignore-without-code
 disallow_subclassing_any = True
 warn_redundant_casts = True
 warn_unused_ignores = True
@@ -16,6 +18,7 @@
 warn_unused_configs = True
 warn_unreachable = True
 strict_equality = True
+no_implicit_optional = False
 
 [egg_info]
 tag_build = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/setup.py new/parso-0.8.4/setup.py
--- old/parso-0.8.3/setup.py    2021-11-30 22:04:12.000000000 +0100
+++ new/parso-0.8.4/setup.py    2024-04-05 10:44:00.000000000 +0200
@@ -47,12 +47,16 @@
     ],
     extras_require={
         'testing': [
-            'pytest<6.0.0',
+            'pytest',
             'docopt',
         ],
         'qa': [
-            'flake8==3.8.3',
-            'mypy==0.782',
+            # Latest version which supports Python 3.6
+            'flake8==5.0.4',
+            # Latest version which supports Python 3.6
+            'mypy==0.971',
+            # Arbitrary pins, latest at the time of pinning
+            'types-setuptools==67.2.0.1',
         ],
     },
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parso-0.8.3/test/test_python_errors.py 
new/parso-0.8.4/test/test_python_errors.py
--- old/parso-0.8.3/test/test_python_errors.py  2021-11-30 22:04:12.000000000 
+0100
+++ new/parso-0.8.4/test/test_python_errors.py  2024-04-05 10:44:00.000000000 
+0200
@@ -1,6 +1,7 @@
 """
 Testing if parso finds syntax errors and indentation errors.
 """
+import re
 import sys
 import warnings
 
@@ -136,6 +137,28 @@
         wanted = 'SyntaxError: invalid syntax'
     elif wanted == "SyntaxError: f-string: single '}' is not allowed":
         wanted = 'SyntaxError: invalid syntax'
+    elif "Maybe you meant '==' instead of '='?" in wanted:
+        wanted = wanted.removesuffix(" here. Maybe you meant '==' instead of 
'='?")
+    elif re.match(
+        r"SyntaxError: unterminated string literal \(detected at line \d+\)", 
wanted
+    ):
+        wanted = "SyntaxError: EOL while scanning string literal"
+    elif re.match(
+        r"SyntaxError: unterminated triple-quoted string literal \(detected at 
line \d+\)",
+        wanted,
+    ):
+        wanted = 'SyntaxError: EOF while scanning triple-quoted string literal'
+    elif wanted == 'SyntaxError: cannot use starred expression here':
+        wanted = "SyntaxError: can't use starred expression here"
+    elif wanted == 'SyntaxError: f-string: cannot use starred expression here':
+        wanted = "SyntaxError: f-string: can't use starred expression here"
+    elif re.match(
+        r"IndentationError: expected an indented block after '[^']*' statement 
on line \d",
+        wanted,
+    ):
+        wanted = 'IndentationError: expected an indented block'
+    elif wanted == 'SyntaxError: unterminated string literal':
+        wanted = 'SyntaxError: EOL while scanning string literal'
     return [wanted], line_nr
 
 

Reply via email to