bg dZddlZddlZddlZddlmZddlmZdZGddeZ dZ d Z d Z d Z d Zd ZGddejZGddeZdS)zUser sessions for aiohttp.web.N)MutableMapping)webz2.9.0ceZdZdZdddZdZedZedZedZ ed Z ed Z e j d Z d Z d ZdZdZdZdZdZdZdZdS)SessionzSession dict-like object.Nmax_agecd|_i|_|ikr|nd|_||_|ikr|nd|_||_|r|ddnd}|r|ddnd}t tj}|r||z n|}|||krd}|js|||_n||_||j |dSdS)NFTcreatedsession) _changed_mapping _identity_new_max_agegetinttime_createdupdate) selfidentitydatanewrr session_datanowages i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/aiohttp_session/__init__.py__init__zSession.__init__s  %)RZZT 2::CC4  /3=$((9d+++48Btxx 4000d $)++&/cGmmC  3==L 9 $DMM#DM  # M  . . . . . $ #cpd|jj|j|j|j|jS)Nz*<{} [new:{}, changed:{}, created:{}] {!r}>)format __class____name__rr r r rs r__repr__zSession.__repr__)s3;BB N #TXt} L$-)) )rc|jSN)rr$s rrz Session.new.s yrc|jSr')rr$s rrzSession.identity2s ~rc|jSr')rr$s rr zSession.created6 }rc,t|j Sr')boolr r$s remptyz Session.empty:s &&&&rc|jSr'rr$s rrzSession.max_age>r*rc||_dSr'r/)rvalues rrzSession.max_ageBs  rcd|_dSNT)r r$s rchangedzSession.changedFs  rc"d|_i|_dSr3)r r r$s r invalidatezSession.invalidateIs  rc@|jstd||_dS)Nz4Can't change identity for a session which is not new)r RuntimeErrorr)rrs rset_new_identityzSession.set_new_identityMs2y HFHH H"rc*t|jSr')lenr r$s r__len__zSession.__len__Ts4=!!!rc*t|jSr')iterr r$s r__iter__zSession.__iter__WsDM"""rc||jvSr'r rkeys r __contains__zSession.__contains__Zsdm##rc|j|Sr'rArBs r __getitem__zSession.__getitem__]s}S!!rc(||j|<d|_dSr3r r )rrCr1s r __setitem__zSession.__setitem__`s" c rc$|j|=d|_dSr3rHrBs r __delitem__zSession.__delitem__ds M#  r)r# __module__ __qualname____doc__rr%propertyrrr r-rsetterr4r6r9r<r?rDrFrIrKrrrrsp##7;/////*))) XXX''X'X ^^""""""###$$$"""rraiohttp_sessionaiohttp_session_storagecRK|t}||t}|td||d{V}t |t s#td||||t<|SNzBInstall aiohttp_session middleware in your aiohttp.web.ApplicationzXInstalled {!r} storage should return session instance on .load_session() call, got {!r}.)r SESSION_KEY STORAGE_KEYr8 load_session isinstancerr!)requestr storages r get_sessionr\mskk+&&G++k** ?233 3$0099999999Ggw// J"99?@G:I:IJJJ$+GK NrcK|t}|td|d{V}t |t s#td||||t<|SrU)rrWr8 new_sessionrYrr!rV)rZr[r s rr^r^skk+&&G .// / ++--------'7++ O55;VGW5M5MOO O '  Nrctts"tdtjfd}|S)NzExpected AbstractStorage got {}cK|t<d} ||d{V}n #tj$r}|}d}Yd}~nd}~wwxYwt|tjs/t dt|t|tjs|S|j rt d| t}|$|j r |||d{V|r||S)NFTzExpect response, not {!r}z/Cannot save session data into prepared response)rWr HTTPExceptionrYStreamResponser8r!typeResponsepreparedrrVr save_session)rZhandlerraise_responseresponseexcr r[s rfactoryz#session_middleware..factorysT&  "$WW--------HH  " " "H!NNNNNN "(C$677 D+224>>BBDD D(CL11 O   CACC C++k**   G**7HgFFFFFFFFF  Ns#A;A)rYAbstractStorager8r!r middleware)r[rks` rsession_middlewarerns_ g / /N<CCGLLMMM^^2 NrcT|jt|dS)z%Setup the library in aiohttp fashion.N) middlewaresappendrn)appr[s rsetuprss)O-g6677777rc eZdZddddddejejddZedZedZ ed Z d Z d Z e jd Ze jd ZdZdddZdS)rlAIOHTTP_SESSIONN/T cookie_namedomainrpathsecurehttponlyencoderdecodercp||_t||||||_||_||_||_dS)N)ryrrzr{r|) _cookie_namedict_cookie_paramsr_encoder_decoder) rrxryrrzr{r|r}r~s rrzAbstractStorage.__init__sL("&+2(,*0,4 666     rc|jSr')rr$s rrxzAbstractStorage.cookie_names   rc|jSr'r/r$s rrzAbstractStorage.max_ager*rc|jSr')rr$s r cookie_paramszAbstractStorage.cookie_paramss ""rc8|js|j|jd}ni}|S)N)r r )r-r r )rr rs r_get_session_dataz!AbstractStorage._get_session_datas1} "?"+DD D rc6Ktddd|jS)NTrrr)rrr$s rr^zAbstractStorage.new_sessionst$D$,GGGGrc KdSr'rQ)rrZs rrXzAbstractStorage.load_session  rc KdSr'rQ)rrZrir s rrfzAbstractStorage.save_sessionrrcD|j|j}|Sr')cookiesrr)rrZcookies r load_cookiezAbstractStorage.load_cookies$$T%677 rrc:t|j}|C||d<tjdtjtj|z|d<|s+||j|d|ddS|j|j|fi|dS)Nrz%a, %d-%b-%Y %T GMTexpiresryrz)ryrz)rrrstrftimegmtime del_cookier set_cookie)rri cookie_datarparamss r save_cookiezAbstractStorage.save_cookiesd)**   'F9  $ % DIKK'122!4!4F9  J   !h'F^       H  1; I I& I I I I Ir)r#rLrMjsondumpsloadsrrOrxrrrr^abcabstractmethodrXrfrrrQrrrlrls*&7dtTZ      !!X!X##X#HHH        =AJJJJJJJrrl) metaclassc VeZdZdZddddddejejdfd ZdZd Z xZ S) SimpleCookieStoragezRSimple JSON storage. Doesn't any encryption/validation, use it for tests onlyruNrvTrwc Zt||||||||dS)Nrw)superr) rrxryrrzr{r|r}r~r"s rrzSimpleCookieStorage.__init__sC [!(tF"*!('  ; ; ; ; ;rcK||}|tddd|jS||}td|d|jS)NTrF)rrrr)rrZrrs rrXz SimpleCookieStorage.load_session sa!!'** >4ddlKKK K==((D4dt|LLL LrcK|||}||||jdS)Nr)rrrr)rrZrir rs rrfz SimpleCookieStorage.save_sessionsHmmD$:$:7$C$CDD  ;HHHHHr) r#rLrMrNrrrrrXrf __classcell__)r"s@rrrs@@'8dtTZ;;;;;;;MMMIIIIIIIrr)rNrrrcollections.abcraiohttpr __version__rrVrWr\r^rnrsABCMetarlrrQrrrsO$$ ****** VVVVVnVVVr ' &    D888 CJCJCJCJCJ CJCJCJCJLIIIII/IIIIIr