
    Αi,                        S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJ	r	  S SK
rS SKrS SKJrJr  S SKJrJrJr  S SKJr  S SKJr  S SKJr  \" \\ R6                  S	S
9r " S S5      r " S S\5      r " S S\5      rS r S r!S r"S r#S r$S r%S r&\S S j5       r'\S!S j5       r(S r)S r*S r+S"S jr,S"S jr-S r.g)#    N)BytesIO)FunctionType
MethodType)coreglobal_scope)	ParameterVariablestatic_only)
get_logger)signature_safe_contextmanager)in_pir_modez&%(asctime)s-%(levelname)s: %(message)s)fmtc                        \ rS rSrS rS rSrg)_open_buffer(   c                     Xl         g Nbuffer)selfr   s     Y/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/framework/io_utils.py__init___open_buffer.__init__)   s        c                     U R                   $ r   r   )r   s    r   	__enter___open_buffer.__enter__,   s    {{r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r   (   s    r   r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )_buffer_reader0   c                 b   > [         TU ]  U5        U R                  R                  5       U l        g r   )superr   r   tellinitial_tell)r   r   	__class__s     r   r   _buffer_reader.__init__1   s%      KK,,.r   c                 \    US   b&  U R                   R                  U R                  5        g g )Nr   )r   seekr*   r   argss     r   __exit___buffer_reader.__exit__5   s)    7KKT../ r   )r*   )r   r   r    r!   r   r1   r"   __classcell__)r+   s   @r   r%   r%   0   s    /0 0r   r%   c                       \ rS rSrS rSrg)_buffer_writer;   c                 8    U R                   R                  5         g r   )r   flushr/   s     r   r1   _buffer_writer.__exit__<   s    r   r#   N)r   r   r    r!   r1   r"   r#   r   r   r5   r5   ;   s    r   r5   c                 "    [        U [        5      $ r   )
isinstancestr)paths    r   _is_file_pathr>   @   s    dC  r   c                     [        U 5      (       a  [        X5      $ SU;   a  [        U 5      $ SU;   a  [        U 5      $ [	        SU 35      e)Nwrz$Expected 'r' or 'w' in mode but got )r>   openr5   r%   
ValueError)path_or_buffermodes     r   _open_file_bufferrF   D   sO    ^$$N))$;!.11D[!.11CD6JKKr   c                 "    [        U [        5      $ r   )r;   r   r   s    r   _is_memory_bufferrH   P   s    fg&&r   c                    U R                   R                  5       [        R                  R                  R
                  :X  d  U R                   R                  5       [        R                  R                  R                  :X  d@  U R                   R                  5       [        R                  R                  R                  :X  a  gU R                  $ )a  

Check whether the given variable is persistable.

Args:
    var(Variable): The variable to be checked.

Returns:
    bool: True if the given `var` is persistable
    False if not.

Examples:
    .. code-block:: python

        >>> # doctest: +SKIP('ValueError: var fc.b not in this block')
        >>> import paddle
        >>> import paddle.base as base

        >>> paddle.enable_static()
        >>> param = base.default_main_program().global_block().var('fc.b')
        >>> res = base.io.is_persistable(param)
F)	desctyper   VarDescVarTypeFEED_MINIBATCH
FETCH_LISTREADERpersistablevars    r   is_persistablerT   T   sw    0 	4<<//>>>88==?dll22===88==?dll22999??r   c                 "    [        U [        5      $ )a  
Check whether the given variable is an instance of Parameter.

Args:
    var(Variable): The variable to be checked.

Returns:
    bool: True if the given `var` is an instance of Parameter,
    False if not.

Examples:
    .. code-block:: python

        >>> # doctest: +SKIP('ValueError: var fc.w not in this block')
        >>> import paddle
        >>> import paddle.base as base

        >>> paddle.enable_static()
        >>> param = base.default_main_program().global_block().var('fc.w')
        >>> res = base.io.is_parameter(param)
)r;   r   rR   s    r   is_parameterrV   t   s    , c9%%r   c                     [        U [        5      (       d*  U R                  R                  5       (       d  [	        U 5      $ g)NF)r;   r   rJ   need_check_feedrT   rR   s    r   is_belong_to_optimizerrY      s/    sI&&#((*B*B*D*Dc""r   c           	         [        U[        5      (       d   eUR                  R                  5       [        R
                  R                  R                  :X  aF  U R                  UR                  UR                  UR                  UR                  UR                  SS9$ U R                  UR                  UR                  UR                  UR                  SS9$ )NT)nameshapedtyperK   	lod_levelrQ   )r[   r\   r]   rK   rQ   )r;   r	   rJ   rK   r   rL   rM   DENSE_TENSOR
