§
    ƒnóc  ã                  óˆ   — 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
 dd	lmZmZ  G d
„ de¦  «        Zd„ ZdS )é    )ÚannotationsNé   )ÚExtensionModuleÚ
ModuleInfoé   )Údependencies)Úmlog)Útyped_pos_args)Ú
Popen_safeÚMesonExceptionc                  ó~   ‡ — e Zd ZdZdZ edd¦  «        Zˆ fd„Zd„ Z e	de
e
¦  «        d„ ¦   «         Zdd	„Zd
„ Zˆ xZS )ÚDlangModuleNFÚdlangz0.48.0c                óŒ   •— t          ¦   «                              |¦  «         | j                             d| j        i¦  «         d S )NÚgenerate_dub_file)ÚsuperÚ__init__ÚmethodsÚupdater   )ÚselfÚinterpreterÚ	__class__s     €ú:/usr/lib/python3/dist-packages/mesonbuild/modules/dlang.pyr   zDlangModule.__init__"   sL   ø€ Ý‰Œ×Ò˜Ñ%Ô%Ð%ØŒ×ÒØ Ô!7ð
ñ 	ô 	ð 	ð 	ð 	ó    c                ó`  — t           j        €(t          j        j        | _        | j        t           _        nt           j        | _        t           j        €,|                      |¦  «        | _        | j        t           _        nt           j        | _        | j        s| j        st          d¦  «        ‚d S d S )NzDUB not found.)r   Úclass_dubbinr   ÚDubDependencyÚdubbinÚ	check_dubr   )r   Ústates     r   Ú	_init_dubzDlangModule._init_dub(   s™   € ÝÔ#Ð+Ý&Ô4ÔAˆDŒKØ'+¤{�KÔ$Ð$å%Ô2ˆDŒKåÔ#Ð+ØŸ.š.¨Ñ/Ô/ˆDŒKØ'+¤{�KÔ$Ð$å%Ô2ˆDŒKàŒ{ð 	7Ø”;ð 7Ý$Ð%5Ñ6Ô6Ð6ð	7ð 	7ð7ð 7r   zdlang.generate_dub_filec                óJ  — t           j        s|                      |¦  «         d|d         i}t          j                             |d         d¦  «        }t          j                             |¦  «        rct          |d¬¦  «        5 }	 t          j	        |¦  «        }n$# t          $ r t          j        d¦  «         Y nw xY wd d d ¦  «         n# 1 swxY w Y   dd	g}|D ]2}||vr,||vr(t          j        d
t          j        |¦  «        d¦  «         Œ3|                     ¦   «         D �]+\  }	}
|	dk    �ri ||	<   t          |
t           ¦  «        r�|
D ]}}t          |t"          j        ¦  «        ra|                     ¦   «         }|                      d|g¦  «        \  }}|dk    r-|                     ¦   «         }|€d||	         |<   Œr|||	         |<   Œ~Œ¨t          |
t"          j        ¦  «        rb|
                     ¦   «         }|                      d|g¦  «        \  }}|dk    r.|
                     ¦   «         }|€d||	         |<   �Œ|||	         |<   �Œ&|
||	<   �Œ-t          |dd¬¦  «        5 }|                     t          j        |dd¬¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚnamer   r   zdub.jsonzutf-8)Úencodingz#Failed to load the data in dub.jsonÚdescriptionÚlicenseÚWithoutz"the DUB package can't be publishedr   ÚdescribeÚ Úwé   F)ÚindentÚensure_ascii)r   Úinit_dubr!   ÚosÚpathÚjoinÚexistsÚopenÚjsonÚloadÚ
ValueErrorr	   ÚwarningÚboldÚitemsÚ
isinstanceÚlistr   Ú
DependencyÚget_nameÚ_call_dubbinÚget_versionÚwriteÚdumps)r   r    ÚargsÚkwargsÚconfigÚconfig_pathÚofileÚwarn_publishingÚargÚkeyÚvalueÚdepr#   ÚretÚresÚversions                   r   r   zDlangModule.generate_dub_file9   s‚  € åÔ#ð 	"Ø�NŠN˜5Ñ!Ô!Ð!ð �D˜”Gð
ˆõ ”g—l’l 4¨¤7¨JÑ7Ô7ˆÝŒ7�>Š>˜+Ñ&Ô&ð 	HÝ�k¨GÐ4Ñ4Ô4ð H¸ðHÝ!œY uÑ-Ô-�F�FøÝ!ð Hð Hð HÝ”LÐ!FÑGÔGÐGÐGÐGðHøøøðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð )¨)Ð4ˆØ"ð 	_ð 	_ˆCØ˜&Ð Ð Ø˜&Ð Ð Ý”˜Y­¬	°#©¬Ð8]Ñ^Ô^Ð^øà Ÿ,š,™.œ.ð 	$ñ 	$‰JˆC�Ø�nÒ$Ñ$Ø ��s‘Ý˜e¥TÑ*Ô*ð 8Ø$ð 	@ð 	@˜Ý% c­<Ô+BÑCÔCð @Ø#&§<¢<¡>¤>˜DØ'+×'8Ò'8¸*ÀdÐ9KÑ'LÔ'L™H˜C Ø" ašx˜xØ*-¯/ª/Ñ*;Ô*; Ø#* ?Ø8: F¨3¤K°Ñ$5Ð$5à8? F¨3¤K°Ñ$5øð	@õ   ¥|Ô'>Ñ?Ô?ð 8Ø Ÿ>š>Ñ+Ô+�DØ#×0Ò0°*¸dÐ1CÑDÔD‘H�C˜Ø˜a’x�xØ"'×"3Ò"3Ñ"5Ô"5˜Ø"˜?Ø02˜F 3œK¨Ñ-Ñ-à07˜F 3œK¨Ñ-ùà#��s‘‘å�+˜s¨WÐ5Ñ5Ô5ð 	J¸Ø�KŠK�œ
 6°!À%ÐHÑHÔHÑIÔIÐIð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jð 	Jð 	JsH   ÂC	ÂBÂC	ÂB:Â7C	Â9B:Â:C	Ã	CÃCÉ +JÊJÊJc                ó¤   — t          | j                             ¦   «         |z   |¬¦  «        dd…         \  }}|j        |                     ¦   «         fS )N)Úenvr   r   )r   r   Úget_commandÚ
returncodeÚstrip)r   rB   rP   ÚpÚouts        r   r>   zDlangModule._call_dubbinm   sI   € Ý˜DœK×3Ò3Ñ5Ô5¸Ñ<À#ÐFÑFÔFÀqÈÀsÔK‰ˆˆ3ØŒ|˜SŸYšY™[œ[Ð(Ð(r   c                óš  — |                      dd¬¦  «        }|                     ¦   «         r¤	 t          |                     ¦   «         dgz   ¦  «        dd…         \  }}|j        dk    rNt          j        d                     d                     |                     ¦   «         ¦  «        ¦  «        ¦  «         d	}n# t          t          f$ r d	}Y nw xY wd	}|rPt          j        d
t          j        |                     ¦   «         ¦  «        d|                     ¦   «         z  ¦  «         n't          j        d
t          j        d¦  «        ¦  «         |S )NÚdubT)Úsilentz	--versionr   r   z"Found dub {!r} but couldn't run itú Fz
Found DUB:z(%s)ÚNO)Úfind_programÚfoundr   rQ   rR   r	   r7   Úformatr1   ÚFileNotFoundErrorÚPermissionErrorÚlogr8   Úget_pathrS   Úred)r   r    r   rT   rU   s        r   r   zDlangModule.check_dubq   sL  € Ø×#Ò# E°$Ð#Ñ7Ô7ˆØ�<Š<‰>Œ>ð 	ð	Ý# F×$6Ò$6Ñ$8Ô$8¸K¸=Ñ$HÑIÔIÈ!ÈAÈ#ÔN‘��3Ø”< 1Ò$Ð$Ý”Lð "$ß$*¢F¨3¯8ª8°F×4FÒ4FÑ4HÔ4HÑ+IÔ+IÑ$JÔ$JñLô Lð Lð #�FøøÝ%¥Ð7ð ð ð Ø���ðøøøð ˆFØð 	3ÝŒH�\¥4¤9¨V¯_ª_Ñ->Ô->Ñ#?Ô#?Ø˜cŸiši™kœkÑ)ñ+ô +ð +ð +õ ŒH�\¥4¤8¨D¡>¤>Ñ2Ô2Ð2Øˆs   ­B	B7 Â7CÃC©N)Ú__name__Ú
__module__Ú__qualname__r   r.   r   ÚINFOr   r!   r
   Ústrr   r>   r   Ú__classcell__)r   s   @r   r   r      s´   ø€ € € € € Ø€LØ€Hàˆ:�g˜xÑ(Ô(€Dðð ð ð ð ð7ð 7ð 7ð" €^Ð-¨s°CÑ8Ô8ð1Jð 1Jñ 9Ô8ð1Jðf)ð )ð )ð )ðð ð ð ð ð ð r   r   c                 ó   — t          | i |¤ŽS rc   )r   )rB   rC   s     r   Ú
initializerk   ‡   s   € Ý˜Ð' Ð'Ð'Ð'r   )Ú
__future__r   r4   r/   r)   r   r   r   r	   Úinterpreterbaser
   Úmesonlibr   r   r   rk   © r   r   ú<module>rp      sÝ   ðð" #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ðið ið ið ið i�/ñ iô ið iðV(ð (ð (ð (ð (r   