Ë
    ûûàgÚ#  ã                   óì   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ  e j                   e«      Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    N)ÚOrderedDict)ÚNON_FIELD_ERRORS)Ú	force_str)Úcached_property)Úgettext_lazy)ÚDatasetc                   ó.   — e Zd ZdZdd„Zd„ Zed„ «       Zy)ÚErrorzQ
    Base class representing an Error arising from error during data import.
    Nc                 ó.   — || _         || _        || _        y)z¸
        :param error: Instance of an Exception class.
        :param row: The row as a dict of fields and values (optional).
        :param number: The row number (optional).
        N©ÚerrorÚrowÚnumber)Úselfr   r   r   s       úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/import_export/results.pyÚ__init__zError.__init__   s   € ð ˆŒ
ØˆŒØˆ�ó    c                 ó¦   — d| j                   ›�}| j                  �|d| j                  › �z  }| j                  �|d| j                  › �z  }|dz  }|S )Nz<Error: z at row z at number ú>r   )r   Úresults     r   Ú__repr__zError.__repr__   s^   € Ø˜DŸJ™J˜>Ð*ˆØ�8‰8ÐØ˜ §¡ 
Ð+Ñ+ˆFØ�;‰;Ð"Ø˜ D§K¡K =Ð1Ñ1ˆFØ�#‰ˆØˆr   c                 óô   — t         j                  dk\  r t        j                  | j                  «      }n5t        j                  d | j                  | j                  j
                  «      }dj                  |«      S )N)é   é
   Ú )ÚsysÚversion_infoÚ	tracebackÚformat_exceptionr   Ú__traceback__Újoin)r   Úliness     r   r   zError.traceback'   sY   € ä×Ñ˜wÒ&Ü×.Ñ.¨t¯z©zÓ:‰Eä×.Ñ.Ø�d—j‘j $§*¡*×":Ñ":óˆEð �w‰w�u‹~Ðr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r
   r
      s%   „ ñóòð ñó ñr   r
   c                   óv   — e Zd ZdZdZdZdZdZdZdZ	 e
eeeeg«      Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú	RowResultz.Container for values relating to a row import.ÚupdateÚnewÚdeleteÚskipr   Úinvalidc                 ó‚   — g | _         d | _        d | _        d | _        i | _        d | _        d | _        d | _        d | _        y ©N)	ÚerrorsÚvalidation_errorÚdiffÚimport_typeÚ
row_valuesÚ	object_idÚobject_reprÚinstanceÚoriginal©r   s    r   r   zRowResult.__init__E   sV   € ð ˆŒð !%ˆÔð ˆŒ	ð  ˆÔð ˆŒð ˆŒð  ˆÔð ˆŒð ˆ�r   c                 ó<   — | j                   t        j                  k(  S )zT
        :return: ``True`` if import type is 'update', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_UPDATEr:   s    r   Ú	is_updatezRowResult.is_updated   ó   € ð ×Ñ¤9×#?Ñ#?Ñ?Ð?r   c                 ó<   — | j                   t        j                  k(  S )zQ
        :return: ``True`` if import type is 'new', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_NEWr:   s    r   Úis_newzRowResult.is_newj   s   € ð ×Ñ¤9×#<Ñ#<Ñ<Ð<r   c                 ó<   — | j                   t        j                  k(  S )zT
        :return: ``True`` if import type is 'delete', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_DELETEr:   s    r   Ú	is_deletezRowResult.is_deletep   r>   r   c                 ó<   — | j                   t        j                  k(  S )zR
        :return: ``True`` if import type is 'skip', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_SKIPr:   s    r   Úis_skipzRowResult.is_skipv   s   € ð ×Ñ¤9×#=Ñ#=Ñ=Ð=r   c                 ó<   — | j                   t        j                  k(  S )zS
        :return: ``True`` if import type is 'error', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_ERRORr:   s    r   Úis_errorzRowResult.is_error|   s   € ð ×Ñ¤9×#>Ñ#>Ñ>Ð>r   c                 ó<   — | j                   t        j                  k(  S )zU
        :return: ``True`` if import type is 'invalid', otherwise ``False``.
        )r4   r)   ÚIMPORT_TYPE_INVALIDr:   s    r   Ú
is_invalidzRowResult.is_invalid‚   s   € ð ×Ñ¤9×#@Ñ#@Ñ@Ð@r   c                 ó2   — | j                   | j                  v S )zn
        :return: ``True`` if import type is not 'error' or 'invalid', otherwise
          ``False``.
        )r4   Úvalid_import_typesr:   s    r   Úis_validzRowResult.is_validˆ   s   € ð
 ×Ñ 4×#:Ñ#:Ð:Ð:r   c           	      óÐ   — |�$t        |dd «      | _        	 t        |«      | _        y y # t        $ r4}t
        j                  t        dt        |«      z  «      «       Y d }~y d }~ww xY w)NÚpkz*call to force_str() on instance failed: %s)	Úgetattrr6   r   r7   Ú	ExceptionÚloggerÚdebugÚ_Ústr)r   r8   Úes      r   Úadd_instance_infozRowResult.add_instance_info�   sc   € ØÐä$ X¨t°TÓ:ˆDŒNðWÜ#,¨XÓ#6�Õ ð	  øô
 ò WÜ—‘œQÐKÌcÐRSËfÑTÓU×VÑVûðWús   –( ¨	A%±*A Á A%N)r#   r$   r%   r&   r<   r@   rC   rF   rI   rL   Ú	frozensetrO   r   r=   rA   rD   rG   rJ   rM   rP   rZ   r'   r   r   r)   r)   2   su   „ Ù8à!ÐØ€OØ!ÐØÐØÐØ#Ðá"àØØØð		
