summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/clear_caches.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/clear_caches.py')
-rw-r--r--pym/_emerge/clear_caches.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/pym/_emerge/clear_caches.py b/pym/_emerge/clear_caches.py
new file mode 100644
index 000000000..ce903ba08
--- /dev/null
+++ b/pym/_emerge/clear_caches.py
@@ -0,0 +1,19 @@
+import gc
+
+try:
+ import portage
+except ImportError:
+ from os import path as osp
+ import sys
+ sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
+ import portage
+
+def clear_caches(trees):
+ for d in trees.itervalues():
+ d["porttree"].dbapi.melt()
+ d["porttree"].dbapi._aux_cache.clear()
+ d["bintree"].dbapi._aux_cache.clear()
+ d["bintree"].dbapi._clear_cache()
+ d["vartree"].dbapi.linkmap._clear_cache()
+ portage.dircache.clear()
+ gc.collect()