Fixed post processor loading.

This commit is contained in:
Markus Lampert
2017-06-18 12:12:17 -07:00
parent 38c2296492
commit a689ebd5d7
2 changed files with 18 additions and 7 deletions

View File

@@ -23,8 +23,13 @@
# ***************************************************************************
import FreeCAD
import PathScripts.PathLog as PathLog
import sys
from PathScripts.PathPreferences import PathPreferences
PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule())
class PostProcessor:
@classmethod
@@ -33,11 +38,17 @@ class PostProcessor:
@classmethod
def load(cls, processor):
PathLog.track(processor)
syspath = sys.path
paths = PathPreferences.searchPaths()
paths.extend(sys.path)
sys.path = paths
postname = processor + "_post"
namespace = {}
#can't modify function local scope with exec in python3
exec("from PathScripts import %s as current_post" % postname, namespace)
exec("import %s as current_post" % postname, namespace)
current_post = namespace['current_post']
# make sure the script is reloaded if it was previously loaded
@@ -52,6 +63,8 @@ class PostProcessor:
from importlib import reload
exec("reload(%s)" % 'current_post')
sys.path = syspath
instance = PostProcessor(current_post)
instance.units = None
if hasattr(current_post, "UNITS"):

View File

@@ -53,12 +53,10 @@ class PathPreferences:
@classmethod
def allAvailablePostProcessors(cls):
posts = glob.glob(cls.pathScriptsSourcePath() + '/*_post.py')
allposts = [ str(os.path.split(os.path.splitext(p)[0])[1][:-5]) for p in posts]
posts = glob.glob(cls.macroFilePath() + '/*_post.py')
allposts.extend([ str(os.path.split(os.path.splitext(p)[0])[1][:-5]) for p in posts])
allposts = []
for path in cls.searchPaths():
posts = [ str(os.path.split(os.path.splitext(p)[0])[1][:-5]) for p in glob.glob(path + '/*_post.py')]
allposts.extend(posts)
allposts.sort()
return allposts