Skip to content

Releases: Sage-Bionetworks/synapsePythonClient

v4.3.0

31 May 22:19
Compare
Choose a tag to compare

Highlights

  • New tutorial:
    • Uploading data in bulk
      is our newest tutorial. It covers the basics of working with manifest files to manage synapse projects.
  • Updates to syncToSynapse:
    • The syncToSynapse function has been refactored to improve performance and
      reliability.
    • Minor behavior change: File entities will no longer have it's version
      incremented during no-op changes. Only when file content, or fields on the file
      has been updated will a version number be incremented.
    • Optional booleans merge_existing_annotations and
      associate_activity_to_new_version have been added. Both are used to give more
      fine tuned control when working with this interface.
    • Check out the changes in the reference docs.

What's Changed

  • [SYNPY-1474] Correct order of credentials in comment by @BryanFauble in #1091
  • [SYNPY-1456] Flaky integration tests due to connection issues by @BryanFauble in #1085
  • [SYNPY-1456] Revert to old ubuntu by @BryanFauble in #1092
  • [SYNPY-1466] update user agent for command line by @danlu1 in #1090
  • Update README.md by @allaway in #1093
  • [SYNPY-1470] Remove SonarCloud's dependency on test job by @danlu1 in #1095
  • [SYNPY-1470] Always run SonarCloud as long as previous jobs are not cancelled by @danlu1 in #1096
  • [SYNPY-1356] Refactor sync to synapse by @BryanFauble in #1083
  • [SYNPY-1356] Logic around disassociating Activity from File Entity by @BryanFauble in #1098
  • [SYNPY-1341] Add CI step to containerize and upload synpy to the GHCR by @jaymedina in #1100
  • [SYNPY-1384] Create uploading data in bulk tutorial by @BryanFauble in #1101

Full Changelog: v4.2.0...v4.3.0-rc

v4.3.0-rc

30 May 22:50
Compare
Choose a tag to compare
v4.3.0-rc Pre-release
Pre-release

Highlights

  • New tutorial:
    • Uploading data in bulk
      is our newest tutorial. It covers the basics of working with manifest files to manage synapse projects.
  • Updates to syncToSynapse:
    • The syncToSynapse function has been refactored to improve performance and
      reliability.
    • Minor behavior change: File entities will no longer have it's version
      incremented during no-op changes. Only when file content, or fields on the file
      has been updated will a version number be incremented.
    • Optional booleans merge_existing_annotations and
      associate_activity_to_new_version have been added. Both are used to give more
      fine tuned control when working with this interface.
    • Check out the changes in the reference docs.

What's Changed

  • [SYNPY-1474] Correct order of credentials in comment by @BryanFauble in #1091
  • [SYNPY-1456] Flaky integration tests due to connection issues by @BryanFauble in #1085
  • [SYNPY-1456] Revert to old ubuntu by @BryanFauble in #1092
  • [SYNPY-1466] update user agent for command line by @danlu1 in #1090
  • Update README.md by @allaway in #1093
  • [SYNPY-1470] Remove SonarCloud's dependency on test job by @danlu1 in #1095
  • [SYNPY-1470] Always run SonarCloud as long as previous jobs are not cancelled by @danlu1 in #1096
  • [SYNPY-1356] Refactor sync to synapse by @BryanFauble in #1083
  • [SYNPY-1356] Logic around disassociating Activity from File Entity by @BryanFauble in #1098
  • [SYNPY-1341] Add CI step to containerize and upload synpy to the GHCR by @jaymedina in #1100
  • [SYNPY-1384] Create uploading data in bulk tutorial by @BryanFauble in #1101

Full Changelog: v4.2.0...v4.3.0-rc

v4.2.0

19 Apr 00:10
Compare
Choose a tag to compare

Highlights

  • Continued Async Support:
    • Multi-threaded Uploads Are Now Async: This change optimizes the upload process to handle multiple tasks simultaneously: uploading file parts concurrently, performing MD5 checksum calculations in separate processes, and making HTTP calls asynchronously. Further, memory management techniques were implemented to prevent crashes on low-resource EC2 instances. Benchmark results can be found here.
    • HTTPX Support & Async Client Instances: In this update, support for the HTTPX library has been introduced, enhancing the functionality of Synapse with two new async client instances for seamless interaction with Synapse and Storage Providers. Additionally, the retry and back-off mechanisms have been revamped to improve reliability and performance, ensuring smoother operation even under challenging network conditions.

What's Changed

Full Changelog: v4.1.1...v4.2.0

v4.2.0-rc

18 Apr 14:17
Compare
Choose a tag to compare
v4.2.0-rc Pre-release
Pre-release

