bg 2ddlZddlmZddlmZddlmZddlmZm Z m Z ddl m Z e dZ e gZ dd lm Z ee n #e$rYnwxYwd ZGd d Zdd ege fdege ffdZdede fdZddedefdZdS)N)wraps)dedent)getfullargspec)CallableSequenceAny) singletonDEFAULT)r c'K|D]}|VdS)za A utility function for creating a generator that will yield the supplied arguments. N)argsis c/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/testfixtures/utils.py generatorrs, cTeZdZdZeZdegdfdegdffdZdZddZ dS)WrappingNbeforeafterc$||c|_|_dSN)rr)selfrrs r__init__zWrapping.__init__$s"(% TZZZrc*|Sr)r)rs r __enter__zWrapping.__enter__'s{{}}rc@|j|dSdSr)r)rexc_typeexc_valexc_tbs r__exit__zWrapping.__exit__*s# : ! JJLLLLL " !rNNN) __name__ __module__ __qualname__attribute_namer newrrrr!r rrrrsuN C0xD10(2t8:L0000rrrrc2t||fd}|S)z A decorator that causes the supplied callables to be called before or after the wrapped callable, as appropriate. ctdrjStfdg_S)N patchingsc^g}g}tt jt|d}d}d} jD]v}|}|||j||H|jtvr ||kr|||dz }w|t|z } |i|t|D] }|j | S#tj}xYw#t|D] }|j | wxYw)Nrr"r )lenrrr*rappendr&updater'defaultstuplereversedr!sysexc_info) rkeywargs extra_argsentered_patchersto_addaddedr3patchingargfuncpatcheds rr<z&wrap..wrapper..patched<smJ! --23t99::>??FE)H 1 ' 1##H",,..C$++H555.: ,,,,!11efnn"))#... j)))tT.X..!))9 : :11H%H%x0001  <>> ()9 : :11H%H%x0001sBC55D  DD,)hasattrr*r-r)r;r<wrappings`@rwrapperzwrap..wrapper7sq 4 % %  N ! !( + + +K t 1 1 1 1 1  1:&Jr)r)rrr?r>s @rwrapr@/s5 &&H$$$$$L Nr docstringobjscH|D]}t|j|z|_dSr)r__doc__)rArBobjs rextend_docstringrF`s366S[))I5 66rtext indent_sizecg}t|dD]$\}}|rd|z|z}||%d|S)NT ) enumerate splitlinesr-join)rHrIindented do_indentlines rindentrSeskH$T__T%:%:;; 4  *{?T)D 778  rr)rG)r2 functoolsrtextwraprinspectrtypingrrrrLr r r/mockr- ImportErrorrrr@strrFintrSr rrr\s """"""********** )I   9 OOG   D          .."c'".8BG+<....b6686666 3sAAA