Change Log

Version

Issue

Type

Description

Compatibility Notes

193.18

44443

Feature

Add spy.workbooks.push(reconcile_inventory_by, global_inventory) arguments and spy.workbooks.pull(include_archived) argument.

193.17

46227

Bugfix

Prevent spy.push() from overwriting worksheets when a workbook name match is found without the folder being specified.

193.16

44044, 45213

Bugfix

Prevent annotation update errors from failing entire workbook push when errors=catalog. Fix Workbook owner lookup causing 'NoneType' object is not subscriptable. Improve Workbook display_range error handling.

193.15

43662, 43663

Feature

Trend toolbar configuration options for the worksheet and workstep.

193.14

45019

Bugfix

Fix Email Notification Scheduler.ipynb notebook to be compatible with 2.x Pandas.

193.13

45176

Bugfix

Improve performance of workstep creation.

193.12

44235

Bugfix

Fix spy.pull(shape='capsules', tz_convert) dropping timezone when all capsules for a condition have NaT values.

193.11

44193

Bugfix

Removes rpy2 usage for executing SPy print messages in R kernel.

193.10

44822

Bugfix

Fix spy.workbooks.pull() 'NoneType' is not iterable error.

193.9

44748

Feature

Support triple-brace syntax for Mustache variables in Workbook Templates.

See new Data Lab Visualizations.ipynb documentation notebook for usage.

193.8

43911

Feature

Introducing Data Lab Environment Manager in spy.widgets.DataLabEnvMgr().

193.7

44548

Bugfix

spy.workbooks.push() was not correctly handling Metric Neutral Color in all cases.

193.6

44530

Bugfix

Fix SPyDependencyNotFound error message throwing AttributeError when extra is missing.

193.5

44536

Bugfix

Replaced the Seeq SDK usage of deprecated methods with the new version.

193.4

44295

Bugfix

spy.workbooks was not correctly handling Topic Document notifications/schedules.

193.3

44469

Feature

Improve performance at the start of the spy.swap() function for large number of swaps.

193.2

44201

Bugfix

Improve ability to interrupt/cancel SPy operations via KeyboardInterrupt and SystemExit exceptions

193.1

44163

Feature

Improve spy.workbooks.push() performance with large item inventories.

193.0

41116

Feature

Split SPy requirements into extras for faster and more lightweight installation use cases.

Automated installations of SPy may need to be updated for these changes, E.G. pip install seeq-spy[all]. See the new “Installation” section of the documentation for more information.

192.38

43964

Feature

Improve spy.workbooks.pull() performance with large item inventories.

192.37

44086

Bugfix

Fix metadata of spy documentation notebooks to use python311 kernel.

192.36

43042

Feature

Warn on spy.login(request_origin_url) if it cannot be inferred from the environment.

192.35

42747

Feature

Improve Workbook Template support for Asset Selection-oriented scenarios

See “Using Asset Selections” in Workbook Templates documentation notebook for more information.

192.34

35468

Feature

Add-on Tools Pane Enhancements - when an Add-on Tool is created, user can select if it should be displayed on Home screen or in Tools Pane.

192.33

43682

Bugfix

Fix spy.workbooks.load() not finding worksteps when the workbook folder has [] in the name.

192.32

43716

Bugfix

Add Locked property to reserved properties.

Applicable only to R66+.

192.31

42806

Bugfix

Improve Tree pulling when workbook parameter is not provided or has mismatch.

192.30

27985

Bugfix

Remove key_uom from the list of reserved properties.

Applicable only to R66+.

192.29

43381

Bugfix

Prevent SSLError: KEY_VALUES_MISMATCH when spy.login(ignore_ssl_errors=True) is used.

192.28

43334

Bugfix

Fix spy.workbooks.push incorrectly resolving path to nested folders when searching by name.

192.27

43042

Feature

Warn on spy.login(request_origin_label) if it cannot be inferred from the environment.

192.26

41491

Feature

Add datasource and workbook commands to the Administration scripts.

192.25

38441

Bugfix

Upgrade spy.widgets to be compatible with ipywidgets 8.

192.24

34051

Bugfix

Add capsule_id_property reserved properties.

Applicable only to R66+.

192.23

35359

Bugfix

Enable friendly exception traceback to be displayed inline in Data Lab Add-on Mode.

