@@ -358,7 +358,7 @@ def any_open_brackets(self) -> bool:
358
358
"""Returns True if there is an yet unmatched open bracket on the line."""
359
359
return bool (self .bracket_match )
360
360
361
- def max_priority (self , exclude : Iterable [LeafID ] = ()) -> int :
361
+ def max_priority (self , exclude : Iterable [LeafID ] = ()) -> int :
362
362
"""Returns the highest priority of a delimiter found on the line.
363
363
364
364
Values are consistent with what `is_delimiter()` returns.
@@ -781,13 +781,48 @@ def whitespace(leaf: Leaf) -> str:
781
781
if t == STANDALONE_COMMENT :
782
782
return NO
783
783
784
+ if t in CLOSING_BRACKETS :
785
+ return NO
786
+
784
787
assert p is not None , f"INTERNAL ERROR: hand-made leaf without parent: { leaf !r} "
788
+ prev = leaf .prev_sibling
789
+ if not prev :
790
+ prevp = preceding_leaf (p )
791
+ if not prevp or prevp .type in OPENING_BRACKETS :
792
+ return NO
793
+
794
+ if prevp .type == token .EQUAL :
795
+ if prevp .parent and prevp .parent .type in {
796
+ syms .typedargslist ,
797
+ syms .varargslist ,
798
+ syms .parameters ,
799
+ syms .arglist ,
800
+ syms .argument ,
801
+ }:
802
+ return NO
803
+
804
+ elif prevp .type == token .DOUBLESTAR :
805
+ if prevp .parent and prevp .parent .type in {
806
+ syms .typedargslist ,
807
+ syms .varargslist ,
808
+ syms .parameters ,
809
+ syms .arglist ,
810
+ syms .dictsetmaker ,
811
+ }:
812
+ return NO
813
+
814
+ elif prevp .type == token .COLON :
815
+ if prevp .parent and prevp .parent .type == syms .subscript :
816
+ return NO
817
+
818
+ elif prev .type in OPENING_BRACKETS :
819
+ return NO
820
+
785
821
if p .type in {syms .parameters , syms .arglist }:
786
822
# untyped function signatures or calls
787
823
if t == token .RPAR :
788
824
return NO
789
825
790
- prev = leaf .prev_sibling
791
826
if not prev or prev .type != token .COMMA :
792
827
return NO
793
828
@@ -796,13 +831,11 @@ def whitespace(leaf: Leaf) -> str:
796
831
if t == token .RPAR :
797
832
return NO
798
833
799
- prev = leaf .prev_sibling
800
834
if prev and prev .type != token .COMMA :
801
835
return NO
802
836
803
837
elif p .type == syms .typedargslist :
804
838
# typed function signatures
805
- prev = leaf .prev_sibling
806
839
if not prev :
807
840
return NO
808
841
@@ -820,7 +853,6 @@ def whitespace(leaf: Leaf) -> str:
820
853
821
854
elif p .type == syms .tname :
822
855
# type names
823
- prev = leaf .prev_sibling
824
856
if not prev :
825
857
prevp = preceding_leaf (p )
826
858
if not prevp or prevp .type != token .COMMA :
@@ -831,7 +863,6 @@ def whitespace(leaf: Leaf) -> str:
831
863
if t == token .LPAR or t == token .RPAR :
832
864
return NO
833
865
834
- prev = leaf .prev_sibling
835
866
if not prev :
836
867
if t == token .DOT :
837
868
prevp = preceding_leaf (p )
@@ -849,7 +880,6 @@ def whitespace(leaf: Leaf) -> str:
849
880
if t == token .EQUAL :
850
881
return NO
851
882
852
- prev = leaf .prev_sibling
853
883
if not prev :
854
884
prevp = preceding_leaf (p )
855
885
if not prevp or prevp .type == token .LPAR :
@@ -863,7 +893,6 @@ def whitespace(leaf: Leaf) -> str:
863
893
return NO
864
894
865
895
elif p .type == syms .dotted_name :
866
- prev = leaf .prev_sibling
867
896
if prev :
868
897
return NO
869
898
@@ -875,77 +904,16 @@ def whitespace(leaf: Leaf) -> str:
875
904
if t == token .LPAR :
876
905
return NO
877
906
878
- prev = leaf .prev_sibling
879
907
if prev and prev .type == token .LPAR :
880
908
return NO
881
909
882
910
elif p .type == syms .subscript :
883
911
# indexing
884
- if t == token .COLON :
885
- return NO
886
-
887
- prev = leaf .prev_sibling
888
912
if not prev or prev .type == token .COLON :
889
913
return NO
890
914
891
- elif p .type in {
892
- syms .test ,
893
- syms .not_test ,
894
- syms .xor_expr ,
895
- syms .or_test ,
896
- syms .and_test ,
897
- syms .arith_expr ,
898
- syms .expr ,
899
- syms .shift_expr ,
900
- syms .yield_expr ,
901
- syms .term ,
902
- syms .power ,
903
- syms .comparison ,
904
- }:
905
- # various arithmetic and logic expressions
906
- prev = leaf .prev_sibling
907
- if not prev :
908
- prevp = preceding_leaf (p )
909
- if not prevp or prevp .type in OPENING_BRACKETS :
910
- return NO
911
-
912
- if prevp .type == token .EQUAL :
913
- if prevp .parent and prevp .parent .type in {
914
- syms .varargslist , syms .parameters , syms .arglist , syms .argument
915
- }:
916
- return NO
917
-
918
- return SPACE
919
-
920
915
elif p .type == syms .atom :
921
- if t in CLOSING_BRACKETS :
922
- return NO
923
-
924
- prev = leaf .prev_sibling
925
- if not prev :
926
- prevp = preceding_leaf (p )
927
- if not prevp :
928
- return NO
929
-
930
- if prevp .type in OPENING_BRACKETS :
931
- return NO
932
-
933
- if prevp .type == token .EQUAL :
934
- if prevp .parent and prevp .parent .type in {
935
- syms .varargslist , syms .parameters , syms .arglist , syms .argument
936
- }:
937
- return NO
938
-
939
- if prevp .type == token .DOUBLESTAR :
940
- if prevp .parent and prevp .parent .type in {
941
- syms .varargslist , syms .parameters , syms .arglist , syms .dictsetmaker
942
- }:
943
- return NO
944
-
945
- elif prev .type in OPENING_BRACKETS :
946
- return NO
947
-
948
- elif t == token .DOT :
916
+ if prev and t == token .DOT :
949
917
# dots, but not the first one.
950
918
return NO
951
919
@@ -955,13 +923,11 @@ def whitespace(leaf: Leaf) -> str:
955
923
p .type == syms .subscriptlist
956
924
):
957
925
# list interior, including unpacking
958
- prev = leaf .prev_sibling
959
926
if not prev :
960
927
return NO
961
928
962
929
elif p .type == syms .dictsetmaker :
963
930
# dict and set interior, including unpacking
964
- prev = leaf .prev_sibling
965
931
if not prev :
966
932
return NO
967
933
@@ -970,7 +936,6 @@ def whitespace(leaf: Leaf) -> str:
970
936
971
937
elif p .type == syms .factor or p .type == syms .star_expr :
972
938
# unary ops
973
- prev = leaf .prev_sibling
974
939
if not prev :
975
940
prevp = preceding_leaf (p )
976
941
if not prevp or prevp .type in OPENING_BRACKETS :
@@ -991,15 +956,13 @@ def whitespace(leaf: Leaf) -> str:
991
956
992
957
elif p .type == syms .import_from :
993
958
if t == token .DOT :
994
- prev = leaf .prev_sibling
995
959
if prev and prev .type == token .DOT :
996
960
return NO
997
961
998
962
elif t == token .NAME :
999
963
if v == 'import' :
1000
964
return SPACE
1001
965
1002
- prev = leaf .prev_sibling
1003
966
if prev and prev .type == token .DOT :
1004
967
return NO
1005
968
0 commit comments