ó
    †ñ:ih"  ã                   óŒ   • S SK r S SKrS SKrS SKrS SKr\R                  " S5      r " S S5      r " S S5      r	 " S S5      r
g)	é    NÚshapc                   óB   • \ rS rSrSrS r\SS j5       r\S 5       rSr	g)	ÚSerializableé   z3This is the superclass of all serializable objects.c                 óD   • [         R                  " [        U 5      U5        g)z(Save the model to the given file stream.N)ÚpickleÚdumpÚtype)ÚselfÚout_files     ÚU/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/_serializable.pyÚsaveÚSerializable.save   s   € ä�Š”D˜“J Õ)ó    c                 ó6   • U(       a  U R                  U5      $ 0 $ )zðThis is meant to be overridden by subclasses and called with super.

We return constructor argument values when not being instantiated. Since there are no
constructor arguments for the Serializable class we just return an empty dictionary.
)Ú_instantiated_load)ÚclsÚin_fileÚinstantiates      r   ÚloadÚSerializable.load   s   € ö Ø×)Ñ)¨'Ó2Ð2Øˆ	r   c           
      óx  • [         R                  " U5      nUc  g[        R                  " U5      (       a  [	        X05      (       d  X0La  [        SU SU  S35      eUR                  " U4SS0UD6n[        R                  " UR                  5      S   nU" S0 U Vs0 s H  ofU;   d  M
  XdU   _M     snD6$ s  snf )	zŸThis is meant to be overridden by subclasses and called with super.

We return constructor argument values (we have no values to load in this abstract class).
Nz&Invalid object type loaded from file. z is not a subclass of Ú.r   Fr   © )r   r   ÚinspectÚisclassÚ
issubclassÚ	ExceptionÚgetfullargspecÚ__init__)r   r   ÚkwargsÚobj_typeÚconstructor_argsÚ	used_argsÚks          r   r   ÚSerializable._instantiated_load   sÂ   € ô —;’;˜wÓ'ˆØÑØä�Š˜x×(Ñ(´¸H×1JÑ1JÐPXÒPcÜÐDÀXÀJÐNdÐehÐdiÐijÐkÓlÐlð $Ÿ=š=¨ÑN¸eÐNÀvÑNÐÜ×*Ò*¨8×+<Ñ+<Ó=¸aÑ@ˆ	ÙÑ_Ñ;KÓ^Ò;K°aÐT]É~Ó1˜1¨qÑ1Ò1Ñ;KÑ^Ñ_Ð_ùÒ^s   Â	B7Â)	B7r   N)T)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úclassmethodr   r   Ú__static_attributes__r   r   r   r   r      s4   † Ù=ò*ð óó ðð ñ`ó ó`r   r   c                   ó4   • \ rS rSrSrS rS rS rS	S jrSr	g)
Ú
Serializeré0   z#Save data items to an input stream.c                 ó6   • Xl         X l        X0l        SU l        g ©Nr   )Ú
out_streamÚ
block_nameÚblock_versionÚserializer_version)r   r3   r4   Úversions       r   r    ÚSerializer.__init__3   s   € Ø$ŒØ$ŒØ$ÔØ"#ˆÕr   c                 óÈ  • [         R                  SU R                  5        [        R                  " U R                  U R
                  5        [         R                  SU R                  5        [        R                  " U R                  U R
                  5        [         R                  SU R                  5        [        R                  " U R                  U R
                  5        U $ )Núserializer_version = %dúblock_name = %súblock_version = %d)ÚlogÚdebugr6   r   r	   r3   r4   r5   )r   s    r   Ú	__enter__ÚSerializer.__enter__9   sŠ   € Ü�	‰	Ð+¨T×-DÑ-DÔEÜ�Š�D×+Ñ+¨T¯_©_Ô=Ü�	‰	Ð# T§_¡_Ô5Ü�Š�D—O‘O T§_¡_Ô5Ü�	‰	Ð&¨×(:Ñ(:Ô;Ü�Š�D×&Ñ&¨¯©Ô8Øˆr   c                 óp   • [         R                  S5        [        R                  " SU R                  5        g )NÚEND_BLOCK___)r=   r>   r   r	   r3   )r   Úexception_typeÚexception_valueÚ	tracebacks       r   Ú__exit__ÚSerializer.__exit__B   s    € Ü�	‰	�.Ô!Ü�Š�N D§O¡OÕ4r   c                 ól  • [         R                  SU5        [        R                  " XR                  5        Ub  USL a9  [         R                  SS5        [        R                  " SU R                  5        GO[        U5      (       aK  [         R                  SS5        [        R                  " SU R                  5        U" X R                  5        GOÃUS:X  d  [        U[        5      (       aÃ  US:X  a½  [        US	5      (       aT  [         R                  SS
5        [        R                  " S
U R                  5        UR                  U R                  5        GO=[         R                  SS5        [        R                  " SU R                  5        [        R                  " X R                  5        OåUS:X  aÐ  [        U[        [        [        45      (       aX  [         R                  SS5        [        R                  " SU R                  5        [        R                  " X R                  5        Og[         R                  SS5        [        R                  " SU R                  5        [        R                  " X R                  5        O[        SU S35      e[         R                  S[        U5      5        g)z-Dump a data item to the current input stream.z	name = %sNFúencoder_name = %sÚ
no_encoderÚcustom_encoderz.saveÚautor   úserializable.savezcloudpickle.dump (fallback)úcloudpickle.dumpúpickle.dumpzUnknown encoder type 'z' given for serialization!ú
value = %s)r=   r>   r   r	   r3   ÚcallableÚ
isinstancer   Úhasattrr   ÚcloudpickleÚintÚfloatÚstrÚ
ValueError)r   ÚnameÚvalueÚencoders       r   r   ÚSerializer.saveF   sÄ  € ä�	‰	�+˜tÔ$Ü�Š�DŸ/™/Ô*Ø‰?˜g¨Ò.Ü�I‰IÐ)¨<Ô8Ü�KŠK˜ d§o¡oÖ6Ü�g×ÑÜ�I‰IÐ)Ð+;Ô<Ü�KŠKÐ(¨$¯/©/Ô:Ù�EŸ?™?Ö+Ø˜Ó¤J¨u´l×$CÑ$CÈÐSYÓHYÜ�u˜f×%Ñ%ä—	‘	Ð-Ð/BÔCÜ—’Ð/°·±ÔAØ—
‘
˜4Ÿ?™?Ö+ô —	‘	Ð-Ð/LÔMÜ—’Ð.°·±Ô@Ü× Ò  ¯©Õ8Ø˜ÓÜ˜%¤#¤u¬cÐ!2×3Ñ3Ü—	‘	Ð-¨}Ô=Ü—’˜M¨4¯?©?Ô;Ü—’˜E§?¡?Õ3ä—	‘	Ð-Ð/AÔBÜ—’Ð.°·±Ô@Ü× Ò  ¯©Õ8äÐ5°g°YÐ>XÐYÓZÐZÜ�	‰	�,¤ E£
Õ+r   )r4   r5   r3   r6   N)rL   )
r'   r(   r)   r*   r+   r    r?   rF   r   r-   r   r   r   r/   r/   0   s   † Ù-ò$òò5÷!,r   r/   c                   ó>   • \ rS rSrSrS rS rS rS
S jrS
S jr	S	r
g)ÚDeserializeréj   z%Load data items from an input stream.c                 óP   • Xl         X l        X0l        X@l        SU l        SU l        g r2   )Ú	in_streamr4   Úblock_min_versionÚblock_max_versionÚserializer_min_versionÚserializer_max_version)r   ra   r4   Úmin_versionÚmax_versions        r   r    ÚDeserializer.__init__m   s*   € Ø"ŒØ$ŒØ!,ÔØ!,Ôð '(ˆÔ#Ø&'ˆÕ#r   c                 óø  • [         R                  " U R                  5      n[        R	                  SU5        XR
                  :  a  [        SU SU R
                   S35      eXR                  :”  a  [        SU SU R                   S35      e[         R                  " U R                  5      n[        R	                  SU5        X R                  :w  a  [        SU R                   SU S35      e[         R                  " U R                  5      n[        R	                  S	U5        X0R                  :  a  [        S
U SU R                   S35      eX0R                  :”  a  [        S
U SU R                   S35      eU $ )Nr:   z=The file being loaded was saved with a serializer version of zA, but the current deserializer in SHAP requires at least version r   zB, but the current deserializer in SHAP only support up to version r;   z@The next data block in the file being loaded was supposed to be ú, but the next block found was r<   z8The file being loaded was saved with a block version of )r   r   ra   r=   r>   rd   rX   re   r4   rb   rc   )r   r6   r4   r5   s       r   r?   ÚDeserializer.__enter__w   s¢  € ä#Ÿ[š[¨¯©Ó8ÐÜ�	‰	Ð+Ð-?Ô@Ø× ;Ñ ;Ó;ÜØOÐPbÐOcð dRØRV×RmÑRmÐQnÐnoðqóð ð × ;Ñ ;Ó;ÜØOÐPbÐOcð dSØSW×SnÑSnÐRoÐopðróð ô —[’[ §¡Ó0ˆ
Ü�	‰	Ð# ZÔ0ØŸ™Ó(ÜØRÐSW×SbÑSbÐRcð d0Ø0:¨|¸1ð>óð ô Ÿš D§N¡NÓ3ˆÜ�	‰	Ð&¨Ô6Ø×1Ñ1Ó1ÜØJÈ=È/ð ZRØRV×RhÑRhÐQiÐijðlóð ð ×1Ñ1Ó1ÜØJÈ=È/ð ZSØSW×SiÑSiÐRjÐjkðmóð ð ˆr   c                 óô   • [        S5       HQ  n[        R                  " U R                  5      n[        R                  SU5        US:X  a    g U R                  5         MS     [        SU R                   S35      e)Néd   zend_token = %srB   z5The data block end token wsa not found for the block r   )	Úranger   r   ra   r=   r>   Ú_load_data_valuerX   r4   )r   rC   rD   rE   Ú_Ú	end_tokens         r   rF   ÚDeserializer.__exit__ž   sh   € ä�s–ˆAÜŸš D§N¡NÓ3ˆIÜ�I‰IÐ&¨	Ô2Ø˜NÓ*ÙØ×!Ñ!Ö#ñ ô ÐPÐQU×Q`ÑQ`ÐPaÐabÐcÓdÐdr   Nc                 ó  • [         R                  " U R                  5      n[        R	                  SU5        [        SU5        X1:w  a  [        SU SU S35      eU R                  U5      n[        R	                  S[        U5      5        U$ )z/Load a data item from the current input stream.zloaded_name = %sÚloaded_namez?The next data item in the file being loaded was supposed to be rj   r   rP   )	r   r   ra   r=   r>   ÚprintrX   ro   rW   )r   rY   Údecoderrt   rZ   s        r   r   ÚDeserializer.load¨   s†   € ô —k’k $§.¡.Ó1ˆÜ�	‰	Ð$ kÔ2Üˆm˜[Ô)ØÓÜØQÐRVÐQWð X0Ø0;¨}¸Að?óð ð
 ×%Ñ% gÓ.ˆÜ�	‰	�,¤ E£
Ô+Øˆr   c                 óD  • [         R                  " U R                  5      n[        R	                  SU5        US:X  d  [        U5      (       a)  [        U5      (       d   S5       eU" U R                  5      $ US:X  a  g US:X  a  [        R                  U R                  5      $ US:X  a   [        R                  " U R                  5      $ US:X  a   [         R                  " U R                  5      $ US:X  a   [        R                  " U R                  5      $ [        S	U 35      e)
NrI   rK   zDYou must provide a callable custom decoder for the data item {name}!rJ   rM   z
numpy.saverO   rN   z Unsupported encoder type found: )
r   r   ra   r=   r>   rQ   r   ÚnprT   rX   )r   rv   Úencoder_names      r   ro   ÚDeserializer._load_data_value¸   sì   € Ü—{’{ 4§>¡>Ó2ˆÜ�	‰	Ð% |Ô4ØÐ+Ó+¬x¸×/@Ñ/@Ü˜G×$Ñ$ÐlÐ&lÓlÐ$Ù˜4Ÿ>™>Ó*Ð*Ø˜<Ó'ØØÐ.Ó.Ü×$Ñ$ T§^¡^Ó4Ð4Ø˜<Ó'Ü—7’7˜4Ÿ>™>Ó*Ð*Ø˜=Ó(Ü—;’;˜tŸ~™~Ó.Ð.ØÐ-Ó-Ü×#Ò# D§N¡NÓ3Ð3äÐ;¸L¸>ÐJÓKÐKr   )rc   rb   r4   ra   re   rd   )N)r'   r(   r)   r*   r+   r    r?   rF   r   ro   r-   r   r   r   r^   r^   j   s!   † Ù/ò(ò%òNeô÷ Lr   r^   )r   Úloggingr   rT   Únumpyry   Ú	getLoggerr=   r   r/   r^   r   r   r   Ú<module>r      sJ   ðÛ Û Û ã Û à×Ò˜Ó€÷"`ñ "`÷J7,ñ 7,÷t_Lò _Lr   