a
    ÜÄAbüL  ã                   @   sF  U d Z ddgZddlZddlZddlZ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 ejr”ddlZdd
lmZ ddlmZ e ejjddddd¡Zeje ed< e ejjddddd¡Zeje ed< e ej j!ddd¡Z"eje ed< G dd„ dƒZ#G dd„ dej$ƒZ%G dd„ de%ƒZ&G dd„ de%ƒZ'dS )z-Installable PyCharm application descriptions.ÚPyCharmProAppÚPyCharmCEAppé    N)Úconfig)Úimagesé   )Úbase)Ú	detectors)Úprocess)ÚuserÚLibraryzApplication SupportÚ	JetBrainsZToolboxZappsÚMAC_APPSz.localZshareÚ
LINUX_APPSÚWIN_APPSc                œ   @   sÞ  e Zd ZU dZdZe d¡Zded< dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒddŽddd‘d’d“d”d•d–d—d˜d™dšd›dœddždŸd d¡œ›Z	d¢ed£< d²e
jee
je f eed¦d§œd¨d©„Zee
je dªœd«d¬„Zee
je dªœd­d®„Ze
jej e
jej d¯œd°d±„Zd¦S )³ÚCheckVersionaã  
    Detect version of the PyCharm application.

    :param product_code: acceptable product code(s)

                         Known options:

                         - PY: PyCharm Pro
                         - PC: PyCharm Community
                         - PE: PyCharm Edu
    :param product_info_path: Path to the `product-info.json` file relative to the root of the application.
    :param build_path: Path to the `build.txt` file relative to the root of the application.
    )Z__build_pathZ__product_codeZ__product_info_pathz,(?P<product>[a-zA-Z0-9]+)-(?P<build>[0-9.]+)z,typing_extensions.Final[typing.Pattern[str]]Úbuild_patternz1.1.1z1.2.1z1.5.4z2.0.2z2.5.2z2.6.3z2.7z2.7.1z2.7.2z2.7.3z2.7.4z3.0z3.0.1z3.0.2z3.0.3z3.1z3.1.1z3.1.2z3.1.3z3.1.4z3.4z3.4.1z3.4.2z3.4.3z3.4.4z4.0z4.0.1z4.0.2z4.0.3z4.0.4z4.0.5z4.0.6z4.0.7z4.5z4.5.1z4.5.2z4.5.3z4.5.4z4.5.5z5.0z5.0.1z5.0.2z5.0.3z5.0.4z5.0.5z5.0.6z2016.1z2016.1.1z2016.1.2z2016.1.3z2016.1.4z2016.1.5z2016.2z2016.2.1z2016.2.2z2016.2.3z2016.3z2016.3.1z2016.3.2z2016.3.3z2016.3.4z2016.3.5z2016.3.6z2017.1z2017.1.2z2017.1.3z2017.1.4z2017.1.5z2017.1.6z2017.1.7z2017.1.8z2017.2z2017.2.1z2017.2.2z2017.2.3z2017.2.4z2017.2.5z2017.2.6z2017.2.7z2017.3z2017.3.1z2017.3.2z2017.3.3z2017.3.4z2017.3.5z2017.3.6z2017.3.7z2018.1z2018.1.1z2018.1.2z2018.1.3z2018.1.4z2018.1.5z2018.1.6z2018.2z2018.2.1z2018.2.2z2018.2.3z2018.2.4z2018.2.5z2018.2.6z2018.2.7z2018.2.8z2018.3z2018.3.1z2018.3.2z2018.3.3z2018.3.4z2018.3.5z2018.3.6z2018.3.7z2019.1z2019.1.1z2019.1.2z2019.1.3z2019.1.4z2019.2z2019.2.1z2019.2.2z2019.2.3z2019.2.4z2019.2.5z2019.2.6z2019.3z2019.3.1z2019.3.2z2019.3.3z2019.3.4z2019.3.5z2020.1z2020.1.1z2020.1.2z2020.1.3z2020.1.4z2020.1.5z2020.2z2020.2.1z2020.2.2z2020.2.3z2020.2.4z2020.2.5z2020.3z2020.3.1z2020.3.2z2020.3.3z2020.3.4z2020.3.5z2021.1z2021.1.1z2021.1.2z2021.1.3z2021.2z2021.2.1z2021.2.2z2021.2.3)›z101.15z105.58z107.756z111.291z117.663z121.378z125.57z125.92z129.314z129.782z129.1566z131.19z131.339z131.618z131.849z133.804z133.881z133.1229z133.1347z133.1884z135.973z135.1057z135.1317z135.1318z135.1357z139.487z139.574z139.711z139.781z139.1001z139.1547z139.1659z139.1803z141.1116z141.1245z141.158z141.1899z141.2569z141.3058z143.589z143.595z143.1184z143.1559z143.1919z143.2370z143.2371z145.26z145.598z145.844z145.971z145.1504z145.2073.10z
