o
    'h                     @  s   U d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ ejZejZejZdZdZ	 d	Ze
Zd
ZdZeedZded< eedZded< 		d&d'ddZd(ddZ		d&d'ddZd(d d!Zd)d$d%Z dS )*    )annotationsN)AnyOptional)	ASCENDING)MAX_MESSAGE_SIZE)InvalidOperation       
i  i <   )files_idnzdict[str, Any]_C_INDEX)filename
uploadDate_F_INDEXF
field_namestr	docstring	read_onlyOptional[bool]closed_onlyreturnr   c                   |   d| drd dd fdd	}dfdd}|r%|d7 }n r-d|d}|s8 s8t|||dS t||dS )Create a GridIn property. DEPRECATED,GridIn property '2' is deprecated and will be removed in PyMongo 5.0selfr   r   c                   N   r
t jdtd  r| jstd dkr | jdS | jd S N   
stacklevelcategoryz can only get %r on a closed filelengthr   warningswarnDeprecationWarning_closedAttributeError_filegetr   r   r   warn_str S/var/www/html/olx_land/venv/lib/python3.10/site-packages/gridfs/grid_file_shared.pygetter/      
z#_a_grid_in_property.<locals>.gettervaluec                   s0   r
t jdtd | jrtd|| j < d S )Nr!   r"   zAsyncGridIn does not support __setattr__ after being closed(). Set the attribute before closing the file or use AsyncGridIn.set() instead)r'   r(   r)   r*   r   r,   r   r5   r   r0   r1   r2   setter9   s   z#_a_grid_in_property.<locals>.setter

This attribute is read-only.{}

{}UThis attribute is read-only and can only be read after :meth:`close` has been called.docNr   r   r   r   r   r   r5   r   r   r   
startswithformatpropertyr   r   r   r   r3   r8   r1   r/   r2   _a_grid_in_property!   s    


	
rE   c                   s"   d	 fdd}|d7 }t ||dS )
Create a GridOut property.r   r   r   c                   s6   | j s	td   dkr| j  dS | j  d S )Nz=You must call GridOut.open() before accessing the %s propertyr%   r   )r,   r   r-   r.   r   r1   r2   a_getterT   s   z&_a_grid_out_property.<locals>.a_getterr9   r<   Nr>   )rC   )r   r   rH   r1   rG   r2   _a_grid_out_propertyQ   s   
rI   c                   r   )r   r   r   r   r   r   r   r   c                   r   r    r&   r.   r/   r1   r2   r3   o   r4   z!_grid_in_property.<locals>.getterr5   c                   sJ   r
t jdtd | jr| jjd| jd id |ii || j < d S )Nr!   r"   _idz$set)r'   r(   r)   r*   _collfiles
update_oner,   r6   r7   r1   r2   r8   y   s
   "z!_grid_in_property.<locals>.setterr9   r:   r;   r<   Nr>   r?   r@   rD   r1   r/   r2   _grid_in_propertyb   s    



rN   c                   s>   d| drd  dd fdd	}|d
7 }t||dS )rF   r   r   zGridOut property 'r   r   r   r   c                   s@   r
t jdtd |    dkr| j dS | j d S )Nr!   r"   r%   r   )r'   r(   r)   openr,   r-   r.   r7   r1   r2   r3      s   z"_grid_out_property.<locals>.getterr9   r<   Nr>   )rA   rC   )r   r   r3   r1   r7   r2   _grid_out_property   s   


rP   entitykwargsc                 K  s"   | j jdd}| jdd|i|S )z;Clear the given database/collection object's type registry.N)type_registrycodec_optionsr1   )rT   with_options)rQ   rR   	codecoptsr1   r1   r2   _clear_entity_type_registry   s   rW   )FF)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )rQ   r   rR   r   r   r   )!
__future__r   osr'   typingr   r   pymongor   pymongo.commonr   pymongo.errorsr   SEEK_SET	_SEEK_SETSEEK_CUR	_SEEK_CURSEEK_END	_SEEK_ENDEMPTYNEWLNDEFAULT_CHUNK_SIZE_UPLOAD_BUFFER_SIZE_UPLOAD_BUFFER_CHUNKS_CHUNK_OVERHEADr   __annotations__r   rE   rI   rN   rP   rW   r1   r1   r1   r2   <module>   s8    
0
-