create_varr[   r\   r]   r^   )blockrS   s     r   _clone_var_in_block_rb      s    c8$$$$
xx}}$,,..;;;))))mm   
 	
 ))))   
 	
r   c           	   #      #    U (       a  U O[         R                  R                  5       nU(       a  UO[         R                  R                  5       nU(       a  UO'[         R                  R                  R	                  5       n[         R                  R                  U5         [         R                  R                  X45         [         R                  R                  R                  5          [         R                  R                  R                  S 5         S v   S S S 5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N'= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f7fr   )paddlebaseProgramr   Scopescope_guardprogram_guardunique_nameguard	framework_dygraph_guard)mainstartupscopeprogstartup_progs        r   _load_program_scopers      s     4V[[002D%76;;+>+>+@LE 0 0 6 6 8E&!!$5%%',,T2 	3 	( 	6 	'& 	32 	(' 	65 	'&sf   BE>! E-)E**ED:	E!E)E-1	E>:
EE
EE
E*	&E--
E;7E>c           
         ^^ S nU  Vs0 s H  oDU" X   5      _M     n n[        U5      (       a  [        R                  S:X  az  [        R                  R                  S:X  a\  [
        R                  " XS9m[        US5       nSmUR                  UU4S j[        S[        T5      T5       5       5        S S S 5        g [        US5       n[
        R                  " XUS9  S S S 5        g s  snf ! , (       d  f       g = f! , (       d  f       g = f)	Nc                     [        U [        R                  [        R                  45      (       a  [
        R                  " U 5      $ U $ r   )r;   rd   Tensorr   DenseTensornparrayrR   s    r   