162.1237.1z
162.1628.8z
162.1812.1z162.1967.10z
163.8233.8z
163.9735.8z163.10154.50z163.15188.4z163.15529.21z163.15529.24z163.15529.25z171.3780.115z171.4249.47z171.4424.42z171.4694.38z171.4694.67z171.4694.79z171.4694.87z171.4694.94z172.3317.103z172.3544.46z172.3757.67z172.3968.37z172.4343.24z172.4574.27z172.4574.33z172.4574.37z173.3727.137z173.3942.36z173.4127.16z173.4301.16z173.4674.37z173.4674.54z173.4674.57z173.4674.62z181.4203.547z181.4445.76z181.4668.75z181.4892.64z181.5087.37z181.5540.17z181.5540.34z182.3684.100z182.3911.33z182.4129.34z182.4323.49z182.4505.26z182.5107.22z182.5107.44z182.5107.56z
182.5262.4z183.4284.139z183.4588.64z183.4886.43z183.5153.39z183.5429.31z183.5912.18z183.6156.13z183.6156.16z191.6183.50z191.6605.12z191.7141.48z191.7479.30z191.8026.44z192.5728.105z192.6262.63z192.6603.34z192.6817.19z192.7142.42z192.7142.56z192.7142.79z193.5233.109z193.5662.61z193.6015.41z193.6494.30z193.6911.25z193.7288.30z201.6668.115z201.7223.92z201.7846.77z201.8538.36z201.8743.11z201.8743.20z202.6397.98z202.6948.78z202.7319.64z202.7660.27z202.8194.15z202.8194.22z203.5981.165z203.6682.86z203.6682.179z203.7148.72z203.7717.65z203.7717.81z211.6693.115z211.7142.13z211.7442.45z211.7628.24z212.4746.96z212.5080.64z212.5284.44z212.5457.59z1typing_extensions.Final[typing.Mapping[str, str]]Úknown_buildsúproduct-info.jsonú	build.txtN)Úproduct_codeÚproduct_info_pathÚ
build_pathÚreturnc                 C   s0   t |tƒr|f}nt|ƒ}|| _|| _|| _dS )z/Initialize new :class:`~CheckVersion` instance.N)Ú
isinstanceÚstrÚtupleÚ_CheckVersion__product_codeÚ _CheckVersion__product_info_pathÚ_CheckVersion__build_path)Úselfr   r   r   © r    úKlib/python3.9/site-packages/anaconda_navigator/api/external_apps/pycharm.pyÚ__init__Õ   s    
zCheckVersion.__init__)Úrootr   c              	   C   s–   t  t¡x ttj || j¡ddd}t 	|¡}W d  ƒ n1 sF0    Y  |d | j
v rt|d W  d  ƒ S W d  ƒ n1 sˆ0    Y  dS )z7Parse `product-info.json` file for application version.Úrtúutf-8©ÚencodingNZproductCodeÚversion)Ú
contextlibÚsuppressÚBaseExceptionÚopenÚosÚpathÚjoinr   ÚjsonÚloadr   )r   r#   ÚstreamÚdatar    r    r!   Z__parse_product_infoå   s    (4z!CheckVersion.__parse_product_infoc              	   C   s¼   t  t¡ž ttj || j¡ddd$}| j 	| 
¡  ¡ ¡}W d  ƒ n1 sP0    Y  |rš| d¡| jv rš| d¡}| j |d|› ¡W  d  ƒ S W d  ƒ n1 s®0    Y  dS )z/Parse `build.txt` file for application version.r$   r%   r&   NÚproductÚbuildzbuild )r)   r*   r+   r,   r-   r.   r/   r   r   Ú	fullmatchÚreadÚstripÚgroupr   r   Úget)r   r#   r2   Úmatchr5   r    r    r!   Z__parse_buildò   s    2
@zCheckVersion.__parse_build)Úparentr   c                 c   sL   |D ]B}|j sq|  |j ¡}|du r0|  |j ¡}|dur|j|dV  qdS )z&Iterate through detected applications.N)r(   )r#   Ú!_CheckVersion__parse_product_infoÚ_CheckVersion__parse_buildÚreplace)r   r<   Zapplicationr(   r    r    r!   Ú__call__   s    zCheckVersion.__call__)r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚreÚcompiler   Ú__annotations__r   ÚtypingÚUnionr   ÚIterabler"   ÚOptionalr=   r>   ÚIteratorr   ZDetectedApplicationr@   r    r    r    r!   r   #   s`  
ÿ€ å "  üû

