L`gJ[BdZddlmZd dZdZdZdZdZd Zd Z dS) zhRoutines to handle adaption of legacy call signatures, generation of deprecation notes and docstrings. )utilNcfd}|S)Ncpt|dsg|_|jf|S)N_legacy_signatures)hasattrrappend)fnargnames convertersinces /srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/sqlalchemy/event/legacy.pylegz_legacy_signature..legsAr/00 '$&B ! $$eXy%ABBB )r r r rs``` r _legacy_signaturers/ Jrc jD]u\}ddkr dddndtt|jkr/t|jurr rJfd}nfd}|cSvS)Nz**kwTFc|SNr)argsconvr s r wrap_legz%_wrap_fn_for_legacy..wrap_leg)s2ttT{++rcttj|fdD}r|i|S|S)Nc g|] }| Srr).0nameargdicts r z9_wrap_fn_for_legacy..wrap_leg..0s???dGDM???r)dictzip arg_names)rkwrr dispatch_collectionr has_kws @r rz%_wrap_fn_for_legacy..wrap_leg.s^"3':'Dd#K#KLLG????h???D)!r42.!r4y(r)legacy_signatureslenrboolvarkw)r$r argspecr rr rr%s`` @@@r _wrap_fn_for_legacyr+s!4!Fx B<6 ! !F"~HHF x==C -- - -&D M= = 3 3  )!!!z,,,,,,, ))))))))OOO rcldfd|dDS)N c3"K|] }|zV dSrr)rlineindents r z_indent..<s'@@tVd]@@@@@@r)joinsplit)textr0s `r _indentr5;s6 99@@@@tzz$/?/?@@@ @ @@rcztdd|jddDd}|jrt d|jD}nd}d}t |jdkr|d z }||rd |znd |j|jrd nd d |j||dz}|S)Nr-c3$K|] }dd|izV dS)z%(arg)s = kw['%(arg)s']argNr)rr8s r r1z+_standard_listen_example..As?   & 4      rrrz c3"K|] \}}}|V dSrr)rr rrs r r1z+_standard_listen_example..Hs<  !tT       rafrom sqlalchemy import event # standard decorator style%(current_since)s @event.listens_for(%(sample_target)s, '%(event_name)s') def receive_%(event_name)s(%(named_event_arguments)s%(has_kw_arguments)s): "listen for the '%(event_name)s' event" # ... (event handling logic) ... z # named argument style (new in 0.9) @event.listens_for(%(sample_target)s, '%(event_name)s', named=True) def receive_%(event_name)s(**kw): "listen for the '%(event_name)s' event" %(example_kw_arg)s # ... (event handling logic) ... z (arguments as of %s), **kw, ) current_since event_namehas_kw_argumentsnamed_event_argumentsexample_kw_arg sample_target)r5r2r"r&maxr'__name__r%)r$rCr rBr>r4s r _standard_listen_examplerF?s%   *4QqS9       N,  %8%J       3   ())A--  7  0=@@ k(;(BJHH!%+>+H!I!I(&   D Krc d}|jD]5\}}}|d||j|jrdndd||dzz }6|S)Nr;a& # DEPRECATED calling style (pre-%(since)s, will be removed in a future release) @event.listens_for(%(sample_target)s, '%(event_name)s') def receive_%(event_name)s(%(named_event_arguments)s%(has_kw_arguments)s): "listen for the '%(event_name)s' event" # ... (event handling logic) ... z **kwr=)r r?r@rArC)r&rEr%r2)r$rCr r4r rrs r _legacy_listen_examplesrHpss D0B  tT  7 k&-%GG)-4!.  $ Krc|jd\}}}d||j|jd|j|jrdnddzS)Nra> .. deprecated:: %(since)s The :class:`.%(clsname)s.%(event_name)s` event now accepts the arguments ``%(named_event_arguments)s%(has_kw_arguments)s``. Support for listener functions which accept the previous argument signature(s) listed above as "deprecated" will be removed in a future release.r=r<r;)r clsnamer?rAr@)r&rErr2r"r%)parent_dispatch_clsr$r rrs r _version_signature_changesrLsb+=a@E4 +*3-2%)YY/B/L%M%M,?,F NB   rcd}t|dd}|tt|||dz}|jr5|tt |||dz }|t ||z }t j|j|dS)Nz@.. container:: event_signatures Example argument forms:: _target_class_docobjz ) getattrr5rFr&rHrLrinject_docstring_text__doc__)r$rKr headerrCr4s r _augment_fn_docsrUs  /1DeLLM G !4mRHH D,   #$7 K K     * !4     %bj$ : ::rr) rSr;rrr+r5rFrHrLrUrrr rVs BAAA...b0&;;;;;r