Change Log ========== .. list-table:: :header-rows: 1 :widths: 10, 10, 10, 35, 35 * - Version - Issue - Type - Description - Compatibility Notes * - 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 ``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=, 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. -