>MddlZddlZddlZddlmZddlmZmZmZ ddl m Z n#e $rddl Z YnwxYwddl mZddlmZddlmZddlmZddlmZdd lmZdd lmZmZmZmZdd lm Z m!Z!Gd d Z"dS)NPath)DictListUnion)tools)autodetect_libraries)is_relative_to) configuration)Message)AUTO_LOADED_PROFILES)BUILTIN_PROFILE_PATHCannotParseProfileProfileNotFoundProspectorProfile) DEFAULT_TOOLSDEPRECATED_TOOL_NAMESceZdZd defdZdZdZdeefdZ dZ d Z deefd Z defd Z d Zd ZdZdZdZdZdZdZdZedZedZedZedZedZedZedZedZedZ edZ!ede"fdZ#dS)!ProspectorConfigNworkdircl|\|_|_||j|j|_t d|jD|_|ptj|_ | |j |j\|_ |_ | |j|j |_||j|j |_||j|j |j|_i|_g|_dS)Nc3$K|] }|jV dSN)is_file.0ps l/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/prospector/config/__init__.py z,ProspectorConfig.__init__.. s$%D%DAai%D%D%D%D%D%D)_configure_prospectorconfig arguments_get_work_pathpathsallexplicit_file_modercwdr _get_profileprofile strictness_find_used_libraries libraries_determine_tool_runners tools_to_run_determine_ignoresignores configured_bymessages)selfrs r__init__zProspectorConfig.__init__s&*&@&@&B&B# T^((dnEE "%%D%D%D%D%D"D"D,$(** (,(9(9$, (T(T% do224; MM 88dlSS..t{DL$.YY -/') r cD|j|jcdtffd }|S)NpathcD]r}|}t|r|}|t |rdSsdS)NTF)resolveabsoluter relative_tomatchstr)r7ignorer1rs r_filterz7ProspectorConfig.make_exclusion_filter.._filter1s}!  ||~~..00!$005++G44D<<D ** 44 5r )r1rr)r4r?r1rs @@rmake_exclusion_filterz&ProspectorConfig.make_exclusion_filter*sG  < $       r ci|_g}|jD]p}tj|}|||}|d}g}n |\}}|g}||j|<|xj|z c_||q|Sr)r2r/rTOOLS configurer3append)r4 found_filesrunners tool_nametool config_resultr2r3s r get_toolszProspectorConfig.get_tools?s* ! !I;y)++D NN4==M$ $ *7' x#!H,9D y ) MMX %MM NN4 r returncg}g}|jD]V}|tvr6|t|||A||W||_|Sr)r/rrD)r4deprecated_foundreplacedrGs rreplace_deprecated_tool_namesz.ProspectorConfig.replace_deprecated_tool_namesRs* + +I111 5i @AAA '' 2222 ****$r c|jj |jj}n|jj|jjfg}t |D]+\}}t |s|dpd|dpgf||<,|S)Nrgrouped)r" output_formatr* output_target enumerater&)r4 output_reportindexreports rget_output_reportz"ProspectorConfig.get_output_report`s ; $ 0 K5MM"l8$,:TUVM&}55 Q QME6v;; Q(.q (>Yq R'P e$r cptj}|jtj}||jfSr)cfg build_managerretrievebuild_default_sourcesr#)r4mgrr"s rr!z&ProspectorConfig._configure_prospectorms4!!s8::;s}$$r c|drt|jdg}n/|drd|dD}ntjg}d|DS)Nr7 checkpathc,g|]}t|Srrs r z3ProspectorConfig._get_work_path..xs===T!WW===r c6g|]}|Src)r9rs rrdz3ProspectorConfig._get_work_path..{s +++ +++r )rr"r()r4r"r#r%s rr$zProspectorConfig._get_work_pathsso &> !$+f-../EE { # !==i &<===EEXZZLE++U++++r c d}t|jdkrd}g}d}|sntD]f}tj||}tj|r%tj|rd}|}ngd}|r)||jd}|jdd} n|j} d}nd}g} |j|jr| d|j |j r| d|j |j r| d |j |j r| d |j |j r| d |j+|jr$| d |jz|j}d |jD} |dz } tj| r4tj| r| | | || t" || z} t%j|| | } | |fS#t($r\}t*jd|jd|dt+jdYd}~dSd}~wt6$r}dt9t:|j}|jdd} t*jd|jd|d| dt+jdYd}~dSd}~wwxYw)NFrTrRz from profiledefault doc_warnings test_warningsno_pep8 full_pep8member_warningsz strictness_%scPg|]#}t|$Src)rr:)rr7s rrdz1ProspectorConfig._get_profile..s*NNN$T ++--NNNr z .prospector)forced_inheritsz'Failed to run: Could not parse profile z as it is not valid YAML  :z&Failed to run: Could not find profile z. Search path: z#, or in module 'prospector_profile_z' ) lenprofilesr osr7joinexistsisfilerhrDrino_style_warningsrkrlr+ profile_pathisdirrrloadrsysstderrwritefilepathget_parse_messageexitrmapr=namesplit)r4rr"profile_providedcmdline_implicit profile_namepossible_profileprospector_yamlr+extra_profilesrxprospector_dirrnr*cpenfe search_paths rr)zProspectorConfig._get_profile}s  v  ! # ## 04  $8   "$',,w8H"I"I7>>/22rw~~o7V7V'+$#3LE  #%q1 !'!4!''JJ%LN   *v/B *  # #N 3 3 3   +0D +  # #O 4 4 4  # /F4L /  # #I . . .   'F,< '  # #K 0 0 0  ! -&2H -  # #$5 6 6 6   (V-> (  # #Of6G$G H H H*JON&:MNNN  =0 7>>. ) ) 0bgmmN.K.K 0    / / /G$$$0111 '.?O',\>KhnnS))!,G J  >E    HQKKKKKKKKK s&<I M$&AJ== M$ BMM$cg}|jr5|jdur,t|jD]}||t |j|jzD]}||vr|||S)NT) autodetectr rrDsetuses)r4r"r*r- found_deprs rr,z%ProspectorConfig._find_used_librariess    ,!3t!;!;1$,?? , ,   ++++ gl233 ' 'D9$$  &&&r cL|jNtt}tjD],}||r||-nt|j}|jD]}|||jD]}||vr||tjD]Q}||}| |tv}||vr+|s)||jvr ||jpgvr||Rtt|Sr) rrrrBis_tool_enabledadd with_tools without_toolsremovesortedlist)r4r"r*to_runrHenableds rr.z(ProspectorConfig._determine_tool_runnerssM < ''F  % %**400%JJt$$$ %&&F%  D JJt    ( $ $Dv~~ d###K $ $D--d33G-/v~~g~$f>O2O2OTXagamasqsTtTt d###d6ll###r c  g}|j|jzD]B}| |tj|.#tj$rY?wxYwd}|j|jzD]}t|}|ds|dr |dd}|tj|tj |zd|vr|tjdgz }|S)Nz(^|/|\\)%s(/|\\|$)/\djangoz(^|/)(south_)?migrations(/|$)) ignore_patternsrDrecompile sre_constantserror ignore_pathsr=endswithescape)r4r"r*r-r1patternboundary ignore_paths rr0z#ProspectorConfig._determine_ignoress3-0GG  G  rz'223333 &    )!.1EE J JKk**K##C(( /K,@,@,F,F /)#2#. NN2:h;1G1G&GHH I I I I y  #BCCD DGs'AAAc|j|jd|j|jdS)Nz, )r-r+rrr)r-r+rtr* list_profilesr/r4s rget_summary_informationz(ProspectorConfig.get_summary_informations>/ $,"<"<">">??&    r c|jjSr)r" zero_exitrs rexit_with_zero_on_successz*ProspectorConfig.exit_with_zero_on_success's {$$r c6|j|Sr)r*get_disabled_messagesr4rGs rrz&ProspectorConfig.get_disabled_messages*s|11)<<rs} $$$$$$$$$$)))))))666666,,,,,,222222&&&&&&444444ttttttttttttAAAAAAAAO-O-O-O-O-O-O-O-O-O-s % 11