
    ziV                    <    d Z ddlmZ ddlmZmZ ddZd	dZd
dZy)zrSetstate and getstate functions for objects with __slots__, allowing
compatibility with default pickling protocol
    )annotations)AnyMappingc                N    |j                         D ]  \  }}t        | ||        y N)itemssetattr)selfstateslotvalues       W/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/bson/_helpers.py_setstate_slotsr      s'    {{} #edE"#    c                F    | j                  d      r
d|z   }|| z   S d}|| z   S )N___ )
startswith)nameprefixs     r   _mangle_namer      s4    tv D= D=r   c                    | j                   j                  }i }| j                  D ]*  }t        ||      }t	        | |      st        | |      ||<   , |S r   )	__class____name__	__slots__r   hasattrgetattr)r
   r   retr   mangled_names        r   _getstate_slotsr!   $   sW    ^^$$F
C <#D&14& 'l ;C< Jr   N)r
   r   r   r   returnNone)r   strr   r$   r"   r$   )r
   r   r"   zMapping[Any, Any])	__doc__
__future__r   typingr   r   r   r   r!    r   r   <module>r)      s!    # #
r   