192.22

42569

Bugfix

Handle workstep versions with either sqTrendCapsuleSetStore and sqTrendConditionStore.

192.21

42533

Feature

Add documentation to “spy.workbooks.ipynb” and “Workbook Templates.ipynb” to describe how to manipulate a worksheet’s display_items attribute.

192.20

41594, 41440

Bugfix

All SPy imports for files in spy are listed in install requirements.

192.19

34015

Bugfix

‘Display’ added to ‘Asset Type’ in SPy Docs.

192.18

42221

Bugfix

Add Column Definitions property to reserved properties.

192.17

42224, 41832

Bugfix

Fix spy.pull(tz_convert) for conditions. Improve compatibility with Pandas 2.2.

192.16

42014

Feature

Added get_open_port util function to spy.utils.

192.15

41950

Bugfix

When spy.login() errors occur, ensure the original error is raised rather than ones caused by clearing the Session.

192.14

34203

Feature

Updated SPy Documentation notebooks to Python 3.11

192.13

41645

Bugfix

Fix Pandas TypeError when pulling only flyover capsules.

192.12

41565

Bugfix

Fix code changes from 192.8 that rendered the deprecated-but-still-functional spy.utils.get_analysis_worksheet_from_url() unusable.

192.11

39672

Feature

Expose spy.options.request_timeout_in_seconds for better control over the execution of large data workflows.

This new option may require an upgrade of the seeq Python package to function - a warning will be provided if so.

192.10

41630

Bugfix

Fix code changes from 192.0 that caused spy.search({'Type': 'Signal'}) to sometimes return Assets.

192.9

40712

Bugfix

Update Knowledge Base links in example notebooks.

192.8

41565

Feature

Improve performance of spy.workbook.pull() and spy.workbook.push() for customers with large user directories by excluding group membership from User/UserGroup pulls.

spy.utils.get_analysis_worksheet_from_url() has been deprecated in favor of spy.utils.pull_worksheet_via_url().

192.7

35431

Feature

Exposed the parse_schedule_string function publicly through util.

192.6

41248

Bugfix

Included workbook owner and creator info in workbook search results.

192.5

23930

Bugfix

Added worksheet_view url to seeqURL routes

192.4

41374

Bugfix

Fix validation rule preventing floats from being set on spy.options.compatibility. Fix spy.search() incorrectly converting Estimated Sample Period to str when using compatibility=188.

192.3

34617, 38639

Bugfix

Added errors in docstring of Status class and updated Asset Trees documentation ipynb and rst files.

192.2

38737

Bugfix

Added a warning for setting compatibility to a number outside the supported range.

192.1

39601

Bugfix

Added type validations for the function arguments in find_user(), find_group(), get_user_timezone(), get_server_version_tuple(), validate_data_lab_license(), validate_login(), get_fallback_timezone() and is_valid_unit() functions.

192.0

41197

Bugfix

Fix spy.search() not returning assets correctly in certain cases. Add “On Match” option to Regex datasource map logic to continue processing after the criteria matches but no item was found in the destination server. Use spy.options.compatibility=191 to restore previous behavior in all cases.

191.4

33715

Bugfix

Fix typo and added whitespace in get_analysis_worksheet_from_url().

191.3

40874

Bugfix

Tweak spy.workbooks example notebooks for automated testing.

191.2

41125

Bugfix

Fix various problems in support of the Calculation column in spy.pull().

191.1

40930

Bugfix

Fix edge cases in spy.workbooks.push(datasource_map_folder) being unable to map workbook-scoped items to various existing items.

191.0

34296

Bugfix

Fix Tree() allowing unsupported types to be inserted.

Existing scripts that have misspelled types when inserting into a Tree() (e.g. ‘Threshold Metric’ instead of ‘ThresholdMetric’) should fix typos or use spy.options.compatibility=190.

190.18

40805, 40826

Bugfix

Fix get_analysis_worksheet_from_url not accepting a session, include markdown versions of the SPy docs as part of publishing, publish spy.swap reference doc.

190.17

40804

Bugfix

Fix errors in spy.swap() when quiet=True and when the input dataframes are empty.

Fixes compatibility break introduced in 190.5 where spy.swap’s Swap Results column was renamed to Results - Specify spy.options.compatibility=189 to get the original behavior.

190.16

40078

