bg 14ddlmZddlZddlmZddlmZejdkr ddlmZm Z nddl mZm Z Gdde Z Gd d e Z Gd d e Z Gd de ZGdde ZGdde ZGddZddZdS)) annotationsN)cast)MessageTypesFullName))Literal TypedDictceZdZUdZded<ded<ded<ded<ded<ded<ded <ded <ded <ded <ded <ded<ded<dS)BadNamesz7TypedDict to store counts of node types with bad names.intargumentattrklassclass_attribute class_constconst inlinevarfunctionmethodmodulevariabletypevar typealiasN__name__ __module__ __qualname____doc____annotations__i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/utils/linterstats.pyr r sAAMMM IIIJJJJJJNNNMMMKKKKKKMMMLLLNNNNNr!r cFeZdZUdZded<ded<ded<ded<ded<dS) CodeTypeCountz1TypedDict to store counts of lines of code types.r codecomment docstringemptytotalNrr r!r"r$r$$sC;; IIILLLNNNJJJJJJJJr!r$c(eZdZUdZded<ded<dS)DuplicatedLinesz6TypedDict to store counts of lines of duplicated code.r nb_duplicated_linesfloatpercent_duplicated_linesNrr r!r"r+r+.s0@@######r!r+c<eZdZUdZded<ded<ded<ded<dS) NodeCountz6TypedDict to store counts of different types of nodes.r rrrrNrr r!r"r0r05s:@@MMMJJJKKKKKKKKr!r0c<eZdZUdZded<ded<ded<ded<dS)UndocumentedNodesz5TypedDict to store counts of undocumented node types.r rrrrNrr r!r"r2r2>s:??MMMJJJKKKKKKKKr!r2cZeZdZUdZded<ded<ded<ded<ded<ded<ded <d S) ModuleStatsz>TypedDict to store counts of types of messages and statements.r conventionerrorfatalinforefactor statementwarningNrr r!r"r4r4GsUHHOOOJJJJJJ IIIMMMNNNLLLLLr!r4ceZdZdZ d4d5dZd6dZd6dZd7dZd8dZd9d Z d:d!Z d;d$Z d:d%Z d:d&Z dd-Zd?d/Zd@d0ZdAd2Zd:d3ZdS)B LinterStatszClass used to linter stats.N bad_namesBadNames | None by_moduledict[str, ModuleStats] | Noneby_msgdict[str, int] | Nonecode_type_countCodeTypeCount | None dependenciesdict[str, set[str]] | Noneduplicated_linesDuplicatedLines | None node_countNodeCount | None undocumentedUndocumentedNodes | NonereturnNonec |ptddddddddddddd |_|pi|_|pi|_|pt ddddd|_|pi|_|ptdd|_|ptdddd|_ |ptdddd|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr r rrrrrrrrrrrrr%r&r'r(r)r,r.rrrr)r r>r@rBr$rDrFr+rHr0rJr2rLr5r6r7r8r9r:r; global_noter,r.) selfr>r@rBrDrFrHrJrLs r"__init__zLinterStats.__init__Ws^# h' ' ' 2;b&,l . -A!13 3 3 2>1C 0! O !C5 5 5 % a!) ) ) ) ,=a!- - -      #$ (+%%%r!strc t|S)N)rYrWs r"__repr__zLinterStats.__repr__s4yyr!c6dg|jdt|jdt|jd|jdt|jd|jd|j d|j d|j d|j d|j d|jd|jd|jd|jd|jd|jS)Nz )joinr>sortedr@itemsrBrDrFrHrLr5r6r7r8r9r:r;rVr,r.r[s r"__str__zLinterStats.__str__s"++++DN++++ $$&& ' '++++  !!## $ $++++  ++++ !'')) * * ++++   ++++   ++++ ++++ ++++ ++++ ++++ ++++ ++++ ++++  ++++  !++++  &!++++ +r! module_namec Btddddddd|j|<dS)z`Use through PyLinter.set_current_module so PyLinter.current_name is consistent. r)r5r6r7r8r9r:r;N)r4r@)rWrcs r"init_single_modulezLinterStats.init_single_modules5'2Q!UV' ' ' {###r! node_nameLiteral['argument', 'attr', 'class', 'class_attribute', 'class_const', 'const', 'inlinevar', 'function', 'method', 'module', 'variable', 'typevar', 'typealias']r cz|dkr|jddS|j|dS)zGet a bad names node count.classrr)r>getrWrfs r" get_bad_nameszLinterStats.get_bad_namess?&   >%%gq11 1~!!)Q///r!increasec|dvrtdttd|}|dkr|jdxx|z cc<dS|j|xx|z cc<dS)z Increase a bad names node count.> rrirrrrr rrrrrrz(Node type not part of the bad_names stat) r rrirrrrrrrrrrrirN) ValueErrorrrr>)rWrfrms r"increase_bad_namezLinterStats.increase_bad_names    GHH H    !  $    N7 # # #x / # # # # # N9 % % % 1 % % % % %r!cHtddddddddddddd |_dS)zResets the bad_names attribute.rrQN)r r>r[s r"reset_bad_nameszLinterStats.reset_bad_namessC!   r! type_name9Literal['code', 'comment', 'docstring', 'empty', 'total']c8|j|dS)zGet a code type count.r)rDrjrWrss r"get_code_countzLinterStats.get_code_counts#'' 1555r!c8tddddd|_dS)z%Resets the code_type_count attribute.rrRN)r$rDr[s r"reset_code_countzLinterStats.reset_code_counts*,A!1   r!c2tdd|_dS)z&Resets the duplicated_lines attribute.rrSrTN)r+rHr[s r"reset_duplicated_linesz"LinterStats.reset_duplicated_lines s$ / !C! ! ! r!0Literal['function', 'class', 'method', 'module']cz|dkr|jddS|j|dS)z6Get a node count while handling some extra conditions.rirr)rJrjrks r"get_node_countzLinterStats.get_node_counts?   ?&&w22 2""9a000r!c6tdddd|_dS)z Resets the node count attribute.rrUN)r0rJr[s r"reset_node_countzLinterStats.reset_node_counts#Qa!LLLr!r-cB|dkr |jdS|j|S)zGet a undocumented node count.rir)rLrks r"get_undocumentedzLinterStats.get_undocumenteds+   $W- - ++r!c6tdddd|_dS)z"Resets the undocumented attribute.rrUN)r2rLr[s r"reset_undocumentedzLinterStats.reset_undocumented%s"-q!TUVVVr!c$t||dS)zGet a global message count.r)getattrrvs r"get_global_message_countz$LinterStats.get_global_message_count)stY***r!modnamec:t|j||dS)zGet a module message count.r)rr@)rWrrss r"get_module_message_countz$LinterStats.get_module_message_count-st~g. 1===r!cJt||t|||zdS)z>Increase the message type count of an individual message type.N)setattrr)rWrsrms r"increase_single_message_countz)LinterStats.increase_single_message_count1s)iy!9!9H!DEEEEEr!rc<|j||xx|z cc<dS)z[Increase the message type count of an individual message type of a module. N)r@)rWrrsrms r"$increase_single_module_message_countz0LinterStats.increase_single_module_message_count5s- w ***h6*****r!cZd|_d|_d|_d|_d|_d|_dS)z2Resets the message type count of the stats object.rN)r5r6r7r8r9r;r[s r"reset_message_countzLinterStats.reset_message_count=s0     r!)NNNNNNNN)r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrO)rNrY)rcrYrNrO)rfrgrNr )rfrYrmr rNrO)rNrO)rsrtrNr )rfr|rNr )rfr|rNr-)rsrYrNr )rrYrsrYrNr )rsrYrmr rNrO)rrYrsrrmr rNrO)rrrrrXr\rbrerlrprrrwryr{r~rrrrrrrrr r!r"r=r=Ts%%&*37(,043737'+155,5,5,5,5,n++++&    0000.(2(2(2(2T    $6666         1111MMMM,,,,WWWW++++>>>>FFFF7777r!r=statslist[LinterStats]rNc$ t}|D]}|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jd xx|jd z cc<|jd xx|jd z cc<|jd xx|jd z cc<|jd xx|jd z cc<|jd xx|jd z cc<|jD]\}}||j|<|jD]5\}} |j|xx|z cc<#t $r ||j|<Y2wxYw|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jdxx|jdz cc<|jD]@\}} |j||'#t $r ||j|<Y=wxYw|j dxx|j dz cc<|j dxx|j dz cc<|j dxx|j dz cc<|j dxx|j dz cc<|j d xx|j d z cc<|j d xx|j d z cc<|j dxx|j dz cc<|j dxx|j dz cc<|j d xx|j d z cc<|j d xx|j d z cc<|xj |j z c_ |xj |j z c_ |xj|jz c_|xj|jz c_|xj|jz c_|xj|jz c_|xj|jz c_|xj|jz c_|S)zaUsed to merge multiple stats objects into a new one when pylint is run in parallel mode. r rrrrrrrrrrrrr%r&r'r(r)r,r.)r=r>r@rarBKeyErrorrDrFupdaterHrJrLr5r6r7r8r9r:r;rV) rmergedstatmod_key mod_valuemsg_key msg_valuedep_key dep_values r" merge_statsrGs']]F=/=/$$$z(BB$$$   DN6$::   !!!T^G%<<!!!*+++t~>O/PP+++'''4>-+HH'''!!!T^G%<<!!!%%% )DD%%%$$$z(BB$$$"""dnX&>>""""""dnX&>>"""$$$z(BB$$$###t~i'@@###%%% )DD%%%"&."6"6"8"8 2 2 GY(1F W % %"&+"3"3"5"5 3 3 GY 3 g&&&)3&&&& 3 3 3)2 g&&& 3 v&&&$*>v*FF&&&y)))T-A)-LL))){+++t/CK/PP+++w'''4+?+HH'''w'''4+?+HH'''"&"3"9"9";"; 9 9 GY 9#G,33I>>>> 9 9 9/8#G,,, 9  5666$:O !;  666  :;;;t?T &@  ;;; *%%%)DD%%%'"""dog&>>"""(###tx'@@###(###tx'@@###J'''4+rs #""""" ......v)))))))))44444444y$I$$$$$i$$$       )   ppppppppfCCCCCCr!