Highlights

  • Continued Async Support:
    • Multi-threaded Uploads Are Now Async: This change optimizes the upload process to handle multiple tasks simultaneously: uploading file parts concurrently, performing MD5 checksum calculations in separate processes, and making HTTP calls asynchronously. Further, memory management techniques were implemented to prevent crashes on low-resource EC2 instances. Benchmark results can be found here.
    • HTTPX Support & Async Client Instances: In this update, support for the HTTPX library has been introduced, enhancing the functionality of Synapse with two new async client instances for seamless interaction with Synapse and Storage Providers. Additionally, the retry and back-off mechanisms have been revamped to improve reliability and performance, ensuring smoother operation even under challenging network conditions.

What's Changed

Full Changelog: v4.1.1...v4.2.0-rc-dev

v4.1.1

29 Feb 02:05
Compare
Choose a tag to compare

Highlights

  • New Downloading Data in Bulk Tutorial
  • Downloading Files Troubleshooting Improvement
    • Improved error logging for when users are downloading files using commands like get-download-list from Synapse.

What's Changed

  • Regen pipfile.lock for dependabot alert by @BryanFauble in #1069
  • [SYNPY-1383] Downloading data in bulk tutorial by @BryanFauble in #1070
  • [SYNPY-1443] Correct which fields are merged if there is a change by @BryanFauble in #1072
  • [SYNPY-1442] Log update to capture exception when download-list fails by @BryanFauble in #1071
  • [SYNPY-1445] Raise exception on HTTP error when retrieving file from storage location by @BryanFauble in #1074

Full Changelog: v4.1.0...v4.1.1

v4.1.0

22 Feb 23:56
Compare
Choose a tag to compare

Highlights

  • New Interfaces:

    • Combines data and behavior into a single class, simplifying the understanding and usage of the system's models.
    • New Interface: Introduced a revamped interface in the Synapse Python Client, shifting from a functional programming approach to an object-oriented one.
    • Enhanced Developer Experience: This change highlights much needed quality of life updates for developers. Improved autocomplete, hoverdocs, and examples in docstrings provide a significantly better coding experience.
    • Asyncio Support: Introduced support for asyncio, enabling more efficient use of system resources and enhancing performance for IO-bound tasks.
    • Extensibility: Laying the foundation for an extensible platform, facilitating easier addition of new features, and improvements to the Synapse Python Client.
  • synapseutils.walk Improvement:

    • Improved performance for synapseutils.walk.
  • Pandas Range Expansion:

    • Expanded pandas range to >=1.5, <3.0.
  • Version Notation Support:

    • Using syn123.version notation is now supported with syn.get, synapseutils.syncFromSynapse, and syn.setProvenance. This enhances consistency in version management across various activities.

What's Changed

Full Changelog: v4.0.0...v4.1.0-rc

v4.0.0

17 Jan 16:04
Compare
Choose a tag to compare

Highlights

  • Only authentication through Personal Access Token
    (aka: Authentication bearer token) is supported. Review the Authentication document for information on setting up your usage of a Personal Access Token to authenticate with Synapse.
  • Date type Annotations on Synapse entities are now timezone aware. Review our reference documentation for Annotations. The pytz package is reccomended if you regularly work with data across time zones.
    • If you do not set the tzinfo field on a date or datetime instance we will use the timezone of the machine where the code is executing.
    • If you are using the Manifest TSV for bulk actions on your projects you'll now see that [synapseutils.sync.syncFromSynapse][] will store dates as YYYY-MM-DDTHH:MM:SSZ. Review our documentation for an example manifest file. Additionally, if you'd like to upload an annotation in a specific timezone please make sure that it is in ISO 8601 format. If you do not specify a timezone it is assumed to use the timezone of the machine where the code is executing.
  • Support for annotations with multiple values through the Manifest TSV with the usage of a comma delimited bracket wrapped list. Any manifest files wishing to take advantage of multi-value annotations need to match this format. Examples:
    • ["Annotation, with a comma", another annotation]
    • [1,2,3]
    • [2023-12-04T07:00:00Z,2000-01-01T07:00:00Z]
  • Migration and expansion of the docs site! You'll see that the look, feel, and flow of all of the information on this site has been touched. As we move forward we hope that you'll provide the Data Processing and Engineering team feedback on areas we can improve.
  • Expansion of the available Python Tutorials can be found starting here.

What's Changed

New Contributors

Full Changelog: v3.2.0...v4.0.0-rc

v3.2.0

28 Nov 16:23
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.1.1...v3.2.0

v3.1.1

01 Nov 18:16
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.1.0...v3.1.1-rc

v3.1.0

23 Oct 21:29
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.0.0...v3.1.0-rc