Bugfix

Add Stale Metadata property to reserved properties.

Applicable only to R65+.

190.15

40647, 40649, 40569

Bugfix

Fix AttributeError: 'dict_values' has no attribute 'split' in spy.swap(). Fix KeyError: 'dur' in spy.pull(). Improve memory usage of folder searches.

190.14

40547

Bugfix

Fix spy.search(all_properties=True) for swapped items as a non-admin.

Applicable only to R62+.

190.13

23336

Feature

Better support for Asset Groups and local Asset Trees in spy.workbooks.push().

190.12

40547

Bugfix

Fix TypeError: need a bytes-like object, float found in spy.push(metadata).

190.11

39063

Feature

Exposed the in_development parameter to spy.addons.install.

Applicable only to R65+.

190.10

23336

Feature

Better support for Asset Groups in spy.push(metadata).

Applicable only to R64+.

190.9

40350

Bugfix

spy.search() incorrectly converts certain columns to str when using compatibility=188. spy.push() is unable to round-trip reference items.

spy.search()’s Formula Parameters, Swappable Assets, and Thresholds columns when compatibility=188 is specified will no longer incorrectly be cast to str.

190.8

40353

Bugfix

Improved error reporting for messages coming from the SDK.

190.7

40301

Bugfix

Better support for asset trees in workbooks/worksheets that have been duplicated through the UI.

Applicable only to R64+.

190.6

38957

Bugfix

Improve spy jobs logging and notification messages

190.5

40228

Bugfix

spy.pull(assets_df, calculation=<calc>, grid=None) throws incorrect error. Also improved the way column headers are determined in spy.pull() after a spy.swap(), and parallelized spy.swap() operations.

“Swap Result” column in spy.swap() results has been renamed to just “Result”.

190.4

39832

Bugfix

Fix 'NoneType' object has no attribute ... error in spy.workbooks.pull() and spy.search().

190.3

39846

Bugfix

Out-of-memory errors can result from repeated calls to worksheet_template.copy().

190.2

39796

Bugfix

spy.push() with a Condition column can silently fail.

190.1

38173

Bugfix

Improve the request timings meters parsing logic.

190.0

39559

Feature

Add spy.workbooks.job module for bulk workbook changes and content migration. See “Workbook Jobs.ipynb” documentation notebook for usage information.

189.18

39189

Bugfix

SPy ACL pull and push raise FutureWarning: Setting an item of incompatible dtype is deprecated.

189.17

39192

Bugfix

Fix spy.push() performance issue. Now 10x faster than previous version.

189.16

34632

Bugfix

Fix UnicodeEncodeError when Notebook name contains non Latin-1 chars.

189.15

38934

Bugfix

Update Knowledge Base links in example notebooks.

189.14

38940

Bugfix

Fix TypeError: _init_() got an unexpected keyword argument ‘force_calculated_scalars’.

189.13

35351

Bugfix

Prevent jobs.pull() from erroring if /api/sessions does not give a valid JSON response.

189.12

37733

Bugfix

Deprecate offset and incorporate continuation token for compute pagination.

Applicable only to R63+.

189.11

38450

Bugfix

spy.acl.push(), allow users with indirect permissions to transfer permissions to other users.

189.10

37888

Bugfix

Scalars created by SPy are now forced to CalculatedScalars, so they can be edited in the UI.

Applicable only to R61+.

189.9

38383

Bugfix

Fix parsing of Mustache variable syntax for images.

189.8

38168

Bugfix

Fix spy.search() not working when IDs are specified in lowercase.

189.7

38240

Bugfix

Add authentication information to screenshot get request for Advanced Scheduling Example.

189.6

37905

Bugfix

Fix displayed cron description ‘day of the week’ when scheduling notebooks.

189.5

30514

Feature

Added notify_on_skipped_execution and notify_on_automatic_unschedule parameters to the spy.jobs notebook scheduling functions.

189.4

38193

Feature

Add “Data Processed” metrics to spy.pull() Status DataFrame. See new “Performance Metrics” section of spy.pull.ipynb documentation notebook for more information.

189.3

37603

Feature

Support images as Mustache variables in Workbook Templates. See new Data Lab Visualizations.ipynb documentation notebook for usage.

189.2

38169

Bugfix

