
    j4                     N    d dl mZmZ d dlmZ  edd       G d d             Zy)    )	dataclassasdict)OptionalT)kw_onlyfrozenc                       e Zd ZU dZdZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   d	 Zy)

StreamInfozThe StreamInfo class is used to store information about a file stream.
    All fields can be None, and will depend on how the stream was opened.
    Nmimetype	extensioncharsetfilename
local_pathurlc           	      (   t        |       }|D ]S  }t        |t              sJ |j                  t        |      j	                         D ci c]  \  }}|	|| c}}       U t        |      dkD  r|j                  |       t        di |S c c}}w )zsCopy the StreamInfo object and update it with the given StreamInfo
        instance and/or other keyword arguments.r    )r   
isinstancer	   updateitemslen)selfargskwargsnew_infosikvs          X/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/markitdown/_stream_info.pycopy_and_updatezStreamInfo.copy_and_update   s     $< 	TBb*---OOfRj.>.>.@RdaAMQTRS	T v;?OOF#%H%% Ss   

BB)__name__
__module____qualname____doc__r
   r   str__annotations__r   r   r   r   r   r   r       r   r	   r	      so     #Hhsm"#Ix}#!GXc]! 	 h  !%J$C#&r%   r	   N)dataclassesr   r   typingr   r	   r   r%   r   <module>r(      s+    )  4%& & &&r%   