jgxddlmZddlmZddlmZddlZddlZddlmZddl Z ddl mZ ddl m ZddlmZddlmZddlZejd ejZGd d eZGd d eZGddeZdS))print_function)division)absolute_importN)client) configparser)SafeConfigParser) ExpatErrorz"^(?P.+) \((?P.+)\)$c"eZdZdZfdZxZS)PyPIRpcApiErrorze Generic error class that means that we cannot properly get information from xml rpc api c^tt|d|zdS)NzWe are having issues with PyPI RPC api. You can check https://status.python.org/ to see of there are any problems with PyPI or contact CloudLinux support if you see this message for a long time.Original message was: '%s')superr __init__)selfmessage __class__s ]/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectpythonuser/extensions.pyrzPyPIRpcApiError.__init__!s> ot$$-- ),3  3 4 4 4 4 4__name__ __module__ __qualname____doc__r __classcell__rs@rr r sB444444444rr c"eZdZdZfdZxZS)PyPIMaintenanceExceptionz Raised when PyPY returns 503 error, which means that service is unavailable temporary and we should try again later. cXtt|ddS)NzLooks like PyPI is down for maintenance and we are not able to use it. You can check https://status.python.org/ to see of there are any problems with PyPI or contact CloudLinux support if you see this message for a long time.)r rr)rrs rrz!PyPIMaintenanceException.__init__/s5 &--66 ?     rrrs@rrr*sB         rrceZdZdZdZdZdZdZedZ edZ edZ ed Z d S) ExtensionInfozhttps://pypi.python.org/pypicBtj|j|_dSN) xmlrpclib ServerProxyurl_rpc)rs rrzExtensionInfo.__init__=s)$(33 rc |j||i|S#tjtf$r!}t t |d}~wtj$rD}|j tj krtt t |d}~wtj $r}t |jd}~wtj$r}t |jd}~wwxYwr!)r% __getattr__socketgaierrorr r strr" ProtocolErrorerrcodehttplibSERVICE_UNAVAILABLErFault faultStringsslSSLErrorstrerror)rmethodargskwargserrs r __get_rpczExtensionInfo.__get_rpc@s 0049((00$A&AA A, , , ,!#c((++ +& , , ,{g999.000!#c((++ + 3 3 3!#/22 2| 0 0 0!#,// / 0s8"C6AC6&?B%%C67C  C6C11C6c`|d}t|S)N list_packages)_ExtensionInfo__get_rpcrextensions_docsr extensionss rlist_extensionszExtensionInfo.list_extensionsNs'^^O44 ,,Z888rc:tfd|DS)Nc3NK|]}|dd|difV dS)versionspackage_releasesTN)r;).0 extensionrs r z8ExtensionInfo.list_extensions_version..UsT11!T^^.^sD--++I66------rc3(K|] \}}|d|ifVdS)docN)rDrErPs rrFz0ExtensionInfo.extensions_docs..`sKAA& 3 -AAAAAAr)rGzip)r>docss rr<zExtensionInfo.extensions_docs\s`--!+---AA*-j$*?*?AAAAA Arc|dd}tjd|dd}tj|sCtjtjt dd}tdd}|| | |}n#tj $rd }YnwxYwtd |DS) N.z/opt/altetczlocked_extensions.iniz..F) interpolationstrictrQc3^K|](\}}|d|dDfV)dS)c:g|]}||SrQ)strip)rDvs r zAExtensionInfo.get_locked_extensions...ps% M M Mq1 M M M Mr,N)split)rDrErBs rrFz6ExtensionInfo.get_locked_extensions..psZ66+ 8 M MHNN34G4G M M MN666666r) replaceospathrKexistsdirname__file__rreaditems ConfigParserNoSectionErrorrG) interpreteralt_ver file_pathparserrhs rget_locked_extensionsz#ExtensionInfo.get_locked_extensionscs%%c"--GLLWe=TUU w~~i(( _ RW__X%>%>F]^^I!UCCC I LL--EE*   EEE 66/466666 6sCC,+C,c||vottfddDt||zp%t ||dkS)Nc^g|])}tdk|*S)r)lenr\)rDr]versions rr^z6ExtensionInfo.is_extensions_locked..vs1PPPAs7||a?O?Oaggii?O?O?Orr_r)listsetr`getrr)locked_extensionsrErss `ris_extensions_lockedz"ExtensionInfo.is_extensions_lockedss.. PPPPs););PPPQQ'++I66778 9 9 7 !%%i00 1 1Q 6 rN) rrrr$rr;r?rH staticmethodrLr<rorxrQrrrr9s (C444 0 0 0999111 ==\=AA\A  6 6\ 6  \   rr) __future__rrrrbrefuture.moves.httprr-r(future.moves.xmlrpcr" future.movesrrifuture.moves.configparserrpyexpatr r1compile MULTILINEEXTENSION_PATTERN Exceptionr robjectrrQrrrsk&%%%%%&&&&&& ////// 333333555555666666 BJC!|-- 4 4 4 4 4i 4 4 4          @ @ @ @ @ F@ @ @ @ @ r