Changelog #########
- Upgraded to Python 3
- Updated PyFI wrappers (no API changes from v0.5)
- Added JSON network file I/O (net version-3)
- Added updater option to main menu.
- Changed nodeAPI error behavior
- Removed Warning state
- Added an Error state to initUI(), validate(), and compute()
- Errors states do not require a node reload, they will rerun if a new event is triggered.
- Error states will pause the canvas
- Fixed pause from canvas init and canvas locking due to initErrorState.
- Conda packaging
- Create new 'File' menu. Move 'New Tab' and 'Create New Node' into 'File'.
- Add menu item to create new node. Add list window to show libraries.
- Added the BORG binary encapsulation module.
- Added Eigen array library wrappers to PyFI
- mmap node communication
- Added a new detail label for programmatically providing user feedback for things like file paths, node operations, or important parameter values
- Add placeholder text option for StringBox.
- Added 'copy to clipboard' and 'save image' feature to displaybox widgets.
- Added a decorator for profiling node code - results to the console.
from gpi.node_profiler import profiler
- decorate
compute
with@profiler
- Added user option to choose starting directory and save filename in save-dialog.
- Change the 'about' box to a button which pops up a window instead.
- Updated canvas appearance
get_start
andget_stop
functions added to help chunking threads using the basic threading interface
- Add a dummy splash screen to get the menu bar to show up.
- Set minimum width for push buttons to prevent losing style on OS X.
- Stop canvas repositioning when nodes are reloaded.
- Fixed immediate scaling when using spinbox.
- Turn off keyboard tracking for certain widgets.
- Fixed bug where deleting a node while processing will freeze the canvas.
- Fixed concurrent executions after pause-unpause.
- Added error msg to ExclusivePushButton set_val method.
- Fixed port hover on edge deletion.
- Fixed floating edge on hovered inport.
- Changed SaveFileBrowser widget not to clear filename when cancelled.
- Fixed file browser widget to mute event trigger on 'Cancel'
- Fixed spurious SpinBox value change after loosing focus.
- Fixed a bug where Macro Nodes would sometimes not collapse.
- First public release
- Moved to Anaconda 2.1
- Moved to Astyle 2.4
- Added support for OSX 10.7
- Splash Screen
- disable w/ commandline option
- Added 'qimage2ndarray' pip package
- Improved HDF5 Reader
- provide menu to choose dataset name
- Matlab file Reader (old and new style)
- gpi_make
- Does force recompile on all .py files
- Removed R2 stuff
- Moved PyFI from 'core' to the 'framework'
- Added left mouse button for port edge connect
- Node-reload (Ctrl-R)
- Menu options for auto-generating user lib and default node (basic)
- Reloads mouse menu to include new node if gpirc doesn't exist
- Right click port edge-delete
- Updated math node to default to add 0
- Default LIB_DIRS /opt/gpi/node ~/gpi
- LIB_DIRS is now searched from parent directory
- Split node libraries and framework into separate projects
- BUGFIXES
- Fixed file association bug for capitalized extensions.
- Fixed node updating by forcing recompile
- Fixed menu ordering of nodes (case insensitive alphabetical)
- Fixed zlib forking error
- Fixed the image read and writer to the correct ARGB
- OSX package (10.7 - 10.9)
- mpkg file
- MacPorts Qt, etc...
- Anaconda python
- in-house installed PyQT and sip
- launcher app (spawns new gpi instances, allows OS file associations)
- Linux package (Ubuntu 12.04-13.10)
- makeself installer script
- 13.10 gnome desktop puts borders around lib search
- use XFCE or KDE
- Packaged Software
- updated numpy and scipy packages (via anaconda)
- includes pyopencl (OSX)
- GUI updates
- Status Bar
- canvas walltime
- canvas mem
- Multi-Drag-n-Drop
- pdone (estimated only)
- threaded data sharing between processes
- doesn't lock up GUI (as much)
- node-menu
- grip
- close-all
- Commandline Interface
- nogui (script-able)
- string option for configuring network
- multiple networks, node, and user associated file-types
- log level
- .gpirc Config File
- user configurable
- PATHS (lib, data, net, etc...)
- file associations
- make.py
- 2-Level Scope Library
- configurable library search paths
- node resolution based on lib-scope
- fallback resolution based on widget+port footprint
- Network File Upgrade v2
- backward compatible with v1 and pre-v1
- saves lib-scope
- machine specs
- canvas and node walltime
- nodes that are copied and pasted will remember their last walltime for pdone
- PyFI
- updated Numpy API >1.7
- switched from R2 to PyFI Array (similar to R2 arrays)
- slightly faster indexing
- index range checking mode
- stack traces
- get() functions for file/line no. decorating
- FFTW interface
- PyCallable interface for embedding python
- pinv()
- numpy array printing
- numpy fft1
- updated error messages
- type demangling
- supported types list
- support for templated functions
- updated Macros
- NodeAPI
- new Event API that keeps all events that initiated execution
- Deprecated IF
- getEvent (singular getters)
- Nodes
- ReadPhilips
- lab/raw/sin reader
- xml/par/rec bug fixes (specifically for HIFU)
- noise and phase correction output for raw formats
- updated display to include labels for dimensions
- core PyMODs
- updated to PyFI Arrays
- Mathematics Library -> Math
- Elem_Math -> Math
- ReadImage & WriteImage (.png or .jpg)
- DataQuery
- ImageCompare
- ImageRate
- DictionQuery
- ReadCSV & WriteCSV (ascii, comma separated values)
- ReadHDF5 & WriteHDF5 (still basic, under development)
- ReadPhysioLog (scanner physiologic sensor recordings)
- DegridDFT (for trajectory data simulation)
- Alert (make a noise when a process has finished)
- AutoNum (in place of IntegerLoop, does float, int, better UI)
- DiffRMS (find scale RMS diff between two images)
- Dimensions (updated)
- ToComplex (updated)
- T1calculator (for spin sims)
- network loading of widget ports (with in and outports ON)
- incorrect getWidget() error message (the bug threw exception during the error msg creation) -pointed out by David Smith
- Better Node-Process Stability
- fixed issue causing zombie processes
- Virtual Machine distro (VMWare 5)
- Ubuntu 12.04 x86_64
- intel composer (OSX), intel mkl-ipp (Linux)
- Philips Reconstruction Platform Array Library
- Python 2.7, Qt4 (apt-get)
- PyFI C++ interface to the Recon2.0 array library
- handles R2 arrays and provides abstract interface for future add-ons
- Status Bar
- canvas state, tool tips
- Tool Tips
- node, port, edge
- node wall time, memory usage
- port data type
- Port Type Enforcement
- plugin ready
- user definable
- Edge Highlighting
- port-edge highlighting for reverse connections
- External Widget Definitions
- Layouts
- drag and drop widgets from Node Menu to layout
- MacroNodes
- w/ configurable layout Node Menu
- expandable
- Network File Upgrade
- No longer save Qt-APIv1 components
- PyQT & PySide Compatibility
- upgraded to Qt-APIv2
- Web Browser Widget
- Multiple Canvas Tabs
- copy nodes between tabs
- Searchable Node Library in Mouse Menu
- Nodes R2
- Grid & Rolloff
- SDC
- SpiralCoords
- Nodes Pure Python
- GLViewer & GLObject generator
- ReadPhilips
- Node Labels
- Node Menu
- about widget
- node state status
- Documentation
- training course
- examples (data, networks, pure-python nodes, c++ nodes)
- Website
- dropbox based
- Significant Improvements in Stability
- memory collection
- large array segmentation
- PyInstaller & Py2App packaging for Linux and OSX.
- MacPorts Qt4, Python2.7
- apt-get Qt4, Python 2.7
- Pure-Python nodes
- Drag-n-Drop
- Node Library Scan
- Nodes (of interest)
- Custom Node
- Matplotlib
- GLDemo
- File Reader/Writers
- Matlabbridge