Difference between revisions of "2008 Winter Project Week:PythonSupport"

From NAMIC Wiki
Jump to: navigation, search
Line 26: Line 26:
 
<h1>Approach, Plan </h1>
 
<h1>Approach, Plan </h1>
 
In the project week, we plan to
 
In the project week, we plan to
* consolidate Python support in Slicer3 from a design point of view (eg. can we allow Python command line modules to modify the MRML scene in a thread-safe way? ) (can we provide a Python equivalent to ScriptedModules?)
+
* 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
 
* define what aspects will end up in the next release
* solve issues (building issues, threading issues, etc)
+
* propose a working set of Python command line modules (interact with Sonia's breakout session on Tuesday?) to be included in the next release
* propose a way of making Python scripting and Python modules independent of Numpy (etc..) support (so one can have the former without the latter in case there are issues with the dependencies or one wants to keep Slicer leaner)
+
* write documentation on how to write Python command line modules
* propose a working set of Python command line modules (interact with Sonia's breakout session on Tuesday?) to be included in the next release.
 
 
</div>
 
</div>
  

Revision as of 21:19, 6 January 2008

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