§
    îyIf:  ã                   óä   — d Z ddlmZ ddlZddlZddlZddlZddlZ G d„ de¦  «        Z	 G d„ d¦  «        Z
d„ Zd	„ Zdd
„Zedk    r( ej         eej        dd…         ¦  «        ¦  «         dS dS )zÁHandles communication on the backend side between frontend and backend

Please keep this file Python 2.7 compatible.
See https://tox.readthedocs.io/en/rewrite/development.html#code-style-guide
é    )Úprint_functionNc                   ó   — e Zd ZdZdS )ÚMissingCommandzMissing commandN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úJ/var/www/piapp/venv/lib/python3.11/site-packages/pyproject_api/_backend.pyr   r      s   € € € € € ØÐÐÐr   r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚBackendProxyc                 óš   — || _         || _        t          j        | j         ¦  «        }| j        rt	          || j        ¦  «        }|| _        d S ©N)Úbackend_moduleÚbackend_objectÚ	importlibÚimport_moduleÚgetattrÚbackend)Úselfr   Úbackend_objr   s       r   Ú__init__zBackendProxy.__init__   sM   € Ø,ˆÔØ)ˆÔÝÔ)¨$Ô*=Ñ>Ô>ˆØÔð 	<Ý˜g tÔ':Ñ;Ô;ˆGØˆŒˆˆr   c                 óÐ   — |                      d¦  «        r| n| j        }t          ||¦  «        s#t          d                     ||¦  «        ¦  «        ‚ t          ||¦  «        |i |¤ŽS )NÚ_z{!r} has no attribute {!r})Ú
startswithr   Úhasattrr   Úformatr   )r   ÚnameÚargsÚkwargsÚ	on_objects        r   Ú__call__zBackendProxy.__call__   sp   € Ø ŸOšO¨CÑ0Ô0ÐB�D�D°d´lˆ	Ý�y $Ñ'Ô'ð 	WÝ Ð!=×!DÒ!DÀYÐPTÑ!UÔ!UÑVÔVÐVØ'�w�y $Ñ'Ô'¨Ð8°Ð8Ð8Ð8r   c                 óL   — d                      | j        j        | j        ¦  «        S )Nz{}(backend={}))r   Ú	__class__r   r   ©r   s    r   Ú__str__zBackendProxy.__str__"   s   € Ø×&Ò& t¤~Ô'>ÀÄÑMÔMÐMr   c                 ó   — dS )Nr   r
   r&   s    r   Ú_exitzBackendProxy._exit%   s   € Øˆqr   c                 ó    ‡ — ˆ fd„dD ¦   «         S )Nc                 ó<   •— i | ]}|t          ‰j        |¦  «        “ŒS r
   )r   r   )Ú.0Úkr   s     €r   ú
<dictcomp>z0BackendProxy._optional_hooks.<locals>.<dictcomp>)   s7   ø€ ð 

ð 

ð 

àð �w�t”| QÑ'Ô'ð

ð 

ð 

