# Buggy code
def _plot(
    self,
    title=None,
    window_size=DEFAULT_WINDOW_SIZE,
    interactive=True,
    autoclose=True,
    interactive_update=False,
    full_screen=False,
):
    """
    Creates plotting window

    Parameters
    ----------
    title : string, optional
        Title of plotting window.

    window_size : list, optional
        Window size in pixels.  Defaults to [1024, 768]

    interactive : bool, optional
        Enabled by default.  Allows user to pan and move figure.

    autoclose : bool, optional
        Enabled by default.  Exits plotting session when user closes the
        window when interactive is True.

    interactive_update: bool, optional
        Disabled by default.  Allows user to non-blocking draw,
        user should call Update() in each iteration.

    full_screen : bool, optional
        Opens window in full screen.  When enabled, ignores window_size.
        Default False.

    Returns
    -------
    cpos : list
        List of camera position, focal point, and view up

    """
    if title:
        self.ren_win.SetWindowName(title)

    # if full_screen:
    if full_screen:
        self.ren_win.SetFullScreen(True)
        self.ren_win.BordersOn()  # super buggy when disabled
    else:
        self.ren_win.SetSize(window_size[0], window_size[1])

    # Render
    log.debug("Rendering")
    self.ren_win.Render()

    if interactive and (not self.off_screen):
        try:  # interrupts will be caught here
            log.debug("Starting iren")
            self.iren.Initialize()
            if not interactive_update:
                self.iren.Start()
        except KeyboardInterrupt:
            log.debug("KeyboardInterrupt")
            self.close()
            raise KeyboardInterrupt

    # Get camera position before closing
    cpos = self.camera_position

    if self.notebook:
        try:
            import IPython
        except ImportError:
            raise Exception("Install iPython to display image in a notebook")

        img = self.screenshot()
        disp = IPython.display.display(PIL.Image.fromarray(img))

    if autoclose:
        self.close()

    if self.notebook:
        return disp

    return cpos


# Traceback (ValueError)
Python 2.7.13 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:17:26) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
import pyansys
C:\Users\myusername\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\pyansys\archive_reader.py:32: UserWarning: Unable to load vtk dependent modules
warnings.warn('Unable to load vtk dependent modules')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\myusername\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\pyansys\__init__.py", line 4, in <module>
from pyansys.binary_reader import *
File "C:\Users\myusername\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\pyansys\binary_reader.py", line 7, in <module>
import vtkInterface
File "C:\Users\myusername\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\vtkInterface\__init__.py", line 7, in <module>
from vtkInterface.polydata import PolyData
File "C:\Users\myusername\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\vtkInterface\polydata.py", line 22, in <module>
class PolyData(vtkPolyData, vtkInterface.Common):
ValueError: multiple inheritance is not allowed with VTK classes

# Fixed code
def _plot(
    self,
    title=None,
    window_size=DEFAULT_WINDOW_SIZE,
    interactive=True,
    autoclose=True,
    interactive_update=False,
    full_screen=False,
):
    """
    Creates plotting window

    Parameters
    ----------
    title : string, optional
        Title of plotting window.

    window_size : list, optional
        Window size in pixels.  Defaults to [1024, 768]

    interactive : bool, optional
        Enabled by default.  Allows user to pan and move figure.

    autoclose : bool, optional
        Enabled by default.  Exits plotting session when user closes the
        window when interactive is True.

    interactive_update: bool, optional
        Disabled by default.  Allows user to non-blocking draw,
        user should call Update() in each iteration.

    full_screen : bool, optional
        Opens window in full screen.  When enabled, ignores window_size.
        Default False.

    Returns
    -------
    cpos : list
        List of camera position, focal point, and view up

    """
    if title:
        self.ren_win.SetWindowName(title)

    # if full_screen:
    if full_screen:
        self.ren_win.SetFullScreen(True)
        self.ren_win.BordersOn()  # super buggy when disabled
    else:
        self.ren_win.SetSize(window_size[0], window_size[1])

    # Render
    log.debug("Rendering")
    self.ren_win.Render()

    if interactive and (not self.off_screen):
        try:  # interrupts will be caught here
            log.debug("Starting iren")
            self.iren.Initialize()
            if not interactive_update:
                self.iren.Start()
        except KeyboardInterrupt:
            log.debug("KeyboardInterrupt")
            self.close()
            raise KeyboardInterrupt

    # Get camera position before closing
    cpos = self.camera_position

    if self.notebook:
        # sanity check
        try:
            import IPython
        except ImportError:
            raise Exception("Install iPython to display image in a notebook")

        img = PIL.Image.fromarray(self.screenshot())
        disp = IPython.display.display(img)

    if autoclose:
        self.close()

    if self.notebook:
        return disp

    return cpos