Skip to content

SpectrumX SDK Changelog

0.1.18 - YYYY-MM-DD

0.1.17 - 2025-12-20

  • Fixes:
    • Improved file downloads: more reliability for file downloads when they need to be resumed.
      • File downloads now use a temporary file during download to avoid partial files being left behind if the download is interrupted.
      • When overwrite is False and a local file would be overwritten, we skip re-downloading it.
      • When overwrite is True and the checksums don't match with server, we re-download and replace the local file to match the server's.
      • If local file is identical to server's, we now skip the download entirely, even when overwrite is True.

0.1.16 - 2025-12-16

  • Fixes:
  • Reliability:
    • Relaxed validation in capture listing: capture listing is now more tolerant of cases where a given capture fails validation, now listing the ones that can be loaded correctly instead of failing the whole operations. Container fields like files now also default to empty ones if missing, instead of failing validation.

0.1.15 - 2025-12-02

  • Features:
    • Added support for Python 3.14: the SDK is now compatible with Python 3.14. We're thus dropping support for version 3.10 in this and future releases.
    • Improved UX for file uploads: the new file upload process:
      • Backwards compatible with previous method.
      • Discovery step lists all files before starting upload.
      • Concurrent uploads with asyncio: up to 5 streams by default.
      • Progress tracking the number of files and bytes, in human-friendly units.
      • Tracking completed :white_check_mark:, failed :x: , in progress :hourglass_flowing_sand:️ and skipped:rabbit2: files. On Windows, we use ASCII characters for better compatibility.
    • New file upload persistence: we now keep a local copy of the upload state of files.
      • This makes resuming interrupted uploads faster. The persistence mode can be bypassed with persist_state=False in upload methods in case users want to force the file checks (previous behavior).
  • Reliability:
    • Increased the battery of tests for file uploads and progress tracking.
    • Several new tests covering features of upload state persistence.

0.1.14 - 2025-10-07

0.1.13 - 2025-08-26

0.1.12 - 2025-08-12

0.1.11 - 2025-07-03

0.1.10 - 2025-06-05

0.1.9 - 2025-05-08

  • Features:
    • Capture deletions: captures may now be deleted using the SDK with sds_client.captures.delete().
    • Advanced searches: introducing preliminary support for advanced capture searches using OpenSearch queries. See the OpenSearch Query Tips for details about the syntax. The SDK endpoint is sds_client.captures.advanced_search(): the method's docstring has information on arguments and links to documentation.
  • Usage improvements:
    • Allowing positional args: SDK methods that receive a single UUID as an argument now allow it to be passed as a positional argument e.g. sds_client.get_file(<uuid>) is equivalent to sds_client.get_file(uuid=<uuid>).
    • Capture uploads: new high-level method that combines the upload of a directory of files with a capture creation: sds_client.upload_capture().
    • Usage guide updates: the SDK usage guide now includes information on how to check the results returned by a directory upload.
    • Logging control:: client's verbose flag propagates to submodules and sub-APIs.
  • Bugfixes and reliability improvements:
    • Bugfix: File.local_path attribute of some downloaded files was not correctly set.
    • Path usage tests:: new tests to cover regressions of different ways to use paths from SDK methods.
    • Capture read test: tests for client.capture.read() now check the number of files associated to the capture is correct.

0.1.8 - 2025-03-24

  • Features and improvements:
    • #72 Added Windows compatibility.
    • #79 SDS files may now be deleted using the SDK.
    • #78 The capture_type argument of sds_client.captures.listing() is now optional.
    • #78 The method sds_client.captures.read() is now available for reading a single capture, complementing the existing sds_client.captures.listing() method.
    • #78 When retrieving a single capture with capture = read(<uuid>), the list of files associated to it is available in capture.files.
      • Note these are CaptureFile instances, which hold a subset of the information in an SDS' File instance. To get all metadata on a file, use sds_client.get_file(<uuid>).
  • Fixes:
    • #77 Fixed incorrect file name being set when the file contents are already in SDS.
    • #77 local_path is now set for uploaded files across all three upload modes.
    • #71 File permissions are now included in file uploads; redesigned handling of permission flags.
  • Housekeeping:
    • #76 Fixed documentation typos; Updated and expanded note on concurrent access in the usage guide.

0.1.7 - 2025-03-07

  • Features:
    • spectrumx.api.captures.create() now accepts a scan_group for RadioHound captures.
    • index_name from spectrumx.api.captures.create() is dropped: the index is automatically chosen from the capture type.

0.1.6 - 2025-02-24

  • New features:
    • Support for Python 3.10 and 3.11.

0.1.5 - 2025-02-10

  • Breaking changes:
    • spectrumx.models.File moved to spectrumx.models.files.File.
  • New features:
    • SDS Capture creation and listing.
  • Housekeeping:
    • Refactored client by branching its method implementations and client configuration to separate modules.

0.1.4 - 2025-01-17

  • New features:
    • File listing with lazy-loaded paginated results.
    • Introduced new file upload modes to avoid re-uploading files already in SDS.
  • Housekeeping:
    • Usage documentation updated.
    • See tests/e2e_examples/check_build_acceptance.py for more SDK usage examples.
    • Refactoring of internal modules.
    • Improved test coverage.