jgN pddlmZddlmZddlmZddlZddlZddlmZGddeZ d dZ d Z dS) )print_function)division)absolute_importN)ClSelectExceptc*eZdZddZdZdZddZdS) InterpreterNc|ddlm}|}||_||_|jrd}nd}t j|j|d|_t j |jstj d|jz||j d|_ dS) z :param prefix: mandatory prefix for nodejs root :param versions_info: optional precomputed dict with handy info about versions Nrscan_node_versionsbinzusr/binnodezCannot find node binary: %s full_version)clselect.clselectnodejsr prefix_guess_version_by_prefixis_venvospathjoinbinaryisfilerInterpreterErrorversion version_full)selfr versions_infor folder_s _/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectnodejsuser/interpreters.py__init__zInterpreter.__init__s  B B B B B B..00M 4466 < GGGgll4;@@ w~~dk** = 1- ;== =*$,7Gc|jdrd}d}nd}d}tj||jd|_|S)Nz/opt/altFz/opt/alt/alt-nodejs(\d+)/rootTz.+/nodevenv/.+/(\d+)r)r startswithrefindallr)rvenvpatterns rrz$Interpreter._guess_version_by_prefix1sQ ; ! !* - - .D6GGD-Gz'4;77:  r c z|jjd|jjd|jd|jd|jd|jd S)N.z (prefix='z ', version='z ', binary='z', version_full='z')) __class__ __module____name__rrrr)rs r__repr__zInterpreter.__repr__>sM)))4>+B+B+B T\\\4;;;8I8I8I  r cj|j|j|j|jd}|r||=t |||iS|S)N)rrrr)rrrrgetattr)rkeyis ras_dictzInterpreter.as_dictFsNkk| -     +#D#&&* *r N)r+r* __qualname__rrr,r1r rrrs^HHHH<         r rcg}ddlm}|}|D]D} t|d|}n#tj$rY+wxYw||Ertfd|DS|S)Nrr root_pathc3<K|]}t||fVdSr2)r..0r0r/s r zinterpreters..`s0::QWQ__a(::::::r )rr valuesrrrappenddict)r/interpsr rver_info interpreters` r interpretersrASsG::::::&&((M!((**$$ %h{&;]KKKK.    H {#### ::::'::::::sAAAcRtfdtDS)Nc3K|]>}t|dV?dS)rN)listr1itemsr8s rr:z$interpreters_dict..fsFHHAQYYs^^))++,,Q/HHHHHHr )r=rA)r/s`rinterpreters_dictrFes* HHHHHHH H HHr r2) __future__rrrrr#clselect.clselectexceptrobjectrrArFr4r rrJs&%%%%%&&&&&& 222222?????&???D$IIIIIr