bgddlmZddlZddlZddlZddlmZmZddlm Z ddl m Z ddl m Z ddlmZe rddlmZGd d ZdS) ) annotationsN)Sequence ValuesView) TYPE_CHECKING)UnknownMessageError)MessageDefinition)MessageIdStore) BaseCheckerceZdZdZejfddZeddZdd Z ddZ e j dd dZ d!dZd"dZd#dZd$dZdS)%MessageDefinitionStorezThe messages store knows information about every possible message definition but has no particular state during analysis. py_version#tuple[int, ...] | sys._version_inforeturnNonect|_i|_tjt |_||_dSN)r message_id_store_messages_definitions collections defaultdictlist_msgs_by_categoryr )selfr s x/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/message/message_definition_store.py__init__zMessageDefinitionStore.__init__s<1?0@0@DF"7B7Nt7T7T$ValuesView[MessageDefinition]c4|jS)z The list of all active messages.)rvalues)rs rmessageszMessageDefinitionStore.messages's)00222rcheckerr cl||jD]}||dS)z1Register all messages definitions from a checker.N)check_consistencyr register_message)rr!messages rregister_messages_from_checkerz5MessageDefinitionStore.register_messages_from_checker,sG!!###' + +G  ! !' * * * * + +rr%rc|j|j|j|j||j|j<|j|jd|jdS)z6Register a MessageDefinition with consistency in mind.rN)rregister_message_definitionmsgidsymbol old_namesrrappend)rr%s rr$z'MessageDefinitionStore.register_message2sg 99 M7>7+<   5<"7=1 w}Q/077 FFFFFrN)maxsizemsgid_or_symbolstrlist[MessageDefinition]cPfdj|DS)a Returns the Message definition for either a numeric or symbolic id. The cache has no limit as its size will likely stay minimal. For each message we store about 1000 characters, so even if we would have 1000 messages the cache would only take up ~= 1 Mb. c*g|]}j|S)r).0mrs r zBMessageDefinitionStore.get_message_definitions..Hs1     &q )   r)rget_active_msgids)rr.s` rget_message_definitionsz.MessageDefinitionStore.get_message_definitions>s?    *<<_MM    rc||}t|dkrt|djStd|DS)z8Generates a user-consumable representation of a message.rcg|] }|j Sr3)r*)r4mds rr6zAMessageDefinitionStore.get_msg_display_string..Rs===2RY===r)r8lenreprr*)rr.message_definitionss rget_msg_display_stringz-MessageDefinitionStore.get_msg_display_stringMs_"::?KK " # #q ( (+A.566 6==)<===>>>rmsgids_or_symbols Sequence[str]c|D]} ||D]4}t|dtd5N#t$r(}t|tdYd}~{d}~wwxYwdS)z8Display help messages for the given message identifiers.T checkerrefN)r8print format_helpr)rrAmsgids_or_symbolmessage_definitionexs r help_messagez#MessageDefinitionStore.help_messageTs 1    *.*F*F$++&,88D8IIJJJ"IIII  '   b b    sA A BA>>Bc.|\}}td|D]%}t|d&td|D]%}t|d&tddS)z7Output full messages list documentation in ReST format.z,Emittable messages with current interpreter:FrDz1 Non-emittable messages with current interpreter:rFN)find_emittable_messagesrGrH)r emittable non_emittablemsgs r list_messagesz$MessageDefinitionStore.list_messagesbs#'#?#?#A#A = <=== 5 5C #//U/33 4 4 4 4 BCCC  5 5C #//U/33 4 4 4 4 b r7tuple[list[MessageDefinition], list[MessageDefinition]]ct|jd}g}g}|D]G}||jr||2||H||fS)z/Finds all emittable and non-emittable messages.c|jSr)r))r5s rz@MessageDefinitionStore.find_emittable_messages..qsQWr)key)sortedrrmay_be_emittedr r,)rr rOrPr%s rrNz.MessageDefinitionStore.find_emittable_messagesms$4;;==CTCTUUU   . .G%%do66 .  ))))$$W-----''r)r rrr)rr)r!r rr)r%rrr)r.r/rr0)r.r/rr/)rArBrr)rr)rrS)__name__ __module__ __qualname____doc__sys version_inforpropertyr r&r$ functools lru_cacher8r@rLrRrNr3rrr r s AD@P % % % % %333X3++++ GGGGY      ????         ( ( ( ( ( (rr ) __future__rrrar^collections.abcrrtypingrpylint.exceptionsr!pylint.message.message_definitionrpylint.message.message_id_storer pylint.checkersr r r3rrrjs #""""" 00000000 111111??????::::::,++++++d(d(d(d(d(d(d(d(d(d(r