HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/__pycache__/test_named_expressions.cpython-312.pyc
�

~h�e�c���ddlZdaGd�dej�ZGd�dej�ZGd�dej�Zedk(rej�yy)	�Nc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�NamedExpressionInvalidTestc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzx := 0�invalid syntax��assertRaisesRegex�SyntaxError�exec��self�codes  �B/opt/alt/python312/lib64/python3.12/test/test_named_expressions.py� test_named_expression_invalid_01z;NamedExpressionInvalidTest.test_named_expression_invalid_01s9����
�
#�
#�K�1A�
B�	���r�2��	�	�	���0�9c�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz
x = y := 0rrrs  r� test_named_expression_invalid_02z;NamedExpressionInvalidTest.test_named_expression_invalid_02
s9����
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz	y := f(x)rrrs  r� test_named_expression_invalid_03z;NamedExpressionInvalidTest.test_named_expression_invalid_03s9����
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzy0 = y1 := f(x)rrrs  r� test_named_expression_invalid_04z;NamedExpressionInvalidTest.test_named_expression_invalid_04s9��$��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz((a, b) := (1, 2))z,cannot use assignment expressions with tuplerrs  r� test_named_expression_invalid_06z;NamedExpressionInvalidTest.test_named_expression_invalid_06s9��'��
�
#�
#�K�1_�
`�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzdef spam(a = b := 42): passrrrs  r� test_named_expression_invalid_07z;NamedExpressionInvalidTest.test_named_expression_invalid_07%s9��0��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzdef spam(a: b := 42 = 5): passrrrs  r� test_named_expression_invalid_08z;NamedExpressionInvalidTest.test_named_expression_invalid_08+s9��3��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzspam(a=b := 'c')rrrs  r� test_named_expression_invalid_09z;NamedExpressionInvalidTest.test_named_expression_invalid_091s9��%��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzspam(x = y := f(x))rrrs  r� test_named_expression_invalid_10z;NamedExpressionInvalidTest.test_named_expression_invalid_107s9��(��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nzspam(a=1, b := 2)�,positional argument follows keyword argumentrrs  r� test_named_expression_invalid_11z;NamedExpressionInvalidTest.test_named_expression_invalid_11=s;��&��
�
#�
#�K�:�<�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw�Nzspam(a=1, (b := 2))r"rrs  r� test_named_expression_invalid_12z;NamedExpressionInvalidTest.test_named_expression_invalid_12D�;��(��
�
#�
#�K�:�<�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYwr%rrs  r� test_named_expression_invalid_13z;NamedExpressionInvalidTest.test_named_expression_invalid_13Kr'rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz(x := lambda: y := 1)rrrs  r� test_named_expression_invalid_14z;NamedExpressionInvalidTest.test_named_expression_invalid_14Rs9��*��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz(lambda: x := 1)z-cannot use assignment expressions with lambdarrs  r� test_named_expression_invalid_15z;NamedExpressionInvalidTest.test_named_expression_invalid_15Xs;��%��
�
#�
#�K�;�=�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz + 1 for i in i := [1,2]]rrrs  r� test_named_expression_invalid_16z;NamedExpressionInvalidTest.test_named_expression_invalid_16_s9��,��
�
#�
#�K�1A�
B�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz-[i := 0, j := 1 for i, j in [(1, 2), (3, 4)]]z;did you forget parentheses around the comprehension target?rrs  r� test_named_expression_invalid_17z;NamedExpressionInvalidTest.test_named_expression_invalid_17es<��>��
�
#�
#�K�M�O�	���r�2��	�	�	�rc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)NzNclass Foo():
            [(42, 1 + ((( j := i )))) for i in range(5)]
        zKassignment expression within a comprehension cannot be used in a class bodyrrs  r�+test_named_expression_invalid_in_class_bodyzFNamedExpressionInvalidTest.test_named_expression_invalid_in_class_bodyls@�����
#�
#�K�Y�[�	���r�2��	�	�	�rc	��gd�}|D]�\}}dD]�\}}|j||�}|j|||��5|jt�5t	|i�ddd�|jt�5t	|ii�ddd�t	d|��i�ddd�����y#1swY�PxYw#1swY�1xYw#1swY��xYw)N))zComplex expression: cz2{0}(c := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: dz2{0}(d := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: ez2{0}(e := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: fz2{0}(f := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: gz2{0}(g := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: hz2{0}(h := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: iz2{0}(i := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})zComplex expression: jz2{0}(j := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1}�)�(�))�[�])�{�}��case�lpar�rpar�lambda: )�format�subTest�assertRaises�	NameErrorr
)r�cases�	test_caser
r>r?s      r�8test_named_expression_valid_rebinding_iteration_variablezSNamedExpressionInvalidTest.test_named_expression_valid_rebinding_iteration_variableus���
��& %�	0�O�I�t�B�
0�
��d��{�{�4��.���\�\�y�t�$�\�G�	0�
�*�*�9�5�'��T�2��'��*�*�9�5�+��T�2�r�*�+��8�D�6�*�B�/�	0�	0�
0�	0�'�'��+�+��	0�	0�s;�C�
B-	�C�;B9	�	C�-B6
�2C�9C
�>C�Cc	�
�ddg}|D]�\}}}d|�d�}dD]�\}}|j||�}|j|||��5|jt|�5t	|i�ddd�|jt|�5t	|ii�ddd�|jt|�5t	d|��i�ddd�ddd�����y#1swY�pxYw#1swY�PxYw#1swY�.xYw#1swY��xYw)N)�Complex expression: a�az2{0}(a := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1})�Complex expression: b�bz2{0}(b := 1) for a, (*b, c[d+e::f(g)], h.i) in j{1}�Fassignment expression cannot rebind comprehension iteration variable '�'r5r<r@)rArBrr	r
)rrErF�targetr
�msgr>r?s        r�:test_named_expression_invalid_rebinding_iteration_variablezUNamedExpressionInvalidTest.test_named_expression_invalid_rebinding_iteration_variable�s$��

F�
F�	
��(-�	4�#�I�v�t�Z�[a�Zb�bc�d�C�B�
4�
��d��{�{�4��.���\�\�y�t�$�\�G�
4�
�/�/��S�A�'��T�2��'��/�/��S�A�+��T�2�r�*�+��/�/��S�A�4��x��v�.��3�4�
4�
4�
4�	4�'�'��+�+��4�4��
4�
4�sT�C9�
C	�&C9�C!	�C9�0C-	�C9�C
�C9�!C*
�&C9�-C6
�2C9�9Dc���gd�}|D]�\}}}d|�d�}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N))�Local reuse�iz[i := 0 for i in range(5)])�Nested reuse�jz0[[(j := 0) for i in range(5)] for j in range(5)])�Reuse inner loop targetrVz.[(j := 0) for i in range(5) for j in range(5)])�Unpacking reuserTz[i := 0 for i, j in [(0, 1)]])�Reuse in loop conditionrTz#[i+1 for i in range(5) if (i := 0)])�Unreachable reuserTz#[False or (i:=0) for i in range(5)])�Unreachable nested reuserTz?[(i, j) for i in range(5) for j in range(5) if True or (i:=10)]rMrN�r=r@�rBrr	r
�rrEr=rOr
rPs      r�Mtest_named_expression_invalid_rebinding_list_comprehension_iteration_variablezhNamedExpressionInvalidTest.test_named_expression_invalid_rebinding_list_comprehension_iteration_variable�s���	
��#(�	0��D�&�$�Z�[a�Zb�bc�d�C����4��(�
0��+�+�K��=�#���r�N�#��+�+�K��=�'���r�2�&�'��+�+�K��=�0��8�D�6�*�B�/�0�
0�
0�	0�#�#��'�'��0�0��
0�
0��R�C�
B7�
C�(C�6C�C�$C�7C�<C�C�C�C�C�C$	c���ddg}|D]�\}}}d|�d�}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N)�Inner reuserVz3[i for i in range(5) if (j := 0) for j in range(5)])�Inner unpacking reuserVz6[i for i in range(5) if (j := 0) for j, k in [(0, 1)]]�Ecomprehension inner loop cannot rebind assignment expression target 'rNr\r@r]r^s      r�Etest_named_expression_invalid_rebinding_list_comprehension_inner_loopz`NamedExpressionInvalidTest.test_named_expression_invalid_rebinding_list_comprehension_inner_loop����W�d�
��#(�	0��D�&�$�Y�Z`�Ya�ab�c�C����4��(�
0��+�+�K��=�#���r�N�#��+�+�K��=�'���r�2�&�'��+�+�K��=�0��8�D�6�*�B�/�0�
0�
0�	0�#�#��'�'��0�0��
0�
0�r`c���gd�}d}|D]�\}}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N)	)�	Top levelz[i for i in (i := range(5))])�Inside tuplez"[i for i in (2, 3, i := range(5))])�Inside listz"[i for i in [2, 3, i := range(5)]])�Different namez[i for i in (j := range(5))])�Lambda expressionz'[i for i in (lambda:(j := range(5)))()])�
Inner loopz.[i for i in range(5) for j in (i := range(5))])�Nested comprehensionz)[i for i in [j for j in (k := range(5))]])�Nested comprehension conditionz1[i for i in [j for j in range(5) if (j := True)]])�Nested comprehension bodyz,[i for i in [(j := True) for j in range(5)]]�Kassignment expression cannot be used in a comprehension iterable expressionr\r@r]�rrErPr=r
s     r�Dtest_named_expression_invalid_list_comprehension_iterable_expressionz_NamedExpressionInvalidTest.test_named_expression_invalid_list_comprehension_iterable_expression�����

��\���	0�J�D�$����4��(�
0��+�+�K��=�#���r�N�#��+�+�K��=�'���r�2�&�'��+�+�K��=�0��8�D�6�*�B�/�0�
0�
0�	0�#�#��'�'��0�0��
0�
0��R�C�
B2�C�#B>�1C�C
�C�2B;�7C�>C�C�
C�C�C	c���gd�}|D]�\}}}d|�d�}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N)	)rSrTz{i := 0 for i in range(5)})rUrVz0{{(j := 0) for i in range(5)} for j in range(5)})rWrVz.{(j := 0) for i in range(5) for j in range(5)})rXrTz{i := 0 for i, j in {(0, 1)}})rYrTz#{i+1 for i in range(5) if (i := 0)})rZrTz#{False or (i:=0) for i in range(5)})r[rTz?{(i, j) for i in range(5) for j in range(5) if True or (i:=10)})rIrJz.{(a := 1) for a, (*b, c[d+e::f(g)], h.i) in j})rKrLz.{(b := 1) for a, (*b, c[d+e::f(g)], h.i) in j}rMrNr\r@r]r^s      r�Ltest_named_expression_invalid_rebinding_set_comprehension_iteration_variablezgNamedExpressionInvalidTest.test_named_expression_invalid_rebinding_set_comprehension_iteration_variable�s���
��#(�	0��D�&�$�Z�[a�Zb�bc�d�C����4��(�
0��+�+�K��=�#���r�N�#��+�+�K��=�'���r�2�&�'��+�+�K��=�0��8�D�6�*�B�/�0�
0�
0�	0�#�#��'�'��0�0��
0�
0�r`c���ddg}|D]�\}}}d|�d�}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N)rbrVz3{i for i in range(5) if (j := 0) for j in range(5)})rcrVz6{i for i in range(5) if (j := 0) for j, k in {(0, 1)}}rdrNr\r@r]r^s      r�Dtest_named_expression_invalid_rebinding_set_comprehension_inner_loopz_NamedExpressionInvalidTest.test_named_expression_invalid_rebinding_set_comprehension_inner_looprfr`c���gd�}d}|D]�\}}|j|��5|jt|�5t|i�ddd�|jt|�5t|ii�ddd�|jt|�5td|��i�ddd�ddd���y#1swY�nxYw#1swY�NxYw#1swY�,xYw#1swY��xYw)N)	)rhz{i for i in (i := range(5))})riz"{i for i in (2, 3, i := range(5))})rjz"{i for i in {2, 3, i := range(5)}})rkz{i for i in (j := range(5))})rlz'{i for i in (lambda:(j := range(5)))()})rmz.{i for i in range(5) for j in (i := range(5))})rnz){i for i in {j for j in (k := range(5))}})roz1{i for i in {j for j in range(5) if (j := True)}})rpz,{i for i in {(j := True) for j in range(5)}}rqr\r@r]rrs     r�Ctest_named_expression_invalid_set_comprehension_iterable_expressionz^NamedExpressionInvalidTest.test_named_expression_invalid_set_comprehension_iterable_expressionrtruN)�__name__�
__module__�__qualname__rrrrrrrrr r#r&r)r+r-r/r1r3rGrQr_rersrwryr{��rrrs��������������������#0�J4�40�*
0�0�,0�4
0�0r�rc�x�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zy)�NamedExpressionAssignmentTestc�0�dx}|j|d�y)N�
��assertEqual�rrJs  r�#test_named_expression_assignment_01zANamedExpressionAssignmentTest.test_named_expression_assignment_010s���������B�r�c�4�d}|x}|j|d�y�N�r�r�s  r�#test_named_expression_assignment_02zANamedExpressionAssignmentTest.test_named_expression_assignment_025s�����������B�r�c�0�dx}|j|d�y)N�r�)r�totals  r�#test_named_expression_assignment_03zANamedExpressionAssignmentTest.test_named_expression_assignment_03;s����������"r�c�0�dx}|j|d�y)N���r�r�)r�infos  r�#test_named_expression_assignment_04zANamedExpressionAssignmentTest.test_named_expression_assignment_04@s���	������y�)r�c�4�dx}df|j|d�y�Nr�r�r�)r�xs  r�#test_named_expression_assignment_05zANamedExpressionAssignmentTest.test_named_expression_assignment_05Es�����������A�r�c��dx}x}x}|j|d�|j|d�|j|d�y)Nrr�)rr��y�zs    r�#test_named_expression_assignment_06zANamedExpressionAssignmentTest.test_named_expression_assignment_06JsB���V�Q�}�q�	������A������A������A�r�c�0�dx}|j|d�y)N�r�r�r�)r�locs  r�#test_named_expression_assignment_07zANamedExpressionAssignmentTest.test_named_expression_assignment_07Qs���������f�%r�c�T�dx}r|j|d�y|jd�y)N�eggs�0variable was not assigned using named expression)r��fail�r�spams  r�#test_named_expression_assignment_08zANamedExpressionAssignmentTest.test_named_expression_assignment_08Vs(���>�4�>����T�6�*��i�i�J�Kr�c�R�dx}r|j|�y|jd�y)NTr�)�
assertTruer�r�s  r�#test_named_expression_assignment_09zANamedExpressionAssignmentTest.test_named_expression_assignment_09[s$��!�\�T�\��O�O�D�!��i�i�J�Kr�c�6�dx}dk(ry|jd�y)Nr�r�)r�)r�matchs  r�#test_named_expression_assignment_10zANamedExpressionAssignmentTest.test_named_expression_assignment_10`s���K�E�B����i�i�J�Kr�c��d�}gd�}|D�cgc]}||�x}dkDs�||||zf��}}|j|gd��ycc}w)Nc��|S�Nr�rJs rr�zONamedExpressionAssignmentTest.test_named_expression_assignment_11.<locals>.spamf����Hr�r�r�)r�r���?)r�r�r�)r�r�r�r��rr��
input_datar�r��ress      r�#test_named_expression_assignment_11zANamedExpressionAssignmentTest.test_named_expression_assignment_11esO��	��
�$.�E�q��Q��<�1�1�2D��1�a��c�{�E��E�����E�F��Fs
�A�
Ac��d�}tdd�D�cgc]}||�x}||zg��}}|j|ddgddgddgddgg�ycc}w)Nc��|Sr�rr�s rr�zONamedExpressionAssignmentTest.test_named_expression_assignment_12.<locals>.spamnr�r�r��r�r�r����ranger��rr�r�r�r�s     r�#test_named_expression_assignment_12zANamedExpressionAssignmentTest.test_named_expression_assignment_12ms_��	�,1�!�Q�K�8�q�T�!�W���a��c�"�8��8������3�x�!�S��A�s�8�a��X�F�G��9s�A	c�n�tddgx}�}|j|d�|j|ddg�yr���lenr�)r�lines�lengths   r�#test_named_expression_assignment_13zANamedExpressionAssignmentTest.test_named_expression_assignment_13ts8���q�!�f�_�U�%�������#������1��&r�c��d}d}d}||||dz
zzx}kDr|dz
|z|z|z}||||dz
zzx}kDr�|j|d�y)z�
        Where all variables are positive integers, and a is at least as large
        as the n'th root of x, this algorithm returns the floor of the n'th
        root of x (and roughly doubling the number of accurate bits per
        iteration):
        �	r�r�r�Nr�)rrJ�nr��ds     r�#test_named_expression_assignment_14zANamedExpressionAssignmentTest.test_named_expression_assignment_14zso��
��
��
����Q��1��X�
�%�1�&��A�#�q��1���"�A���Q��1��X�
�%�1�&�	
����A�r�c�<�dx}r	dx}r�|j|d�y)NFr�r�s  r�#test_named_expression_assignment_15zANamedExpressionAssignmentTest.test_named_expression_assignment_15�s+���j�a�j���j�a�j�	
����E�"r�c
��d\}}td�D�cic]}|x}|x}||zx}z|z
��}}|j|ddddddd	��ycc}w)
Nr��r�r�r���
�)r�r�r�r�r�r�r�)rrJrL�__�c�fibs      r�#test_named_expression_assignment_16zANamedExpressionAssignmentTest.test_named_expression_assignment_16�sd�����1�?D�Q�x�H��Q���q�&�!�!�a�%�Z�Q�0�1�4�4�H��H�����!��a�A�"�"�E�F��Is�Ac�f�dg}|dx}}|j|d�|j||d�y)Nr�rr�)rrJrL�elements    r�#test_named_expression_assignment_17zANamedExpressionAssignmentTest.test_named_expression_assignment_17�s:��
�C���q�D�A�'������A������!�A�$�'r�c���Gd�d�}|dgdgg�}|dx}dx}f}|j|d�|j|d�|j||j||�y)Nc��eZdZd�Zd�Zy)�]NamedExpressionAssignmentTest.test_named_expression_assignment_18.<locals>.TwoDimensionalListc��||_yr���two_dimensional_list)rr�s  r�__init__zfNamedExpressionAssignmentTest.test_named_expression_assignment_18.<locals>.TwoDimensionalList.__init__�s
��,@��)r�c�2�|j|d|dS)Nrr�r�)r�indexs  r�__getitem__ziNamedExpressionAssignmentTest.test_named_expression_assignment_18.<locals>.TwoDimensionalList.__getitem__�s ���0�0��q��:�5��8�D�Dr�N)r|r}r~r�r�rr�r�TwoDimensionalListr��s��
A�
Er�r�r�r�r)r�r�)rr�rJrLr�r�s      r�#test_named_expression_assignment_18zANamedExpressionAssignmentTest.test_named_expression_assignment_18�sw��	E�	E�
���a�S�z�*���q�D�A�Q�$�!�J�-������A������A������!�"8�"8��";�A�">�?r�N)r|r}r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�rr�r�.sc�� �
 �#�
*�
�
�&�
L�
L�
L�
G�H�'�� #�G�
(�@r�r�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�NamedExpressionScopeTestc�x�d}|jtd�5t|ii�ddd�y#1swYyxYw)Nz!def spam():
    (a := 5)
print(a)zname 'a' is not defined)rrDr
rs  r�test_named_expression_scope_01z7NamedExpressionScopeTest.test_named_expression_scope_01�s=�����
#�
#�I�/H�
I�	���r�2��	�	�	�rc��d}td�D�cgc]	}||zx}��}}|j|gd��|j|d�ycc}w�Nrr�)rr�r�r�r�r�r�)rr��v�partial_sumss    r�test_named_expression_scope_02z7NamedExpressionScopeTest.test_named_expression_scope_02�sP����49�!�H�=�q����*��*�=��=�����'7�8������#��>��Ac�t��t�fd�dD��}|j|�|j�d�y)Nc3�,�K�|]}|x�dk(���
y�w)r�Nr)�.0�num�lastNums  �r�	<genexpr>zJNamedExpressionScopeTest.test_named_expression_scope_03.<locals>.<genexpr>�s�����E�C�c�>�7�a�/�E���r�r�)�anyr�r�)r�containsOner�s  @r�test_named_expression_scope_03z7NamedExpressionScopeTest.test_named_expression_scope_03�s/����E�9�E�E������$�����!�$r�c��d�}tdd�D�cgc]}||�x}||zg��}}|jd�ycc}w)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_04.<locals>.spam�r�r�r�r�r�r�r�s     r�test_named_expression_scope_04z7NamedExpressionScopeTest.test_named_expression_scope_04�sF��	�,1�!�Q�K�8�q�T�!�W���a��c�"�8��8�����A���9s�=c��d�}gd�}|D�cgc]}||�x}dkDs�||||zf��}}|j|gd��|jd�ycc}w)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_05.<locals>.spam�r�r�r�rr�r�r�r�s      r�test_named_expression_scope_05z7NamedExpressionScopeTest.test_named_expression_scope_05�s_��	��
�$.�E�q��Q��<�1�1�2D��1�a��c�{�E��E�����E�F�����A���Fs
�A�
Ac	���td�D��cgc]}td�D�cgc]}|x}��c}��}}}|j|gd�gd�g�|jd�ycc}wcc}}w)Nr�r��rr�r�r�)rrVrTr�r�s     r�test_named_expression_scope_06z7NamedExpressionScopeTest.test_named_expression_scope_06�s[��6;�A�h�?��5��8�,�a��	��	�,�?��?�����y�)�4�5�����q�!��-��?s�A$�A�A$�A$c�J�tddgx}�|j|ddg�yr�r�)rr�s  r�test_named_expression_scope_07z7NamedExpressionScopeTest.test_named_expression_scope_07�s&���a��V�O�E�������A��'r�c	���d�}d�}td�D�cgc]}|||x}�x}���}}|j|ddg�|jd�|jd�ycc}w)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_08.<locals>.spam�r�r�c��|dzS�Nr�r�rLs rr�zENamedExpressionScopeTest.test_named_expression_scope_08.<locals>.eggs�����q�5�Lr�r�rr�r�)rr�r��hrLrJr�s       r�test_named_expression_scope_08z7NamedExpressionScopeTest.test_named_expression_scope_08�sp��	�	�16�a��9�1�t��1�f�a��%�A�&�9��9�����q�!�f�%�����A������A���	:s�A(c	��d�}d�}td�D�cgc]}|||x}�x}���}}|j|ddg�|jd�ycc}w)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_09.<locals>.spam�r�r�c��|dzSr
rrs rr�zENamedExpressionScopeTest.test_named_expression_scope_09.<locals>.eggs�rr�r�rr�)rr�r�r
rJr�s      r�test_named_expression_scope_09z7NamedExpressionScopeTest.test_named_expression_scope_09�s`��	�	�16�a��9�1�t��1�f�a��%�A�&�9��9�����q�!�f�%�����A���:s�Ac	��td�D��cgc]}td�D�cgc]}dx}��c}x}��!}}}|j|ddgddgg�|jd�|jddg�ycc}wcc}}w)Nr�r�r�)rrVrTrJrLr�s      r�test_named_expression_scope_10z7NamedExpressionScopeTest.test_named_expression_scope_10�s��8=�a��A�1�U�1�X�.��!�V�Q�V�.�.�q�.�A��A������1�v��1�v�.�/�����A������Q��F�#��	/��As�A:�A5�A:�5A:c��td�D�cgc]}|x}��}}|j|gd��|jd�ycc}w)Nr�)rr�r�r�r�r�r�)rrTrVr�s    r�test_named_expression_scope_11z7NamedExpressionScopeTest.test_named_expression_scope_11�sD��$�Q�x�(�!�A�v�q�v�(��(�����o�.�����A���)s�Ac��d}td�D�cgc]	}||zx}��}}|j|gd��|j|d�ycc}wr�r�)rrLrTr�s    r�test_named_expression_scope_17z7NamedExpressionScopeTest.test_named_expression_scope_17sN��
��#(��8�,�a�A��E�z�q�z�,��,�����.�/�����B���-r�c�f�d�}|dx}�}|j|d�|j|d�y)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_18.<locals>.spamr�r�r�r��rr�rLr�s    r�test_named_expression_scope_18z7NamedExpressionScopeTest.test_named_expression_scope_18
s6��	���6�1�l������a� �����A�r�c�f�d�}|dx}�}|j|d�|j|d�y)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_19.<locals>.spamr�r�r�r�rs    r�test_named_expression_scope_19z7NamedExpressionScopeTest.test_named_expression_scope_19s6��	���F�A�n������a� �����A�r�c�h�d�}|dx}��}|j|d�|j|d�y)Nc��|Sr�rr�s rr�zENamedExpressionScopeTest.test_named_expression_scope_20.<locals>.spamr�r�r�r�r�rs    r�test_named_expression_scope_20z7NamedExpressionScopeTest.test_named_expression_scope_20s7��	��1�f�a�������a� �����A�r�c�j�d�}|dx}d��}|j|d�|j|d�y)Nc��||zSr�r�rJrLs  rr�zENamedExpressionScopeTest.test_named_expression_scope_21.<locals>.spam&rr�r�r�rr�r��rr�r�r�s    r�test_named_expression_scope_21z7NamedExpressionScopeTest.test_named_expression_scope_21%s9��	���6�1�Q�������a� �����A�r�c�j�d�}|dx}d��}|j|d�|j|d�y)Nc��||zSr�rr%s  rr�zENamedExpressionScopeTest.test_named_expression_scope_22.<locals>.spam/rr�r�r�rr�r�r&s    r�test_named_expression_scope_22z7NamedExpressionScopeTest.test_named_expression_scope_22.s9��	���F�A�q�!������a� �����A�r�c�j�d�}|dx}d��}|j|d�|j|d�y)Nc��||zSr�rr%s  rr�zENamedExpressionScopeTest.test_named_expression_scope_23.<locals>.spam8rr�r�r�)rLrJr�r�r&s    r�test_named_expression_scope_23z7NamedExpressionScopeTest.test_named_expression_scope_237s9��	��1�f�a��#������a� �����A�r�c�F��d��fd�}|�|j�d�y)Nr�c���dx�yr�rr�s�rr�zENamedExpressionScopeTest.test_named_expression_scope_24.<locals>.spamBs
����W�Qr�r�r�)rr�rJs  @r�test_named_expression_scope_24z7NamedExpressionScopeTest.test_named_expression_scope_24@s$�����	�	
������B�r�c�P�i}d}t||i�|j|dd�y)Nz4a = 10
def spam():
    global a
    (a := 20)
spam()rJr�)r
r�)r�nsr
s   r�test_named_expression_scope_25z7NamedExpressionScopeTest.test_named_expression_scope_25Is0��
��
��	
�T�2�r������C��"�%r�c�V�d}d}d}d}dd|��fdd|�d	�fd
d|��fdd|�d	�fdd|��fd
d|�d	�fdd|��fdd|�d	�fg}|D]Z\}}|j|��5i}t||�|j|dd�|j|dgd��ddd��\y#1swY�gxYw)Nz/[x := i for i in range(3) if (x := i) or not x]z([x := i for i in range(3) if x or not x]z*[x for i in range(3) if (x := i) or not x]zF[j for i in range(3) if x or not x for j in range(3) if (x := i)][:-3]z
Rebind globalzx = 1; result = zRebind nonlocalzresult, x = (lambda x=1: (z, x))()z
Filter globalzFilter nonlocalzBody globalz
Body nonlocalz
Nested globalzNested nonlocalr\r�r��resultr)rBr
r�)	r�	rebinding�
filter_ref�body_ref�
nested_refrEr=r
r2s	         r�6test_named_expression_variable_reuse_in_comprehensionszONamedExpressionScopeTest.test_named_expression_variable_reuse_in_comprehensionsUs��F�	�?�
�?��]�
�
� 0���<�=�
�"<�Y�K�w� O�P�
� 0���=�>�
�"<�Z�L�� P�Q�
�.�x�j�9�:�
� :�8�*�G�L�M�
� 0���=�>�
�"<�Z�L�� P�Q�	
�� �	:�J�D�$����4��(�
:����T�2��� � ��C��!�,�� � ��H��y�9�	
:�
:�	:�
:�
:�s�;B�B(	c�v���t����fd�}	|��jt��day#dawxYw)Nc�x��td�D��cgc]}�xa��c}}�jt��ycc}}w�Nr�)r��
GLOBAL_VARr�)�_r>r�sentinels  ��r�fzFNamedExpressionScopeTest.test_named_expression_global_scope.<locals>.fts2���-2�1�X�6��8�
#�Z�
#�6����Z��2��
7s�6��objectr�r>�rrAr@s` @r�"test_named_expression_global_scopez;NamedExpressionScopeTest.test_named_expression_global_scopeqs4����8��	3�	�
�C����Z��2��J���J�s�4�8c�b���t����fd�}|��jtd�y)Nc�n��d}td�D�cgc]}�x}��c}�j|��ycc}wr=r�)r>r?rr@s  ��rrAzXNamedExpressionScopeTest.test_named_expression_global_scope_no_global_keyword.<locals>.f�s7����J�-2�1�X�6��8�
#�Z�
#�6����Z��2��
7s�2rBrDs` @r�4test_named_expression_global_scope_no_global_keywordzMNamedExpressionScopeTest.test_named_expression_global_scope_no_global_keyword~s&����8��	3�	
������T�*r�c�6���t����fd�}|�y)Nc�J���d���fd�}|��j���y)Nc�F��td�D�cgc]}�x���c}ycc}wr=�r��r?�nonlocal_varr@s ��r�gzSNamedExpressionScopeTest.test_named_expression_nonlocal_scope.<locals>.f.<locals>.g�s ���38��8�<�a��)��)�<��<��r�)rOrNrr@s @��rrAzHNamedExpressionScopeTest.test_named_expression_nonlocal_scope.<locals>.f�s$����L�
=�
�C����\�8�4r��rCrDs` @r�$test_named_expression_nonlocal_scopez=NamedExpressionScopeTest.test_named_expression_nonlocal_scope�s����8��	5�	
�r�c�6���t����fd�}|�y)Nc�F��d}�fd�}|��j|d�y)Nc�F��td�D�cgc]}�x}��c}ycc}wr=rLrMs  �rrOzgNamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword.<locals>.f.<locals>.g�s ���38��8�<�a��)��)�<��<rPr�)rNrOrr@s  ��rrAz\NamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword.<locals>.f�s"����L�
=�
�C����\�4�0r�rQrDs` @r�8test_named_expression_nonlocal_scope_no_nonlocal_keywordzQNamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword�s����8��	1�	
�r�c����d�gd�}��fd�|D�}|jdt��t|�D]\}}|j|||�z��y)Nr�)r�r�r�r�c3�,�K�|]}|�zx����
y�wr�r)r�rTrJr�s  ��rr�zQNamedExpressionScopeTest.test_named_expression_scope_in_genexp.<locals>.<genexpr>�s�����(��q�1�u�*�!�*�(�r�r�)�assertNotIn�locals�	enumerater�)rrL�genexp�idx�elemrJr�s     @@r�%test_named_expression_scope_in_genexpz>NamedExpressionScopeTest.test_named_expression_scope_in_genexp�sY���
����(�a�(������f�h�'�"�6�*�	/�I�C�����T�1�S�6�A�:�.�	/r�N)r|r}r~r�r�r�r�rrrrrrrrrrr"r'r*r-r0r3r:rErHrRrVr_rr�rr�r��s����$�%���"�(�
�
�$�� ������� �
&�:�8�+�	��/r�r��__main__)�unittestr>�TestCaserr�r�r|�mainrr�r�<module>rdsh���
�
�f0��!2�!2�f0�R	y@�H�$5�$5�y@�zx/�x�0�0�x/�v�z���H�M�M�O�r