óÐòò>@ò=ò@ò>ò?òAò;óWr   r)   c                   óL   — e Zd ZdZd„ Zed„ «       Zed„ «       Zed„ «       Zd„ Z	y)Ú
InvalidRowzVA row that resulted in one or more ``ValidationError``
    being raised during import.c                 óž   — || _         || _        || _        	 |j                  | _        y # t
        $ r t        |j                  i| _        Y y w xY wr0   )r   r   ÚvaluesÚmessage_dictÚ
error_dictÚAttributeErrorr   Úmessages)r   r   r2   r_   s       r   r   zInvalidRow.__init__�   sN   € ØˆŒØ%ˆŒ
ØˆŒð	LØ.×;Ñ;ˆD�OøÜò 	LÜ/Ð1A×1JÑ1JÐKˆDŽOð	Lús   —) © AÁAc                 ó|   — | j                   j                  «       D ��ci c]  \  }}|t        k7  r||“Œ c}}S c c}}w )zFReturns a dictionary of field-specific validation errors for this row.)ra   Úitemsr   )r   ÚkeyÚvalues      r   Úfield_specific_errorsz InvalidRow.field_specific_errors¦   sB   € ð
 #Ÿo™o×3Ñ3Ó5÷
á��UØÔ&Ò&ð �‰Jó
ð 	
ùó 
s   ž8c                 óB   — | j                   j                  t        g «      S )zDReturns a list of non field-specific validation errors for this row.)ra   Úgetr   r:   s    r   Únon_field_specific_errorsz$InvalidRow.non_field_specific_errors¯   s   € ð �‰×"Ñ"Ô#3°RÓ8Ð8r   c                 ód   — d}| j                   j                  «       D ]  }|t        |«      z  }Œ |S )z;Returns the total number of validation errors for this row.r   )ra   r_   Úlen)r   ÚcountÚ
error_lists      r   Úerror_countzInvalidRow.error_count´   s8   € ð ˆØŸ/™/×0Ñ0Ó2ò 	%ˆJØ”S˜“_Ñ$‰Eð	%àˆr   c           	      ó‚   — dt        | «      j                  › d| j                  › d| j                  ›d| j                  › d�	S )Nú<z(row=z, error=z, error_count=z)>)Útyper#   r   r   rp   r:   s    r   r   zInvalidRow.__repr__¼   sI   € à”�T“
×#Ñ#Ð$ E¨$¯+©+¨ð 7Ø—Z‘Z�Nð #Ø×+Ñ+Ð,¨Bð0ð	
r   N)
r#   r$   r%   r&   r   Úpropertyrh   rk   rp   r   r'   r   r   r]   r]   ™   sN   „ ñ#òLð ñ
ó ð
ð ñ9ó ð9ð ñó ðó
r   r]   c                   ó   — e Zd ZdZd„ Zy)ÚErrorRowzEA row that resulted in one or more errors being raised during import.c                 ó    — || _         || _        y r0   ©r   r1   )r   r   r1   s      r   r   zErrorRow.__init__Ç   s   € àˆŒàˆ�r   N)r#   r$   r%   r&   r   r'   r   r   rv   rv   Ä   s
   „ ÙOór   rv   c                   óf   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚResultc           	      ó€  •— t         ‰| �  «        g | _        g | _        g | _        g | _        g | _        t        «       | _        t        t        j                  dft        j                  dft        j                  dft        j                  dft        j                  dft        j                   dfg«      | _        d| _        y )Nr   )Úsuperr   Úbase_errorsÚdiff_headersÚrowsÚinvalid_rowsÚ
