SNAP CPython Adapter
Target release | 2.0 |
|---|---|
Epic | |
Document status | DRAFT |
Document owner | @Former user (Deleted) |
Designer | @Former user (Deleted) |
Developers | @Former user (Deleted), @Marco Peters |
QA | @Olga Faber (Unlicensed) |
Goals
Let Python programmers write GPF operators using CPython and its scientific extension libraries numpy, scipy, pandas, etc.
It should be transparent to users how operators are implemented, e.g. using the native Java GPF API, using the Python API or using the stand-alone tools adapter.
Background and strategic fit
Scientists prefer Python over Java.
Assumptions
Users have Python 2.7, 3.3 or 3.4 installed.
Requirements
# | Title | User Story | Importance | Notes |
|---|---|---|---|---|
1 | ||||
|
|
|
|
|
User interaction and design
A Python extension module is a JAR file or directory which must contain a plain text file META-INF/snappy.def which lists all Python extensions contained in the module. Python extension modules are found in the following locations:
<module-jar-file>a module JAR file${user.home}/.snap/snappy/ext/*the directories in directorysnappy/extin the SNAP user directory${snap.snappy.ext}from the directory paths given in the special system propertysnap.snappy.ext
The text file snappy.def contains either empty lines, comment lines starting with the '#' character, or lines declaring a Python extension as follows:
[<ext-rel-path>/]<ext> ExtClass
The type of the extension is derived from the Python class ExtClass. If the class name ends with Op it is assumed to be a GPF operator, if it ends with Action it is assumed to be an action to be placed in the menu or in a toolbar. A single <ext> may contain any number of Python classes that provide extensions to SNAP.
Each Python extension must follow this schema:
[<ext-rel-path>/]
<ext>.py the Python code containing the class ExtClass
<ext>-info.xml contains the operator metadata such as processing parameter definitions (for GPF operators only)
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
|---|---|