Releases: spotfiresoftware/spotfire-python
Releases · spotfiresoftware/spotfire-python
2.2.0
NumPy 2.0 Support
- Update requirement to support NumPy 2.0. (#54)
- Update other requirements to NumPy 2.0 compatible versions, including Pandas and Cython (#47).
- Due to NumPy's requirements, update the minimum Python requirement to 3.9 (from 3.7).
SBDF Improvements
GeoDataFrame
objects (from thegeopandas
package) are no longer automatically exported as if they were Spotfire geocoding tables. TheXMin
,XMax
, andXCenter
columns (and the correspondingY*
versions) are not recomputed (nor are they created if they do not exist in the originalGeoDataFrame
), and the metadata properties are not set (the biggest issue is with theMapChart.GeometryType
property, which can prevent data sets with mixed types of geometry (e.g., LineStrings and MultiLineStrings) from being exported). For users who require these columns and metadata properties for their Spotfire analyses, the export logic has been moved to a new public functionset_geocoding_table
(in thespotfire
module). (#44)- Correctly export NumPy
datetime64
values for all date/time resolutions (i.e., other thandatetime64[ns]
). (#65)
Data Function Improvements
- Expose information about data function inputs and outputs to the data function via new dunder-objects (
__spotfire_inputs__
and__spotfire_outputs__
, sequences ofAnalyticInput
andAnalyticOutput
objects) in the global namespace of the data function. (#64) - Make it possible to set filenames in data function backtraces (instead of
<data_function>
. Intended for use during data function development; this feature is not used by Spotfire. (#67) - Fix a unit test that could fail under race conditions based on when the test was run. (#52)
Spotfire SPK Package Building Improvements
- When building SPK packages, now include the requirements and constraints files used to construct the SPK in the package. (#56)
- Use more Pythonic methods for reading package metadata and identifying package files. Removes usages of the deprecated
pkg_resources
module from thesetuptools
package (removed in version 67.5.0). (#59)
Other Improvements
- Add a new
spotfire.support
module for creating troubleshooting bundles with information about your Python environment for use in diagnosing problems together with Spotfire support. (#57)
Packaging Improvements
- Migrate the project to use the
pyproject.toml
file as the primary project metadata location. - Added Python 3.12 to the set of pre-compiled wheels. (#66)
- Fixed issues with
Py_UNICODE
's removal from Python 3.12.
- Fixed issues with
- Improved the static analysis of all code.
2.1.2
1.8.4
- Support the code signing of built SPK packages with certificates in Windows system certificate stores. (#58)
Note that this release is relative to v1.8.3. (v1.8.3...v1.8.4)
2.1.1
2.1.0
- Do not fail with an "unknown dtype" when exporting timezone aware datetime objects to SBDF. (#30)
- Reduce the logging of table and column metadata to the data function flow's debug logs to avoid overly-large log output. (#48)
1.8.3
- Reduce the logging of table and column metadata to the data function flow's debug logs to avoid overly-large log output. (#48)
- When exporting data, use a method that is not deprecated by Pandas 1.5.0. (#28)
Note that this release is relative to v1.8.2
. (v1.8.2...v1.8.3)
2.0.1
2.0.0
Performance Improvements
- The
spotfire.sbdf
module has been rewritten as a native C extension using Cython, which allows using the C Library for TIBCO Spotfire Binary Data Format (vendored into thevendor/sbdf-c
directory) instead of the original pure-Python implementation. This change improves performance and allows the reading and writing of SBDF files that are written using RLE encoding (which was not implemented for the pure-Python implementation). (#36) - With the introduction of Cython support in
setup.py
, thespotfire.codesign
module has been rewritten using Cython. - To work around the deprecation of
msilib
in Python 3.11, thespotfire.cabfile
module has been rewritten using Cython to directly call the Windows API to create cabinet files. Non-Windows platforms will raiseOSError
exceptions on object creation instead of the current behavior of conditionally defining the class. (#29)
As a result of these architectural changes, the version number of this package has been incremented to 2.0.0.
Creating SPK Packages
- User installed packages (installed with
pip install --user
) could override thespotfire
package that is deployed via the Spotfire server, potentially installing an older version that does not contain support for required features. Now, when you build an interpreter SPK package (usingpython -m spotfire.spk python ...
), thespotfire
package is installed into a separate directory, which is then automatically inserted into the Pythonsys.path
, before any "site-packages" directory, on interpreter startup. (#39) - When you build a packages SPK package (using the command
python -m spotfire.spk packages ...
), wheels with data directories (such asxgboost
1.7.5 on Windows) no longer result in SPK packages missing Python files from the wheel. (#40)
1.9.0
1.8.2
- Promote
Integer
typed columns toLongInteger
if they will not fit in 32 bits. Partially restores behavior seen before adding type information for #6 when Pythonint
s always exported asLongInteger
. - When running data functions, make sure exceptions with causes (i.e., nested exceptions) output the causes in addition to the main exception.