diff --git a/src/Python/IO/3DSImporter.py b/src/Python/IO/3DSImporter.py
index b4763572dcd2c5012121503279626eb44d65e5a6..c294f356a3215528bd03fa89f7d64698626703d8 100755
--- a/src/Python/IO/3DSImporter.py
+++ b/src/Python/IO/3DSImporter.py
@@ -1,20 +1,31 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkIOImport import vtk3DSImporter
+from vtkmodules.vtkRenderingCore import (
+    vtkCamera,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
     fileName = get_program_parameters()
 
-    importer = vtk.vtk3DSImporter()
+    importer = vtk3DSImporter()
     importer.SetFileName(fileName)
     importer.ComputeNormalsOn()
 
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
-    renderer = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
-    iren = vtk.vtkRenderWindowInteractor()
+    renderer = vtkRenderer()
+    renWin = vtkRenderWindow()
+    iren = vtkRenderWindowInteractor()
 
     renWin.AddRenderer(renderer)
     renderer.SetBackground2(colors.GetColor3d('Gold'))
@@ -25,13 +36,13 @@ def main():
     importer.SetRenderWindow(renWin)
     importer.Update()
 
-    # actors = vtk.vtkActorCollection()
+    # actors = vtkActorCollection()
     actors = renderer.GetActors()
     print('There are', actors.GetNumberOfItems(), 'actors.')
 
     renWin.SetWindowName('3DSImporter')
     renWin.Render()
-    camera = vtk.vtkCamera()
+    camera = vtkCamera()
     camera.SetPosition(0, -1, 0)
     camera.SetFocalPoint(0, 0, 0)
     camera.SetViewUp(0, 0, 1)
diff --git a/src/Python/IO/HDRReader.py b/src/Python/IO/HDRReader.py
index 4a18221f78e44f907a2c0c73b939d63140ecefab..bc4ec97e702dd715c78eaa43415fde5408eeb921 100755
--- a/src/Python/IO/HDRReader.py
+++ b/src/Python/IO/HDRReader.py
@@ -1,6 +1,10 @@
 ##!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkIOImage import vtkHDRReader
+from vtkmodules.vtkInteractionImage import vtkImageViewer
+from vtkmodules.vtkRenderingCore import vtkRenderWindowInteractor
 
 
 def get_program_parameters():
@@ -22,7 +26,7 @@ A callback is used to print out the color window (move the mouse horizontally ov
 def main():
     file_name = get_program_parameters()
 
-    reader = vtk.vtkHDRReader()
+    reader = vtkHDRReader()
 
     # Check the image can be read
     if not reader.CanReadFile(file_name):
@@ -37,14 +41,14 @@ def main():
     extents = [we[0], we[1], we[2], we[3], 0, 0]
     reader.UpdateExtent(extents)
     # Visualize
-    image_viewer = vtk.vtkImageViewer()
+    image_viewer = vtkImageViewer()
     image_viewer.SetInputData(reader.GetOutput())
 
     image_viewer.SetColorWindow(1)
     image_viewer.SetColorLevel(1)
     image_viewer.SetPosition(0, 100)
 
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     image_viewer.SetupInteractor(iren)
     image_viewer.GetRenderWindow().SetWindowName('HDRReader')
     image_viewer.Render()
diff --git a/src/Python/IO/ImageWriter.py b/src/Python/IO/ImageWriter.py
index cc73a97af31525611c9efa8751a0922624fe17d8..6f6b42cffacb4a6de666bc57ca0547707c03f7c2 100755
--- a/src/Python/IO/ImageWriter.py
+++ b/src/Python/IO/ImageWriter.py
@@ -1,34 +1,55 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOImage import (
+    vtkBMPWriter,
+    vtkJPEGWriter,
+    vtkPNGWriter,
+    vtkPNMWriter,
+    vtkPostScriptWriter,
+    vtkTIFFWriter
+)
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer,
+    vtkWindowToImageFilter
+)
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # Set the background color.
     colors.SetColor('BkgColor', [26, 51, 102, 255])
 
     # create a rendering window and renderer
-    ren = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    ren = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(ren)
 
     # create a renderwindowinteractor
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     # create source
-    source = vtk.vtkSphereSource()
+    source = vtkSphereSource()
     source.SetCenter(0, 0, 0)
     source.SetRadius(5.0)
 
     # mapper
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(source.GetOutputPort())
 
     # actor
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
 
     # color the actor
@@ -75,21 +96,21 @@ def WriteImage(fileName, renWin, rgba=True):
             ext = '.png'
             fileName = fileName + ext
         if ext == '.bmp':
-            writer = vtk.vtkBMPWriter()
+            writer = vtkBMPWriter()
         elif ext == '.jpg':
-            writer = vtk.vtkJPEGWriter()
+            writer = vtkJPEGWriter()
         elif ext == '.pnm':
-            writer = vtk.vtkPNMWriter()
+            writer = vtkPNMWriter()
         elif ext == '.ps':
             if rgba:
                 rgba = False
-            writer = vtk.vtkPostScriptWriter()
+            writer = vtkPostScriptWriter()
         elif ext == '.tiff':
-            writer = vtk.vtkTIFFWriter()
+            writer = vtkTIFFWriter()
         else:
-            writer = vtk.vtkPNGWriter()
+            writer = vtkPNGWriter()
 
-        windowto_image_filter = vtk.vtkWindowToImageFilter()
+        windowto_image_filter = vtkWindowToImageFilter()
         windowto_image_filter.SetInput(renWin)
         windowto_image_filter.SetScale(1)  # image quality
         if rgba:
diff --git a/src/Python/IO/ReadExodusData.py b/src/Python/IO/ReadExodusData.py
index 7991cdf8c9eaec2bbaf5e701f03c6d6a0de2da85..853e9a2a4e0e45cb59d4d2110ddad713353e7b9b 100755
--- a/src/Python/IO/ReadExodusData.py
+++ b/src/Python/IO/ReadExodusData.py
@@ -1,6 +1,19 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersGeometry import vtkCompositeDataGeometryFilter
+from vtkmodules.vtkIOExodus import vtkExodusIIReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -16,38 +29,38 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # Input file and variable
     filename, nodal_var = get_program_parameters()
 
     # Read Exodus Data
-    reader = vtk.vtkExodusIIReader()
+    reader = vtkExodusIIReader()
     reader.SetFileName(filename)
     reader.UpdateInformation()
     reader.SetTimeStep(10)
-    reader.SetAllArrayStatus(vtk.vtkExodusIIReader.NODAL, 1)  # enables all NODAL variables
+    reader.SetAllArrayStatus(vtkExodusIIReader.NODAL, 1)  # enables all NODAL variables
     reader.Update()
     # print(reader)  # uncomment this to show the file information
 
     # Create Geometry
-    geometry = vtk.vtkCompositeDataGeometryFilter()
+    geometry = vtkCompositeDataGeometryFilter()
     geometry.SetInputConnection(0, reader.GetOutputPort(0))
     geometry.Update()
 
     # Mapper
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(geometry.GetOutputPort())
     mapper.SelectColorArray(nodal_var)
     mapper.SetScalarModeToUsePointFieldData()
     mapper.InterpolateScalarsBeforeMappingOn()
 
     # Actor
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
 
     # Renderer
-    renderer = vtk.vtkRenderer()
+    renderer = vtkRenderer()
     renderer.AddViewProp(actor)
     renderer.SetBackground(colors.GetColor3d('DimGray'))
 
@@ -57,12 +70,12 @@ def main():
     renderer.GetActiveCamera().SetDistance(14.5)
 
     # Window and Interactor
-    window = vtk.vtkRenderWindow()
+    window = vtkRenderWindow()
     window.AddRenderer(renderer)
     window.SetSize(600, 600)
     window.SetWindowName('ReadExodusData')
 
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(window)
     interactor.Initialize()
 
diff --git a/src/Python/IO/ReadImageData.py b/src/Python/IO/ReadImageData.py
index db77ed6bec7dec4bf074bd9fdee939a9041fb12b..7d3d6b5c4c4d8f997dcb02573f9a191764a0b59b 100755
--- a/src/Python/IO/ReadImageData.py
+++ b/src/Python/IO/ReadImageData.py
@@ -1,7 +1,19 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkIOXML import vtkXMLImageDataReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkDataSetMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -16,37 +28,37 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     file_name = get_program_parameters()
 
     # Read the source file.
-    reader = vtk.vtkXMLImageDataReader()
+    reader = vtkXMLImageDataReader()
     reader.SetFileName(file_name)
 
     # Create the mapper that creates graphics elements
-    mapper = vtk.vtkDataSetMapper()
+    mapper = vtkDataSetMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
     # Create the Actor
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     # show the edges of the image grid
     actor.GetProperty().SetRepresentationToWireframe()
 
     # Create the Renderer
-    renderer = vtk.vtkRenderer()
+    renderer = vtkRenderer()
     renderer.AddActor(actor)
     renderer.ResetCamera()
     renderer.SetBackground(colors.GetColor3d('Silver'))
 
     # Create the RendererWindow
-    renderer_window = vtk.vtkRenderWindow()
+    renderer_window = vtkRenderWindow()
     renderer_window.AddRenderer(renderer)
     renderer_window.SetWindowName('ReadImageData')
 
     # Create the RendererWindowInteractor and display the vti file
-    interactor = vtk.vtkRenderWindowInteractor()
+    interactor = vtkRenderWindowInteractor()
     interactor.SetRenderWindow(renderer_window)
     interactor.Initialize()
     interactor.Start()
diff --git a/src/Python/IO/ReadLegacyUnstructuredGrid.py b/src/Python/IO/ReadLegacyUnstructuredGrid.py
index 7c1bcd17b390949f48983f278028f082817b79a8..5a722fd6e55815bc7cdea198cf449a6b0ea66473 100755
--- a/src/Python/IO/ReadLegacyUnstructuredGrid.py
+++ b/src/Python/IO/ReadLegacyUnstructuredGrid.py
@@ -1,62 +1,94 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingContextOpenGL2
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkChartsCore import vtkCategoryLegend
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkCommonCore import (
+    vtkLookupTable,
+    vtkVariantArray
+)
+from vtkmodules.vtkCommonDataModel import (
+    vtkCellTypes,
+    vtkGenericCell
+)
+from vtkmodules.vtkFiltersCore import vtkTubeFilter
+from vtkmodules.vtkFiltersExtraction import vtkExtractEdges
+from vtkmodules.vtkFiltersGeneral import vtkShrinkFilter
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOLegacy import vtkUnstructuredGridReader
+from vtkmodules.vtkRenderingContext2D import vtkContextTransform
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkActor2D,
+    vtkCamera,
+    vtkDataSetMapper,
+    vtkGlyph3DMapper,
+    vtkPolyDataMapper,
+    vtkRenderWindowInteractor
+)
+from vtkmodules.vtkRenderingLabel import vtkLabeledDataMapper
+from vtkmodules.vtkViewsContext2D import vtkContextView
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
     # Create the reader for the data.
     print('Loading ', filename)
