News in 1.3.5¶
Node/plugin changes:¶
Calculations in Calculator can be deselected for output enabling better support for intermediary calculations. This also enables intermediary calculations to have different lengths from output columns.
The input table(s) in Calculator can be easily copied over to the output table(s) with the new Copy Input parameter. Calculations with the same column name override columns from the input table(s).
MATLAB nodes and
Matlab Calculator
have gotten better cross-platform compatibility.Matlab Calculator
has been updated with the same GUI and (almost) the same functionality as Calculator List.Matlab Table and Matlab Tables have gotten a new simplified format. See the documentation for details on how to use that. This format can also be imported and exported in Table and Export Tables respectively. A Table-like API is planned for a future release. The API that currently resides in Sympathy/Matlab will also be deprecated in a later release, in favor of the new format. The old nodes are left for compatibility, so current flows and scripts will still work.
The generic Empty node allows to specify the data type of the output port. The previous, specific, Empty-nodes have been deprecated.
Rename column nodes have more consistent priority rules when more that one column are renamed to the same name.
Extract lambda nodes are more robust with regard to corrupt flows. One corrupt flow should no longer stop the nodes from extracting other lambdas.
New node: Heatmap calculation useful for feeding the heatmap in Figure(s) from Table(s).
New features for heatmaps in Figure(s) from Table(s): logarithmic color scales and Z labels.
Datasource and other nodes where you specify a file path can specify paths relative to its own workflow or the top workflow. This can make a difference when working with linked subflows.
File Datasources GUI is no longer slowed down when searching large folder structures. If the search takes to long it is aborted, and to get the full results the node has to be executed.
The table name used for the output in HJoin Table can now be selected.
Fixes to extract flows as lambdas so that workflow environment variables and flow name are set correctly.
Timesync ADAFs can now use integer timebases and correctly displays datetimes in the plot.
Assert Equal Table now treats NaNs as equal.
Improved config gui and handling of NaN values, masked values and non-ascii binary data in VSplit Table(s).
A new node has been added: HJoin ADAFs pairwise.
When zooming and panning in Plot Table and using datetime as X axis, the current time span in the plot is displayed.
SQL importer plugin can use SQLAlchemy and provide betters autodetection of existing tables.
SQL exporter plugin can use SQLAlchemy.
Improved documentation generation with support for libraries on different drives or on unicode paths.
Platform:¶
Nodes have gotten dynamic port icons that display the actual types.
Color of textfields can now be changed.
A textfields can be moved by dragging on any part of it. It is now edited by double clicking it or by right clicking and choosing “Edit”.
The table viewer and any viewer which uses that component (i.e. ADAF viewer) can now be transposed for better viewing of long column names and tables with few rows but many columns.
Table viewer now supports copying values and/or column names as a table or as text.
The viewer can now show histograms for more types of data.
Allow maximizing subflow configurations.
Linked flows can now be placed on a different drive than their parent flows.
combo_editor for string parameters can now have an empty list of options.
Invalid subflows are more reliably shown as invalid (gray). Now any subflow which looks executable should be executable.
Subflows show an error indicator if they contain any nodes that are not found in the node library. This should make such nodes much easier to find.
Better feedback when trying to open a non-existing or corrupt workflow.
The platform can handle a larger number of linked files without running into the OS limit.
An Advanced tab has been added to Preferences, with one option to limit the number of concurrent nodes that may be executed, and one option to display warnings about deprecated nodes.
New preference option to set number of concurrent worker processes. This may help with performance for heavily branched flows.
Python 3 support for files created with the node and function wizards.
Library wizard can create subdirectories.
Spyder can’t handle files on file paths contaning non-ascii characters, and will fail to start when trying to debug nodes. An error message is now displayed to notify the user of this.
Improved stability of type inference.
File datasources always store absolute paths.
Database datasources can use SQLalchemy in addition to ODBC.
News in 1.3.4¶
Sympathy for Data version 1.3.4 offers improvements to existing nodes, including several new plot types for the figure nodes and overall polish.
Node/plugin changes:¶
Figure nodes have been massively improved with several new plot types (scatter/bar plots/histograms/heatmaps), improved gui, etc
Extended figure export node with plugin exporter structure as for other types and choice of specifying image size in mm and dpi
Reporting Nodes have been improved with rulers in layout window, pdf exporting and auto creation of tree structures
Calculator, allows accessing the input table directly under the name “table” allowing for a way to test if a column exists. The node was also extended with the json module in the execution context
ca.changed now correctly returns empty array for empty input
Added functions ca.global_min and ca.global_max to standard calculator plugin. These handle empty input as you would expect
Interpolate ADAF nodes have improved handling of missing values and resampling of zero-length signals
Datasource and exporter/importer of SQL can use SQLAlchemy
Pad List input can be different types of lists
Predicate nodes have new editors for writing code
VJoin nodes can mask missing values
MDF importer creates MDF_datetime metadata
Assert Equal Table allows approximate comparison of floats
APIs:¶
Made it possible to specify viewer and icon for custom types (TypeAlias). For details, see Data types
Only scanning Libraries for plugins, PYTHONPATH is no longer included
Scalar parameters can use the new combobox editor. See All parameters example for an example
Code parameter editor for string parameters. See Editors for details and All parameters example for an example
Allow Controllers to trigger on user-specified value. For an example of this see Controller example
Implemented
cols()
and added documentation for col/cols and Column class. See Table APIAdded
attrs
property to Table APIExpose dtypes module in sympathy.api
New nodes:¶
Export Figures with Datasources
UI:¶
Improved look and feel of wizards
Library wizard has new examples
Node wizard can select tags
Show filename in flow tab unless flow label has been explicitly set by user. This means that a flow created in 1.3.4 will have no flow label when opened in older versions.
Platform:¶
More robust checks of port types
Masked arrays
Deprecated nodes:¶
Raw Tables nodes
Scatter 3D ADAF
News in 1.3.3¶
Sympathy for Data version 1.3.3 offers improvements to existing nodes, the table viewer and automatic parameter validation when configuring nodes.
GUI:¶
Behaviour change of “?” wildcard in Table viewer search bar to match single character only
General improvements of Table viewer GUI
General improvements of parameter validation
New nodes/plugins:¶
New node: Conditional error/warning
New node: Cartesian product tuple2
Changes in nodes/plugins:¶
Allow unicode characters in Calculator node
Improved default behaviour of Calculator node
Improved rescaling of preview plot in Filter ADAFs node
Improved XLSX export output compatibility
Extract Lambdas can be configured when connected
Improved performance of VSplit Table
Improved bounds checking for calculator functions
shift_seq_start
andshift_seq_end
Improve gui in Create Table. Now allows removing selected rows/columns as well as changing name and datatype of existing columns
Improved handling of bad timebases in interpolation nodes
APIs:¶
Added
value_changed
propagation to parametersMade verify_parameters validate every change to configured parameters, for nodes with generated configurations
Miscellaneous:¶
Fixed update method for tuple type
Data viewer can once again be run stand alone
Updated icons
News in 1.3.2¶
Sympathy for Data version 1.3.2 offers several new and prominent features, such as the ability to specify libraries used by workflows, new window handling which brings open, but minimized, configurations and viewers into focus, a reworked save dialog that properly detects changes in subflows and many improvements to existing nodes.
GUI¶
Raise open Configuration/Settings/Viewer windows on consecutive clicks
Improved save confirmation for workflows
Improvements to the function wizard. Including updating it to work with the new generic F(x) nodes
New features¶
Flows can now specify libraries and python paths in the Info dialog. These are added to the global library/python paths when loading the flow
New error message box for node dialogs for showing validation errors/messages in node configurations
Support for storing masked arrays, but not every node can handle them correctly
New nodes/plugins¶
Figure nodes with support for Tables
New version of Transpose Table(s). These handle multiple rows and columns
Assert Equal Table: for checking if two tables are equal. Mostly useful for testing purposes
Generic F(x) nodes replacing all the previous type-specific f(x) nodes
ATFX importer plugin for ADAF
Set and Get nodes for Table attributes and Table column attributes
Propagate First Input (Same Type). Can be used for constraining type if needed.
Changes in nodes/plugins¶
Renamed Plot to Figure for nodes using the Figure type
Figure Compressor, Layout Figures in Subplots: added auto recolor and auto rescale
Improved datetime handling in Figure nodes
MDF exporter plugin: encode unicode columns instead of ignoring them
Convert columns in Table(s): converts string dates to either UTC or Naive datetimes. Choosing UTC, localized times will be converted to UTC. Choosing naive, the time zone info in the input is simply ignored. Old nodes will automatically use UTC
Improved performance of Select rows in Table(s)
Select rows nodes better handles values without explicit type annotation
Improved error handling in lookup nodes
Calculator plugin: Make sure that result is always correct length in changed_up, changed_down, and shift_array
Filter ADAFs: added parameter validation and error messages. Filter design is computed and shown on parameter changes
Changed the visible name for importer and exporter plugins for ADAF and Table to SyData
Removes matlab settings from Matlab Table,
Matlab Calculator
and put them into global Preferences dialogRenamed calculator nodes to Calculator(s)
CSV Exporter plugin: improved writing of datetime columns
Improve handling of missing units in interpolate nodes
APIs¶
Extended Table API and added
Column
objectChange default value for attribute
'unit'
to always be empty string in ADAFsAdded ParameterView base class for generated and custom GUIs to API. Custom GUIs can override the methods and properties to customize the behavior. Inheriting from ParameterView will be required in the future versions
Miscellaneous¶
Added support for signing the Installer/Uninstaller
Extended searchbar functionality for the Table viewer
Always write generated files in the right directory
Fix overrides not saved in syx files
Non-linked subflows inherit their parents $SY_FLOW_FILEPATH and $SY_FLOW_DIR
Improve performance of type inference
News in 1.3.1¶
Sympathy for Data version 1.3.1 offers several new and prominent features such as an improved data viewer with embedded plot, a new figure datatype and many new nodes as well as improved performance and stability.
New features¶
Improved Data viewer with embedded plotting of signals.
Overhaul of subflow configuration: Split into settings and configuration. Removed grouping. Only allow selecting shallow nodes/flows. Added Wizard configuration mode. Optionally override parameters of linked subflows. Should be somewhat backwards compatible
Added Figure-type. Passes serialized matplotlib figures between nodes
Added tuple-type
Better handling of broken links/nodes missing from library and changed port types due to subflow changes
F(x) function wizard
Allow setting flow name, description, version, author, and copyright information in flow info dialog. Also improved handling of flow labels all around
Expose more environment variables from workflow
New command-line option:
--nocapture
for debugging
New nodes¶
Figure-type nodes: Figure from Table with Table, Figure Compressor, Layout Figures in Subplots, Export Figures
Calculator for a single Table added to Library
New Filter ADAFs node with preview plots and improved configuration gui
Signal generator nodes for generating Table(s) of sinus, cosines or tangents
Matlab Tables node
Propagate Input
and Propagate First Input. These can be used to implement some workarounds and for determining execution order in a flowFilter rows in Tables. This is the multiple Table version of existing Filter rows in Table
Tuple nodes
Delete file, which deletes a specified file from the file system
Node changes¶
Allow selection of multiple columns in Unique Table
Allow choosing specific rasters in Select categories in ADAFs
Table attributes are merged for the HJoin nodes
Allow setting fixed width/height for TextBoxes in Report Template
Easier date settings in Plot Table
Rewrote Matlab Tables and
Matlab Calculator
nodes
Exporters/Importers changes¶
ADAF Importer was extended with option to link to imported content
MDF Importer can handle zip-files that include a single MDF-file as input
Gzip Exporter binary writes files correctly
ATF Importer supports a wider range of files
Export tables nodes will now create output folders if necessary
Increased compression for exported sydata-files produces smaller files
Optimizations¶
Faster reading of writing of intermediate files
Faster ADAF copy methods
Improved length handling for tables
Faster execution of Select rows in Table(s)
Faster execution of Table and Select categories in ADAFs
Responsive preview for Calculator List and Calculator
API changes¶
Added MATLAB API for writing scripts executed by the Matlab node
Added update method to Attributes class. (ADAF API)
Added support for placeholder text in lineedit_editor in parameter helper
Added visibility and enable/disable slots to ParameterValueWidget
Bug fixes¶
Fixed name and type of output port of Report Apply nodes
Fixed a bug where save file dialog wouldn’t show up at all when trying to save subflow on Windows, if the subflow label contained some specific unallowed characters
Made sure that aborting a subflow doesn’t also abort nodes outside of the subflow
Fixed a bug where linked subflows were sometimes inserted with absolute path
Stability¶
Improved reliability when working with lambdas, maps and apply nodes
Deprecated nodes¶
Deprecated nodes don’t show up in the library view, but can still be used in workflows.
Type specific versions of list operation nodes (such as Get Item Table and Append ADAF).
Old FilterADAFs node
News in 1.3.0¶
Sympathy for Data version 1.3.0 offers several new and prominent features such as generic types, higher order functions and much improved support for linked subflows.
Many small improvements were made to the standard node library. Nodes will often cope better with empty input data and deliver informative, but less detailed, feedback.
Nodes from 1.2.x should be compatible with 1.3.0 but there are new, more succinct, ways of writing nodes for 1.3.x that are not backwards compatible with 1.2.x. When writing new nodes, consider which older versions of the platform that will be used.
New features¶
Higher order functions: Lambda, Map and Apply
Official, and much improved, support for Linked Subflows
Official support for Locked Subflows
New library structure using tags
New nodes¶
New generic versions of all list operations
Extract Lambdas builtin node for reading lambda functions from existing workflows
User interface¶
Right-click on an empty part of the flow to insert higher order functions.
New command in context menu for inserting a subflow as a link.
Improved file dialogs in node configurations, by using native dialog when asking for an existing directory and starting file dialogs from currently selected file path.
API changes¶
Simpler APIs for writing nodes. See Node writing
New method in ADAF API:
Group.number_of_rows
Configuration widgets can expose a method called save_parameters which is called before the gui is closed. See Custom GUIs
Added API (parameter helper): List parameter widgets emit
valueChanged
signalImproved slicing of (sy)table with slice object with negative or undefined stride
Automatically update order, label, and description for parameters when the node’s definition changes
NodeContext is no longer a named tuple
Added new method:
NodeContext.manage_input()
. A managed input will have its lifetime decided outside of the node
Linked/locked subflows¶
Include subflows relative to path of parent flow, not relative to root flow. This affects where sympathy searches for linked subflows inside linked subflows and should hopefully feel more natural than the old system
Allow opening of flows with broken links
Import and export nodes can now be used inside locked subflows and lambdas
Made it impossible for flows below a locked flow to themselves be locked
Improved abort for locked subflows
Node changes¶
Report framework: histogram2d graph layer is now called heatmap and can handle different reduction functions (count, mean, median, max, min).
Improved XLS(X) import/export. Especially handling of dates, times, and mixed types. Cells formatted as Time are now imported as timedeltas.
Renamed Sort Table(s) to Sort rows in Table(s)
Calculator List: chooses columns case-sensitively on Windows too.
Calculator List: shows number of output rows in preview in calculator gui.
VSplit Table: Removed constraint that the index should be sorted. The elements will be grouped by the first occurrence of each unique value.
Convert columns in Table: Added conversion path between datetime and float.
Select columns in ADAF with structure Table now works as expected when Remove selected has been checked.
Select rows in Table with Table offers a choice of reduction function between rows in config table. Previously it only read first row of the config table.
“Slice List of ADAFs/Tables”: Basic integer indexing now works as expected.
Improve handling of one sample signals in Interpolate ADAF(s)
Report Apply nodes output datasources to created files
Improved CSV import. Can now handle empty input, input with only one row, with or without trailing newline, and files with errors towards the end. It also features a new option for how to handle errors when importing a file. Header row has been made independent of the other input boxes, and no longer affects the data row. When read to end of file is selected, the number of footer rows is ignored. Delimiter detection was improved
Fixed issues with nesting of higher order functions (Map, Lambda and Apply)
Improvements to reporting: Improved bin placement and x-axis extent of 1d histograms. Automatically set axes labels from data source if they are empty. Added option “Lift pen when x decreases” to line graph layer. Added vline layer in reporting tool.
Several nodes are better at forwarding attributes, table names, etc. to output Slice data Table (deprecated), Select columns in ADAF(s) with structure Table(s), Unique Table(s), ADAF(s) to Table(s), Select rows in Table(s) with Table, Interpolate ADAF(s), and Rename columns nodes
Many nodes are better at handling missing or incomplete input data: Filter rows in Table, Replace values in Tables, Detrend ADAF(s), ADAF(s) to Table(s), Select Report Pages, Scatter nodes.
Added ‘calculation’ attribute on all output columns from Calculator List node
Export Tables and Archive files create missing folders
Fixed Export Texts
Other improvements¶
Added default workflow environment variables
SY_FLOW_FILEPATH
,SY_FLOW_DIR
andSY_FLOW_AUTHOR
. All flows have these and they can’t be set or deleted.Subflows can define workflow variables. Each subflow specializes the variables of its parent flow, so that the parent flows vars are accessible in the subflow but not vice versa.
Improve performance by skipping validation of any nodes that don’t implement
verify_parameters()
Improve performance by changing compression settings for sydata files, compression is faster but compresses slightly less
Pretty print workflow xml files, making diffs possible
New requirements:
Requiring pandas version 0.15 for the CSV import, for versions before 0.15 down to 0.13 it will still work but may behave slightly differently in edge cases with blank rows