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

From NAMIC Wiki
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 18: Line 18:
 
* Python command line modules (advantages: easy to write, access to Python libraries, don't need a compiler to write new modules)
 
* 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).
 
* 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!)
+
* Python as Slicer's scripting language (for automating tasks, programmatically access modules - this is Dan's new baby! - enabling staged processing)
  
 
</div>
 
</div>
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
 +
* stabilize calling modules from Python, write example on staged processing
 +
* 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>
  
Line 36: Line 38:
  
 
<h1>Progress</h1>
 
<h1>Progress</h1>
 +
 +
====January 2008 Project Week====
 +
 +
* Matplotlib with a Cairo backend is almost there
 +
* Python command line modules now work correctly (handling arguments multiple=true has been fixed)
 +
* A set of working Python command line modules has been committed
 +
* Scripted modules have been extended to Python, and a sample scripted module has been written
 +
* Meta-modules are now possible; the first meta-modules will be written soon
  
 
====June 2007 Project Week====
 
====June 2007 Project Week====
Line 52: Line 62:
  
 
Later on, after the meeting
 
Later on, after the meeting
* command line parsing has been completed (in a very simple way, without needing access to XML)
+
* command line parsing has been completed
* API has been simplified
+
* Python scripting and Python modules have been made independent of Numpy
 +
* Python command line modules are now run in the main thread (allows interaction with MRML scene)
 +
* a set of Python command line modules has been written
  
 
</div>
 
</div>

Latest revision as of 11:03, 14 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 tasks, programmatically access modules - this is Dan's new baby! - enabling staged processing)

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
  • stabilize calling modules from Python, write example on staged processing
  • 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

January 2008 Project Week

  • Matplotlib with a Cairo backend is almost there
  • Python command line modules now work correctly (handling arguments multiple=true has been fixed)
  • A set of working Python command line modules has been committed
  • Scripted modules have been extended to Python, and a sample scripted module has been written
  • Meta-modules are now possible; the first meta-modules will be written soon

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
  • Python scripting and Python modules have been made independent of Numpy
  • Python command line modules are now run in the main thread (allows interaction with MRML scene)
  • a set of Python command line modules has been written