https://github.com/python/cpython/commit/483d130e504f63aaf3afe8af3a37650edcdb07a3
commit: 483d130e504f63aaf3afe8af3a37650edcdb07a3
branch: main
author: Jelle Zijlstra <jelle.zijls...@gmail.com>
committer: ambv <luk...@langa.pl>
date: 2025-05-04T23:46:21Z
summary:

gh-131421: Fix ASDL tests (#133408)

PR #131419 broke this, but we failed to run tests on the PR due to a bug
in our script.

files:
M Lib/test/test_asdl_parser.py
M Parser/asdl.py

diff --git a/Lib/test/test_asdl_parser.py b/Lib/test/test_asdl_parser.py
index 2c198a6b8b23ee..b9df6568123ea9 100644
--- a/Lib/test/test_asdl_parser.py
+++ b/Lib/test/test_asdl_parser.py
@@ -62,17 +62,17 @@ def test_product(self):
         alias = self.types['alias']
         self.assertEqual(
             str(alias),
-            'Product([Field(identifier, name), Field(identifier, asname, 
opt=True)], '
+            'Product([Field(identifier, name), Field(identifier, asname, 
quantifiers=[OPTIONAL])], '
             '[Field(int, lineno), Field(int, col_offset), '
-            'Field(int, end_lineno, opt=True), Field(int, end_col_offset, 
opt=True)])')
+            'Field(int, end_lineno, quantifiers=[OPTIONAL]), Field(int, 
end_col_offset, quantifiers=[OPTIONAL])])')
 
     def test_attributes(self):
         stmt = self.types['stmt']
         self.assertEqual(len(stmt.attributes), 4)
         self.assertEqual(repr(stmt.attributes[0]), 'Field(int, lineno)')
         self.assertEqual(repr(stmt.attributes[1]), 'Field(int, col_offset)')
-        self.assertEqual(repr(stmt.attributes[2]), 'Field(int, end_lineno, 
opt=True)')
-        self.assertEqual(repr(stmt.attributes[3]), 'Field(int, end_col_offset, 
opt=True)')
+        self.assertEqual(repr(stmt.attributes[2]), 'Field(int, end_lineno, 
quantifiers=[OPTIONAL])')
+        self.assertEqual(repr(stmt.attributes[3]), 'Field(int, end_col_offset, 
quantifiers=[OPTIONAL])')
 
     def test_constructor_fields(self):
         ehandler = self.types['excepthandler']
diff --git a/Parser/asdl.py b/Parser/asdl.py
index 7a9c9d8628dce6..f762ed8110d44f 100644
--- a/Parser/asdl.py
+++ b/Parser/asdl.py
@@ -91,17 +91,21 @@ def __str__(self):
         return "{}{} {}".format(self.type, extra, self.name)
 
     def __repr__(self):
-        extra = ""
-        for mod in self.quantifiers:
-            if mod is Quantifier.SEQUENCE:
-                extra += ", SEQUENCE"
-            elif mod is Quantifier.OPTIONAL:
-                extra += ", OPTIONAL"
+        if self.quantifiers:
+            texts = []
+            for mod in self.quantifiers:
+                if mod is Quantifier.SEQUENCE:
+                    texts.append("SEQUENCE")
+                elif mod is Quantifier.OPTIONAL:
+                    texts.append("OPTIONAL")
+            extra = ", quantifiers=[{}]".format(", ".join(texts))
+        else:
+            extra = ""
 
         if self.name is None:
-            return 'Field({0.type}, quantifiers=[{1}])'.format(self, extra)
+            return 'Field({0.type}{1})'.format(self, extra)
         else:
-            return 'Field({0.type}, {0.name}, quantifiers=[{1}])'.format(self, 
extra)
+            return 'Field({0.type}, {0.name}{1})'.format(self, extra)
 
 class Sum(AST):
     def __init__(self, types, attributes=None):

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to