-    reader = vtk.vtkUnstructuredGridReader()
+    reader = vtkUnstructuredGridReader()
     reader.SetFileName(filename)
     reader.Update()
 
-    extractEdges = vtk.vtkExtractEdges()
+    extractEdges = vtkExtractEdges()
     extractEdges.SetInputConnection(reader.GetOutputPort())
 
-    legendValues = vtk.vtkVariantArray()
+    legendValues = vtkVariantArray()
     it = reader.GetOutput().NewCellIterator()
     it.InitTraversal()
     while not it.IsDoneWithTraversal():
-        cell = vtk.vtkGenericCell()
+        cell = vtkGenericCell()
         it.GetCell(cell)
-        cellName = vtk.vtkCellTypes.GetClassNameFromTypeId(cell.GetCellType())
+        cellName = vtkCellTypes.GetClassNameFromTypeId(cell.GetCellType())
         print(cellName, 'NumberOfPoints:', cell.GetNumberOfPoints(), 'CellDimension:', cell.GetCellDimension())
         legendValues.InsertNextValue(cellName)
         it.GoToNextCell()
 
     # Tube the edges
-    tubes = vtk.vtkTubeFilter()
+    tubes = vtkTubeFilter()
     tubes.SetInputConnection(extractEdges.GetOutputPort())
     tubes.SetRadius(.05)
     tubes.SetNumberOfSides(21)
 
