K iddlmZddlmZmZGddeZGddeZGdd ZGd d Z Gd d Z GddeZ y))contextmanager)DictListceZdZdZy)_NormalizerMetacRtj||||}i|_i|_|SN)type__new__rule_value_classesrule_type_classes)clsnamebasesdctnew_clss V/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/parso/normalizer.pyr z_NormalizerMeta.__new__s+,,sD%5%'"$&!N)__name__ __module__ __qualname__r rrrrsrrceZdZUiZeeeefed<iZ eeeefed<dZ dZ dZ dZ edZdZd Zd Zd Zd Zed dd dddZy ) Normalizer_rule_type_instances_rule_value_instancesc||_||_g|_|jd|_|jd|_y)Nr r )grammar_configissues_instantiate_rulesrr)selfrconfigs r__init__zNormalizer.__init__s?   $($;$;cj|j||j|}|j|Sr ) initializevisitfinalize)r"nodevalues rwalkzNormalizer.walk"s*  4   rc |j}j|5djfd|DcdddS#1swYyxYw#t$rj |cYSwxYw)Nc3@K|]}j|ywr )r4).0childr"s r z#Normalizer.visit../sGUtzz%0Gs)children visit_nodejoinAttributeError visit_leaf)r"r6r?s` rr4zNormalizer.visit(sj H}}H& HwwGhGG H H H )??4( ( )s AAA A-,A-c#6K|j|dywr )_check_type_rulesr"r6s rr@zNormalizer.visit_node1s t$ sc||jj|jgD]}|j|yr )rgetr feed_node)r"r6rules rrEzNormalizer._check_type_rules6s4--11$))R@ !D NN4  !rc|j||jj|jgD]}|j ||j |jzSr )rErrHr7rIprefix)r"leafrJs rrCzNormalizer.visit_leaf:sW t$..224::rB !D NN4  !{{TZZ''rcyr rrFs rr3zNormalizer.initializeB rcyr rr"s rr5zNormalizer.finalizeErOrcpt|||}||jvr|jj|y)NT)Issuer append)r"r6codemessageissues r add_issuezNormalizer.add_issueHs1dD'*  # KK  u %rNr)r7valuesr typesctt|j||j|s s tdfd}|S)z Use it as a class decorator:: normalizer = Normalizer('grammar', 'config') @normalizer.register_rule(value='foo') class MyRule(Rule): error_code = 42 z%You must register at least something.cD]-}jj|gj|/D]-}jj|gj|/|Sr )r r)rTr )r0vtrrZrYs r decoratorz+Normalizer.register_rule..decoratorbsl J&&11!R8??I J I%%00B7>>xH IOr)listrT ValueError)rr7rYr rZr_s` ` ` r register_rulezNormalizer.register_ruleNsYfU    MM%   LL eDE E r)rrrrrstrrr __annotations__rr$r!r8r4rr@rErCr3r5rX classmethodrbrrrrr s24$sDJ/4354T$Z05S H!(   $($brr) metaclassceZdZeZdZy)NormalizerConfigc@|jy|j||Sr )normalizer_class)r"rs rcreate_normalizerz"NormalizerConfig.create_normalizeros$  ($$Wd33rN)rrrrrjrkrrrrhrhls !4rrhc*eZdZdZdZdZdZdZy)rScj||_ ||_ |j|_ |j|_yr )rUrV start_posend_posr"r6rUrVs rr$zIssue.__init__ws;     || rcj|j|jk(xr|j|jk(Sr )rnrUr"others r__eq__z Issue.__eq__s'~~0LTYY%**5LLrc&|j| Sr )rtrrs r__ne__z Issue.__ne__s;;u%%%rcDt|j|jfSr )hashrUrnrQs r__hash__zIssue.__hash__sTYY/00rcPd|jjd|jdS)N) __class__rrUrQs r__repr__zIssue.__repr__s!^^44dii@@rN)rrrr$rtrvryr~rrrrSrSvs$ M&1ArrScHeZdZUeed<eed<dZdZdZdZ d dZ d Z y) RulerUrVc||_yr ) _normalizer)r" normalizers rr$z Rule.__init__s %rctr )NotImplementedErrorrFs ris_issuez Rule.is_issues !##rc|Sr rrFs rget_nodez Rule.get_nodes rc<||j}| td|S)Nz$The message on the class is not set.)rVra)r"rVr6s r _get_messagezRule._get_messages& ?llG !GHHrNc||j}| td|j||}|jj |||y)Nz'The error code on the class is not set.)rUrarrrXrps rrXzRule.add_issuesK <99D| !JKK##GT2 ""4w7rcl|j|r#|j|}|j|yyr )rrrX)r"r6 issue_nodes rrIzRule.feed_nodes- == t,J NN: & r)NN) rrrintrdrcr$rrrrXrIrrrrrs* I L&$8'rrc.eZdZdZfdZfdZxZS)RefactoringNormalizerc||_yr )_node_to_str_map)r"node_to_str_maps rr$zRefactoringNormalizer.__init__s /rc` |j|S#t$rt| |cYSwxYwr )rKeyErrorsuperr4)r"r6r}s rr4zRefactoringNormalizer.visits7 '((. . '7=& & ' --c` |j|S#t$rt| |cYSwxYwr )rrrrC)r"rMr}s rrCz RefactoringNormalizer.visit_leafs8 ,((. . ,7%d+ + ,r)rrrr$r4rC __classcell__)r}s@rrrs0' ,,rrN) contextlibrtypingrrr rrrhrSrrrrrrsS%d\?\~44AA