ýr   c                	       sR   e Zd ZdZeeeedddddœ‡ fdd„Zd	d
œdd„Zeddœdd„Z‡  ZS )ÚBasePyCharmAppz&Common parts for PyCharm applications.zdetectors.Sourceúprocess.WorkerManagerúuser_config.UserConfigN)Úapp_nameÚdisplay_nameÚdescriptionÚ
image_pathÚdetectorÚprocess_apir   r   c                    s&   t ƒ j|||||tj||tƒ d	 dS )z1Initialize new :class:`~BasePyCharmApp` instance.)	rQ   rR   rS   rT   rU   Zis_availablerV   r   Zextra_argumentsN)Úsuperr"   Únavigator_configÚBITS_64r   )r   rQ   rR   rS   rT   rU   rV   r   ©Ú	__class__r    r!   r"     s    ÷zBasePyCharmApp.__init__zprocess.ProcessWorker©r   c                 C   s   | j  ddg¡S )zInstall app extensions.Zpythonz	--version)Z_process_apiZcreate_process_worker)r   r    r    r!   Úinstall_extensions,  s    z!BasePyCharmApp.install_extensions)Úprefixr   c                 C   s   dS )z=Update user config to use selected Python prefix interpreter.Nr    )r   r^   r    r    r!   Úupdate_config0  s    zBasePyCharmApp.update_config)	rA   rB   rC   rD   r   r"   r]   r_   Ú__classcell__r    r    rZ   r!   rN     s   ÷rN   c                       s<   e Zd ZdZddddœ‡ fdd„Zeddœd	d
„ƒZ‡  ZS )r   z!PyCharm Professional application.rO   rP   N©rV   r   r   c                    s  t  t  t jd|dt  ¡ t  d¡t  t  t  td¡¡t jddt jddt jdd	¡t  	t
j d
dd¡¡tdt
j d
dd¡t
j d
dd¡d¡t  t jd|dt  ¡ t  t  t  t jjd¡¡t jddd¡t  t  t  td¡¡t jddt jdd¡t  t  t jjddd¡t  t jjdddddd¡¡t  	t
j dd¡¡tdd¡t  t jd|dt  ¡ t  t  t  t jjd¡t  t jjd¡¡t jddd¡t  t  t  td¡¡t jddt jdd¡t  	t
j dtjrÎdnd ¡t
j dd ¡t
j dd!¡¡tdd¡¡}tƒ jd"d#d$tj|||d% d&S )'z0Initialize new :class:`~PyCharmProApp` instance.Úpycharm_pro_path©ZconfigurationzPyCharm.appz	PyCharm-Púch-©Ústarts_withT©Úreverse©ZequalsÚContentsÚMacOSÚpycharmZPYÚ	Resourcesr   r   ©r   r   r   Úopt©rf   rh   Úsnapzpycharm-professionalÚcurrentÚvarÚlibÚsnapdÚbinú
pycharm.sh©r   r   ÚPyCharmúpycharm64.exeúpycharm32.exeúpycharm.exeZpycharm_prozPyCharm ProfessionalzkA full-fledged IDE by JetBrains for both Scientific and Web Python development. Supports HTML, JS, and SQL.©rQ   rR   rS   rT   rU   rV   r   N)r   ÚGroupÚCheckConfiguredRootsÚmac_onlyÚcheck_known_mac_rootsÚCheckKnownRootsr/   r   ÚStepIntoRootÚAppendExecutabler-   r.   r   Ú
linux_onlyÚLinuxr#   r   Úwin_onlyÚWinÚprogram_files_x64Úprogram_files_x86r   rX   rY   rW   r"   r   ZPYCHARM_ICON_1024_PATH©r   rV   r   rU   rZ   r    r!   r"   7  s¦    