-    edgeMapper = vtk.vtkPolyDataMapper()
+    edgeMapper = vtkPolyDataMapper()
     edgeMapper.SetInputConnection(tubes.GetOutputPort())
     edgeMapper.SetScalarRange(0, 26)
 
-    edgeActor = vtk.vtkActor()
+    edgeActor = vtkActor()
     edgeActor.SetMapper(edgeMapper)
     edgeActor.GetProperty().SetSpecular(0.6)
     edgeActor.GetProperty().SetSpecularPower(30)
 
     # Glyph the points
-    sphere = vtk.vtkSphereSource()
+    sphere = vtkSphereSource()
     sphere.SetPhiResolution(21)
     sphere.SetThetaResolution(21)
     sphere.SetRadius(0.08)
 
-    pointMapper = vtk.vtkGlyph3DMapper()
+    pointMapper = vtkGlyph3DMapper()
     pointMapper.SetInputConnection(reader.GetOutputPort())
     pointMapper.SetSourceConnection(sphere.GetOutputPort())
     pointMapper.ScalingOff()
     pointMapper.ScalarVisibilityOff()
 
-    pointActor = vtk.vtkActor()
+    pointActor = vtkActor()
     pointActor.SetMapper(pointMapper)
     pointActor.GetProperty().SetDiffuseColor(colors.GetColor3d('Banana'))
     pointActor.GetProperty().SetSpecular(0.6)
@@ -64,31 +96,31 @@ def main():
     pointActor.GetProperty().SetSpecularPower(100)
 
     # Label the points
-    labelMapper = vtk.vtkLabeledDataMapper()
+    labelMapper = vtkLabeledDataMapper()
     labelMapper.SetInputConnection(reader.GetOutputPort())
-    labelActor = vtk.vtkActor2D()
+    labelActor = vtkActor2D()
     labelActor.SetMapper(labelMapper)
 
     # The geometry
-    geometryShrink = vtk.vtkShrinkFilter()
+    geometryShrink = vtkShrinkFilter()
     geometryShrink.SetInputConnection(reader.GetOutputPort())
     geometryShrink.SetShrinkFactor(0.8)
 
     # NOTE: We must copy the originalLut because the CategoricalLegend
     # needs an indexed lookup table, but the geometryMapper uses a
     # non-index lookup table
-    categoricalLut = vtk.vtkLookupTable()
+    categoricalLut = vtkLookupTable()
     originalLut = reader.GetOutput().GetCellData().GetScalars().GetLookupTable()
 
     categoricalLut.DeepCopy(originalLut)
     categoricalLut.IndexedLookupOn()
 
-    geometryMapper = vtk.vtkDataSetMapper()
+    geometryMapper = vtkDataSetMapper()
     geometryMapper.SetInputConnection(geometryShrink.GetOutputPort())
     geometryMapper.SetScalarModeToUseCellData()
     geometryMapper.SetScalarRange(0, 11)
 
-    geometryActor = vtk.vtkActor()
+    geometryActor = vtkActor()
     geometryActor.SetMapper(geometryMapper)
     geometryActor.GetProperty().SetLineWidth(3)
     geometryActor.GetProperty().EdgeVisibilityOn()
@@ -97,24 +129,24 @@ def main():
     # Legend
     for v in range(0, legendValues.GetNumberOfTuples()):
         categoricalLut.SetAnnotation(legendValues.GetValue(v), legendValues.GetValue(v).ToString())
-    legend = vtk.vtkCategoryLegend()
+    legend = vtkCategoryLegend()
     legend.SetScalarsToColors(categoricalLut)
     legend.SetValues(legendValues)
     legend.SetTitle('Cell Type')
     legend.GetBrush().SetColor(colors.GetColor4ub('Silver'))
 
-    placeLegend = vtk.vtkContextTransform()
+    placeLegend = vtkContextTransform()
     placeLegend.AddItem(legend)
     placeLegend.Translate(640 - 20, 480 - 12 * 16)
 
-    contextView = vtk.vtkContextView()
+    contextView = vtkContextView()
     contextView.GetScene().AddItem(placeLegend)
 
     renderer = contextView.GetRenderer()
 
     renderWindow = contextView.GetRenderWindow()
 
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
 
     renderer.AddActor(geometryActor)