error_rowsr   Úfailed_datasetr   r)   r@   r<   rC   rF   rI   rL   ÚtotalsÚ
total_rows)r   ÚargsÚkwargsÚ	__class__s      €r   r   zResult.__init__Ï   s¬   ø€ Ü‰ÑÔØˆÔØˆÔàˆŒ	àˆÔàˆŒä%›iˆÔÜ!ä×*Ñ*¨AÐ.Ü×-Ñ-¨qÐ1Ü×-Ñ-¨qÐ1Ü×+Ñ+¨QÐ/Ü×,Ñ,¨aÐ0Ü×.Ñ.°Ð2ðó	
ˆŒð ˆ�r   c                 óz   — | j                   D �cg c]!  }|j                  t        j                  v sŒ |‘Œ# c}S c c}w r0   )r   r4   r)   rO   )r   Úrs     r   Ú
valid_rowszResult.valid_rowsç   s+   € ØŸ9™9ÖV�a¨¯©¼×9UÑ9UÒ(U’ÒVÐVùÒVs   �!8±8c                 ó:   — | j                   j                  |«       y r0   )r   Úappend©r   Ú
row_results     r   Úappend_row_resultzResult.append_row_resultê   s   € Ø�	‰	×Ñ˜Õ$r   c                 ó:   — | j                   j                  |«       y r0   )r}   rŒ   )r   r   s     r   Úappend_base_errorzResult.append_base_errorí   s   € Ø×Ñ×Ñ Õ&r   c                 ó:   — |sg n|}|dgz   | j                   _        y )Nr
   )r‚   Úheaders)r   r“   s     r   Úadd_dataset_headerszResult.add_dataset_headersð   s    € Ù#‘"¨ˆØ&-°°	Ñ&9ˆ×ÑÕ#r   c                 ó&  — |j                  «       D ��cg c]  \  }}|‘Œ	 }}}	 |j                  t        |j                  «      «       | j
                  j                  |«       y c c}}w # t        $ r |j                  t        |«      «       Y ŒGw xY wr0   )re   rŒ   rX   r   rb   r‚   )r   r   r   ÚkÚvr5   s         r   Úappend_failed_rowzResult.append_failed_rowô   sy   € Ø&)§i¡i£k×2™F˜Q ’aÐ2ˆ
Ñ2ð	*Ø×Ñœc %§+¡+Ó.Ô/ð 	×Ñ×"Ñ" :Õ.ùó 3øô ò 	*Ø×Ñœc %›jÖ)ð	*ús   ”A$¤$A* Á*#BÂBc                 ó�   ‡— t        ˆfd„| j                  D «       «      }| j                  j                  t	        |||¬«      «       y )Nc              3   óB   •K  — | ]  }‰j                  |d «      –— Œ y­w)z---N)rj   )Ú.0Úcolr   s     €r   ú	<genexpr>z,Result.append_invalid_row.<locals>.<genexpr>ÿ   s   øè ø€ ÒH¨s�s—w‘w˜s E×*ÑHùs   ƒ)r   r2   r_   )Útupler~   r€   rŒ   r]   )r   r   r   r2   r_   s     `  r   Úappend_invalid_rowzResult.append_invalid_rowü   s=   ø€ ô ÓH°d×6GÑ6GÔHÓHˆØ×Ñ× Ñ Ü˜fÐ7GÐPVÔWõ	
r   c                 óP   — | j                   j                  t        ||¬«      «       y )Nrx   )r�   rŒ   rv   )r   r   r   r1   s       r   Úappend_error_rowzResult.append_error_row  s   € Ø�‰×Ñœx¨v¸fÔEÕFr   c                 ó`   — |j                   r"| j                  |j                   xx   dz  cc<   y y ©Né   )r4   rƒ   r�   s     r   Úincrement_row_result_totalz!Result.increment_row_result_total  s*   € Ø×!Ò!Ø�K‰K˜
×.Ñ.Ó/°1Ñ4Ô/ð "r   c                 ó–   — t        | j                  «      D ��cg c]#  \  }}|j                  sŒ|dz   |j                  f‘Œ% c}}S c c}}w r£   )Ú	enumerater   r1   )r   Úir   s      r   Ú
row_errorszResult.row_errors  s6   € Ü2;¸D¿I¹IÓ2F×U©¨¨3È#Ï*Ë*��Q‘˜Ÿ
™
Ò#ÓUÐUùÓUs
   ™A®Ac                 óP   — t        | j                  xs | j                  «       «      S )z�Returns a boolean indicating whether the import process resulted in
        any critical (non-validation) errors for this result.)Úboolr}   r©   r:   s    r   Ú
has_errorszResult.has_errors  s!   € ô �D×$Ñ$Ò9¨¯©Ó(9Ó:Ð:r   c                 ó,   — t        | j                  «      S )zrReturns a boolean indicating whether the import process resulted in
        any validation errors for this result.)r«   r€   r:   s    r   Úhas_validation_errorszResult.has_validation_errors  s   € ô �D×%Ñ%Ó&Ð&r   c                 ó,   — t        | j                  «      S r0   )Úiterr   r:   s    r   Ú__iter__zResult.__iter__  s   € Ü�D—I‘I‹Ðr   )r#   r$   r%   r   rŠ   r�   r‘   r”   r˜   rŸ   r¡   r¥   r©   r¬   r®   r±   Ú__classcell__)r‡   s   @r   rz   rz   Î   sG   ø„ ôò0Wò%ò'ò:ò/ò
òGò5òVò;ò
'ö
r   rz   )Úloggingr   r   Úcollectionsr   Údjango.core.exceptionsr   Údjango.utils.encodingr   Údjango.utils.functionalr   Údjango.utils.translationr   rW   Útablibr   Ú	getLoggerr#   rU   r
   r)   r]   rv   rz   r'   r   r   ú<module>r»      sm   ðÛ Û 
Û Ý #å 3Ý +Ý 3Ý 6Ý à	ˆ×	Ñ	˜8Ó	$€÷ ñ  ÷FdWñ dW÷N(
ñ (
÷Vñ ÷Kò Kr   