diff --git a/src/Mod/Path/Gui/Resources/panels/PageDepthsEdit.ui b/src/Mod/Path/Gui/Resources/panels/PageDepthsEdit.ui
index e4f34974f1..6b780e4189 100644
--- a/src/Mod/Path/Gui/Resources/panels/PageDepthsEdit.ui
+++ b/src/Mod/Path/Gui/Resources/panels/PageDepthsEdit.ui
@@ -6,7 +6,7 @@
0
0
- 296
+ 345
235
@@ -71,6 +71,9 @@
-
+
+ <html><head/><body><p>Transfer the Z value of the selected feature as the Start Depth for the operation.</p></body></html>
+
...
@@ -82,6 +85,9 @@
-
+
+ <html><head/><body><p>Transfer the Z value of the selected feature as the Final Depth for the operation.</p></body></html>
+
...
@@ -114,7 +120,7 @@
-
- <html><head/><body><p>The depth in Z-axis the operation moves downwards between layers.</p><p><br/></p><p>This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value.</p></body></html>
+ <html><head/><body><p>The depth in Z-axis the operation moves downwards between layers.</p><p>This value depends on the tool being used, the material to be cut, available cooling and many other factors. Please consult the tool manufacturers data sheets for the proper value.</p></body></html>
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
diff --git a/src/Mod/Path/PathScripts/PathAdaptive.py b/src/Mod/Path/PathScripts/PathAdaptive.py
index 3aabe56051..dfe00989be 100644
--- a/src/Mod/Path/PathScripts/PathAdaptive.py
+++ b/src/Mod/Path/PathScripts/PathAdaptive.py
@@ -55,8 +55,6 @@ scenePathNodes = [] #for scene cleanup aftewards
topZ = 10
def sceneDrawPath(path, color=(0, 0, 1)):
- global sceneGraph
- global scenePathNodes
coPoint = coin.SoCoordinate3()
pts = []
@@ -76,8 +74,6 @@ def sceneDrawPath(path, color=(0, 0, 1)):
scenePathNodes.append(pathNode) #for scene cleanup afterwards
def sceneClean():
- global scenePathNodes
-
for n in scenePathNodes:
sceneGraph.removeChild(n)
@@ -91,6 +87,7 @@ def discretize(edge, flipDirection = False):
return pts
def GenerateGCode(op,obj,adaptiveResults, helixDiameter):
+ # pylint: disable=unused-argument
if len(adaptiveResults) == 0 or len(adaptiveResults[0]["AdaptivePaths"]) == 0:
return
@@ -138,6 +135,9 @@ def GenerateGCode(op,obj,adaptiveResults, helixDiameter):
+ # ml: this is dangerous because it'll hide all unused variables hence forward
+ # however, I don't know wht lx and ly signify so I leave them for now
+ # pylint: disable=unused-variable
lx = adaptiveResults[0]["HelixCenterPoint"][0]
ly = adaptiveResults[0]["HelixCenterPoint"][1]
lz = passStartDepth
@@ -307,6 +307,7 @@ def GenerateGCode(op,obj,adaptiveResults, helixDiameter):
lz = z
def Execute(op,obj):
+ # pylint: disable=global-statement
global sceneGraph
global topZ
@@ -400,11 +401,11 @@ def Execute(op,obj):
adaptiveResults = None
if obj.AdaptiveOutputState != None and obj.AdaptiveOutputState != "":
- adaptiveResults = obj.AdaptiveOutputState
+ adaptiveResults = obj.AdaptiveOutputState
if json.dumps(obj.AdaptiveInputState) != json.dumps(inputStateObject):
- inputStateChanged = True
- adaptiveResults = None
+ inputStateChanged = True
+ adaptiveResults = None
# progress callback fn, if return true it will stop processing
def progressFn(tpaths):
diff --git a/src/Mod/Path/PathScripts/PathArray.py b/src/Mod/Path/PathScripts/PathArray.py
index d7fe6e8994..75ca9644b3 100644
--- a/src/Mod/Path/PathScripts/PathArray.py
+++ b/src/Mod/Path/PathScripts/PathArray.py
@@ -29,7 +29,7 @@ import PathScripts
from PySide import QtCore
import math
-"""Path Array object and FreeCAD command"""
+__doc__ = """Path Array object and FreeCAD command"""
# Qt translation handling
def translate(context, text, disambig=None):
@@ -213,6 +213,7 @@ class ObjectArray:
class ViewProviderArray:
def __init__(self, vobj):
+ self.Object = vobj.Object
vobj.Proxy = self
def attach(self, vobj):
diff --git a/src/Mod/Path/PathScripts/PathCollision.py b/src/Mod/Path/PathScripts/PathCollision.py
index d17ee572c2..dae423c20d 100644
--- a/src/Mod/Path/PathScripts/PathCollision.py
+++ b/src/Mod/Path/PathScripts/PathCollision.py
@@ -50,20 +50,21 @@ class _CollisionSim:
obj.Proxy = self
def execute(self, fp):
- "'''Do something when doing a recomputation, this method is mandatory'''"
- pass
+ '''Do something when doing a recomputation, this method is mandatory'''
+ print('_CollisionSim', fp)
class _ViewProviderCollisionSim:
def __init__(self, vobj):
+ self.Object = vobj.Object
vobj.Proxy = self
vobj.addProperty("App::PropertyLink", "Original", "reference", QtCore.QT_TRANSLATE_NOOP("App::Property", "The base object this collision refers to"))
def attach(self, vobj):
self.Object = vobj.Object
- return
def setEdit(self, vobj, mode=0):
+ # pylint: disable=unused-argument
return True
def getIcon(self):
@@ -73,9 +74,11 @@ class _ViewProviderCollisionSim:
return None
def __setstate__(self, state):
+ # pylint: disable=unused-argument
return None
def onDelete(self, feature, subelements):
+ # pylint: disable=unused-argument
feature.Original.ViewObject.Visibility = True
return True
@@ -101,9 +104,9 @@ def getCollisionObject(baseobject, simobject):
colorassignment = []
gougedShape = baseobject.Shape.cut(simobject)
- for idx, i in enumerate(gougedShape.Faces):
+ for i in gougedShape.Faces:
match = False
- for jdx, j in enumerate(cVol.Faces):
+ for j in cVol.Faces:
if __compareBBSpace(i.BoundBox, j.BoundBox):
match = True
if match is True:
diff --git a/src/Mod/Path/PathScripts/PathComment.py b/src/Mod/Path/PathScripts/PathComment.py
index 06f756b2e9..a3c2a58eb6 100644
--- a/src/Mod/Path/PathScripts/PathComment.py
+++ b/src/Mod/Path/PathScripts/PathComment.py
@@ -82,6 +82,7 @@ class _ViewProviderComment:
return ":/icons/Path-Comment.svg"
def onChanged(self, vobj, prop): # optional
+ # pylint: disable=unused-argument
mode = 2
vobj.setEditorMode('LineWidth', mode)
vobj.setEditorMode('MarkerColor', mode)
@@ -105,7 +106,7 @@ class CommandPathComment:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathCopy.py b/src/Mod/Path/PathScripts/PathCopy.py
index 06250a74f4..dd59a3a673 100644
--- a/src/Mod/Path/PathScripts/PathCopy.py
+++ b/src/Mod/Path/PathScripts/PathCopy.py
@@ -24,9 +24,9 @@
import FreeCAD
import FreeCADGui
-from PySide import QtCore, QtGui
+from PySide import QtCore
-"""Path Copy object and FreeCAD command"""
+__doc__ = """Path Copy object and FreeCAD command"""
# Qt translation handling
def translate(context, text, disambig=None):
@@ -57,6 +57,7 @@ class ObjectPathCopy:
class ViewProviderPathCopy:
def __init__(self, vobj):
+ self.Object = vobj.Object
vobj.Proxy = self
def attach(self, vobj):
@@ -84,7 +85,7 @@ class CommandPathCopy:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathCustom.py b/src/Mod/Path/PathScripts/PathCustom.py
index 2e0bb7656c..74cb93ba1a 100644
--- a/src/Mod/Path/PathScripts/PathCustom.py
+++ b/src/Mod/Path/PathScripts/PathCustom.py
@@ -26,7 +26,7 @@ import FreeCADGui
import Path
from PySide import QtCore
-"""Path Custom object and FreeCAD command"""
+__doc__ = """Path Custom object and FreeCAD command"""
# Qt translation handling
@@ -68,7 +68,7 @@ class CommandPathCustom:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathFixture.py b/src/Mod/Path/PathScripts/PathFixture.py
index 1d383753ce..7c13f3c5ef 100644
--- a/src/Mod/Path/PathScripts/PathFixture.py
+++ b/src/Mod/Path/PathScripts/PathFixture.py
@@ -83,6 +83,7 @@ class _ViewProviderFixture:
return ":/icons/Path-Datums.svg"
def onChanged(self, vobj, prop): # optional
+ # pylint: disable=unused-argument
mode = 2
vobj.setEditorMode('LineWidth', mode)
vobj.setEditorMode('MarkerColor', mode)
@@ -118,7 +119,7 @@ class CommandPathFixture:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathHop.py b/src/Mod/Path/PathScripts/PathHop.py
index edaa85c3be..1b613c02f2 100644
--- a/src/Mod/Path/PathScripts/PathHop.py
+++ b/src/Mod/Path/PathScripts/PathHop.py
@@ -25,9 +25,9 @@
import FreeCAD
import FreeCADGui
import Path
-from PySide import QtCore, QtGui
+from PySide import QtCore
-"""Path Hop object and FreeCAD command"""
+__doc__ = """Path Hop object and FreeCAD command"""
# Qt translation handling
def translate(context, text, disambig=None):
@@ -73,11 +73,11 @@ class ObjectHop:
class ViewProviderPathHop:
def __init__(self, vobj):
+ self.Object = vobj.Object
vobj.Proxy = self
def attach(self, vobj):
self.Object = vobj.Object
- return
def getIcon(self):
return ":/icons/Path-Hop.svg"
@@ -100,7 +100,7 @@ class CommandPathHop:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathInspect.py b/src/Mod/Path/PathScripts/PathInspect.py
index 8779fa7461..448bc6b685 100644
--- a/src/Mod/Path/PathScripts/PathInspect.py
+++ b/src/Mod/Path/PathScripts/PathInspect.py
@@ -78,12 +78,12 @@ class GCodeHighlighter(QtGui.QSyntaxHighlighter):
def highlightBlock(self, text):
- for pattern, format in self.highlightingRules:
+ for pattern, fmt in self.highlightingRules:
expression = QtCore.QRegExp(pattern)
index = expression.indexIn(text)
while index >= 0:
length = expression.matchedLength()
- self.setFormat(index, length, format)
+ self.setFormat(index, length, fmt)
index = expression.indexIn(text, index + length)
@@ -201,7 +201,6 @@ def show(obj):
# exec_() returns 0 or 1 depending on the button pressed (Ok or
# Cancel)
if result:
- import Path
p = Path.Path(dia.editor.toPlainText())
FreeCAD.ActiveDocument.openTransaction("Edit Path")
obj.Path = p
@@ -221,7 +220,7 @@ class CommandPathInspect:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathPlane.py b/src/Mod/Path/PathScripts/PathPlane.py
index 4b39dbe13c..26b77d0daf 100644
--- a/src/Mod/Path/PathScripts/PathPlane.py
+++ b/src/Mod/Path/PathScripts/PathPlane.py
@@ -26,7 +26,7 @@
import FreeCAD
import FreeCADGui
import Path
-from PySide import QtCore, QtGui
+from PySide import QtCore
# Qt translation handling
def translate(context, text, disambig=None):
@@ -79,6 +79,7 @@ class _ViewProviderPlane:
return ":/icons/Path-Plane.svg"
def onChanged(self, vobj, prop): # optional
+ # pylint: disable=unused-argument
mode = 2
vobj.setEditorMode('LineWidth', mode)
vobj.setEditorMode('MarkerColor', mode)
@@ -114,7 +115,7 @@ class CommandPathPlane:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathSimpleCopy.py b/src/Mod/Path/PathScripts/PathSimpleCopy.py
index 12e7491d36..8dbe179bce 100644
--- a/src/Mod/Path/PathScripts/PathSimpleCopy.py
+++ b/src/Mod/Path/PathScripts/PathSimpleCopy.py
@@ -26,7 +26,7 @@ import FreeCADGui
import PathScripts
from PySide import QtCore
-"""Path SimpleCopy command"""
+__doc__ = """Path SimpleCopy command"""
# Qt translation handling
@@ -47,7 +47,7 @@ class CommandPathSimpleCopy:
try:
obj = FreeCADGui.Selection.getSelectionEx()[0].Object
return isinstance(obj.Proxy, PathScripts.PathOp.ObjectOp)
- except Exception:
+ except Exception: # pylint: disable=broad-except
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/PathStop.py b/src/Mod/Path/PathScripts/PathStop.py
index 0eec813b70..9015fb101f 100644
--- a/src/Mod/Path/PathScripts/PathStop.py
+++ b/src/Mod/Path/PathScripts/PathStop.py
@@ -85,6 +85,7 @@ class _ViewProviderStop:
return ":/icons/Path-Stop.svg"
def onChanged(self, vobj, prop): # optional
+ # pylint: disable=unused-argument
mode = 2
vobj.setEditorMode('LineWidth', mode)
vobj.setEditorMode('MarkerColor', mode)
@@ -108,7 +109,7 @@ class CommandPathStop:
if FreeCAD.ActiveDocument is not None:
for o in FreeCAD.ActiveDocument.Objects:
if o.Name[:3] == "Job":
- return True
+ return True
return False
def Activated(self):
diff --git a/src/Mod/Path/PathScripts/post/centroid_post.py b/src/Mod/Path/PathScripts/post/centroid_post.py
index 3dc4ebb5cf..d19f6831d8 100644
--- a/src/Mod/Path/PathScripts/post/centroid_post.py
+++ b/src/Mod/Path/PathScripts/post/centroid_post.py
@@ -116,6 +116,7 @@ if open.__module__ in ['__builtin__', 'io']:
def processArguments(argstring):
+ # pylint: disable=global-statement
global OUTPUT_HEADER
global OUTPUT_COMMENTS
global OUTPUT_LINE_NUMBERS
@@ -147,6 +148,7 @@ def processArguments(argstring):
def export(objectslist, filename, argstring):
+ # pylint: disable=global-statement
processArguments(argstring)
for i in objectslist:
print(i.Name)
@@ -221,6 +223,7 @@ def export(objectslist, filename, argstring):
def linenumber():
+ # pylint: disable=global-statement
global LINENR
if OUTPUT_LINE_NUMBERS is True:
LINENR += 10
@@ -229,8 +232,6 @@ def linenumber():
def parse(pathobj):
- global AXIS_PRECISION
- global FEED_PRECISION
out = ""
lastcommand = None
axis_precision_string = '.' + str(AXIS_PRECISION) + 'f'
diff --git a/src/Mod/Path/PathScripts/post/comparams_post.py b/src/Mod/Path/PathScripts/post/comparams_post.py
index e7644bd96b..672120a22d 100644
--- a/src/Mod/Path/PathScripts/post/comparams_post.py
+++ b/src/Mod/Path/PathScripts/post/comparams_post.py
@@ -23,7 +23,6 @@
# ***************************************************************************
import FreeCAD
import Path
-import PathScripts
import PathScripts.PostUtils as PostUtils
TOOLTIP = ''' Example Post, using Path.Commands instead of Path.toGCode strings for Path gcode output. '''
@@ -81,6 +80,7 @@ def lineout(command, oldvals, modal):
def export(obj, filename, argstring):
+ # pylint: disable=unused-argument
modal = True
gcode = ''
safetyblock1 = 'G90G40G49\n'
diff --git a/src/Mod/Path/PathScripts/post/dumper_post.py b/src/Mod/Path/PathScripts/post/dumper_post.py
index a460f8f565..5683e2c47d 100644
--- a/src/Mod/Path/PathScripts/post/dumper_post.py
+++ b/src/Mod/Path/PathScripts/post/dumper_post.py
@@ -40,6 +40,9 @@ if open.__module__ in ['__builtin__','io']:
def export(objectslist, filename,argstring):
+ "called when freecad exports a list of objects"
+ # pylint: disable=unused-argument
+
output = '''(This output produced with the dump post processor)
(Dump is useful for inspecting the raw commands in your paths)
(but is not useful for driving machines.)
@@ -48,7 +51,6 @@ def export(objectslist, filename,argstring):
'''
- "called when freecad exports a list of objects"
for obj in objectslist:
if not hasattr(obj, "Path"):
diff --git a/src/Mod/Path/PathScripts/post/dynapath_post.py b/src/Mod/Path/PathScripts/post/dynapath_post.py
index 1ce1deb768..8e27bf6371 100644
--- a/src/Mod/Path/PathScripts/post/dynapath_post.py
+++ b/src/Mod/Path/PathScripts/post/dynapath_post.py
@@ -111,7 +111,8 @@ if open.__module__ in ['__builtin__','io']:
def export(objectslist,filename,argstring):
- global UNITS
+ # pylint: disable=unused-argument
+ global UNITS # pylint: disable=global-statement
for obj in objectslist:
if not hasattr(obj,"Path"):
print("the object " + obj.Name + " is not a path. Please select only path and Compounds.")
@@ -128,9 +129,9 @@ def export(objectslist,filename,argstring):
myMachine = pathobj.MachineName
if hasattr(pathobj, "MachineUnits"):
if pathobj.MachineUnits == "Metric":
- UNITS = "G21"
+ UNITS = "G21"
else:
- UNITS = "G20"
+ UNITS = "G20"
if myMachine is None:
print("No machine found in this selection")
@@ -185,7 +186,7 @@ def export(objectslist,filename,argstring):
def linenumber():
- global LINENR
+ global LINENR # pylint: disable=global-statement
if OUTPUT_LINE_NUMBERS == True:
LINENR += 1
return "N" + str(LINENR) + " "
diff --git a/src/Mod/Path/PathScripts/post/example_post.py b/src/Mod/Path/PathScripts/post/example_post.py
index 4807b56e68..cc02939fa2 100644
--- a/src/Mod/Path/PathScripts/post/example_post.py
+++ b/src/Mod/Path/PathScripts/post/example_post.py
@@ -41,6 +41,7 @@ if open.__module__ in ['__builtin__','io']:
def export(objectslist, filename,argstring):
"called when freecad exports a list of objects"
+ # pylint: disable=unused-argument
if len(objectslist) > 1:
print("This script is unable to write more than one Path object")
return
diff --git a/src/Mod/Path/PathScripts/post/example_pre.py b/src/Mod/Path/PathScripts/post/example_pre.py
index 42197b7a8b..5928c30301 100644
--- a/src/Mod/Path/PathScripts/post/example_pre.py
+++ b/src/Mod/Path/PathScripts/post/example_pre.py
@@ -50,8 +50,8 @@ if open.__module__ in ['__builtin__', 'io']:
def open(filename):
- PathLog.track(filename)
"called when freecad opens a file."
+ PathLog.track(filename)
docname = os.path.splitext(os.path.basename(filename))[0]
doc = FreeCAD.newDocument(docname)
insert(filename, doc.Name)
diff --git a/src/Mod/Path/PathScripts/post/fablin_post.py b/src/Mod/Path/PathScripts/post/fablin_post.py
index f2dccb795b..ddd6c8b557 100644
--- a/src/Mod/Path/PathScripts/post/fablin_post.py
+++ b/src/Mod/Path/PathScripts/post/fablin_post.py
@@ -94,6 +94,7 @@ if open.__module__ in ['__builtin__', 'io']:
def processArguments(argstring):
+ # pylint: disable=global-statement
global OUTPUT_HEADER
global OUTPUT_COMMENTS
global OUTPUT_LINE_NUMBERS
@@ -124,6 +125,7 @@ def processArguments(argstring):
def export(objectslist, filename, argstring):
+ # pylint: disable=global-statement
processArguments(argstring)
global UNITS
for obj in objectslist:
@@ -205,6 +207,7 @@ def export(objectslist, filename, argstring):
def linenumber():
+ # pylint: disable=global-statement
global LINENR
if OUTPUT_LINE_NUMBERS is True:
LINENR += 10
diff --git a/src/Mod/Path/PathScripts/post/jtech_post.py b/src/Mod/Path/PathScripts/post/jtech_post.py
index 29801abfeb..8628ad02e0 100644
--- a/src/Mod/Path/PathScripts/post/jtech_post.py
+++ b/src/Mod/Path/PathScripts/post/jtech_post.py
@@ -110,6 +110,7 @@ if open.__module__ == '__builtin__':
def processArguments(argstring):
+ # pylint: disable=global-statement
global OUTPUT_HEADER
global OUTPUT_COMMENTS
global OUTPUT_LINE_NUMBERS
@@ -151,7 +152,7 @@ def processArguments(argstring):
OUTPUT_DOUBLES = False
POWER_ON_DELAY = float(args.power_on_delay) / 1000 # milliseconds
- except Exception:
+ except Exception: # pylint: disable=broad-except
return False
return True
@@ -160,9 +161,6 @@ def processArguments(argstring):
def export(objectslist, filename, argstring):
if not processArguments(argstring):
return None
- global UNITS
- global UNIT_FORMAT
- global UNIT_SPEED_FORMAT
for obj in objectslist:
if not hasattr(obj, "Path"):
@@ -229,7 +227,7 @@ def export(objectslist, filename, argstring):
def linenumber():
- global LINENR
+ global LINENR # pylint: disable=global-statement
if OUTPUT_LINE_NUMBERS is True:
LINENR += 10
return "N" + str(LINENR) + " "
@@ -237,15 +235,6 @@ def linenumber():
def parse(pathobj):
- global PRECISION
- global MODAL
- global OUTPUT_DOUBLES
- global UNIT_FORMAT
- global UNIT_SPEED_FORMAT
- global POWER_ON_DELAY
- global PRE_FEED
- global POST_FEED
-
out = ""
lastcommand = None
precision_string = '.' + str(PRECISION) + 'f'
diff --git a/src/Mod/Path/PathScripts/post/linuxcnc_post.py b/src/Mod/Path/PathScripts/post/linuxcnc_post.py
index 244902111c..01007e04ce 100644
--- a/src/Mod/Path/PathScripts/post/linuxcnc_post.py
+++ b/src/Mod/Path/PathScripts/post/linuxcnc_post.py
@@ -102,6 +102,7 @@ if open.__module__ in ['__builtin__','io']:
def processArguments(argstring):
+ # pylint: disable=global-statement
global OUTPUT_HEADER
global OUTPUT_COMMENTS
global OUTPUT_LINE_NUMBERS
@@ -142,13 +143,14 @@ def processArguments(argstring):
print ('here')
OUTPUT_DOUBLES = False
- except Exception:
+ except Exception: # pylint: disable=broad-except
return False
return True
def export(objectslist, filename, argstring):
+ # pylint: disable=global-statement
if not processArguments(argstring):
return None
global UNITS
@@ -239,6 +241,7 @@ def export(objectslist, filename, argstring):
def linenumber():
+ # pylint: disable=global-statement
global LINENR
if OUTPUT_LINE_NUMBERS is True:
LINENR += 10
@@ -247,6 +250,7 @@ def linenumber():
def parse(pathobj):
+ # pylint: disable=global-statement
global PRECISION
global MODAL
global OUTPUT_DOUBLES
diff --git a/src/Mod/Path/PathScripts/post/opensbp_post.py b/src/Mod/Path/PathScripts/post/opensbp_post.py
index 433370fb0f..274a5fd0ff 100644
--- a/src/Mod/Path/PathScripts/post/opensbp_post.py
+++ b/src/Mod/Path/PathScripts/post/opensbp_post.py
@@ -98,6 +98,7 @@ GetValue = getMetricValue
def export(objectslist, filename, argstring):
+ # pylint: disable=global-statement
global OUTPUT_COMMENTS
global OUTPUT_HEADER
global SHOW_EDITOR
@@ -182,8 +183,6 @@ def export(objectslist, filename, argstring):
def move(command):
- global CurrentState
-
txt = ""
# if 'F' in command.Parameters:
@@ -298,7 +297,7 @@ def tool_change(command):
def comment(command):
- print("a comment")
+ print("a comment", command)
return
@@ -333,8 +332,6 @@ scommands = {
def parse(pathobj):
- global CurrentState
-
output = ""
# Above list controls the order of parameters
diff --git a/src/Mod/Path/PathScripts/post/opensbp_pre.py b/src/Mod/Path/PathScripts/post/opensbp_pre.py
index 615e804ca4..eb8286eaf3 100644
--- a/src/Mod/Path/PathScripts/post/opensbp_pre.py
+++ b/src/Mod/Path/PathScripts/post/opensbp_pre.py
@@ -68,9 +68,9 @@ def open(filename):
def insert(filename, docname):
- "called when freecad imports a file"
- "This insert expects parse to return a list of strings"
- "each string will become a separate path"
+ '''called when freecad imports a file
+ This insert expects parse to return a list of strings
+ each string will become a separate path'''
gfile = pythonopen(filename)
gcode = gfile.read()
gfile.close()
diff --git a/src/Mod/Path/PathScripts/post/philips_post.py b/src/Mod/Path/PathScripts/post/philips_post.py
index 60c589c31e..0a65625d5b 100644
--- a/src/Mod/Path/PathScripts/post/philips_post.py
+++ b/src/Mod/Path/PathScripts/post/philips_post.py
@@ -27,7 +27,6 @@
# reload(generic_post)
import FreeCAD
-from FreeCAD import Units
import argparse
import time
from PathScripts import PostUtils
@@ -220,31 +219,19 @@ parser.add_argument('--no-show-editor', action='store_true', help='don\'t pop up
TOOLTIP_ARGS = parser.format_help()
def processArguments(argstring):
- global OUTPUT_HEADER
- global OUTPUT_COMMENTS
- global OUTPUT_LINE_NUMBERS
+ # pylint: disable=global-statement
+ global LINENUMBERS
global SHOW_EDITOR
- global PRECISION
for arg in argstring.split():
- if arg == '--header':
- OUTPUT_HEADER = True
- elif arg == '--no-header':
- OUTPUT_HEADER = False
- elif arg == '--comments':
- OUTPUT_COMMENTS = True
- elif arg == '--no-comments':
- OUTPUT_COMMENTS = False
- elif arg == '--line-numbers':
- OUTPUT_LINE_NUMBERS = True
+ if arg == '--line-numbers':
+ LINENUMBERS = True
elif arg == '--no-line-numbers':
- OUTPUT_LINE_NUMBERS = False
+ LINENUMBERS = False
elif arg == '--show-editor':
SHOW_EDITOR = True
elif arg == '--no-show-editor':
SHOW_EDITOR = False
- elif arg.split('=')[0] == '--output-precision':
- PRECISION = arg.split('=')[1]
def mkHeader(selection):
job = PathUtils.findParentJob(selection[0])
@@ -324,7 +311,7 @@ def mapGCode(command):
def linenumberify(GCodeString):
# add a linenumber at every beginning of line
- global linenr
+ global linenr # pylint: disable=global-statement
if not LINENUMBERS:
result = GCodeString + "\n"
else:
@@ -342,11 +329,9 @@ def linenumberify(GCodeString):
return result
def export(objectslist, filename, argstring):
+ # pylint: disable=unused-argument,global-statement
global UNITS
global linenr
- global ABSOLUTE_CIRCLE_CENTER
- global USE_RADIUS_IF_POSSIBLE
- global RADIUS_COMMENT
linenr = STARTLINENR
lastX = 0
@@ -474,7 +459,7 @@ def export(objectslist, filename, argstring):
# absolute center
outstring.append(
'(' + param + PostUtils.fmt(c.Parameters[param], AXIS_DECIMALS, UNITS) + ')')
- z = c.Parameters['Z']
+ z = c.Parameters['Z'] # pylint: disable=unused-variable
k = c.Parameters['K']
if USE_RADIUS_IF_POSSIBLE and angleUnder180(command, lastX, lastY, c.Parameters['X'], c.Parameters['Y'], i, j):
# R is handled with the I parameter, here:
diff --git a/src/Mod/Path/PathScripts/post/rml_post.py b/src/Mod/Path/PathScripts/post/rml_post.py
index 5400fcae12..202d28475e 100644
--- a/src/Mod/Path/PathScripts/post/rml_post.py
+++ b/src/Mod/Path/PathScripts/post/rml_post.py
@@ -46,6 +46,7 @@ if open.__module__ in ['__builtin__','io']:
# Entrypoint used by FreeCAD
def export(objectslist, filename, argstring):
"Export objects as Roland Modela code."
+ # pylint: disable=unused-argument
code = ""
for obj in objectslist:
@@ -68,8 +69,8 @@ def home():
return [ "H;" ]
def setjog():
- # "!PZ%d,%d;",iz_down,iz_up); // set z down, jog
- return ""
+ # "!PZ%d,%d;",iz_down,iz_up); // set z down, jog
+ return ""
def addheader():
return [ "PA;PA;" ] # absolute positioning
@@ -80,8 +81,10 @@ def mm2cord(mm):
mm = float(mm)
return int(40.0*mm)
-def feed(x=None, y=None, z=None, state={}):
+def feed(x=None, y=None, z=None, state=None):
c = []
+ if state is None:
+ state = {}
if x is not None:
x = float(x)
@@ -100,21 +103,22 @@ def feed(x=None, y=None, z=None, state={}):
# 2d in XY plane
c.append("PD%d,%d;" % (mm2cord(x), mm2cord(y)))
elif z is not None:
- pass # XXX: is this used?
+ pass
return c
-def jog(x=None, y=None, z=None, state={}):
+def jog(x=None, y=None, z=None, state=None):
c = []
+ if state is None:
+ state = {}
if x is not None and y is not None:
- x, y = float(x), float(y)
- c.append("PU%d,%d;" % (mm2cord(x), mm2cord(y)))
- state['X'] = x
- state['Y'] = y
+ x, y = float(x), float(y)
+ c.append("PU%d,%d;" % (mm2cord(x), mm2cord(y)))
+ state['X'] = x
+ state['Y'] = y
if z is not None:
- z = float(z)
- c.append("PU;")
- # TODO: use !ZZ command
- state['Z'] = z
+ z = float(z)
+ c.append("PU;")
+ state['Z'] = z
return c
@@ -132,16 +136,18 @@ def xyarc(args, state):
p0 = circle.parameter(lastPoint)
p1 = circle.parameter(newPoint)
arc = Part.ArcOfCircle(circle, p0, p1)
- steps = 64 # TODO: specify max error instead
+ steps = 64 # specify max error instead?
points = arc.discretize(steps)
- # TODO: consider direction
+ # consider direction?
#print('p = Part.ArcOfCircle(Part.Circle(FreeCAD.Vector(%f, %f), FreeCAD.Vector(0, 0, 1), %f), %f, %f)' % (center.x, center.y, radius, p0, p1))
for p in points:
c += feed(p.x, p.y, state['Z'], state)
return c
-def speed(xy=None, z=None, state={}):
+def speed(xy=None, z=None, state=None):
c = []
+ if state is None:
+ state = {}
print(xy, z, state)
if xy is not None:
xy = float(xy)
@@ -223,7 +229,7 @@ def parse(inputstring):
output += speed(2.0, 1.0, state) # defaults
- # TODO: respect clearance height
+ # respect clearance height?
# treat the input line by line
lines = inputstring.split("\n")
diff --git a/src/Mod/Path/PathScripts/post/smoothie_post.py b/src/Mod/Path/PathScripts/post/smoothie_post.py
index 121dc4cdea..a8803be99b 100644
--- a/src/Mod/Path/PathScripts/post/smoothie_post.py
+++ b/src/Mod/Path/PathScripts/post/smoothie_post.py
@@ -106,6 +106,8 @@ POST_OPERATION = ''''''
# Tool Change commands will be inserted before a tool change
TOOL_CHANGE = ''''''
+# Number of digits after the decimal point
+PRECISION = 5
# to distinguish python built-in open function from the one declared below
if open.__module__ in ['__builtin__', 'io']:
@@ -113,6 +115,7 @@ if open.__module__ in ['__builtin__', 'io']:
def processArguments(argstring):
+ # pylint: disable=global-statement
global OUTPUT_HEADER
global OUTPUT_COMMENTS
global OUTPUT_LINE_NUMBERS
@@ -159,7 +162,7 @@ def processArguments(argstring):
IP_ADDR = args.IP_ADDR
VERBOSE = args.verbose
- except Exception:
+ except Exception: # pylint: disable=broad-except
return False
return True
@@ -167,8 +170,7 @@ def processArguments(argstring):
def export(objectslist, filename, argstring):
processArguments(argstring)
- global UNITS
- global IP_ADDR
+ global UNITS # pylint: disable=global-statement
for obj in objectslist:
if not hasattr(obj, "Path"):
FreeCAD.Console.PrintError("the object " + obj.Name + " is not a path. Please select only path and Compounds.\n")
@@ -252,11 +254,10 @@ def export(objectslist, filename, argstring):
return final
-def sendToSmoothie(IP_ADDR, GCODE, fname):
+def sendToSmoothie(ip, GCODE, fname):
import sys
import socket
import os
- global VERBOSE
fname = os.path.basename(fname)
FreeCAD.Console.PrintMessage('sending to smoothie: {}\n'.format(fname))
@@ -266,7 +267,7 @@ def sendToSmoothie(IP_ADDR, GCODE, fname):
# make connection to sftp server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(4.0)
- s.connect((IP_ADDR, 115))
+ s.connect((ip, 115))
tn = s.makefile(mode='rw')
# read startup prompt
@@ -330,7 +331,7 @@ def sendToSmoothie(IP_ADDR, GCODE, fname):
def linenumber():
- global LINENR
+ global LINENR # pylint: disable=global-statement
if OUTPUT_LINE_NUMBERS is True:
LINENR += 10
return "N" + str(LINENR) + " "
@@ -338,10 +339,10 @@ def linenumber():
def parse(pathobj):
- global PRECISION
+ global SPINDLE_SPEED # pylint: disable=global-statement
+
out = ""
lastcommand = None
- global SPINDLE_SPEED
precision_string = '.' + str(PRECISION) + 'f'
# params = ['X','Y','Z','A','B','I','J','K','F','S'] #This list control
diff --git a/src/Mod/Path/PathTests/TestPathDeburr.py b/src/Mod/Path/PathTests/TestPathDeburr.py
index d94963407d..aecb2ee181 100644
--- a/src/Mod/Path/PathTests/TestPathDeburr.py
+++ b/src/Mod/Path/PathTests/TestPathDeburr.py
@@ -26,7 +26,6 @@ import Path
import PathScripts.PathDeburr as PathDeburr
import PathScripts.PathLog as PathLog
import PathTests.PathTestUtils as PathTestUtils
-import math
PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule())
#PathLog.trackModule(PathLog.thisModule())
diff --git a/src/Mod/Path/PathTests/TestPathDressupDogbone.py b/src/Mod/Path/PathTests/TestPathDressupDogbone.py
index 55759fdf13..5ab8019038 100644
--- a/src/Mod/Path/PathTests/TestPathDressupDogbone.py
+++ b/src/Mod/Path/PathTests/TestPathDressupDogbone.py
@@ -24,14 +24,10 @@
import FreeCAD
import Path
-import PathScripts
import PathScripts.PathDressupDogbone as PathDressupDogbone
import PathScripts.PathJob as PathJob
import PathScripts.PathProfileFaces as PathProfileFaces
-import math
-import unittest
-from FreeCAD import Vector
from PathTests.PathTestUtils import PathTestBase
class TestProfile:
@@ -48,6 +44,7 @@ class TestFeature:
self.Path = Path.Path()
def addProperty(self, typ, nam, category, tip):
+ # pylint: disable=unused-argument
setattr(self, nam, None)
def setEditorMode(self, prop, mode):
@@ -61,31 +58,29 @@ class TestDressupDogbone(PathTestBase):
def test00(self):
'''Verify bones are inserted for simple moves.'''
- path = []
base = TestProfile('Inside', 'CW', 'G0 X10 Y10 Z10\nG1 Z0\nG1 Y100\nG1 X12\nG1 Y10\nG1 X10\nG1 Z10')
obj = TestFeature()
db = PathDressupDogbone.ObjectDressup(obj, base)
db.setup(obj, True)
db.execute(obj, False)
- self.assertEquals(len(db.bones), 4)
- self.assertEquals("1: (10.00, 100.00)", self.formatBone(db.bones[0]))
- self.assertEquals("2: (12.00, 100.00)", self.formatBone(db.bones[1]))
- self.assertEquals("3: (12.00, 10.00)", self.formatBone(db.bones[2]))
- self.assertEquals("4: (10.00, 10.00)", self.formatBone(db.bones[3]))
+ self.assertEqual(len(db.bones), 4)
+ self.assertEqual("1: (10.00, 100.00)", self.formatBone(db.bones[0]))
+ self.assertEqual("2: (12.00, 100.00)", self.formatBone(db.bones[1]))
+ self.assertEqual("3: (12.00, 10.00)", self.formatBone(db.bones[2]))
+ self.assertEqual("4: (10.00, 10.00)", self.formatBone(db.bones[3]))
def test01(self):
'''Verify bones are inserted if hole ends with rapid move out.'''
- path = []
base = TestProfile('Inside', 'CW', 'G0 X10 Y10 Z10\nG1 Z0\nG1 Y100\nG1 X12\nG1 Y10\nG1 X10\nG0 Z10')
obj = TestFeature()
db = PathDressupDogbone.ObjectDressup(obj, base)
db.setup(obj, True)
db.execute(obj, False)
- self.assertEquals(len(db.bones), 4)
- self.assertEquals("1: (10.00, 100.00)", self.formatBone(db.bones[0]))
- self.assertEquals("2: (12.00, 100.00)", self.formatBone(db.bones[1]))
- self.assertEquals("3: (12.00, 10.00)", self.formatBone(db.bones[2]))
- self.assertEquals("4: (10.00, 10.00)", self.formatBone(db.bones[3]))
+ self.assertEqual(len(db.bones), 4)
+ self.assertEqual("1: (10.00, 100.00)", self.formatBone(db.bones[0]))
+ self.assertEqual("2: (12.00, 100.00)", self.formatBone(db.bones[1]))
+ self.assertEqual("3: (12.00, 10.00)", self.formatBone(db.bones[2]))
+ self.assertEqual("4: (10.00, 10.00)", self.formatBone(db.bones[3]))
def test02(self):
'''Verify bones are correctly generated for a Profile.'''
@@ -113,7 +108,7 @@ class TestDressupDogbone(PathTestBase):
if f.Surface.Axis == FreeCAD.Vector(0,0,1) and f.Orientation == 'Forward':
break
- job = PathJob.Create('Job', [cut], None)
+ PathJob.Create('Job', [cut], None)
profile = PathProfileFaces.Create('Profile Faces')
profile.Base = (cut, face)
@@ -138,14 +133,14 @@ class TestDressupDogbone(PathTestBase):
return "(%.2f, %.2f)" % (pt[0], pt[1])
# Make sure we get 8 bones, 2 in each corner (different heights)
- self.assertEquals(len(locs), 8)
- self.assertEquals("(27.50, 27.50)", formatBoneLoc(locs[0]))
- self.assertEquals("(27.50, 27.50)", formatBoneLoc(locs[1]))
- self.assertEquals("(27.50, 72.50)", formatBoneLoc(locs[2]))
- self.assertEquals("(27.50, 72.50)", formatBoneLoc(locs[3]))
- self.assertEquals("(72.50, 27.50)", formatBoneLoc(locs[4]))
- self.assertEquals("(72.50, 27.50)", formatBoneLoc(locs[5]))
- self.assertEquals("(72.50, 72.50)", formatBoneLoc(locs[6]))
- self.assertEquals("(72.50, 72.50)", formatBoneLoc(locs[7]))
+ self.assertEqual(len(locs), 8)
+ self.assertEqual("(27.50, 27.50)", formatBoneLoc(locs[0]))
+ self.assertEqual("(27.50, 27.50)", formatBoneLoc(locs[1]))
+ self.assertEqual("(27.50, 72.50)", formatBoneLoc(locs[2]))
+ self.assertEqual("(27.50, 72.50)", formatBoneLoc(locs[3]))
+ self.assertEqual("(72.50, 27.50)", formatBoneLoc(locs[4]))
+ self.assertEqual("(72.50, 27.50)", formatBoneLoc(locs[5]))
+ self.assertEqual("(72.50, 72.50)", formatBoneLoc(locs[6]))
+ self.assertEqual("(72.50, 72.50)", formatBoneLoc(locs[7]))
FreeCAD.closeDocument("TestDressupDogbone")
diff --git a/src/Mod/Path/PathTests/TestPathDressupHoldingTags.py b/src/Mod/Path/PathTests/TestPathDressupHoldingTags.py
index b102659a06..b202430e5d 100644
--- a/src/Mod/Path/PathTests/TestPathDressupHoldingTags.py
+++ b/src/Mod/Path/PathTests/TestPathDressupHoldingTags.py
@@ -22,17 +22,13 @@
# * *
# ***************************************************************************
-import FreeCAD
-import Path
-import PathScripts
+import PathTests.PathTestUtils as PathTestUtils
import math
-import unittest
from FreeCAD import Vector
-from PathScripts.PathDressupHoldingTags import *
-from PathTests.PathTestUtils import PathTestBase
+from PathScripts.PathDressupHoldingTags import Tag
-class TestHoldingTags(PathTestBase):
+class TestHoldingTags(PathTestUtils.PathTestBase):
"""Unit tests for the HoldingTags dressup."""
def test00(self):
diff --git a/src/Mod/Path/PathTests/TestPathGeom.py b/src/Mod/Path/PathTests/TestPathGeom.py
index 5900a097bb..f4882d4000 100644
--- a/src/Mod/Path/PathTests/TestPathGeom.py
+++ b/src/Mod/Path/PathTests/TestPathGeom.py
@@ -22,13 +22,10 @@
# * *
# ***************************************************************************
-import FreeCAD
import Part
import Path
-import PathScripts
import PathScripts.PathGeom as PathGeom
import math
-import unittest
from FreeCAD import Vector
from PathTests.PathTestUtils import PathTestBase
@@ -238,10 +235,6 @@ class TestPathGeom(PathTestBase):
self.assertLine(PathGeom.edgeForCmd(Path.Command('G1', {'X': 7, 'Y': 2, 'Z': 3}), spt), spt, Vector(7, 2, 3))
self.assertLine(PathGeom.edgeForCmd(Path.Command('G01', {'X': 1, 'Y': 3, 'Z': 5}), spt), spt, Vector(1, 3, 5))
- def test15(self):
- """Verify proper feed rate for G1 commands is assigned."""
- pass
-
def test20(self):
"""Verify proper geometry for arcs in the XY-plane are created."""
p1 = Vector(0, -1, 2)
@@ -369,7 +362,6 @@ class TestPathGeom(PathTestBase):
e = PathGeom.arcToHelix(Part.Edge(Part.Arc(p11, p12, p13)), 2, -2)
self.assertCurve(e, p1 + Vector(0,0,2), p2, p3 + Vector(0,0,-2))
- o = 10*math.sin(math.pi/4)
p1 = Vector(10, -10, 1)
p2 = Vector(10 - 10*math.sin(math.pi/4), -10*math.cos(math.pi/4), 1)
p3 = Vector(0, 0, 1)
@@ -431,8 +423,6 @@ class TestPathGeom(PathTestBase):
o = 10*math.sin(math.pi/4)
p12 = Vector(10 - o, -o, 2.5)
p23 = Vector(10 - o, +o, 7.5)
- pf = e[0].valueAt((e[0].FirstParameter + e[0].LastParameter)/2)
- pl = e[1].valueAt((e[1].FirstParameter + e[1].LastParameter)/2)
self.assertCurve(e[0], p1, p12, p2)
self.assertCurve(e[1], p2, p23, p3)
diff --git a/src/Mod/Path/PathTests/TestPathLog.py b/src/Mod/Path/PathTests/TestPathLog.py
index f9b1c81bb5..5af2a4f7b2 100644
--- a/src/Mod/Path/PathTests/TestPathLog.py
+++ b/src/Mod/Path/PathTests/TestPathLog.py
@@ -35,11 +35,11 @@ class TestPathLog(unittest.TestCase):
PathLog.untrackAllModules()
def callerFile(self):
- return PathLog._caller()[0]
+ return PathLog._caller()[0] # pylint: disable=protected-access
def callerLine(self):
- return PathLog._caller()[1]
+ return PathLog._caller()[1] # pylint: disable=protected-access
def callerFunc(self):
- return PathLog._caller()[2]
+ return PathLog._caller()[2] # pylint: disable=protected-access
def test00(self):
"""Check for proper module extraction."""
diff --git a/src/Mod/Path/PathTests/TestPathOpTools.py b/src/Mod/Path/PathTests/TestPathOpTools.py
index 1dbfb43552..7ee54417f9 100644
--- a/src/Mod/Path/PathTests/TestPathOpTools.py
+++ b/src/Mod/Path/PathTests/TestPathOpTools.py
@@ -24,7 +24,6 @@
import FreeCAD
import Part
-import Path
import PathScripts.PathGeom as PathGeom
import PathScripts.PathOpTools as PathOpTools
import PathScripts.PathLog as PathLog
@@ -78,7 +77,7 @@ class TestPathOpTools(PathTestUtils.PathTestBase):
@classmethod
def setUpClass(cls):
- global doc
+ global doc # pylint: disable=global-statement
doc = FreeCAD.openDocument(FreeCAD.getHomePath() + 'Mod/Path/PathTests/test_geomop.fcstd')
@classmethod
diff --git a/src/Mod/Path/PathTests/TestPathPost.py b/src/Mod/Path/PathTests/TestPathPost.py
index 02ca02faf3..0e504aeced 100644
--- a/src/Mod/Path/PathTests/TestPathPost.py
+++ b/src/Mod/Path/PathTests/TestPathPost.py
@@ -33,6 +33,7 @@ import PathScripts.PathUtil
import difflib
import unittest
+WriteDebugOutput = False
class PathPostTestCases(unittest.TestCase):
@@ -63,8 +64,8 @@ class PathPostTestCases(unittest.TestCase):
refGCode = fp.read()
# Use if this test fails in order to have a real good look at the changes
- if False:
- with open('tab.tmp', 'w') as fp:
+ if WriteDebugOutput:
+ with open('testLinuxCNC.tmp', 'w') as fp:
fp.write(gcode)
if gcode != refGCode:
@@ -81,8 +82,8 @@ class PathPostTestCases(unittest.TestCase):
refGCode = fp.read()
# Use if this test fails in order to have a real good look at the changes
- if False:
- with open('tab.tmp', 'w') as fp:
+ if WriteDebugOutput:
+ with open('testLinuxCNCImplerial.tmp', 'w') as fp:
fp.write(gcode)
if gcode != refGCode:
@@ -99,8 +100,8 @@ class PathPostTestCases(unittest.TestCase):
refGCode = fp.read()
# Use if this test fails in order to have a real good look at the changes
- if False:
- with open('tab.tmp', 'w') as fp:
+ if WriteDebugOutput:
+ with open('testCentroid.tmp', 'w') as fp:
fp.write(gcode)
if gcode != refGCode:
diff --git a/src/Mod/Path/PathTests/TestPathSetupSheet.py b/src/Mod/Path/PathTests/TestPathSetupSheet.py
index a92375561d..3bd7707978 100644
--- a/src/Mod/Path/PathTests/TestPathSetupSheet.py
+++ b/src/Mod/Path/PathTests/TestPathSetupSheet.py
@@ -23,7 +23,6 @@
# ***************************************************************************
import FreeCAD
-import Path
import PathScripts.PathSetupSheet as PathSetupSheet
import PathScripts.PathLog as PathLog
import sys
diff --git a/src/Mod/Path/PathTests/TestPathStock.py b/src/Mod/Path/PathTests/TestPathStock.py
index 7e4762799f..d85b957c5f 100644
--- a/src/Mod/Path/PathTests/TestPathStock.py
+++ b/src/Mod/Path/PathTests/TestPathStock.py
@@ -23,8 +23,6 @@
# ***************************************************************************
import FreeCAD
-import Part
-import Path
import PathScripts.PathStock as PathStock
from PathTests.PathTestUtils import PathTestBase
diff --git a/src/Mod/Path/PathTests/TestPathTool.py b/src/Mod/Path/PathTests/TestPathTool.py
index a3aa459fd0..85a1f2c82a 100644
--- a/src/Mod/Path/PathTests/TestPathTool.py
+++ b/src/Mod/Path/PathTests/TestPathTool.py
@@ -22,7 +22,6 @@
# * *
# ***************************************************************************
-import FreeCAD
import Path
from PathTests.PathTestUtils import PathTestBase
diff --git a/src/Mod/Path/PathTests/TestPathTooltable.py b/src/Mod/Path/PathTests/TestPathTooltable.py
index dbde438e09..9ac2b722c1 100644
--- a/src/Mod/Path/PathTests/TestPathTooltable.py
+++ b/src/Mod/Path/PathTests/TestPathTooltable.py
@@ -22,7 +22,6 @@
# * *
# ***************************************************************************
-import FreeCAD
import Path
from PathTests.PathTestUtils import PathTestBase
diff --git a/src/Mod/Path/PathTests/TestPathUtil.py b/src/Mod/Path/PathTests/TestPathUtil.py
index a2b996d5ff..20edcd276a 100644
--- a/src/Mod/Path/PathTests/TestPathUtil.py
+++ b/src/Mod/Path/PathTests/TestPathUtil.py
@@ -23,10 +23,7 @@
# ***************************************************************************
import FreeCAD
-import Part
-import Path
import PathScripts.PathUtil as PathUtil
-import Sketcher
import TestSketcherApp
from PathTests.PathTestUtils import PathTestBase
diff --git a/src/Mod/Path/utils/path-lint.sh b/src/Mod/Path/utils/path-lint.sh
index 81bbc11b5f..f0106ca82d 100755
--- a/src/Mod/Path/utils/path-lint.sh
+++ b/src/Mod/Path/utils/path-lint.sh
@@ -57,22 +57,30 @@ EXTERNAL_MODULES+=' PySide'
EXTERNAL_MODULES+=' PySide.QtCore'
EXTERNAL_MODULES+=' PySide.QtGui'
EXTERNAL_MODULES+=' TechDraw'
+EXTERNAL_MODULES+=' TestSketcherApp'
EXTERNAL_MODULES+=' area'
EXTERNAL_MODULES+=' importlib'
EXTERNAL_MODULES+=' ocl'
EXTERNAL_MODULES+=' pivy'
+IGNORE_MODULES+=' grbl_post.py'
+IGNORE_MODULES+=' PathSimulatorGui.py'
+IGNORE_MODULES+=' PathSurface.py'
+
#ARGS+=" --errors-only"
ARGS+=" --disable=C,R"
ARGS+=" --ignored-modules=$(echo ${EXTERNAL_MODULES} | tr ' ' ',')"
-ARGS+=" --ignore=post"
-ARGS+=" --jobs=4"
+if [ -n "${IGNORE_MODULES}" ]; then
+ ARGS+=" --ignore=$(echo ${IGNORE_MODULES} | tr ' ' ',')"
+fi
+ARGS+=" --jobs=0"
if [ -z "$(which pylint3)" ]; then
echo "Cannot find pylint, please install and try again!"
exit 1
fi
-#pylint3 ${ARGS} PathScripts/ PathTests/
-pylint3 ${ARGS} PathScripts/
+pylint3 ${ARGS} PathScripts/ PathTests/
+#pylint3 ${ARGS} PathScripts/
+#pylint3 ${ARGS} PathTests/