§ |<ˆjøãó—ddlZddlmZddlmZmZddlZddlmZm Z ddl m Z ddl m Z ddlmZgd ¢Zd ZeeefZd ed eefd „Zded eefd„Zded eefd„Zd ed eefd„Zd ed eefd„ZdS)éN)ÚPath)ÚListÚUnioné)ÚCouldNotParseRequirementsÚRequirementsNotFound)Ú from_setup_py)Úparse_constraint)ÚDetectedRequirement)Úfind_requirementsÚfrom_requirements_txtÚfrom_requirements_dirÚfrom_requirements_blobÚfrom_pyproject_tomlr rr)z-iz --index-urlz--extra-index-urlz --no-indexz-fz --find-linksz-rÚpathÚreturncóì—g}t|t¦«rt|¦«}|dz }| ¦«rJ| ¦«r6 t |¦«}| ¦«|S#t$rYnwxYw|dz }| ¦«r^| ¦«rJ t|¦«}t|¦«dkr| ¦«|Sn#t$rYnwxYwdD]M}||z }|jr?| ¦«r+ |t|¦«z }Œ6#t$r }Yd}~ŒEd}~wwxYwŒN|dz }| ¦«r*|  ¦«rt|¦«}|�||z }t|¦«} | �|| z }tt|¦«¦«}t|¦«dkr| ¦«|St ‚)a¶ This method tries to determine the requirements of a particular project by inspecting the possible places that they could be defined. It will attempt, in order: 1) to parse setup.py in the root for an install_requires value 2) to read a requirements.txt file or a requirements.pip in the root 3) to read all .txt files in a folder called 'requirements' in the root 4) to read files matching "*requirements*.txt" and "*reqs*.txt" in the root, excluding any starting or ending with 'test' If one of these succeeds, then a list of pkg_resources.Requirement's will be returned. If none can be found, then a RequirementsNotFound will be raised zsetup.pyzpyproject.tomlr)zrequirements.txtzrequirements.pipNÚ requirements)Ú isinstanceÚstrrÚexistsÚis_filer ÚsortrrÚlenr Úis_dirrrÚlistÚsetr) rrÚsetup_pyÚ poetry_tomlÚ reqfile_nameÚreqfileÚeÚrequirements_dirÚfrom_dirÚ from_blobs ún/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/requirements_detector/detect.pyr r &si€ð"€Lå�$�ÑÔðÝ�D‰zŒzˆà�jÑ €H؇‚ÑÔð˜X×-Ò-Ñ/Ô/ðð Ý(¨Ñ2Ô2ˆLØ × Ò Ñ Ô Ð ØÐ øÝ(ð ð ð Ø ˆDð øøøðÐ)Ñ)€KØ×ÒÑÔð  × 3Ò 3Ñ 5Ô 5ðð Ý.¨{Ñ;Ô;ˆLÝ�<Ñ Ô  1Ò$Ð$Ø×!Ò!Ñ#Ô#Ð#Ø#Ð#ð%øõ)ð ð ð Ø ˆDð øøøðAððˆ Ø˜Ñ%ˆØ Œ>ð ˜gŸošoÑ/Ô/ð ð ØÕ 5°gÑ >Ô >Ñ>� � øÝ,ð ð ð Ø����øøøøð øøøøð˜nÑ,ÐØ×ÒÑ Ô ð%Ð%5×%<Ò%<Ñ%>Ô%>ð%Ý(Ð)9Ñ:Ô:ˆØ Ð Ø ˜HÑ $ˆLå& tÑ,Ô,€IØÐؘ Ñ!ˆ å�˜LÑ)Ô)Ñ*Ô*€LÝ ˆ<ÑÔ˜1ÒÐØ×ÒÑÔÐØÐå Ðs6Á$A:Á: BÂBÂ87C1Ã1 C>Ã=C>Ä&D9Ä9 E ÅE Ú toml_filecó—g}t|t¦«rt|¦«}tj|¦«}| di¦« di¦«}| di¦«}| | di¦«¦«| ¦«D]Ï\}}| ¦«dkrŒt|t¦«r;d|vr |d}n.tj |›|¦«}|�|  |¦«Œntt|¦«¦«}d|vrd|vr d |vr d |vrd |›�}tj |›|›�|¦«}|�|  |¦«ŒÐ|S) NÚtoolÚpoetryÚ dependencieszdev-dependenciesÚpythonÚversionú,ú<ú>ú=z==)rrrÚtomlÚloadÚgetÚupdateÚitemsÚlowerÚdictr ÚparseÚappendr ) r'rÚparsedÚpoetry_sectionr+ÚnameÚspecÚreqÚ parsed_specs r&rris¨€Ø€Lå�)�SÑ!Ô!ð$ݘ‘O”Oˆ å ŒY�yÑ !Ô !€FØ—Z’Z ¨Ñ+Ô+×/Ò/°¸"Ñ=Ô=€NØ!×%Ò% n°bÑ9Ô9€LØ×Ò˜×*Ò*Ð+=¸rÑBÔBÑCÔCÐCà"×(Ò(Ñ*Ô*ð%ð%‰ ˆˆdØ �:Š:‰<Œ<˜8Ò #Ð #Ø Ý �d�DÑ !Ô !ð Ø˜DРРؘI”��å)Ô/°4° ¸9ÑEÔE�Ø�?Ø ×'Ò'¨Ñ,Ô,Ð,ØÝÕ*¨4Ñ0Ô0Ñ1Ô1ˆ Ø �kÐ !Ð ! c°Ð&<Ð&<ÀÈKÐAWÐAWÐ\_ÐgrÐ\rÐ\rØ,˜{Ð,Ð,ˆKå!Ô'¨4Ð(>°Ð(>Ð(>À ÑJÔJˆØ ˆ?Ø × Ò  Ñ $Ô $Ð $øà ÐóÚrequirements_filecó—g}t|t¦«rt|¦«}| ¦«5}| ¦«D]¤}| ¦«dkrŒ| ¦« d¦«rŒC| ¦« ¦«dtvrŒwtj ||¦«}|€Œ�|  |¦«Œ¥ ddd¦«n #1swxYwY|S)NÚú#r) rrrÚopenÚ readlinesÚstripÚ startswithÚsplitÚ _PIP_OPTIONSr r9r:)rBrÚfr?Údetecteds r&r r ŠsB€à€LåÐ#¥SÑ)Ô)ð4Ý Ð!2Ñ3Ô3Ðà × Ò Ñ !Ô !ð* QØ—;’;‘=”=ð *ð *ˆCØ�yŠy‰{Œ{˜bÒ Ð àØ�yŠy‰{Œ{×%Ò% cÑ*Ô*ð àØ�yŠy‰{Œ{× Ò Ñ"Ô" 1Ô%­Ð5Ð5àÝ*Ô0°Ð6GÑHÔHˆHØÐØØ × Ò  Ñ )Ô )Ð )Ð )ð *ð*ð*ð*ñ*ô*ð*ð*ð*ð*ð*ð*øøøð*ð*ð*ð*ð Ðs»B:DÄDÄ Dcój—g}t|t¦«rt|¦«}| ¦«D]]}| ¦«sŒ|j d¦«s|j d¦«r|t|¦«z }Œ^tt|¦«¦«S)Nz.txtz.pip) rrrÚiterdirrr=Úendswithr rr)rrÚentrys r&rr¤s§€Ø€Lå�$�ÑÔðÝ�D‰zŒzˆà—’‘”ð9ð9ˆØ�}Š}‰Œð Ø Ø Œ:× Ò ˜vÑ &Ô &ð 9¨%¬*×*=Ò*=¸fÑ*EÔ*Eð 9Ø Õ1°%Ñ8Ô8Ñ 8ˆLøå •�LÑ!Ô!Ñ "Ô "Ð"rAcóª—g}t|t¦«rt|¦«}| ¦«D]—}| ¦«sŒt jd|j¦«}|€Œ4| d¦«  d¦«s(| d¦«  d¦«rŒ…|t|¦«z }Œ˜|S)Nz ^(\w*)req(uirement)?s(\w*)\.txt$rÚtesté) rrrrOrÚreÚmatchr=ÚgrouprIrPr )rrrQÚms r&rr³sǀ؀Lå�$�ÑÔðÝ�D‰zŒzˆà—’‘”ð5ð5ˆØ�}Š}‰Œð Ø Ý ŒHÐ8¸%¼*Ñ EÔ EˆØ ˆ9Ø Ø �7Š7�1‰:Œ:× Ò  Ñ (Ô (ð ¨A¯GªG°A©J¬J×,?Ò,?ÀÑ,GÔ,Gð Ø ØÕ-¨eÑ4Ô4Ñ4ˆ ˆ à ÐrA)rUÚpathlibrÚtypingrrr2Ú exceptionsrrÚ handle_setupr Ú poetry_semverr Ú requirementr Ú__all__rKrÚPr rr rr©rAr&úrbs‘ðØ € € € ØÐÐÐÐÐØÐÐÐÐÐÐÐà € € € àGÐGÐGÐGÐGÐGÐGÐGØ'Ð'Ð'Ð'Ð'Ð'Ø+Ð+Ð+Ð+Ð+Ð+Ø,Ð,Ð,Ð,Ð,Ð,ð ð ð €ð€ ð ˆ#ˆtˆ)Ô€ð@˜Að@ $Ð':Ô";ð@ð@ð@ð@ðF 1ð¨Ð.AÔ)BðððððB¨Qð°4Ð8KÔ3Lððððð4 # ð # dÐ+>Ô&?ð #ð #ð #ð #ð ð tÐ,?Ô'@ððððððrA