r   )Úget_requires_for_build_sdistÚ prepare_metadata_for_build_wheelÚget_requires_for_build_wheelÚbuild_editableÚget_requires_for_build_editableÚ#prepare_metadata_for_build_editabler
   r&   s   `r   Ú_optional_hookszBackendProxy._optional_hooks(   s0   ø€ ð

ð 

ð 

ð 

ðð

ñ 

ô 

ð 
	
r   N)r   r   r   r   r#   r'   r)   r5   r
   r   r   r   r      sb   € € € € € ðð ð ð9ð 9ð 9ðNð Nð Nðð ð ð
ð 
ð 
ð 
ð 
r   r   c                  ó~   — t           j                             ¦   «          t           j                             ¦   «          d S r   )ÚsysÚstderrÚflushÚstdoutr
   r   r   r9   r9   6   s0   € Ý„J×ÒÑÔÐÝ„J×ÒÑÔÐÐÐr   c           
      óˆ	  — | d                               ¦   «         dk    }	 t          | d         t          | ¦  «        dk    rd n| d         ¦  «        }t          d                     |¦  «        t
          j        ¬¦  «         n*# t          $ r t          dt
          j        ¬¦  «         ‚ w xY w	 t          ¦   «          n# t          ¦   «          w xY w	 t          ¦   «         }|sŒt          ¦   «          	 t
          j        d         dk    r|                     ¦   «         }t          j        |¦  «        }|d	         }i }	 |d
         }t          d                     ||d         ¦  «        ¦  «          ||d
         fi |d         ¤Ž}||d<   |dk    rÌ	 	 t          |d¦  «        5 }	t          j        ||	¦  «         d d d ¦  «         n# 1 swxY w Y   n## t"          $ r t%          j        ¦   «          Y nw xY wt          d                     ||¦  «        ¦  «         t          ¦   «          �n¤# t          d                     ||¦  «        ¦  «         t          ¦   «          w xY wn�# t          $ rt}
t)          |
t*          ¦  «        r|
j        nd|d<   |
j        j        |d<   t3          |
¦  «        |d<   t)          |
t4          ¦  «        st%          j        ¦   «          Y d }
~
nd }
~
ww xY w	 t          |d¦  «        5 }	t          j        ||	¦  «         d d d ¦  «         n# 1 swxY w Y   n## t"          $ r t%          j        ¦   «          Y nw xY wt          d                     ||¦  «        ¦  «         t          ¦   «          �nP# t          d                     ||¦  «        ¦  «         t          ¦   «          w xY w# 	 t          |d¦  «        5 }	t          j        ||	¦  «         d d d ¦  «         n# 1 swxY w Y   n## t"          $ r t%          j        ¦   «          Y nw xY wt          d                     ||¦  «        ¦  «         t          ¦   «          w # t          d                     ||¦  «        ¦  «         t          ¦   «          w xY wxY w# t"          $ r? t          d                     |¦  «        t
          j        ¬¦  «         t          ¦   «          Y nw xY w|du rn�ŒôdS )Nr   Útrueé   é   zstarted backend {})Úfilezfailed to start backendTÚresultÚcmdz$Backend: run command {} with args {}r!   Úreturnr)   Úwz Backend: Wrote response {} to {}ÚcodeÚexc_typeÚexc_msgz)Backend: incorrect request to backend: {}F)Úlowerr   ÚlenÚprintr   r7   r:   ÚBaseExceptionr8   r9   Ú	read_lineÚversion_infoÚdecodeÚjsonÚloadsÚopenÚdumpÚ	ExceptionÚ	tracebackÚ	print_excÚ
isinstanceÚ
SystemExitrD   r%   r   Ústrr   )ÚargvÚreuse_processÚbackend_proxyÚcontentÚparsed_messageÚresult_filer@   rA   ÚoutcomeÚfile_handlerÚ	exceptions              r   Úrunra   ;   s¦  € Ø˜”G—M’M‘O”O vÒ-€MðÝ$ T¨!¤Wµc¸$±i´iÀ1²n°n¨d¨dÈ$ÈqÌ'ÑRÔRˆõ
 	Ð"×)Ò)¨-Ñ8Ô8½s¼zÐJÑJÔJÐJÐJøõ	 ð ð ð ÝÐ'­c¬jÐ9Ñ9Ô9Ð9Øðøøøð 	Kå‰Œˆˆø�‰Œˆˆøøøð(Ý‘+”+ˆØð 	ØÝ‰Œˆð!	ÝÔ Ô" aÒ'Ð'Ø!Ÿ.š.Ñ*Ô*�Ý!œZ¨Ñ0Ô0ˆNØ(¨Ô2ˆKð ˆFðØ$ UÔ+�ÝÐ<×CÒCÀCÈÐX`ÔIaÑbÔbÑcÔcÐcØ'˜-¨°uÔ(=ÐZÐZÀÐPXÔAYÐZÐZ�Ø#*��xÑ Ø˜'’>�>ØðÝ˜k¨3Ñ/Ô/ð 8°<Ýœ	 &¨,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8øøå ð *ð *ð *ÝÔ'Ñ)Ô)Ð)Ð)Ð)ð*øøøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G‘Gøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G�Gøøøð# "øå ð *ð *ð *Ý3=¸iÍÑ3TÔ3TÐ![ ¤ ÐZ[��v‘Ø%.Ô%8Ô%A��zÑ"Ý$'¨	¡N¤N��yÑ!Ý! )­^Ñ<Ô<ð *ÝÔ'Ñ)Ô)Ð)øøøøøøøøøð*øøøðÝ˜k¨3Ñ/Ô/ð 8°<Ýœ	 &¨,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8øøå ð *ð *ð *ÝÔ'Ñ)Ô)Ð)Ð)Ð)ð*øøøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G‘Gøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G�GøøøøðÝ˜k¨3Ñ/Ô/ð 8°<Ýœ	 &¨,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8øøå ð *ð *ð *ÝÔ'Ñ)Ô)Ð)Ð)Ð)ð*øøøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G�Gøõ Ð<×CÒCÀFÈKÑXÔXÑYÔYÐYÝ‘G”G�G�Gøøøøøøøõ9 ð 	ð 	ð 	åÐ=×DÒDÀWÑMÔMÕTWÔT^Ð_Ñ_Ô_Ð_Ý‰GŒGˆGˆGˆGð	øøøð: ˜EÐ!Ð!ØñQ(ðR ˆ1sY   1B  Á/B: Â 'B'Â'B: Â:C
Ã.AQ/ Ä7AI Æ
G ÆF<Æ0G Æ<G Ç G ÇG ÇG ÇH ÇG(Ç%H Ç'G(Ç(H È3IÉN! É
KÉA*KË	N! ËKËN! ËL Ë'L	Ë=L Ì	LÌL ÌLÌL ÌM+ ÌL5Ì2M+ Ì4L5Ì5M+ Í+3NÎ!Q,Î#O!Î3OÏ	O!ÏOÏO!ÏOÏO!Ï P6Ï!PÏ>P6Ð PÐP6Ð2Q,Ð63Q)Ñ)Q,Ñ/AR8Ò7R8c                 óœ   — t          ¦   «         }	 t          j        | d¦  «        }|s|st          d¦  «        ‚n|dk    rn|dk    r||z  }Œ<|S )NTr=   zEOF without reading anythingó   
ó   )Ú	bytearrayÚosÚreadÚEOFError)Úfdr[   Úchars      r   rK   rK   s   sk   € å‰kŒk€Gð	ÝŒw�r˜1‰~Œ~ˆØð 	Øð ?ÝÐ=Ñ>Ô>Ð>ØØ�5Š=ˆ=ØØ�5Š=ˆ=Ø�t‰OˆGð	ð €Nr   Ú__main__r=   )r   )r	   Ú
__future__r   r   rN   rf   r7   rS   Ú	TypeErrorr   r   r9   ra   rK   r   ÚexitrX   r
   r   r   ú<module>ro      s  ððð ð
 &Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð ðð ð ð ð �Yñ ô ð ð 
ð  
ð  
ð  
ð  
ñ  
ô  
ð  
ðFð ð ð
5ð 5ð 5ðpð ð ð ð  ˆzÒÐØ€C„HˆSˆS�”˜!˜"˜"”ÑÔÑÔÐÐÐð Ðr   