@@ -123,7 +155,7 @@ def main():
     renderer.AddActor(pointActor)
     renderer.SetBackground(colors.GetColor3d('SlateGray'))
 
-    aCamera = vtk.vtkCamera()
+    aCamera = vtkCamera()
     aCamera.Azimuth(-40.0)
     aCamera.Elevation(50.0)
 
@@ -145,7 +177,7 @@ def get_program_parameters():
    '''
     parser = argparse.ArgumentParser(description=description, epilog=epilogue,
                                      formatter_class=argparse.RawDescriptionHelpFormatter)
-    parser.add_argument('filename', help='VTKCellTypes.vtk.')
+    parser.add_argument('filename', help='VTKCellTypes.')
     args = parser.parse_args()
     return args.filename
 
diff --git a/src/Python/IO/ReadPolyData.py b/src/Python/IO/ReadPolyData.py
index 21315c9988db0d2d6de65db9219406fd1d5fc220..deb0b9f05e7dab9eb902ff426c92762e946ee264 100755
--- a/src/Python/IO/ReadPolyData.py
+++ b/src/Python/IO/ReadPolyData.py
@@ -1,6 +1,18 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkIOXML import vtkXMLPolyDataReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -15,27 +27,27 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
     # Read all the data from the file
-    reader = vtk.vtkXMLPolyDataReader()
+    reader = vtkXMLPolyDataReader()
     reader.SetFileName(filename)
     reader.Update()
 
     # Visualize
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetColor(colors.GetColor3d('NavajoWhite'))
 
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.AddRenderer(renderer)
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
 
     renderer.AddActor(actor)
diff --git a/src/Python/IO/ReadSLC.py b/src/Python/IO/ReadSLC.py
index 84ad7486356118d167686b6e92e1a35a2ed3b61a..87e3c89c915481c197e3b7f1da4548c69470366a 100755
--- a/src/Python/IO/ReadSLC.py
+++ b/src/Python/IO/ReadSLC.py
@@ -1,39 +1,53 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersCore import vtkContourFilter
+from vtkmodules.vtkFiltersModeling import vtkOutlineFilter
+from vtkmodules.vtkIOImage import vtkSLCReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def main():
     InputFilename, iso_value = get_program_parameters()
 
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     # vtkSLCReader to read.
-    reader = vtk.vtkSLCReader()
+    reader = vtkSLCReader()
     reader.SetFileName(InputFilename)
     reader.Update()
 
     # Create a mapper.
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
     # Implementing Marching Cubes Algorithm to create the surface using vtkContourFilter object.
-    contourFilter = vtk.vtkContourFilter()
+    contourFilter = vtkContourFilter()
     contourFilter.SetInputConnection(reader.GetOutputPort())
     # Change the range(2nd and 3rd Paramater) based on your
     # requirement. recomended value for 1st parameter is above 1
     # contourFilter.GenerateValues(5, 80.0, 100.0)
     contourFilter.SetValue(0, iso_value)
 
-    outliner = vtk.vtkOutlineFilter()
+    outliner = vtkOutlineFilter()
     outliner.SetInputConnection(reader.GetOutputPort())
     outliner.Update()
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(contourFilter.GetOutputPort())
     mapper.SetScalarVisibility(0)
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetDiffuse(0.8)
     actor.GetProperty().SetDiffuseColor(colors.GetColor3d('Ivory'))
@@ -41,13 +55,13 @@ def main():
     actor.GetProperty().SetSpecularPower(120.0)
 
     # Create a rendering window and renderer.
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.AddRenderer(renderer)
     renderWindow.SetSize(500, 500)
 
     # Create a renderwindowinteractor.
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
 
     # Assign actor to the renderer.
diff --git a/src/Python/IO/ReadSTL.py b/src/Python/IO/ReadSTL.py
index 15787eb0066b2fd113990fb6d0002ff179cbfced..bcfd637f7560f21ff9c7fe665c4ee75a1883dafa 100755
--- a/src/Python/IO/ReadSTL.py
+++ b/src/Python/IO/ReadSTL.py
@@ -1,6 +1,18 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkIOGeometry import vtkSTLReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -15,17 +27,17 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
-    reader = vtk.vtkSTLReader()
+    reader = vtkSTLReader()
     reader.SetFileName(filename)
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetDiffuse(0.8)
     actor.GetProperty().SetDiffuseColor(colors.GetColor3d('LightSteelBlue'))
@@ -33,13 +45,13 @@ def main():
     actor.GetProperty().SetSpecularPower(60.0)
 
     # Create a rendering window and renderer
-    ren = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    ren = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(ren)
     renWin.SetWindowName('ReadSTL')
 
     # Create a renderwindowinteractor
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     # Assign actor to the renderer
diff --git a/src/Python/IO/ReadVTP.py b/src/Python/IO/ReadVTP.py
index dc2e5262a50ca6314260559215bf9812765d6a87..8326a8c145971e6d72863a6c2e86b3740e599e27 100755
--- a/src/Python/IO/ReadVTP.py
+++ b/src/Python/IO/ReadVTP.py
@@ -1,4 +1,16 @@
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkIOXML import vtkXMLPolyDataReader
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -13,29 +25,29 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
-    reader = vtk.vtkXMLPolyDataReader()
+    reader = vtkXMLPolyDataReader()
     reader.SetFileName(filename)
     reader.Update()
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetColor(colors.GetColor3d('Tan'))
 
     # Create a rendering window and renderer
-    ren = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    ren = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(ren)
     renWin.SetWindowName('ReadVTP')
 
     # Create a renderwindowinteractor
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     # Assign actor to the renderer
diff --git a/src/Python/IO/WriteLegacyLinearCells.py b/src/Python/IO/WriteLegacyLinearCells.py
index 128534cd746996bc02d47c679e346bbc9c1bada6..0656856da224b725c7a383c550d62d8a04f2aad7 100755
--- a/src/Python/IO/WriteLegacyLinearCells.py
+++ b/src/Python/IO/WriteLegacyLinearCells.py
@@ -1,26 +1,50 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonCore import vtkPoints
+from vtkmodules.vtkCommonDataModel import (
+    vtkHexagonalPrism,
+    vtkHexahedron,
+    vtkLine,
+    vtkPentagonalPrism,
+    vtkPixel,
+    vtkPolyLine,
+    vtkPolyVertex,
+    vtkPolygon,
+    vtkPyramid,
+    vtkQuad,
+    vtkTetra,
+    vtkTriangle,
+    vtkTriangleStrip,
+    vtkUnstructuredGrid,
+    vtkVertex,
+    vtkVoxel,
+    vtkWedge
+)
+from vtkmodules.vtkIOLegacy import vtkUnstructuredGridWriter
 
 
 def main():
     filenames = list()
     uGrids = list()
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkVertex()))
+    uGrids.append(MakeUnstructuredGrid(vtkVertex()))
     filenames.append('Vertex.vtk')
 
     uGrids.append(MakePolyVertex())
     filenames.append('PolyVertex.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkLine()))
+    uGrids.append(MakeUnstructuredGrid(vtkLine()))
     filenames.append('Line.vtk')
 
     uGrids.append(MakePolyLine())
     filenames.append('PolyLine.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkTriangle()))
+    uGrids.append(MakeUnstructuredGrid(vtkTriangle()))
     filenames.append('Triangle.vtk')
 
     uGrids.append(MakeTriangleStrip())
@@ -29,37 +53,37 @@ def main():
     uGrids.append(MakePolygon())
     filenames.append('Polygon.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPixel()))
+    uGrids.append(MakeUnstructuredGrid(vtkPixel()))
     filenames.append('Pixel.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkQuad()))
+    uGrids.append(MakeUnstructuredGrid(vtkQuad()))
     filenames.append('Quad.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkTetra()))
+    uGrids.append(MakeUnstructuredGrid(vtkTetra()))
     filenames.append('Tetra.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkVoxel()))
+    uGrids.append(MakeUnstructuredGrid(vtkVoxel()))
     filenames.append('Voxel.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkHexahedron()))
+    uGrids.append(MakeUnstructuredGrid(vtkHexahedron()))
     filenames.append('Hexahedron.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkWedge()))
+    uGrids.append(MakeUnstructuredGrid(vtkWedge()))
     filenames.append('Wedge.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPyramid()))
+    uGrids.append(MakeUnstructuredGrid(vtkPyramid()))
     filenames.append('Pyramid.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPentagonalPrism()))
+    uGrids.append(MakeUnstructuredGrid(vtkPentagonalPrism()))
     filenames.append('PentagonalPrism.vtk')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkHexagonalPrism()))
+    uGrids.append(MakeUnstructuredGrid(vtkHexagonalPrism()))
     filenames.append('HexagonalPrism.vtk')
 
     # Write each grid into  a file
     for i in range(0, len(uGrids)):
         print('Writing: ', filenames[i])
-        writer = vtk.vtkUnstructuredGridWriter()
+        writer = vtkUnstructuredGridWriter()
         writer.SetFileName(filenames[i])
         writer.SetInputData(uGrids[i])
         writer.Write()
@@ -71,7 +95,7 @@ def MakeUnstructuredGrid(aCell):
         aCell.GetPointIds().SetId(i, i)
         aCell.GetPoints().SetPoint(i, (pcoords[3 * i]), (pcoords[3 * i + 1]), (pcoords[3 * i + 2]))
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(aCell.GetPoints())
     ug.InsertNextCell(aCell.GetCellType(), aCell.GetPointIds())
     return ug
@@ -81,7 +105,7 @@ def MakePolyVertex():
     # A polyvertex is a cell represents a set of 0D vertices
     numberOfVertices = 6
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(1, 0, 0)
     points.InsertNextPoint(0, 1, 0)
@@ -89,13 +113,13 @@ def MakePolyVertex():
     points.InsertNextPoint(1, 0, .4)
     points.InsertNextPoint(0, 1, .6)
 
-    polyVertex = vtk.vtkPolyVertex()
+    polyVertex = vtkPolyVertex()
     polyVertex.GetPointIds().SetNumberOfIds(numberOfVertices)
 
     for i in range(0, numberOfVertices):
         polyVertex.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polyVertex.GetCellType(), polyVertex.GetPointIds())
 
@@ -106,20 +130,20 @@ def MakePolyLine():
     # A polyline is a cell that represents a set of 1D lines
     numberOfVertices = 5
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, .5, 0)
     points.InsertNextPoint(.5, 0, 0)
     points.InsertNextPoint(1, .3, 0)
     points.InsertNextPoint(1.5, .4, 0)
     points.InsertNextPoint(2.0, .4, 0)
 
-    polyline = vtk.vtkPolyLine()
+    polyline = vtkPolyLine()
     polyline.GetPointIds().SetNumberOfIds(numberOfVertices)
 
     for i in range(0, numberOfVertices):
         polyline.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polyline.GetCellType(), polyline.GetPointIds())
 
@@ -130,7 +154,7 @@ def MakeTriangleStrip():
     # A triangle is a cell that represents a triangle strip
     numberOfVertices = 10
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(.5, 1, 0)
     points.InsertNextPoint(1, -.1, 0)
@@ -142,12 +166,12 @@ def MakeTriangleStrip():
     points.InsertNextPoint(4.0, -.2, 0)
     points.InsertNextPoint(4.5, 1.1, 0)
 
-    trianglestrip = vtk.vtkTriangleStrip()
+    trianglestrip = vtkTriangleStrip()
     trianglestrip.GetPointIds().SetNumberOfIds(numberOfVertices)
     for i in range(0, numberOfVertices):
         trianglestrip.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(trianglestrip.GetCellType(), trianglestrip.GetPointIds())
 
@@ -158,7 +182,7 @@ def MakePolygon():
     # A polygon is a cell that represents a polygon
     numberOfVertices = 6
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(1, -.1, 0)
     points.InsertNextPoint(.8, .5, 0)
@@ -166,12 +190,12 @@ def MakePolygon():
     points.InsertNextPoint(.6, 1.2, 0)
     points.InsertNextPoint(0, .8, 0)
 
-    polygon = vtk.vtkPolygon()
+    polygon = vtkPolygon()
     polygon.GetPointIds().SetNumberOfIds(numberOfVertices)
     for i in range(0, numberOfVertices):
         polygon.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polygon.GetCellType(), polygon.GetPointIds())
 
diff --git a/src/Python/IO/WritePLY.py b/src/Python/IO/WritePLY.py
index 2c75f62ed7e2722d6601a90a9bad6be0a89dd624..ff36a972b030b795dac56b3b3e15ba720a17d779 100755
--- a/src/Python/IO/WritePLY.py
+++ b/src/Python/IO/WritePLY.py
@@ -1,4 +1,20 @@
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOPLY import (
+    vtkPLYReader,
+    vtkPLYWriter
+)
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -15,36 +31,36 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
-    sphereSource = vtk.vtkSphereSource()
+    sphereSource = vtkSphereSource()
     sphereSource.Update()
 
-    plyWriter = vtk.vtkPLYWriter()
+    plyWriter = vtkPLYWriter()
     plyWriter.SetFileName(filename)
     plyWriter.SetInputConnection(sphereSource.GetOutputPort())
     plyWriter.Write()
 
     # Read and display for verification
-    reader = vtk.vtkPLYReader()
+    reader = vtkPLYReader()
     reader.SetFileName(filename)
     reader.Update()
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetColor(colors.GetColor3d('MistyRose'))
 
-    renderer = vtk.vtkRenderer()
-    renderWindow = vtk.vtkRenderWindow()
+    renderer = vtkRenderer()
+    renderWindow = vtkRenderWindow()
     renderWindow.AddRenderer(renderer)
     renderWindow.SetWindowName('WritePLY')
 
-    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
+    renderWindowInteractor = vtkRenderWindowInteractor()
     renderWindowInteractor.SetRenderWindow(renderWindow)
 
     renderer.AddActor(actor)
diff --git a/src/Python/IO/WriteSTL.py b/src/Python/IO/WriteSTL.py
index 97b7f4226d3187baec89c8f77601b779db869530..88dd0c5d10ff92e19753431d1878732a2d40280e 100755
--- a/src/Python/IO/WriteSTL.py
+++ b/src/Python/IO/WriteSTL.py
@@ -1,6 +1,22 @@
 #!/usr/bin/env python
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonColor import vtkNamedColors
+from vtkmodules.vtkFiltersSources import vtkSphereSource
+from vtkmodules.vtkIOGeometry import (
+    vtkSTLReader,
+    vtkSTLWriter
+)
+from vtkmodules.vtkRenderingCore import (
+    vtkActor,
+    vtkPolyDataMapper,
+    vtkRenderWindow,
+    vtkRenderWindowInteractor,
+    vtkRenderer
+)
 
 
 def get_program_parameters():
@@ -17,38 +33,38 @@ def get_program_parameters():
 
 
 def main():
-    colors = vtk.vtkNamedColors()
+    colors = vtkNamedColors()
 
     filename = get_program_parameters()
 
-    sphereSource = vtk.vtkSphereSource()
+    sphereSource = vtkSphereSource()
     sphereSource.Update()
 
     # Write the stl file to disk
-    stlWriter = vtk.vtkSTLWriter()
+    stlWriter = vtkSTLWriter()
     stlWriter.SetFileName(filename)
     stlWriter.SetInputConnection(sphereSource.GetOutputPort())
     stlWriter.Write()
 
     # Read and display for verification
-    reader = vtk.vtkSTLReader()
+    reader = vtkSTLReader()
     reader.SetFileName(filename)
 
-    mapper = vtk.vtkPolyDataMapper()
+    mapper = vtkPolyDataMapper()
     mapper.SetInputConnection(reader.GetOutputPort())
 
-    actor = vtk.vtkActor()
+    actor = vtkActor()
     actor.SetMapper(mapper)
     actor.GetProperty().SetColor(colors.GetColor3d('MistyRose'))
 
     # Create a rendering window and renderer
-    ren = vtk.vtkRenderer()
-    renWin = vtk.vtkRenderWindow()
+    ren = vtkRenderer()
+    renWin = vtkRenderWindow()
     renWin.AddRenderer(ren)
     renWin.SetWindowName('WriteSTL')
 
     # Create a renderwindowinteractor
-    iren = vtk.vtkRenderWindowInteractor()
+    iren = vtkRenderWindowInteractor()
     iren.SetRenderWindow(renWin)
 
     # Assign actor to the renderer
diff --git a/src/Python/IO/WriteTriangleToFile.py b/src/Python/IO/WriteTriangleToFile.py
index 1a286d5835d5ad2c7f7446bdb3e58e124a87d187..151aa388c2e70ea9aa525b690587d463556f3a74 100755
--- a/src/Python/IO/WriteTriangleToFile.py
+++ b/src/Python/IO/WriteTriangleToFile.py
@@ -1,4 +1,14 @@
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonCore import vtkPoints
+from vtkmodules.vtkCommonDataModel import (
+    vtkCellArray,
+    vtkPolyData,
+    vtkTriangle
+)
+from vtkmodules.vtkIOXML import vtkXMLPolyDataWriter
 
 
 def get_program_parameters():
@@ -17,9 +27,9 @@ def get_program_parameters():
 def main():
     filename = get_program_parameters()
 
-    Points = vtk.vtkPoints()
-    Triangles = vtk.vtkCellArray()
-    Triangle = vtk.vtkTriangle()
+    Points = vtkPoints()
+    Triangles = vtkCellArray()
+    Triangle = vtkTriangle()
 
     Points.InsertNextPoint(1.0, 0.0, 0.0)
     Points.InsertNextPoint(0.0, 0.0, 0.0)
@@ -30,12 +40,12 @@ def main():
     Triangle.GetPointIds().SetId(2, 2)
     Triangles.InsertNextCell(Triangle)
 
-    polydata = vtk.vtkPolyData()
+    polydata = vtkPolyData()
     polydata.SetPoints(Points)
     polydata.SetPolys(Triangles)
     polydata.Modified()
 
-    writer = vtk.vtkXMLPolyDataWriter()
+    writer = vtkXMLPolyDataWriter()
     writer.SetFileName(filename)
     writer.SetInputData(polydata)
     writer.Write()
diff --git a/src/Python/IO/WriteXMLLinearCells.py b/src/Python/IO/WriteXMLLinearCells.py
index 67db54c5cb7966de04cc1e75bfd1898c0bc94b14..93ed34af43d0f34777da1df3ace27fb08bd9428f 100755
--- a/src/Python/IO/WriteXMLLinearCells.py
+++ b/src/Python/IO/WriteXMLLinearCells.py
@@ -1,26 +1,50 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import vtkmodules.all as vtk
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkInteractionStyle
+# noinspection PyUnresolvedReferences
+import vtkmodules.vtkRenderingOpenGL2
+from vtkmodules.vtkCommonCore import vtkPoints
+from vtkmodules.vtkCommonDataModel import (
+    vtkHexagonalPrism,
+    vtkHexahedron,
+    vtkLine,
+    vtkPentagonalPrism,
+    vtkPixel,
+    vtkPolyLine,
+    vtkPolyVertex,
+    vtkPolygon,
+    vtkPyramid,
+    vtkQuad,
+    vtkTetra,
+    vtkTriangle,
+    vtkTriangleStrip,
+    vtkUnstructuredGrid,
+    vtkVertex,
+    vtkVoxel,
+    vtkWedge
+)
+from vtkmodules.vtkIOXML import vtkXMLDataSetWriter
 
 
 def main():
     filenames = list()
     uGrids = list()
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkVertex()))
+    uGrids.append(MakeUnstructuredGrid(vtkVertex()))
     filenames.append('Vertex.vtu')
 
     uGrids.append(MakePolyVertex())
     filenames.append('PolyVertex.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkLine()))
+    uGrids.append(MakeUnstructuredGrid(vtkLine()))
     filenames.append('Line.vtu')
 
     uGrids.append(MakePolyLine())
     filenames.append('PolyLine.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkTriangle()))
+    uGrids.append(MakeUnstructuredGrid(vtkTriangle()))
     filenames.append('Triangle.vtu')
 
     uGrids.append(MakeTriangleStrip())
@@ -29,37 +53,37 @@ def main():
     uGrids.append(MakePolygon())
     filenames.append('Polygon.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPixel()))
+    uGrids.append(MakeUnstructuredGrid(vtkPixel()))
     filenames.append('Pixel.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkQuad()))
+    uGrids.append(MakeUnstructuredGrid(vtkQuad()))
     filenames.append('Quad.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkTetra()))
+    uGrids.append(MakeUnstructuredGrid(vtkTetra()))
     filenames.append('Tetra.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkVoxel()))
+    uGrids.append(MakeUnstructuredGrid(vtkVoxel()))
     filenames.append('Voxel.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkHexahedron()))
+    uGrids.append(MakeUnstructuredGrid(vtkHexahedron()))
     filenames.append('Hexahedron.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkWedge()))
+    uGrids.append(MakeUnstructuredGrid(vtkWedge()))
     filenames.append('Wedge.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPyramid()))
+    uGrids.append(MakeUnstructuredGrid(vtkPyramid()))
     filenames.append('Pyramid.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkPentagonalPrism()))
+    uGrids.append(MakeUnstructuredGrid(vtkPentagonalPrism()))
     filenames.append('PentagonalPrism.vtu')
 
-    uGrids.append(MakeUnstructuredGrid(vtk.vtkHexagonalPrism()))
+    uGrids.append(MakeUnstructuredGrid(vtkHexagonalPrism()))
     filenames.append('HexagonalPrism.vtu')
 
     # Write each grid into  a file
     for i in range(0, len(uGrids)):
         print('Writing: ', filenames[i])
-        writer = vtk.vtkXMLDataSetWriter()
+        writer = vtkXMLDataSetWriter()
         writer.SetFileName(filenames[i])
         writer.SetInputData(uGrids[i])
         writer.Write()
@@ -71,7 +95,7 @@ def MakeUnstructuredGrid(aCell):
         aCell.GetPointIds().SetId(i, i)
         aCell.GetPoints().SetPoint(i, (pcoords[3 * i]), (pcoords[3 * i + 1]), (pcoords[3 * i + 2]))
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(aCell.GetPoints())
     ug.InsertNextCell(aCell.GetCellType(), aCell.GetPointIds())
     return ug
@@ -81,7 +105,7 @@ def MakePolyVertex():
     # A polyvertex is a cell represents a set of 0D vertices
     numberOfVertices = 6
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(1, 0, 0)
     points.InsertNextPoint(0, 1, 0)
@@ -89,13 +113,13 @@ def MakePolyVertex():
     points.InsertNextPoint(1, 0, .4)
     points.InsertNextPoint(0, 1, .6)
 
-    polyVertex = vtk.vtkPolyVertex()
+    polyVertex = vtkPolyVertex()
     polyVertex.GetPointIds().SetNumberOfIds(numberOfVertices)
 
     for i in range(0, numberOfVertices):
         polyVertex.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polyVertex.GetCellType(), polyVertex.GetPointIds())
 
@@ -106,20 +130,20 @@ def MakePolyLine():
     # A polyline is a cell that represents a set of 1D lines
     numberOfVertices = 5
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, .5, 0)
     points.InsertNextPoint(.5, 0, 0)
     points.InsertNextPoint(1, .3, 0)
     points.InsertNextPoint(1.5, .4, 0)
     points.InsertNextPoint(2.0, .4, 0)
 
-    polyline = vtk.vtkPolyLine()
+    polyline = vtkPolyLine()
     polyline.GetPointIds().SetNumberOfIds(numberOfVertices)
 
     for i in range(0, numberOfVertices):
         polyline.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polyline.GetCellType(), polyline.GetPointIds())
 
@@ -130,7 +154,7 @@ def MakeTriangleStrip():
     # A triangle is a cell that represents a triangle strip
     numberOfVertices = 10
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(.5, 1, 0)
     points.InsertNextPoint(1, -.1, 0)
@@ -142,12 +166,12 @@ def MakeTriangleStrip():
     points.InsertNextPoint(4.0, -.2, 0)
     points.InsertNextPoint(4.5, 1.1, 0)
 
-    trianglestrip = vtk.vtkTriangleStrip()
+    trianglestrip = vtkTriangleStrip()
     trianglestrip.GetPointIds().SetNumberOfIds(numberOfVertices)
     for i in range(0, numberOfVertices):
         trianglestrip.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(trianglestrip.GetCellType(), trianglestrip.GetPointIds())
 
@@ -158,7 +182,7 @@ def MakePolygon():
     # A polygon is a cell that represents a polygon
     numberOfVertices = 6
 
-    points = vtk.vtkPoints()
+    points = vtkPoints()
     points.InsertNextPoint(0, 0, 0)
     points.InsertNextPoint(1, -.1, 0)
     points.InsertNextPoint(.8, .5, 0)
@@ -166,12 +190,12 @@ def MakePolygon():
     points.InsertNextPoint(.6, 1.2, 0)
     points.InsertNextPoint(0, .8, 0)
 
-    polygon = vtk.vtkPolygon()
+    polygon = vtkPolygon()
     polygon.GetPointIds().SetNumberOfIds(numberOfVertices)
     for i in range(0, numberOfVertices):
         polygon.GetPointIds().SetId(i, i)
 
-    ug = vtk.vtkUnstructuredGrid()
+    ug = vtkUnstructuredGrid()
     ug.SetPoints(points)
     ug.InsertNextCell(polygon.GetCellType(), polygon.GetPointIds())
 
diff --git a/src/Python/Utilities/VTKImportsForPython.py b/src/Python/Utilities/VTKImportsForPython.py
index 49ee9d4212d5a53296896fce093620f8b292255e..425d18fbe7609b0a78ababbf56a30eb40efb1a73 100755
--- a/src/Python/Utilities/VTKImportsForPython.py
+++ b/src/Python/Utilities/VTKImportsForPython.py
@@ -56,12 +56,12 @@ def get_classes_constants(paths):
 
     vtk_patterns = [
         # class pattern
-        re.compile(r'(vtk[a-zA-Z]+\S+)\({1}'),
+        re.compile(r'(vtk[a-zA-Z0-9]+)\('),
         # constants pattern
         re.compile(r'(VTK_[A-Z_]+)'),
         # special patterns
-        re.compile(r'(mutable)\({1}'),
-        re.compile(r'(vtk[a-zA-Z]+\S+)\.{1}\S'),
+        re.compile(r'(mutable)\('),
+        re.compile(r'(vtk[a-zA-Z0-9]+)\.'),
     ]
 
     res = collections.defaultdict(set)
@@ -94,14 +94,15 @@ def format_imports(imports):
                 s += ',\n'.join(c_list)
                 s += '\n    )'
                 res.append(f'from vtkmodules.{module} import {s}')
-        additional_modules = ['vtkInteractionStyle', 'vtkRenderingFreeType', 'vtkRenderingOpenGL2', 'vtkRenderingUI']
+        additional_modules = ['vtkInteractionStyle', 'vtkRenderingFreeType', 'vtkRenderingOpenGL2',
+                              'vtkRenderingContextOpenGL2', 'vtkRenderingUI']
         comments = [
             '',
             '# You may need to uncomment one or more of the following imports.',
             '# If vtkRenderWindow is used and you want to use OpenGL,',
             '#   you also need the vtkRenderingOpenGL2 module.',
             '# If vtkRenderWindowInteractor is used,',
-            '#    uncomment vtkRenderingUI and possibly vtkInteractionStyl',
+            '#    uncomment vtkRenderingUI and possibly vtkInteractionStyle',
             '# If text rendering is used, uncomment vtkRenderingFreeType.',
             ''
         ]