Addon Manager: Refactor Metadata

Create a Python-native metadata class. Includes unit tests, and some PyLint cleanup.
This commit is contained in:
Chris Hennes
2023-03-03 09:36:53 -06:00
committed by Chris Hennes
parent 8532c96c20
commit 1f6c364fa6
19 changed files with 1471 additions and 524 deletions

View File

@@ -47,8 +47,14 @@ try:
getUserCachePath = FreeCAD.getUserCachePath
translate = FreeCAD.Qt.translate
if FreeCAD.GuiUp:
import FreeCADGui
else:
FreeCADGui = None
except ImportError:
FreeCAD = None
FreeCADGui = None
getUserAppDataDir = None
getUserCachePath = None
getUserMacroDir = None
@@ -57,7 +63,7 @@ except ImportError:
return string
def Version():
return 1, 0, 0
return 0, 21, 0, "dev"
class ConsoleReplacement:
"""If FreeCAD's Console is not available, create a replacement by redirecting FreeCAD
@@ -140,6 +146,7 @@ class DataPaths:
mod_dir = None
macro_dir = None
cache_dir = None
home_dir = None
reference_count = 0
@@ -151,6 +158,8 @@ class DataPaths:
self.cache_dir = getUserCachePath()
if self.macro_dir is None:
self.macro_dir = getUserMacroDir(True)
if self.home_dir is None:
self.home_dir = FreeCAD.getHomePath()
else:
self.reference_count += 1
if self.mod_dir is None:
@@ -159,6 +168,8 @@ class DataPaths:
self.cache_dir = tempfile.mkdtemp()
if self.macro_dir is None:
self.macro_dir = tempfile.mkdtemp()
if self.home_dir is None:
self.home_dir = os.path.join(os.path.dirname(__file__), "..", "..")
def __del__(self):
self.reference_count -= 1