üÿýðÿü
ÿ

ûÿþÿæþû
ÿ

ûýÿçËTözPyCharmProApp.__init__r\   c                   C   s   t  d¡ dS )zInstall application.z*https://www.anaconda.com/pycharm_navigatorN)Ú
webbrowserZopen_new_tabr    r    r    r!   Úinstallš  s    zPyCharmProApp.install)rA   rB   rC   rD   r"   Ústaticmethodr   r`   r    r    rZ   r!   r   4  s   cc                       s*   e Zd ZdZddddœ‡ fdd„Z‡  ZS )r   z&PyCharm Community Edition application.rO   rP   Nra   c                    sd  t  t  t jd|dt  ¡ t  dd¡t  t  t  td¡t  td¡¡t jddt jd	d
t jdd¡t  	t
j ddd¡¡tdt
j ddd¡t
j ddd¡d¡t  t jd|dt  ¡ t  t  t  t jjd¡¡t jdd	d¡t  t  t  td¡t  td¡¡t jddt jd	d
¡t  t  t jjddd¡t  t jjdddddd¡t  t jjddd¡t  t jjdddddd¡¡t  	t
j dd¡¡tdd ¡t  t jd|dt  ¡ t  t  t  t jjd!¡t  t jjd!¡¡t jd"d	d¡t  t  t  td¡t  td¡¡t jddt jd	d
¡t  	t
j dtjrd#nd$¡t
j dd$¡t
j dd%¡¡tdd ¡¡}tƒ jd&d'd(tj|||d) d*S )+z/Initialize new :class:`~PyCharmCEApp` instance.rb   rc   úPyCharm CE.appúPyCharm Edu.appz	PyCharm-Cz	PyCharm-Erd   re   Trg   )r   r   ri   rj   rk   rl   )ZPCZPErm   r   r   rn   ro   rp   rq   zpycharm-communityrr   rs   rt   ru   zpycharm-educationalrv   rw   rx   r   ry   rz   r{   r|   Z
pycharm_cezPyCharm CommunityzbAn IDE by JetBrains for pure Python development. Supports code completion, listing, and debugging.r}   N)r   r~   r   r€   r   r‚   r/   r   rƒ   r„   r-   r.   r   r…   r†   r#   r   r‡   rˆ   r‰   rŠ   r   rX   rY   rW   r"   r   ZPYCHARM_CE_ICON_1024_PATHr‹   rZ   r    r!   r"   £  s¸    


þ


ù
ÿýíÿü

þ

úÿÿúÿá#þû

þ

ú	ýÿæÃ]÷zPyCharmCEApp.__init__)rA   rB   rC   rD   r"   r`   r    r    rZ   r!   r      s   )(rD   Ú__all__r)   r0   r-   rF   rI   rŒ   Zanaconda_navigatorr   rX   Zanaconda_navigator.staticr   Ú r   r   ÚTYPE_CHECKINGZtyping_extensionsZanaconda_navigator.apir	   Zanaconda_navigator.configr
   Zuser_configr/   ZMacÚhomer   rL   r   rH   r†   r   rˆ   Zlocal_app_datar   r   ZBaseInstallableApprN   r   r   r    r    r    r!   Ú<module>   s:   ÿÿÿ p"l