Addon Manager: PythonDeps Cleanup and Testing
This commit is contained in:
committed by
Yorik van Havre
parent
6254cb910b
commit
b2619f339c
@@ -143,6 +143,7 @@ class DataPaths:
|
||||
all paths are temp directories. If not run within FreeCAD, all directories are
|
||||
deleted when the last reference to this class is deleted."""
|
||||
|
||||
data_dir = None
|
||||
mod_dir = None
|
||||
macro_dir = None
|
||||
cache_dir = None
|
||||
@@ -152,6 +153,8 @@ class DataPaths:
|
||||
|
||||
def __init__(self):
|
||||
if FreeCAD:
|
||||
if self.data_dir is None:
|
||||
self.data_dir = getUserAppDataDir()
|
||||
if self.mod_dir is None:
|
||||
self.mod_dir = os.path.join(getUserAppDataDir(), "Mod")
|
||||
if self.cache_dir is None:
|
||||
@@ -162,6 +165,8 @@ class DataPaths:
|
||||
self.home_dir = FreeCAD.getHomePath()
|
||||
else:
|
||||
self.reference_count += 1
|
||||
if self.data_dir is None:
|
||||
self.data_dir = tempfile.mkdtemp()
|
||||
if self.mod_dir is None:
|
||||
self.mod_dir = tempfile.mkdtemp()
|
||||
if self.cache_dir is None:
|
||||
@@ -174,9 +179,13 @@ class DataPaths:
|
||||
def __del__(self):
|
||||
self.reference_count -= 1
|
||||
if not FreeCAD and self.reference_count <= 0:
|
||||
os.rmdir(self.mod_dir)
|
||||
os.rmdir(self.cache_dir)
|
||||
os.rmdir(self.macro_dir)
|
||||
paths = [self.data_dir, self.mod_dir, self.cache_dir, self.macro_dir, self.mod_dir]
|
||||
for path in paths:
|
||||
try:
|
||||
os.rmdir(path)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
self.data_dir = None
|
||||
self.mod_dir = None
|
||||
self.cache_dir = None
|
||||
self.macro_dir = None
|
||||
|
||||
Reference in New Issue
Block a user