
    <j                      F   d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 ej                  defd       Zdeej                  gdf   deej                  gdf   fd	Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Zed
ej                  fd       Z ed
ej                  fd       Z!ed
ej                  fd       Z"ed
ej                  fd       Z#ed
ej                  fd        Z$ed
ej                  fd!       Z%ed
ej                  fd"       Z&ed
ej                  fd#       Z'e(d$k(  r4 e)d% ejT                  D              r ejV                          y e,d&       yy)'z=Benchmarks for assigning large NumPy data to protobuf fields.    )CallableN)unittest_pb2	num_bytesc                 N    t        j                  | ft         j                        S )N)shapedtype)npzerosuint8)r   s    a/opt/lfcs-signon/.venv/lib/python3.12/site-packages/google/protobuf/internal/message_benchmark.py
make_arrayr      s    	BHH	55    funcreturnc           
          t         j                  t         j                  j                  t         j                        t         j                  j                  dg      t         j                  j                  d      t         j                  j                  d      t        j                         dt         j                  ddf fd                                          }|S )z&Decorates a function for benchmarking.r   i  @i  @stater   Nc                 \     |        | j                   | j                  d      z  | _        y Nr   )
iterationsrangebytes_processed)r   r   s    r   wrapperzbenchmark.<locals>.wrapper   s'     	K!,,u{{1~=Er   )
google_benchmarkregisteroptionunitkMillisecond	arg_namesarg	functoolswrapsState)r   r   s   ` r   	benchmarkr#      s    
  0 = =>$$k]3/001??4>%++ > >  2 1 4 ? > 
.r   r   c                     t        | j                  d            j                  t        j                        }| r't        j                         }||j                  d d  | r&y y Nr   r   )r   r   viewr	   int32r   TestAllTypesrepeated_int32r   arrmsgs      r   bench_build_message_via_slicer.   $   sL    5;;q>"''bhh'7#

#
#
%CCq 	r   c                     t        | j                  d            j                  t        j                        }| rt        j                  |      }| ry y )Nr   r&   r*   )r   r   r'   r	   r(   r   r)   r   r,   _s      r   bench_build_messager3   ,   s>    5;;q>"''bhh'7#!!5A 	r   c                     t        | j                  d            j                  t        j                        }| r1t        j                         }||j                  j                  d d  | r0y y r%   )	r   r   r'   r	   r(   r   NestedTestAllTypespayloadr*   r+   s      r   $bench_build_message_nested_via_slicer7   3   sP    5;;q>"''bhh'7#

)
)
+C$'CKKq! 	r   c                     t        | j                  d            j                  t        j                        }| r$t        j                  t        |            }| r#y y Nr   r&   r0   r6   )r   r   r'   r	   r(   r   r5   dictr1   s      r   bench_build_nested_message_dictr<   ;   sC    5;;q>"''bhh'7#''C0HIA 	r   c                     t        | j                  d            j                  t        j                        }| r.t        j                  t        j                  |            }| r-y y r9   )r   r   r'   r	   r(   r   r5   r)   r1   s      r    bench_build_nested_message_int32r>   B   sL    5;;q>"''bhh'7#''))=	A 	r   c                     | j                  d      dz  }d|z  gdz  }| r.t        j                  t        j                  |            }| r-y y )Nr     a)repeated_cordr:   r   r   r5   r)   r   
chunk_sizestringsr2   s       r   bench_build_nested_message_cordrG   K   sL    {{1~%*:%'''))@	A 	r   c                     | j                  d      dz  }d|z  gdz  }| r.t        j                  t        j                  |            }| r-y y )Nr   r@   rA   )repeated_string_piecer:   rC   rD   s       r   'bench_build_nested_message_string_piecerJ   U   sL    {{1~%*:%'''))H	A 	r   c                     t         j                  j                  d      g| j                  d      dz  z  }| r.t        j                  t        j                  |            }| r-y y )N{   )bbr      )repeated_nested_messager:   )r   r)   NestedMessager   r5   )r   subsr2   s      r   )bench_build_nested_message_nested_messagerR   _   s[    

#
#
1
1S
1
9	:kk!n
$ 	''))$G	A 	r   c                    t        | j                  d            j                  t        j                        }t        j                         }t        j                         }|j                  j                  |       | rM| j                          |j                          | j                          |j                  |j                  d d  | rLy y r%   )r   r   r'   r	   float32r   r)   repeated_floatextendpause_timingClearresume_timingr   r,   r-   
msg_sources       r   bench_assign_repeated_floatr\   j   s    5;;q>"''bjj'9#!!##((**""3'	IIK	&55Cq	 	r   c                    t        | j                  d            j                  t        j                        }t        j                         }t        j                         }|j                  j                  |       | rM| j                          |j                          | j                          |j                  |j                  d d  | rLy y r%   )r   r   r'   r	   int64r   r)   repeated_int64rV   rW   rX   rY   r*   rZ   s       r   $bench_assign_repeated_int64_to_int32r`   w   s    5;;q>"''bhh'7#!!##((**""3'	IIK	&55Cq	 	r   c                    t        | j                  d            j                  t        j                        }t        j                         }t        j                         }|j                  j                  |       | rM| j                          |j                          | j                          |j                  |j                  d d  | rLy y r%   )r   r   r'   r	   float64r   r)   repeated_doublerV   rW   rX   rY   rU   rZ   s       r   %bench_assign_repeated_double_to_floatrd      s    5;;q>"''bjj'9#!!##((**##C(	IIK	&66Cq	 	r   c                 &   t        | j                  d            j                  t        j                        }t        j                         }| rC| j                          |j                          | j                          ||j                  d d  | rBy y r%   )r   r   r'   r	   r^   r   r)   rW   rX   rY   r*   r+   s      r   !bench_assign_numpy_int64_to_int32rf      sm    5;;q>"''bhh'7#!!##	IIK	Cq	 	r   c                 &   t        | j                  d            j                  t        j                        }t        j                         }| rC| j                          |j                          | j                          ||j                  d d  | rBy y r%   )r   r   r'   r	   rb   r   r)   rW   rX   rY   rU   r+   s      r   "bench_assign_numpy_double_to_floatrh      sm    5;;q>"''bjj'9#!!##	IIK	Cq	 	r   c                 >   t        | j                  d            j                  t        j                        }t        j                         }| rO| j                          |j                          | j                          |j                  j                  |       | rNy y r%   )r   r   r'   r	   r(   r   r)   rW   rX   rY   r*   rV   r+   s      r   bench_extend_int32rj      q    5;;q>"''bhh'7#!!##	IIK	c"	 	r   c                     t        | j                  d            }t        j                         }t	        |      |_        |j                         }| r#t        j                  j                  |      }| r"y y r   r   r   r   r)   
memoryviewoptional_bytesSerializeToString
FromStringr   r,   r-   	msg_bytesr2   s        r   bench_decode_from_bytesrt      sZ    5;;q>"#!!##!####%)!!,,Y7A 	r   c                     t        | j                  d            }t        j                         }t	        |      |_        t	        |j                               }| r#t        j                  j                  |      }| r"y y r   rm   rr   s        r   bench_decode_from_memoryviewrv      s_    5;;q>"#!!##!##..01)!!,,Y7A 	r   c                     t        | j                  d            }t        j                         }t	        |      |_        | r|j                         }| ry y r   )r   r   r   r)   rn   ro   rp   )r   r,   r-   r2   s       r   bench_encode_into_bytesrx      sD    5;;q>"#!!##!##A 	r   c                 &   t        | j                  d            j                  t        j                        }t        j                         }| rC||j                  d d  | j                          |j                          | j                          | rBy y r%   )r   r   r'   r	   r(   r   r)   r*   rW   rX   rY   r+   s      r   bench_assign_int32rz      sm    5;;q>"''bhh'7#!!##Cq	IIK		 	r   c                 T   t        | j                  d            j                  t        j                        }t        j                         }||j                  d d  | rK||j                  t        |      d  | j                          ||j                  d d  | j                          | rJy y r%   )r   r   r'   r	   r(   r   r)   r*   lenrW   rY   r+   s      r   bench_assign_extend_int32r}      s    5;;q>"''bhh'7#!!###Q%(Cs3xz"	Cq		 	r   c                 $   t        | j                  d            j                  t        j                        }|d t        |      dz   }t        j                         }|j                  j                  |       | r||j                  d d d<   | ry y )Nr   r&      )
r   r   r'   r	   r(   r|   r   r)   r*   rV   )r   r,   half_arrr-   s       r   bench_assign_slice_int32r      sx    5;;q>"''bhh'7#3s8q=!(!!##C &Css 	r   c                 >   t        | j                  d            j                  t        j                        }t        j                         }| rO| j                          |j                          | j                          |j                  j                  |       | rNy y r%   )r   r   r'   r	   r^   r   r)   rW   rX   rY   r_   rV   r+   s      r   bench_extend_int64r      rk   r   c                 >   t        | j                  d            j                  t        j                        }t        j                         }| rO| j                          |j                          | j                          |j                  j                  |       | rNy y r%   )r   r   r'   r	   rT   r   r)   rW   rX   rY   rU   rV   r+   s      r   bench_extend_floatr      sq    5;;q>"''bjj'9#!!##	IIK	c"	 	r   c                 >   t        | j                  d            j                  t        j                        }t        j                         }| rO| j                          |j                          | j                          |j                  j                  |       | rNy y r%   )r   r   r'   r	   rb   r   r)   rW   rX   rY   rc   rV   r+   s      r   bench_extend_doubler     sq    5;;q>"''bjj'9#!!##	IIK	s#	 	r   c                     t        | j                  d            }t        j                         }|j	                         }| r;| j                          |j                          | j                          ||_        | r:y y r   )	r   r   r   r)   tobytesrW   rX   rY   ro   )r   r,   r-   	arr_bytess       r   bench_assign_bytesr     s^    5;;q>"#!!##kkm)	IIK	"C	 	r   c                     t        | j                  d            }t        j                         }| rD| j	                          |j                          | j                          t        |      |_        | rCy y r   )	r   r   r   r)   rW   rX   rY   rn   ro   r+   s      r   "bench_assign_bytes_with_conversionr     sW    5;;q>"#!!##	IIK	#CC	 	r   __main__c              #   >   K   | ]  }|j                  d         yw)z--benchmark_filterN)
startswith).0r   s     r   	<genexpr>r   )  s     B#,	-Bs   z3No benchmark filter specified. Skipping benchmarks.)-__doc__collections.abcr   r    sysr   numpyr	   google.protobufr   cacheintr   r"   r#   r.   r3   r7   r<   r>   rG   rJ   rR   r\   r`   rd   rf   rh   rj   rt   rv   rx   rz   r}   r   r   r   r   r   r   __name__anyargvmainprint r   r   <module>r      s   C $  
   ( 6# 6 6
$**+T1
2%%&,-$  )9)?)?     6/55 6 6 (0@0F0F ( ( J+;+A+A J J ,<,B,B   +;+A+A   3C3I3I   5E5K5K   	6'7'='= 	6 	6 	60@0F0F 	6 	6 	71A1G1G 	7 	7  -=-C-C      .>.D.D     #.44 # # 8#3#9#9 8 8 8(8(>(> 8 8  #3#9#9     .44   %5%;%;   '$4$:$: ' ' #.44 # # #.44 # # $/55 $ $ #.44 # # ).>.D.D ) ) zBBB	
?@	 r   