2008 Winter Project Week:PythonSupport

From NAMIC Wiki
Revision as of 21:19, 6 January 2008 by Lantiga (talk | contribs)
Jump to: navigation, search
Home < 2008 Winter Project Week:PythonSupport
Python module


Key Investigators

  • Mario Negri Institute: Luca Antiga
  • UCSD: Bryan Smith

Objective

Python has a great potential in Slicer3. Its uses span:

  • Python command line modules (advantages: easy to write, access to Python libraries, don't need a compiler to write new modules)
  • matplotlib and scipy Python modules (they provide a matlab-like processing environment for images directly within Slicer).
  • Python as Slicer's scripting language (for automating task and programmatically access modules - this is Dan's new baby!)

Approach, Plan

In the project week, we plan to

  • solve building issues, check stability on different platforms
  • threading issues: modifying the MRML scene from Python command line modules in a thread-safe way
  • calling modules from Python
  • provide a Python equivalent to ScriptedModules
  • define what aspects will end up in the next release
  • propose a working set of Python command line modules (interact with Sonia's breakout session on Tuesday?) to be included in the next release
  • write documentation on how to write Python command line modules

Progress

June 2007 Project Week

These are the results of the MIT project week (largely Dan's work)

  • Implemented Python Modules
    • Add search for Python in ModuleFactory
      • Can put .py files in the CommandLine Module path
    • Execute Python within Slicer
      • Full access to VTK, vtkTEEM, vtkITK, etc.
    • If the Python module provides an XML description, and an Execute function, will be added as a CommandLine Module
  • ToDo
    • Check-in (needs USE_PYTHON guards)
    • Progress reporting
    • Simplify the API
    • Automate command line parsing using XML description

Later on, after the meeting

  • command line parsing has been completed (in a very simple way, without needing access to XML)
  • API has been simplified