Unbounded capsules incorrectly returned pd.NA for ‘Capsule Start’ and ‘Capsule End’ instead of pd.NaT.

189.1

38032

Bugfix

Ensure ‘Capsule Is Uncertain’ column in spy.pull() works with ‘Original Uncertainty’ API output changing from a boolean to a number.

Applicable only to R63+.

189.0

32942, 28948

Feature

Improve spy.search() speed (with Seeq Server R62+) when all_properties=True or when processing a DataFrame of IDs. Add include_properties and limit parameters to spy.search().

spy.search() now returns a default limit of 1,000 items - if your queries are expected to return more results, the limit argument should be specified or spy.options.compatibility = 188 should be used. When a DataFrame containing IDs is specified for spy.search(), all_properties=True is no longer implied - you will need to specify all_properties=True explicitly or use spy.options.compatibility = 188.

188.4

37889

Bugfix

Fix pushing items that are not in the SPy datasources.

188.3

37789

Bugfix

Fix pushing Metrics with custom threshold colors.

188.2

36908

Bugfix

Fix Tree.insert() raising warnings due to dtype not being specified in pd.Series().

188.1

37560

Bugfix

Improve handling of KeyboardInterrupt exceptions across all functions.

188.0

34148

Feature

Add top-level spy.swap() function to swap items across assets. See new spy.swap.ipynb reference workbook for usage guidance. Also added old_asset_format argument to spy.search() and several other functions, see function reference for details.

New spy.options.compatibility facility added to allow user to specify what version of SPy they have tested with. This will allow future versions of SPy to more easily maintain compatibility with existing scripts and notebooks.

187.6

37591, 37557

Bugfix

Fix workbooks.push() error when a Journal annotates a Capsule. Improve documentation for formula_parameters in Tree.insert().

187.5

37433

Bugfix

Fix error in spy.workbooks when the display_range is stored as a string.

187.4

37089

Bugfix

Improve example notebook consistency for online publishing.

187.3

36948

Feature

Add user migration administration notebook.

187.2

37290

Bugfix

Fix backward compatibility for spy.utils.parse_str_time_to_ms().

187.1

28728

Bugfix

Improve compatibility for additional configurations in @Asset.DateRange.

spy.utils.parse_str_time_to_ms() has been deprecated in favor of spy.utils.parse_str_time().

187.0

36704

Bugfix

Update SPy to work with Pandas 2.X

186.9

36654

Bugfix

Fix backward compatibility for seeq.base.system.cleanse_path().

Applicable only to R62+.

186.8

36345

Bugfix

Fix spy.push(data) only maintaining the last page worth of pushed samples/capsules (100k by default).

186.7

33922

Bugfix

Prevent PermissionInheritanceEnabled and MetadataProperties property errors when round-tripping search()/push(metadata).

186.6

36264, 36268

Bugfix

Fix 'NoneType' object has no attribute 'errors' in workbooks.pull() when a formula dependency is not accessible. Prevent workbooks.pull() failing if an item has an invalid UIConfig.

186.5

30009

Bugfix

Remove dependency on seeq.base.system in favor of relying on seeq.base.util.

Compatibility issues could be present if your scripts directly use from seeq.base import system except the maintained system.cleanse_path() function.

186.4

31685

Bugfix

Fix pushing Workbook Templates from one server to another due to include_inventory.

186.3

36273

Bugfix

Update spy.push(replace) docs to include signals.

186.2

36082

Bugfix

Use the Notifications SDK instead of basic HTTP requests to send emails.

Applicable only to R61+.

186.1

34810

Feature

Enable pushing to Seeq-native datasources using push(..., datasource=spy.INHERIT_FROM_WORKBOOK).

186.0

31481

Feature

Add support for LiteralScalar item type.

Applicable only to R61+.

185.5

35789

Bugfix

Fix raise_or_catalog() when the Status dataframe is in summary mode.

185.4

25450

Bugfix

Fix spy.push(data) use cases.

185.3

35163

Bugfix

Fix Push errors, particularly for Workbook Templates.

185.2

31685

Bugfix

Change /sendEmail endpoint to /send-email.

Applicable only to R61+.

185.1

33745, 34629, 34658

Bugfix

Add request origin label and url for Scheduled Notebooks and Data Lab Functions.

185.0

32426

Feature

Split SPy into its own seeq-spy PyPI package.