bg:@ddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z m Z ddl Z ddlmZmZddlmZmZeejdz ZGddZd Zd Zd Zd Zd ZdZdededefdZ dZ!dZ"dZ#dZ$dZ%dZ&d#dZ' d$de e(efde ede)de e(de ee(efe e(ff d Z*d!Z+ d%d"Z,dS)&N)Path)AnyDictListOptionalTupleUnion)CannotParseProfileProfileNotFound) DEFAULT_TOOLSTOOLSprofilesc eZdZdedeeefdeefdZdZdZ dZ dZ d Z d Z e dd eeefdeededeeefdZd S)ProspectorProfilename profile_dict inherit_orderc||_||_t|dg|_t|dg|dgz|_|d|_|d|_|dd|_dt|d gD|_ |d |_ |d |_ |d |_ |d |_ |d|_t|dg|_t D]`}||i}ggdid}|||j |dvr|j |dd <t%|||adS)N ignore-pathsignore-patternsignore output-format output-target autodetectTcg|]}|dv| S))djangoceleryflask).0usess l/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/prospector/profiles/profile.py z.ProspectorProfile.__init__..s*   4SpKpKpDKpKpKpr!max-line-length strictness test-warnings doc-warningsmember-warnings requirements)disableenablerunoptions)pylint pycodestyler.)rr _ensure_listget ignore_pathsignore_patterns output_format output_targetrr!max_line_lengthr& test_warnings doc_warningsmember_warningsr*r updatesetattr)selfrrrtool tool_confconfs r"__init__zProspectorProfile.__init__s  *()9)9.")M)MNN+L,<,<=NPR,S,SVbVfVfgoqsVtVt,tuu)--o>>)--o>>&**<>>  ),*:*:62*F*FGG     ,//0ABB'**<88)--o>>(,,^<<+//0ABB))9)9.")M)MNN & &D$((r22I02RY[#\#\D KK " " "#/D.Es???G ???r$)rr=s r" list_profileszProspectorProfile.list_profilesCs??D,>????r$c |j|j|j|j|j|j|j|j|j|j |j |j d }tD]}t||||<|S)N) rrrrrr!r%r)r(r'r&r*)r3r4r5r6rr!r7r:r9r8r&r*r rC)r=outr>s r"as_dictzProspectorProfile.as_dictGs~ -#3!/!//I#3#3 -!// -    , ,Dd++CII r$cNtj|SN)jsondumpsrSrOs r"as_jsonzProspectorProfile.as_jsonZsz$,,..)))r$cNtj|SrU)yaml safe_dumprSrOs r"as_yamlzProspectorProfile.as_yaml]s~dllnn---r$TN name_or_path profile_pathallow_shorthandforced_inheritscnt||||pg\}}tt|||S)N)r`)_load_and_mergerrM)r]r^r_r`datainheritss r"loadzProspectorProfile.load`sI)   +1r    h !\!2!2D(CCCr$TN)__name__ __module__ __qualname__rMrrrrArGrJrPrSrXr\ staticmethodr rboolrrerr$r"rrs$&S$&S#X$&tTWy$&$&$&$&L000 %%%@@@&***...!%/3 D DCI& D4j D D"$s), D D D\ D D Dr$rcTtj|d}|dvS)N)z.yml.yaml)ospathsplitext)filenameexts r"_is_valid_extensionrtqs( '  8 $ $Q 'C # ##r$c|dd}d|d}t|dkrddgn|dd|ddg}d}d}|D]"}|d|}tj||}|n#|dS t j|piS#tjj$r}t|||d}~wwxYw)N:rmprospector_profile_rzprospector.yamlzprospector.ymlrn) splitlenpkgutilget_datarZ safe_loadparser ParserErrorr )r name_split module_name file_namesrc used_name file_name parse_errors r"_load_content_packagervsC##J7 1 77K z??a   ,--A%%%*Q-'>'>'> ? DI "00Y00  Y77   E  |tJ~d##)r) ; "JJJ K88kIJs=BB='B88B=cd}d}t|tr!|dr d}|dd}t|rI|D]E}tj||}tj|r|}nFnR|D]O}dD]J}tj||d|}tj|r|}nKP|'t|}||S|riSt||tj |5} tj |pi cdddS#tjj$r} t!|| | d} ~ wwxYw#1swxYwYdS)NF?T)ymlrZ.) isinstancerMendswithrtrorpjoinexistsrr codecsopenrZr|r}r~r ) r]r^rroptionalrpfilepathrsresultfctrs r" _load_contentrs!HH,$$))>)>s)C)C)#CRC( <((    Dw||D,77Hw~~h'' #  !  D&  7<<.E.E.E.EFF7>>(++'HE&|44  M  IlL999 X  M# M>#&&," ,MMMMMMMM{& M M M$X{;; L MMMMMMMMMMMs0"E4$EE1E,,E11E44E8;E8c6t|tr|S|gSrU)rrD)values r"r1r1s % 7Nr$ct|}|t||SrU)dictitemsr;)prioritybaserRs r"_simple_merge_dictrs@ tzz||  CJJtHNN$$%%&&& Jr$ct|}t|di|di|d<dD]2}||||}||||<3|dpg}|dpg}|dpg}|dpg}t t |t |t |z z|d<t t |t |t |z z|d<|S)Nr.)r-z load-pluginsr+r,)rrrr2rDrE) rrrRkeyr base_disabled base_enabled pri_disabled pri_enableds r"_merge_tool_configrsL tzz||  C( Y(C(CTXXiY[E\E\]]C N' S$((3--00  CHHHY''-2M88H%%+L<< **0bL,,x((.BK#l++s=/A/AC DTDT/TUVVC N[))S->->\ARAR-RSTTCM Jr$rrreturncft|}|D]z\}}|dvr|||<|dvr7t|t||gz||<J|tvr't |||i||<{|S)N)r&r(r'r)rrr%pep8)rrrr!r*zpython-targetsr)rrr1r2r r)rrrRrrs r"_merge_profile_dictrs tzz||  Cnn&&DD U   CHH    $E**\$((3:K:K-L-LLCHH E\\)%#r1B1BCCCH Jr$c||D]}|drdS|d}|dSd|zdfS)N strictness_NFr&z strictness_%sT) startswithr2)rrdrNr&s r"_determine_strictnessrsc   m , , ;; !!,//J{ j (4 //r$c|d}|dkrdS|dkrdSt|tr|ddrdSdS) Nrfull) full_pep8Tnone)no_pep8TF)rFr)r2rr)rrs r"_determine_pep8r sd   F # #D v~~   v~~$"$((65"9"9"!! ;r$cD|d}|dS|rdnddfS)Nr(rr9no_doc_warningsTr2)rr9s r"_determine_doc_warningsrs5##N33L{* ANN0AD HHr$cD|d}|dS|rdnddfS)Nr'rno_test_warningsTr)rr8s r"_determine_test_warningsrs5 $$_55M{! 9DD'9D @@r$cD|d}|dS|rdnddfS)Nr)rr:no_member_warningsTr)rr:s r"_determine_member_warningsr%s8"&&'899O{!0 J  6JT QQr$c6dt|fdt|fdt|fdt||fdt |fg}g}|D]>\}}||vr |\}}|s|||||?||fS)Nrdocstestsr&members)rrrrraddappend) ralready_inheritsshorthands_foundimplicitrdshorthand_name determinedextra_inheritsshorthand_founds r"_determine_implicit_inheritsr,s ../ (667 *<889 ,\;KLLM .|<<= HH&.,," - - - *4'  ^,,,  % OON + + + % %%r$Fcjt|||\}}}||||z }||fS)N)r_) _load_profiler;)rr^rc inherit_listr_new_datanew_il_s r"_append_profilesrGsD'lO\\\HfaKKFL  r$Tr]r^r_r`ctt||||pg\}}}|rd|vrtd|||\}}d|vrtd|||\}}d|vrtd|||\}}d|vr1|D]}|d rntd |||\}}i}|ddd D]} || } t | |}||fS) N)r_r`rrrrrrr&rstrictness_mediumr)rrMrrr) r]r^r_r`rcrrinheritmergedrrs r"rbrbNsY,9 L''-2 ,,,(D,(m ) ) )!12C\SWYe!f!f D, , , ,!12F VZ\h!i!i D, * * *!12DlTXZf!g!g D, / / /' m m%%m44E&66Ipydocstyle r0 pydocstylerpep257)r0r)rrrr2r)rrRpep8confrrs r"_transform_legacyrzs C $$)-8M|##(6L ' h % % #!3CGGM24N4NPX!Y!YC  #CK  <.sww|R/H/H,W_J`aaL  "#((** U / / / C Jr$c.t||}t|}|g}|p t}|pg}||t |dg}|||z }|ddr |rt |||\} } || z }|| z}||i} |D]R} | |vr|| t| ||||\} }}| | ||z }||z}S| t||fS)Nrdzallow-shorthandT) rrrErr1r2rrr;rD)r]r^ralready_loadedr_r` base_contentsrrdrextra_shorthands contents_dictinherit_profilenew_cdrnew_shs r"rrsx", ==M%m44M!NM'0355#)rN,'''M--j"==>>H"O#*D11-o-+G W_aq+r+r((N",,!=1M### n , , o...!.      " "  V$$$ F" $}--/? ??r$)Frf)NNTN)-rrVrorzpathlibrtypingrrrrrr rZprospector.profiles.exceptionsr r prospector.toolsr r __file__parentabsoluteBUILTIN_PROFILE_PATHrrtrrr1rrrrrrrrrrrrMrkrbrrrr$r"rs :::::::::::::::: NNNNNNNN11111111X- :DDFF^D^D^D^D^D^D^D^DB$$$ JJJ4%M%M%MP  4 $ d t    F000IIIAAARRR&&&6!!% ) ) T ") t*) ) #Y )  4S>49 $% ) ) ) ) X(((\ 4@4@4@4@4@4@r$