ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ 7YKc@sddlmZmZddlmZmZddlmZmZddl m Z m Z ddl Z dadefdYZdefd YZdS( i(tNamespaceManagert Container(tInvalidCacheBackendErrortMissingCacheParameter(tfile_synchronizertnull_synchronizer(tverify_directorytSyncDictNtMemcachedNamespaceManagercBseZeZedZd d d dZdZdZ dZ dZ dZ d dZ dZd Zd Zd ZRS( cCstdk rdSyddlaWnrtk ryddlatjdWqtk ryddlaWqtk rtdqXqXnXdS(Nis]cmemcache is known to have serious concurrency issues; consider using 'memcache' or 'pylibmc'sMMemcached cache backend requires either the 'memcache' or 'cmemcache' library(tmemcachetNonetpylibmct ImportErrort cmemcachetwarningstwarnR(tcls((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt_init_dependencies s     cKstj|||s%tdn|r7||_n|rM|d|_n|jrft|jntjj|tj |j d|_ dS(Nsurl is requireds/container_mcd_lockt;( Rt__init__Rtlock_dirRRtclientstgetR tClienttsplittmc(tselft namespaceturltdata_dirRtparams((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyRs  cCstdd|jd|jS(Nt identifiersmemcachedcontainer/funclock/%sR(RRR(Rtkey((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pytget_creation_lock.scCs|jd|jddS(Nt_t s·(Rtreplace(RR ((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt _format_key2scCs|jj|j|S(N(RRR%(RR ((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt __getitem__5scCs%|jj|j|}|dk S(N(RRR%R (RR tvalue((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt __contains__8scCs ||kS(N((RR ((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pythas_key<scCsK|r+|jj|j||d|n|jj|j||dS(Nttime(RtsetR%(RR R't expiretime((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt set_value?s%cCs|j||dS(N(R-(RR R'((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt __setitem__EscCs|jj|j|dS(N(RtdeleteR%(RR ((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt __delitem__HscCs|jjdS(N(Rt flush_all(R((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyt do_removeKscCstddS(Ns=Memcache caching does not support iteration of all cache keys(tNotImplementedError(R((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pytkeysNsN(t__name__t __module__RRt classmethodRR RR!R%R&R(R)R-R.R0R2R4(((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyR s          tMemcachedContainercBseZeZRS((R5R6Rtnamespace_class(((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyR8Qs(tbeaker.containerRRtbeaker.exceptionsRRtbeaker.synchronizationRRt beaker.utilRRRR R RR8(((sE/opt/alt/python27/lib/python2.7/site-packages/beaker/ext/memcached.pyts H