.. This file is part of Sympathy for Data.
.. Copyright (c) 2010-2017 Combine Control Systems AB
..
.. Sympathy for Data is free software: you can redistribute it and/or modify
.. it under the terms of the GNU General Public License as published by
.. the Free Software Foundation, version 3 of the License.
..
.. Sympathy for Data is distributed in the hope that it will be useful,
.. but WITHOUT ANY WARRANTY; without even the implied warranty of
.. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.. GNU General Public License for more details.
..
.. You should have received a copy of the GNU General Public License
.. along with Sympathy for Data. If not, see .
What's new
==========
News in 2.2.0
-------------
Bug fixes
^^^^^^^^^
* Exported ADAF files incorrectly expanded the type declaration, causing
problems in stand-alone viewer.
* Restored ability to select operator in Filter rows in Table.
* Tables, ADAFs: fixed Create Empty Entry, action on import failure.
* Removed limitation which prevented loading large syx-files.
* MDF importer: fixed case where boolean signals would incorrectly become True
when the signal byte contained uninitialized data.
* Table(s): Limited problems with the MDB/Access database driver, introduced in Office
(Build 13127.20296), from affecting import of other types of data.
* Fixed issue which could cause Sympathy to exit after 5 minutes on Windows due
to an access violation.
* Fixed some unintended behaviors of optional subflow ports, that would result
in subflow lacking external ports when linked.
Node changes
^^^^^^^^^^^^
* Figure: added option to invert axes.
* Added ability to control error handling to Parallel Map subflows.
API changes:
^^^^^^^^^^^^
* Controller trigger based on port existing or not, see :ref:`controllers`.
MongoDB nodes
^^^^^^^^^^^^^
* MongoDB, Set Collection, Find, Insert, Update, Replace, Bulk write. (Sympathy Enterprise)
News in 2.1.1
-------------
Bug fixes
^^^^^^^^^
* Changes not saved when configuring linked subflow in some situations.
News in 2.1.0
-------------
User interface
^^^^^^^^^^^^^^
* New option to automatically save all open flows. Can be enabled at
*Preferences* -> *General* -> *Autosave flows*.
* Backup and restore:
* If Sympathy crashes, you will be able to recover the last flow changes!
* The :ref:`node_config_message_area` (used in Calculators and FilterADAFs)
has been improved and is globally configurable:
* Configured in *Preferences* -> *Node Configuration* ->
*Node Configuration* to be shown, hidden or set to show after first
message.
* Uses fixed height and shows only one line of text.
Viewers
^^^^^^^
* ADAF viewer: Added search for signals in Timeseries view.
* Table viewer:
* Added configurable, interactive cursors.
* Ability to export plotted data or the data between two cursors as a csv file.
* Improved icons and tweaked toolbars.
New nodes
^^^^^^^^^
* :ref:`org.sysess.sympathy.adaf.renamecolumntable`
* :ref:`org.sysess.sympathy.data.adaf.assertequaladaf`
Node changes
^^^^^^^^^^^^
* Figure wizards:
* Added support for: Histograms, heatmaps, images, and timelines.
* Wizard selection shows up when configuring an empty figure node.
* Improved DPI handling in Export Figures:
* DPI can now only be set when using a rasterized output format and a physical
image size.
* All old nodes should still produce the same output as before.
* Improved Calculator:
* Undo/Redo!
* More compact layout showing calculations on a single line to require
fewer manual adjustments.
* Calculations are available as *Results* under Signals and Common functions
to make them easier to discover and use in other calculations.
* Informative feedback when using forbidden = character in calculation name.
* Added option to copy input to :ref:`Lookup Table`.
Platform changes
^^^^^^^^^^^^^^^^
* Configuration port for subflows. When enabled, it is implicitly connected to
all nodes selected in the subflow's settings.
* Added internal index to adaf to speed up computation of names.
* Optimized link handling to avoid some unnecessary overhead when propagating
input structures to output.
Added APIs
^^^^^^^^^^^
* equal_to for table and adaf.
Python versions
^^^^^^^^^^^^^^^
* Draft support for Python 3.8.
Windows Installer
^^^^^^^^^^^^^^^^^
* Installers bundle the content from Visual C++ 2019 Redistributable
instead of the executable installer itself to avoid requiring elevated
privileges when installing.
Enterprise Edition
^^^^^^^^^^^^^^^^^^
* Moved storage directory under the user folder.
News in 2.0.0
-------------
New version scheme that will follow semantic versioning. The file structure has
been modernized to allow more seamless use and distribution as a python package.
License change
^^^^^^^^^^^^^^
* Using the same license for all sources. License details can be found in the
*About Sympathy* window.
Installer
^^^^^^^^^
* Install as user by default.
* Replaced Sysess directory with Combine.
* Replaced Sysess registry key with Combine.
Platform changes
^^^^^^^^^^^^^^^^
* Optional subflow ports. See :ref:`subflow_ports`.
* Support for Spyder, is limited to installations containing spyder and where
the editor plugin is installed.
* Documentation:
* Our installers now comes with documentation prebuilt
* Documentation never starts building automatically
* Restructured the outline and shorted many headers to provide better
overview.
* Library documentation organized by tags.
* Better separation between generated documentation for standard platform and
third-party libraries.
* Plugin base classes and implementations can specify a name used in
documentation generation instead of the class name.
* Files were restructured:
* Top-level package sympathy_app no longer exists. It has been renamed
sympathy.
* Sources are structured as a setuptools project using setup.py.
* Packages sympathy and sylib can be installed via setup.py. These can then
be imported without requiring sys.path manipulations.
* Tests and other files that are not relevant for end users are excluded from
installation.
* New library format which is built as a python package. See :ref:`new_library`.
These can be defined and installed as setuptools entry points.
* Added new option to remove unused port file when nodes are removed in flows or
when flows are closed. On by default.
* Removed some dependencies that were only required for development of Sympathy
itself and completely optional (unused by Sympathy) otherwise.
* Settings moved from Sysess/Sympathy_*.ini to combine/Sympathy.ini. Values are
copied from the old location when the new settings file is created.
* Library view changes
* Disk Layout and FlatTag Layout are no longer available
* New option to show all hidden nodes
* Fixed bug causing inability to save lock status in flows.
* Fixed bug causing changes to environment variables to be lost on save.
* Fixed bug causing problems when printing unicode characters in the platform
itself on Windows.
* Added USERPROFILE to worker environment to fix os.path.expanduser on Windows.
* Cleanup of compat code for Python 2: __future__ imports and uses of six.
User interface
^^^^^^^^^^^^^^
* Documentation:
* Online documentation is used if local documentation is unavailable.
* Generation is no longer triggered automatically when documentation is
missing.
* Help menu button to generate documentation has been removed since it
was no longer useful. Library developers should use the command-line
interface to generate documentation and ensure to make it available to
users.
* Examples from third-party libraries can be opened from the help menu.
* Command line options:
* Removed underscores from the command line interface.
* --version is now a top level option. -v is no longer used for printing
the version.
* Top level commands used to run external tools in the Sympathy environment
are no longer required and have been removed. That is, spyder, nosetests,
coverage, pyflakes, pylint and ipython. These can simply be installed in
the same python environment as Sympathy and then run directly.
* New top-level command *doc*, for generating documentation.
* Improved performance when pasting many elements in the Flow Window.
* Library wizard creates new-style libraries by default.
* Library and Flow overview highlight gives more predictable feedback.
New nodes
^^^^^^^^^
* :ref:`org.sysess.sympathy.getcolumnnamesintable`
* :ref:`org.sysess.sympathy.list.grouplist`
Node/plugin changes:
^^^^^^^^^^^^^^^^^^^^
* xlsx import plugin has new option to import all sheets.
* xlsx export plugin has new option to replace existing sheets which can be
used to insert raw data into a template file.
* Zip/Tar extractor: fixed issues with output structure.
Examples
^^^^^^^^
* Added example for updating sheets in xlsx file.
* Updated examples for machine learning.
* Updated calculator example flows.
* Replaced deprecated nodes in example flows.
Removed nodes
^^^^^^^^^^^^^^
* Plot Table(s)
* Copy files with Table
* Rename file(s)
* Rename file with Table
* Matlab Calculator
* Export Figures with Datasources
Removed plugins
^^^^^^^^^^^^^^^
* XLS importer (only legacy Excel format, xlsx importer still works as before)
* XLS exporter (only legacy Excel format, xlsx exporter still works as before)
* DIVA importer
* LAA importer
* Matlab Calculator plugin
Removed APIs
^^^^^^^^^^^^
* ManagedNode
* node_helper.list_node_factory
Added APIs
^^^^^^^^^^^
* sympathy.api.library, for new-style libraries.
* sympathy.api.component, for adding plugins to nodes.
Changed nodes
^^^^^^^^^^^^^
* Improved labels in many machine learning nodes.
* :ref:`org.sysess.sympathy.visualize.figuresubplot` can now take global
colorbar and global legend from a configurable parent figure instead of always
taking it from the last figure in the list.
* Filter List with Table:
* Return empty output instead of full output when filter lacks rows.
* Fail instead of using first column when filter column is missing
Removed Node parameters
^^^^^^^^^^^^^^^^^^^^^^^
* Select rows in Table(s):
* Use compatible string constraints
* Select rows in ADAFs:
* Use compatible string constraints
* Select rows in Tables with Table
* Evaluate values as code
Changed APIs
^^^^^^^^^^^^
* The different fields of a list parameters (`list`, `value` and `value_names`)
are now always required to match. Any old list parameters where this is not
the case are automatically updated from `value_names`. For list parameters
that use the standard editors, this should not be a problem. For some custom
parameter guis might need to be changed to adhere to this rule.
Deprecated APIs
^^^^^^^^^^^^^^^
* node_helper.table_node_factory
* node_helper.tables_node_factory
* node_helper.adafs_node_factory
* node_helper.TableOperation
Python versions
^^^^^^^^^^^^^^^
* Removed support for Python 3.6 and older. We now target 3.7+.
* Compatibility with bokeh >= 1.3.
* Dropped compatibility with matplotlib < 2.2.0.
* Dropped compatibility with scikit-image < 0.14.3.
* Dropped compatibility with scikit-learn < 0.20.4.
* Currently not compatible with numpy >= 0.18.0.
* Compatibility with openpyxl >= 3.0.0, replaces XlsxWriter.
News in 1.6.2
-------------
License change
^^^^^^^^^^^^^^
* Changed copyright from SysESS to Combine.
Platform changes
^^^^^^^^^^^^^^^^
* Instant warning and notice messages from nodes.
* Issue reporting, see :ref:`issues`.
* Collection of anonymous user statistics. See :ref:`privacynotice` for more
details about privacy and data collection in Sympathy.
* Fix issues with the histogram plot in table viewer.
* Sympathy can now generate file associations and desktop entries on Linux.
* Support for spyder, if installed in the same python environment.
* Improved performance when working with large number of files.
* New options to clean up temporary files when closing flows and the
application.
* Configuration ports can have any types.
* Built in support for creating parameter bindings to configuration ports with
table data.
* Ability to override temp location using environment variables. See
:ref:`env_vars`.
User interface
^^^^^^^^^^^^^^
* You can now close flows by clicking the middle mouse button on the respective
tab.
* Wizard configuration can now be maximized.
* Changed menus for creating and removing ports.
* New text editor with search support, used for json and text viewers.
* Restructured command line arguments:
* Help texts should be more consistent.
* New options for generating documentation.
* Improved feedback when:
* Library package fails to load.
* Some types of corrupt flows are loaded.
* New context menu option to create library node from subflow.
Node changes
^^^^^^^^^^^^
* Using combo-boxes for choice parameters with single selection.
* New simplified wizards for some plot types in figure node.
* Improved the ability of
:ref:`org.sysess.sympathy.visualize.figurecompressorgui` and
:ref:`org.sysess.sympathy.visualize.figuresubplot` to reproduce their input
figures:
* Improved getting labels from legends.
* Correctly reproduce custom tick labels.
* Support for reproducing box plots, rectangles, ellipses, and error bars.
* Support for reproducing QuadMesh artist (from matplotlib's pcolormesh
function).
* Improved error messages when some features could not be reproduced.
* New option for sharing axes in
:ref:`org.sysess.sympathy.visualize.figuresubplot`.
* :ref:`org.sysess.sympathy.visualize.figure` features:
* Add edge color and line width properties to scatter plot.
* Fix edit issues on MacOS.
* Hiding the labels of a pie chart no longer hides its percentages.
* New completions interface.
* Fixes in :ref:`plugin_tabledataimporterbase.dataimportcsv`:
* Add support for a few more obscure line endings (e.g. \r).
* Fix regression in handling of incomplete csv-files.
* :ref:`org.sysess.sympathy.data.table.calculatorgeneric`:
* Improved performance of local_min/local_max.
* Fix a problem with masked values not being treated correctly in
local_min/local_max.
* Removed unnecessary warnings.
* Empty calculations are now allowed and do nothing.
* :ref:`org.sysess.sympathy.datasources.filedatasource`: Paths can be relative
to library directory.
* :ref:`org.sysess.sympathy.create.createtable`:
* Can now paste multiple values.
* Always shows float values in C locale.
* :ref:`org.sysess.sympathy.machinelearning.export`: added datasource output.
* :ref:`org.sysess.sympathy.datasources.filedatasourcemultiple`: can search for
files, directories or both.
* :ref:`org.sysess.sympathy.data.table.dropnantable`: able to choose columns.
* :ref:`org.sysess.sympathy.data.table.assertequaltable`: can add more ports.
* :ref:`org.sysess.sympathy.filters.columnfilternode`: standardized
configuration GUI.
* :ref:`org.sysess.sympathy.data.table.holdvaluetable`: able to choose columns.
* :ref:`org.sysess.sympathy.create.configureparameters`: list choices and
editors updated from data.
New nodes
^^^^^^^^^
* :ref:`org.sysess.sympathy.texts.splittext`
* :ref:`org.sysess.sympathy.data.table.unpivottablenode` and list version.
* :ref:`org.sysess.sympathy.setcolumnnamesintablewithtable` and list version.
* List versions of several existing nodes:
* :ref:`org.sysess.sympathy.json.jsonstolists`
* :ref:`org.sysess.sympathy.json.jsonstodicts`
* :ref:`org.sysess.sympathy.data.text.tables2texts`
* :ref:`org.sysess.sympathy.convert.textstojsons`
* :ref:`org.sysess.sympathy.texts.concatenatetextslist`
Documentation
^^^^^^^^^^^^^
* Documentation is built as part of the installation process. This means
that documenatation should usually be available directly after
installation.
* Third-party library documentations can be built separately.
* Documentation is now by default built for only the platform and the
standard library.
* Documentation pages are generated for library subflows. The subflows
documentation can be edited in the subflow properties dialog.
* Building the documentation places it in /Docs/ by default.
* Node documentation pages now start with the node's description.
* A warning is automatically added if a node is deprecated.
* Nodes can now have a list of related nodes, which shows up on the node's
documentation page.
* A node's docstring is now used as description if the description field is
missing or empty.
* Basic node documentation for nodes with optional ports.
* Updated documentation for available command line arguments.
API changes
^^^^^^^^^^^
* More guards against using bad arguments in table and adaf. For example, use
of reserved names. Recarrays in place of numpy arrays, etc.
* Datetime parameter can set editor display format to show only date and allows
fractional second precision.
* Expanded names API with another parameter: fields.
* Added col_paths as a new kind of names field for accessing data.
* Added new completions API.
Python versions
^^^^^^^^^^^^^^^
* Compatibility with Python 3.7.3 in virtualenv.
* Compatibility with h5py >=2.10 and dask>=2.
* Compatibility with scikit-learn >= 0.19.2.
* Compatibility with networkx >= 2.4.
News in 1.6.1
-------------
Release 1.6.1 is a bug-fix release addressing several bugs present in 1.6.0.
Platform changes
^^^^^^^^^^^^^^^^
* Write value and list to the syx file again for ParameterList. This change will
have to wait until we have rooted out all nodes that use .value or .list of a
list parameter.
* Made it possible to open workflow with reference to missing library.
* Made it possible to open tabbed subflow configurations containing failed
configurations.
Node changes
^^^^^^^^^^^^
* Changes in :ref:`org.sysess.sympathy.visualize.figure`:
* Add property 'Distance to Axes' to legend. Use this to tweak the position of
the legend when placed outside of the Axes. If the legend is placed inside the
Axes this property is ignored.
* Avoid rare exception when editing some properties.
* Improved default values and editors for Annotations.
* Changes in :ref:`org.sysess.sympathy.visualize.figurecompressorgui` and
:ref:`org.sysess.sympathy.visualize.figuresubplot`:
* Fixed a bug when copying axes with unsupported elements. Those elements will
now simply be ignored.
* Fix colorbar handling.
* Fixed python 3 incompatibility in
:ref:`org.sysess.sympathy.machinelearning.export`.
* Fixed inability to configure and execute Calculator Table(s) if comment
contained newlines.
* Introduced compatibility option for
:ref:`Select rows in Table(s)`.
* Fixed issues with configuration related to missing list and value in:
* :ref:`org.sysess.sympathy.data.table.indextable`
* :ref:`org.sysess.sympathy.data.adaf.adaf2table`
* :ref:`org.sysess.sympathy.list.filterlisttable`
* Fixed issues with preview/viewer on Windows for:
* :ref:`org.sysess.sympathy.html.report`
* :ref:`org.sysess.sympathy.html.dicttogeojson`
* Fixed issue in :ref:`org.sysess.sympathy.data.json.jsontotable`.
* Fixed use of Fit/Fit Transform with
:ref:`org.sysess.sympathy.machinelearning.one_hot_encoder`.
News in 1.6.0
-------------
Gui changes
^^^^^^^^^^^
* Panning the flow view is now mapped to middle mouse button (scroll wheel
click). There are also toolbar buttons for panning/selection.
* New icons from Font Awesome in toolbar, menus and context menus.
* Color theme based on the standard palette in Windows 10, is used for all OSs.
* Changed keyboard shortcuts for Zoom to selection and Zoom fit all.
* Flow Overview look and feel similar to that of Library View.
* New splash screen on startup of GUI.
* Removed redundant groupings in parameter GUIs, this makes some configuration
GUIs more compact.
* More clear highlight of invalid parameter values, on Windows.
* Double click on node executes or does nothing, will never trigger configure.
* Plots in Table viewer shows current resampling.
* Figure viewer now supports mouse interactions for 3D axes.
* Deprecation warnings are on by default. They can be disabled by unchecking
*Display warnings for deprecated nodes* in the *Advanced* section of
*Preferences*.
Platform changes:
^^^^^^^^^^^^^^^^^
* Supports Python 3.6+.
* Supports PySide 2 (Qt for Python). This results in smoother rendering,
various improvements.
* Asyncio is used in place of twisted, this will make it easier to install
Sympathy on some OSs.
* Support for installing Sympathy in a Python virtual env, on Windows.
* Improved platform stability, undeterministic process crashes when running and
on shutdown caused by PySide do not seem to happen anymore.
* Improved structure of menus, with new groupings and consistent ordering.
* Windows installer produces different package structure, similar to a wheel
install.
* Added json parameter type.
* Added datetime parameter type.
* Added dict port type.
* Added Html port type.
* Added GeoJSON port type.
* Added Table editor for json parameter type.
* General preview which can easily be added to nodes.
* list_node_decorator replaces list_node_factory.
* Reduce size of syx files by not writing descriptions etc for all parameters.
Pretty print parameter structures for increased legibility.
* Selections can be expanded while holding down Ctrl (Cmd on OSX). Ctrl + click
toggles selection of individual nodes.
* List parameters with static lists are now automatically updated from their
definition.
* Automatically fix minor inconsistencies between .value and .value_names during
update_parameters. Warn about parameters that are still inconsistent during
execute/configure.
* Documentation improvements:
* New instructions for wheel install, now also for Windows.
See :ref:`installation`.
* New instructions for debugging using PyCharm. See :ref:`pycharm_debug`.
* Show labels for parameters in node documentation.
* Improved documentation about node libraries and their structure.
* No longer supported:
* Python 2. Python 3.5 and older.
* PySide.
* Built-in debugging and editing using Spyder.
* Built-in benchmark of the platform.
* Add maintainer information to library.ini metadata. Useful when maintainer and
original author are not the same.
* Node copyright notice is now inherited from library.ini metadata if
unspecified in the node. Allows less repetition when creating nodes.
Node/plugin changes:
^^^^^^^^^^^^^^^^^^^^
* Datasource can supply URL to importer nodes.
* Support for URL datasource in import nodes and new
:ref:`org.sysess.sympathy.files.downloadfile`.
* VJoin, Transpose: improved feedback when constructing unsupported columns
* Select columns in Table uses new preview feature.
* New :ref:`org.sysess.sympathy.visualize.figure`:
* Many different improvements to the configuration gui and to the code.
* Allow setting major/minor ticks.
* Support for legend outside of axes.
* Enabling and disabling individual plots.
* Uses new preview.
* The node no longer outputs its configuration in the form of a Table.
* Improved support for plotting datetimes
* Improved documentation.
* The old figure node can still be used, but will be deprecated at some point
in the near future.
* Transpose can set column names even when there are no rows
* Consistently using "regex" to refer to regular expressions in node configurations.
* Calculator should be able to detect res-dependencies that use other quoting than ''.
* Improved reading of typed input value:
* Mask nodes.
* Replace value in Table
* Select rows in Table
* :ref:`F(x)` can be configured without external file.
New nodes/plugins:
^^^^^^^^^^^^^^^^^^
* :ref:`org.sysess.sympathy.html.report`
* :ref:`org.sysess.sympathy.html.dicttogeojson`
* :ref:`org.sysess.sympathy.html.htmltotext`
* :ref:`org.sysess.sympathy.datasources.renames`
* :ref:`org.sysess.sympathy.files.downloadfile`
* :ref:`org.sysess.sympathy.data.json.selectkeyjson`
* :ref:`org.sysess.sympathy.data.json.removekeyjson`
* :ref:`org.sysess.sympathy.data.json.splitonkeyjson`
* :ref:`org.sysess.sympathy.dict.insert`
* :ref:`org.sysess.sympathy.dict.update`
* :ref:`org.sysess.sympathy.dict.getitem`
* :ref:`org.sysess.sympathy.dict.fromitems`
* :ref:`org.sysess.sympathy.dict.values`
* :ref:`org.sysess.sympathy.dict.keys`
* :ref:`org.sysess.sympathy.dict.items`
* :ref:`org.sysess.sympathy.json.jsontodict`
* :ref:`org.sysess.sympathy.json.dicttojson`
* :ref:`org.sysess.sympathy.json.jsontolist`
* :ref:`org.sysess.sympathy.json.listtojson`
Removed nodes:
^^^^^^^^^^^^^^
* Propagate Input
* Repeat Item to List
* Elementwise ADAFs to Tables
* Filter Image (deprecated)
Deprecated nodes/plugins:
^^^^^^^^^^^^^^^^^^^^^^^^^^
* Convert specific columns in Table(s)
* Copy files with Datasources
* Rename file(s)
* Rename Files with Table
* Jinja2 Template (deprecated)
* Plot Table(s)
* Export Figures with Datasources
* Matlab Calculator
* DIVA import plugin
* LAA import plugin
API changes:
^^^^^^^^^^^^
* sympathy.api.dtypes includes handling for reading typed values from text
input
* Deprecated ManagedNode base class.
* Removed deprecated methods from table, adaf, table_wrapper and adaf_wrapper.
* New (compatible) format for F(x) script, see :ref:`F(x)`.
* Deprecate support for ${signal0} syntax in calculator plugins.
* Deprecate imports() from calculator plugins.
News in 1.5.3
-------------
Platform changes:
^^^^^^^^^^^^^^^^^
* Improved behavior of locked subflows:
* Child nodes that have finished executing will give feedback immediately
instead of after the whole locked flow has completed.
* Child nodes that has executed successfully, in memory, will show up in
purple color to indicate that their output port data is unavailable.
* Output from locked child nodes will be shown like for other nodes, in the
Messages view.
* Modifying locked flows will no longer reload all nodes.
* Showing progress from child nodes.
* Locked subflows and lambdas (Apply, Map) will continue executing as much
as possible instead of aborting after the first node has failed.
* Subflow configuration wizard copes with nodes executed in locked subflows
and executes them when needed to ensure that progress can be made.
* Toggle-able filter for list parameters with mode selection saves vertical
space.
* Included brief description of current node state in tooltips.
* Documentation improvements:
* Links to example flows in the node documentation for many nodes, see
:ref:`example_flows`.
* Documented how to create custom library tags for third party libraries, see
:ref:`library_tags`.
* Documented how to create plugins for calculators, importer and exporter
nodes, see :ref:`pluginwriting`.
* Improved documentation for Tables with more modern APIs and descriptions of
attributes etc.
* Windows installer generates links and file associations that ignore local user
site - this makes the bundled Python more stand-alone and helps avoid issues
in case of package conflicts.
Figure and plotting updates:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Figure(s) can now take any sympathy object or lists of object instead of just
tables. The configuration output table is now optional and need to be added
explicitly to be used. Arguments can now be accessed using "arg" instead of
"table" in expressions, eg. arg['X'] gives column X if the argument is a
table.
* Improved the Figure node with new plot types and drawing primitives:
* Boxplots calculating and visualizing median, average, quantiles and outliers.
* Pie-charts.
* Timeline plots for drawing events or states.
* Sets of unconnected lines based on starting/ending XY points.
* Rectangles and Ellipses.
* Text and arrows (annotations) to point out or label parts of data.
* Images (using the generic Figure inputs).
* Added extended example "Figure Gallery" with 12 plots to show how
the new plot types and options can be used.
* Added options for drawing error-bars on scatter-plots and
bar-plots.
* Frames and axes can now toggle visibility and the XY spines of the
axes can be drawn at a predetermined XY data coordinate (eg. with
the axis through origo), or at a given point on the screen
(eg. center).
* Fixed bug showing tooltips for plot parameters.
Node/plugin changes:
^^^^^^^^^^^^^^^^^^^^
* Added error strategies to :ref:`org.sysess.sympathy.list.getitemlist`, when
the list is empty.
* Add different strategies for handling lists of different lengths in
:ref:`org.sysess.sympathy.tuple.ziptuple2`.
* Added median filtering to :ref:`Overlay Images` and :ref:`Overlay Images List`
* Added :ref:`Colormap lookup` to explicitly create colors from
values, useful when creating many figures where exact control of the
colors are needed. New color-maps added for discrete categories of
objects.
* Fixed bug in :ref:`Image to List` missing one of the extracted objects.
* Improved :ref:`Generic Calculator` with:
* More robust handling of dependencies between calculations.
* Compacted layout with a larger portion available for preview.
Input signals are shown in in the tree where functions
are shown.
* Drag and drop of calculations.
* Ability to set custom attributes for each calculation.
* Error handling for :ref:`Extract lambda nodes` with choice
between skip and error.
* :ref:`Match Tables Nodes`:
support for masked arrays.
* :ref:`Filter ADAFs`: will only auto-refresh when it has been enabled.
* :ref:`Adaf(s) to Table(s)`:
shows preview of available signals.
* Many nodes have toggle-able filter for their column selection editors.
* :ref:`org.sysess.sympathy.examples.daskvisualize`: improved detection
of Graphviz installation.
* :ref:`org.sysess.sympathy.data.table.ensuretablecolumns`: can create
type-dependent zero elements for missing columns.
* MDF importer plugin has better support for reading partially unsupported
or broken files.
* Avoid infinite loop when loading scikit-learn 0.20.
* Excel importer plugin copes with date values outside of supported range by
assigning masked values.
New nodes/plugins:
^^^^^^^^^^^^^^^^^^
* :ref:`Rename datasource with regex`: helps to simplify automatically
creating new datasource names based on existing file names.
* ADAF importer plugin for LabVIEW TDMS files.
* :ref:`org.sysess.sympathy.list.transposelist` swaps the outer two layers of a
nested list.
* :ref:`org.sysess.sympathy.keyvaluecalculation`: calculates simple descriptive
statistics for all columns in a table.
API changes:
^^^^^^^^^^^^
* Generalized interface for import and export nodes and their plugins.
* Opt-in support for toggle-able filter for single-select parameters with
combo box editors.
* Public APIs for creating importer and exporter plugins.
* Datasource: added getitem. Example use: ``datasource['type']``.
* Table: added setter for name. Example use: ``table.name = 'some name'``.
* New exception: SyColumnTypeError, raised when creating table columns of
unsupported type.
News in 1.5.2
-------------
Platform changes:
^^^^^^^^^^^^^^^^^
* Fixed problem causing the OK button to be disabled (grey) when configuring
subflows containing certain nodes (for example,
:ref:`org.sysess.sympathy.data.adaf.interpolateadaf` and
Convert Specific Columns in Table
using the Wizard or Tabbed dialog.
News in 1.5.1
-------------
Platform changes:
^^^^^^^^^^^^^^^^^
* Improved performance overhead of nodes that simply select some columns of the
incoming data and pass them to the output.
* Significantly reduced file sizes of lambdas on disk.
* More careful disconnection of signals to improve stability and performance.
* Added option to *Unlink* linked subflows.
* Confirmation dialog when canceling subflow configurations with unsaved changes.
* Better feedback and handling of node errors when configuring subflows.
* Improved ability to open (somewhat corrupt) flows with duplicate identifiers,
instead of failing early.
* Cleared up separation between flows linked from library and normal linked
subflows.
* Disabled automatic documentation generation.
* Cleaned up command line options, "-" is used to separate words instead of
"_".
* Added *Recent* libraries, to simplify switching between libraries in use.
* Restructured documentation format for Nodes.
* New installation instructions for Linux and Mac OS.
* Saving warning filter between node executions to avoid interference.
* Improved deprecation warnings for nodes, on by default.
* Fixed some regressions causing library view not to update.
Node/plugin changes:
^^^^^^^^^^^^^^^^^^^^
* Improved feedback and validation for many scalar parameters. Incorrect values
are displayed in red and the tooltip shows why.
* Added progress and current list index, in case of error - to many list
nodes.
* In some cases, improved performance for :ref:`Replace values in Table`.
* Improved documentation regarding handling of unmatched values for
:ref:`Lookup Table`.
* :ref:`Select categories in ADAFs` now respects the choice made in the combo box
for raster selection.
* :ref:`Datasource` nodes store UNIX paths in their configuration, but show
paths in native format.
* MDF Importer, improved performance when importing unsorted files and added
option to attempt to read incomplete files without error.
* ADAF exporter, improved GUI.
* CSV exporter, improved performance.
* @ca.changed()@, @ca.changed_up()@, and @ca.changed_down()@ can now all handle
masked arrays with scalar masks.
* Filtered several expected warnings produced by nodes.
New nodes:
^^^^^^^^^^^
* :ref:`org.sysess.sympathy.create.configureparameters`
* :ref:`org.sysess.sympathy.create.createparameters`
* :ref:`org.sysess.sympathy.data.table.createindextable`
New flows:
^^^^^^^^^^
* :ref:`org.sysess.lambda.map2flow`
* :ref:`org.sysess.lambda.map4flow`
* :ref:`org.sysess.lambda.configurablemap4flow`
News in 1.5.0
-------------
Sympathy for Data version 1.5.0 offers several improvements and new features,
such as workflows in the library and routing points for connections.
Nodes and flows from 1.3 and 1.4 should for the most part be compatible with
1.5.0.
.. * Connections are rendered as lines. This can be changed to *Spline* in
.. *Preferences -> General: connection shape* if you prefer the original look.
Platform changes:
^^^^^^^^^^^^^^^^^
* Markdown_ is now supported in text fields.
* Mark unavailable items in list views.
* list views and combobox views can be edited when customized with editor
attribute edit=True. This makes it possible to create selections that
includes columns that do not exist in the input data or without executing
previous nodes.
* Shorter tab labels for flows, only showing parent flow names as necessary.
* Only nodes that are in the current libraries can be used. Current libraries
depend on the configured libraries for the current flow and the global
selection from preferences.
* Allow subflows to specify custom svg icons.
* Route points for connections, see :ref:`route_points`.
* 0 based indexing is used more consistently, that is, 0 is the index of the
first element, etc. This behavior is more consistent with python code.
* English/US locale is used regardless of the host language settings.
* Generalized text-output port on all nodes.
* Flows can be added to library, see :ref:`flows_in_library`.
.. _Markdown: http://daringfireball.com/projects/markdown
API changes:
^^^^^^^^^^^^
* Improved backwards compatibility of ParameterLists during execution.
* ParameterLists return copies of its internal state disallowing direct
mutation.
* Ability to get and set dask arrays in adaf and table APIs.
See example nodes: :ref:`Dask max example`, :ref:`Dask stack example` and
:ref:`Dask tail example`.
* Made getitem, setitem usable as a shorthand way of working with arrays
columns in tables. For example table1['x'] = table2['y'].
Node/plugin changes:
^^^^^^^^^^^^^^^^^^^^
* Improved masked arrays support in input data to
:ref:`Select rows nodes