get_tensor'_legacy_static_save.<locals>.get_tensor   s1    cFMM4+;+;<==88C= 
r   darwin   )protocolwb   @c              3   2   >#    U  H  nTXT-    v   M     g 7fr   r#   ).0i	max_bytespickle_bytess     r   	<genexpr>&_legacy_static_save.<locals>.<genexpr>   s!      ?A QY/?s   r   )r>   sysplatformversion_infomajorpickledumpsrB   
writelinesrangelenrF   dump)
param_dict
model_pathr~   rz   r[   fr   r   s         @@r   _legacy_static_saver      s    
 BLL
:#344JL 	j!!LLH$""a'||JB*d#qILL q#l"3Y?  $# z40AKK
9 10! M $# 10s   C)3C.
C?.
C<?
Dc                     [        S5      n[        R                  R                  U 5      nSn[	        SX45       H  nX!R                  U5      -  nM     [        R                  " USS9nU$ )Nr   r   latin1)encoding)	bytearrayosr=   getsizer   readr   loads)r=   r   r   	file_sizer   _load_results          r   _pickle_loads_macr      sZ    Q<L%II1i+y)) ,,,|h?Kr   c                 h   [        U [        5      (       a  SnX;   a  / nX   R                  5        HM  u  p4US    Vs/ s H  oPU   PM	     nn[        R                  " U5      R                  US   5      X'   X$S   -  nMO     U H  nU R                  U5        M     U R                  U5        U $ s  snf )NUnpackBigParamInfor@@slicesOriginShape)r;   dictitemsrx   concatenatereshapepop)load_objunpack_inforemoveskeyvaluepartr   s          r   _pack_loaded_dictr      s    (D!!-"G&399;
5:8_E_T4._E "v 6 > >-(! ?* < S! LL%O Fs   B/c           	      4   0 n0 nSUs=:  a  S:  Ga7  O  GO3[        U [        5      (       Ga  U R                  5        GH  u  pE[        U[        R                  5      (       d  M'  [        SUR                  R                  -  5      n[        R                  " UR                  5      nXv:  d  Mp  0 X4'   UR                  X4   S'   / X4   S'   UR                  5       n[        [        [        R                  " US-  U-  5      5      5       H:  nUS-   [        U5      -   n	X4   S   R                  U	5        UUU-  UUS-   -   X)'   M<     GM     U(       aG  UR                  5        H/  u  pEX@;   d  M  U R!                  U5        US    H	  n
X*   X
'   M     M1     X0S'   U $ )	N      i?r   r   g      ?z@@.r   )r;   r   r   rx   ndarrayintr]   itemsizeprodr\   flattenr   mathceilr<   appendr   )	saved_objr~   temp_saved_objr   r   r   MAX_NUMBER_OF_ELEMENTnum_elementr   	part_namer   s              r   _unpack_saved_dictr      s   NK8ai&&'oo/
eRZZ00,/"ekk&:&::-) #%''%++"6K":+-(:?++(757(2 %!& $		$/#$58M$M!""A ),ec!f(<I',X6==iH8= !"7!8:O#$q5;*9N5" 04 %++-JCc"!(OD&4&:IO , .
 .9)*r   c           	         [        U[        R                  5      (       d)  [        US5      (       d  [	        S[        U5       S35      eUb7  [        U[        R                  5      (       d  [	        S[        U5       S35      eUc
  [        5       nUR                  U R                  5      nUc  [        SU R                   S35      eUR                  5       n[        US5      (       a  [        UR                  [        [        45      (       a  UR                  5       nOUR                  n[!        UR                  5       5      [!        U5      :w  a>  [        U R                   S[!        UR                  5       5       S	[!        U5       S35      eUR#                  5       nUR%                  5       (       a  [        R&                  " 5       nGOoUR)                  5       (       a  [        R*                  " 5       nGOCUR-                  5       (       aY  [        R.                  " 5       nUR1                  UR#                  5       5        [        R2                  " UR5                  5       5      nOUR7                  5       (       ah  [        R.                  " 5       nUR1                  UR#                  5       5        [        R8                  " UR;                  5       UR=                  5       5      nOX[        R.                  " 5       nUR1                  UR#                  5       5        [        R>                  " URA                  5       5      nURC                  X5        g )
N	__array__zA`value` should be `numpy.ndarray` or `DenseTensor`, but received .C`scope` should be None or `paddle.static.Scope` type, but received Can not find Variable '' in the Scope.r\   z expected a shape z, but the received shape is )"r;   rx   r   hasattr	TypeErrorrK   r   _Scoper   find_varr[   rC   rz   r\   r   r   list_placeis_cpu_placeCPUPlaceis_cuda_pinned_placeCUDAPinnedPlaceis_xpu_placePlace	set_placeXPUPlacexpu_device_idis_custom_placeCustomPlacecustom_device_typecustom_device_id	CUDAPlacegpu_device_idset)rS   r   rp   var_temptvalue_shapepplaces           r   	set_valuer     sa   ubjj))WUK-H-HOPTUZP[}\]^
 	
 E4;;!?!?QRVW\R]Q^^_`
 	
 }~~chh'H2388*OLMMAugekkJ#=>>++-K++K	?d;//88*.tAGGI.??[\`al\m[nnop  	

A~~	
			!	!$$&	
		JJL	AHHJaoo/0	
				JJL	AHHJ  !5!5!79K9K9MNJJL	AHHJq01EE%r   c                 "   Ub7  [        U[        R                  5      (       d  [        S[	        U5       S35      eUc
  [        5       nUR                  U R                  5      nUc  [        SU R                   S35      eUR                  5       nU$ )a#  
Get the value of variable or value in given scope.

Args:
    scope(Scope, optional) : If `scope` is None, it will be set to global scope
        obtained through 'paddle.static.global_scope()'. Otherwise, use `scope`.
        Default: None

Returns:
    Tensor, the value in given scope.

r   r   r   r   )
r;   r   r   r   rK   r   r   r[   rC   rz   )rS   rp   r   r   s       r   	get_valuer   K  s     E4;;!?!?QRVW\R]Q^^_`
 	
 }~~chh'H2388*OLMMAHr   c                 h    [        5       (       a#  U R                  5       R                  5       S:X  a  gg)Nzpd_op.fetchTF)r   get_defining_opr[   )r   s    r   is_pir_fetch_varr   f  s(    }}..0557=Hr   )NNN)   r   )/loggingr   r   r   r   ior   typesr   r   numpyrx   rd   paddle.baser   r   paddle.base.frameworkr   r	   r
   paddle.base.log_helperr   paddle.base.wrapped_decoratorr   paddle.frameworkr   r   INFO_loggerr   r%   r5   r>   rF   rH   rT   rV   rY   rb   rs   r   r   r   r   r   r   r   r#   r   r   <module>r      s      	  
  *   * B B - G (
gll H 0\ 0\ 
!	L'@&2
* 
 
 : :4$'T0f6r   