diff options
| author | Kirill Podoprigora <kirill.bast9@mail.ru> | 2024-07-29 14:16:46 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-29 14:16:46 (GMT) |
| commit | b5e8b10de79916f54ec3a2110a5ba85560fd403b (patch) | |
| tree | 932e1aa253bd25c9547bbca565b267fced2e76cb /Lib/test/test_ast/utils.py | |
| parent | c26dd270f7c7301636b23d70afaaeabb2f52eedf (diff) | |
| download | cpython-b5e8b10de79916f54ec3a2110a5ba85560fd403b.zip cpython-b5e8b10de79916f54ec3a2110a5ba85560fd403b.tar.gz cpython-b5e8b10de79916f54ec3a2110a5ba85560fd403b.tar.bz2 | |
[3.13] gh-122292: Split up ``Lib/test/test_ast.py`` into a couple of … (#122393)
[3.13] gh-122292: Split up ``Lib/test/test_ast.py`` into a couple of files (GH-122293)
(cherry picked from commit 9187484dd97f6beb94fc17676014706922e380e1)
Diffstat (limited to 'Lib/test/test_ast/utils.py')
| -rw-r--r-- | Lib/test/test_ast/utils.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_ast/utils.py b/Lib/test/test_ast/utils.py new file mode 100644 index 0000000..145e89e --- /dev/null +++ b/Lib/test/test_ast/utils.py @@ -0,0 +1,15 @@ +def to_tuple(t): + if t is None or isinstance(t, (str, int, complex, float, bytes)) or t is Ellipsis: + return t + elif isinstance(t, list): + return [to_tuple(e) for e in t] + result = [t.__class__.__name__] + if hasattr(t, 'lineno') and hasattr(t, 'col_offset'): + result.append((t.lineno, t.col_offset)) + if hasattr(t, 'end_lineno') and hasattr(t, 'end_col_offset'): + result[-1] += (t.end_lineno, t.end_col_offset) + if t._fields is None: + return tuple(result) + for f in t._fields: + result.append(to_tuple(getattr(t, f))) + return tuple(result) |
