|
5 | 5 | of other variables. |
6 | 6 |
|
7 | 7 | """ |
8 | | -import sys |
9 | 8 | import re |
10 | 9 | import copy |
11 | 10 | import functools |
@@ -714,25 +713,18 @@ def freevars(exp, env): |
714 | 713 | elif etype == ast.Compare: |
715 | 714 | return sum((freevars(v, env) |
716 | 715 | for v in [exp.left] + exp.comparators), []) |
717 | | - elif etype == ast.Call and sys.version_info < (3, 5): |
718 | | - return sum((freevars(e, env) |
719 | | - for e in [exp.func] + (exp.args or []) + |
720 | | - ([k.value for k in exp.keywords or []]) + |
721 | | - ([exp.starargs] if exp.starargs else []) + |
722 | | - ([exp.kwargs] if exp.kwargs else [])), |
723 | | - []) |
724 | 716 | elif etype == ast.Call: |
725 | 717 | return sum(map(lambda e: freevars(e, env), |
726 | 718 | chain([exp.func], |
727 | 719 | exp.args or [], |
728 | 720 | [k.value for k in exp.keywords or []])), |
729 | 721 | []) |
730 | | - elif sys.version_info >= (3, 5) and etype == ast.Starred: |
| 722 | + elif etype == ast.Starred: |
731 | 723 | # a 'starred' call parameter (e.g. a and b in `f(x, *a, *b)` |
732 | 724 | return freevars(exp.value, env) |
733 | 725 | elif etype in [ast.Num, ast.Str, ast.Ellipsis, ast.Bytes]: |
734 | 726 | return [] |
735 | | - elif sys.version_info >= (3, 4) and etype == ast.NameConstant: |
| 727 | + elif etype == ast.NameConstant: |
736 | 728 | return [] |
737 | 729 | elif etype == ast.Attribute: |
738 | 730 | return freevars(exp.value, env) |
@@ -795,16 +787,13 @@ def validate_exp(exp): |
795 | 787 | elif etype == ast.Call: |
796 | 788 | subexp = chain([exp.func], exp.args or [], |
797 | 789 | [k.value for k in exp.keywords or []]) |
798 | | - if sys.version_info < (3, 5): |
799 | | - extra = [exp.starargs, exp.kwargs] |
800 | | - subexp = chain(subexp, *filter(None, extra)) |
801 | 790 | return all(map(validate_exp, subexp)) |
802 | | - elif sys.version_info >= (3, 5) and etype == ast.Starred: |
| 791 | + elif etype == ast.Starred: |
803 | 792 | assert isinstance(exp.ctx, ast.Load) |
804 | 793 | return validate_exp(exp.value) |
805 | 794 | elif etype in [ast.Num, ast.Str, ast.Bytes, ast.Ellipsis]: |
806 | 795 | return True |
807 | | - elif sys.version_info >= (3, 4) and etype == ast.NameConstant: |
| 796 | + elif etype == ast.NameConstant: |
808 | 797 | return True |
809 | 798 | elif etype == ast.Attribute: |
810 | 799 | return True |
|
0 commit comments