bBFj!UddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z mZejeZdZ dZ dZ dZ ejdejdejddeZ d ZeZ d Zdd ZiZe eefed <Gd dZ ddZ!ddZ"dZ#ddZ$ddZ%ddZ&defdZ'dZ(ddZ)ddZ*ddZ+dS)N)Path)DictAnyiXi'!-ctjdkr&tt jdpddd}n`tjdkrtdddd}n$tt jdpd d }|S) Nwindows LOCALAPPDATA~ParsodarwinLibraryCachesXDG_CACHE_HOMEz~/.cacheparso)platformsystemlowerrosgetenv expanduser)dir_s 9C:\PYTHON\_runtimes\venv\Lib\site-packages\parso/cache.py_get_default_cache_pathrBs  I--BIn--4gwGG    " "h . .CHg66BI.//=:wGG ??  iQc>|pt}|dS)z The path where the cache lock is stored. Cache lock will prevent continous cache clearing and only allow garbage collection once a day (can be configured in _CACHE_CLEAR_THRESHOLD). zPARSO-CACHE-LOCK)_default_cache_pathjoinpath cache_paths r_get_cache_clear_lock_pathr"Ys$22J   1 2 22r parser_cacheceZdZddZdS)_NodeCacheItemNch||_||_|tj}||_||_dSN)nodelinestime change_time last_used)selfr(r)r+s r__init__z_NodeCacheItem.__init__hs4   )++K&$rr')__name__ __module__ __qualname__r.rrr%r%gs(%%%%%%rr%c |}|dS t||j}||jkrt j|_|jSdS#t$rt||j||cYSwxYw)z0 Returns a module or None, if it fails. Nr ) get_last_modifiedr#pathr+r*r,r(KeyError_load_from_file_system)hashed_grammarfile_ior!p_timemodule_cache_items r load_moduler<qs & & ( (F ~t  (8F &2 2 2*.)++  '$) ) 3 2    %  L !        sAA"BBct|||} |tj|krdSt |d5}t j tj|}t j n#t j wxYw dddn #1swxYwYt|||t d||j S#t$rYdSwxYw)Nr rbzpickle loaded: %s)_get_hashed_pathrr5getmtimeopengcdisablepickleloadenable_set_cache_itemLOGdebugr(FileNotFoundError)r8r5r:r!fr;s rr7r7s1!.$:NNNJ& BG$$Z00 0 04 *d # # q JLLL $*KNN!                  .?@@@ %t,,, %% ttsR#C)C) B+B2B+BB+ C)+B//C)2B/3C)) C76C7cztdtDtkrbt jt z tD]-\}}fd|Dt|<.|t|i|<dS)Nc34K|]}t|VdSr')len).0vs r z"_set_cache_item..s( 1 1a3q66 1 1 1 1 1 1rc2i|]\}}|jk||Sr2)r,)rOr5 node_item cutoff_times r z#_set_cache_item..s7!!!#D)&44i444r)sumr#values_CACHED_SIZE_TRIGGERr*_CACHED_FILE_MINIMUM_SURVIVALitems setdefault)r8r5r;keypath_to_item_maprTs @rrGrGs 1 1<..00 1 1 1115IIIikk$AA %1%7%7%9%9   !C!!!!!'7'='='?'?!!!L   9JLNB//555rTch|j} |dn|}n#t$rd}d}YnwxYwt|||}t ||||rV|V t ||||t |dS#t$r!tj d|ztYdSwxYwdSdS)NFr z6Tried to save a file to %s, but got permission denied.) r5r4OSErrorr%rG_save_to_file_system_remove_cache_and_update_lockPermissionErrorwarningswarnWarning) r8r9moduler)picklingr!r5r:items rtry_to_save_moduleris rs   g!! '!2   #H"$$$$QQO  .-//&3333 " d38n!!!%%%%%%%%    ,&&&&* J J J AAAA26666 6,   4444&NNNNr