Skip to content

v2.0.0

Compare
Choose a tag to compare
@zimingd zimingd released this 23 Mar 21:24

Highlights

  • Multi-threaded download of files from Synapse can be enabled by setting syn.multi_threaded to True on a synapseclient.Synapse object. This will become the default implementation in the future, but to ensure stability for the first release of this feature, it must be intentionally enabled.

    import synapseclient
    syn = synapseclient.login()
    syn.multi_threaded = True
    # syn123 now will be downloaded via the multi-threaded implementation
    syn.get("syn123")
    

    Currently, multi-threaded download only works with files stored in AWS S3, where most files on Synapse reside. This also includes custom storage locations that point to an AWS S3 bucket. Files not stored in S3 will fall back to single-threaded download even if syn.multi_threaded==True.

  • synapseutils.copy() now has limitations on what can be copied

    • A user must have download permissions on the entity they want to copy.
    • Users cannot copy any entities that have access requirements.
  • contentTypes and fileNames are optional parameters in synapseutils.copyFileHandles()

  • Synapse Docker Repository(synapseclient.DockerRepository) objects can now be submitted to Synapse evaluation queues using the entity argument in synapseclient.Synapse.submit(). An optional argument docker_tag="latest" has also been added to synapseclient.Synapse.submit()" to designate which tagged Docker image to submit.

A full list of issues addressed in this release are below.

Bug

  • [SYNPY-271] - cache.remove fails to return the file handles we removed
  • [SYNPY-1032] - Support new columnTypes defined in backend

Task

  • [SYNPY-999] - Remove unsafe copy functions from client
  • [SYNPY-1027] - Copy function should copy things when users are part of a Team
    that has DOWNLOAD access

Improvement

  • [SYNPY-389] - submission of Docker repository
  • [SYNPY-537] - synapseutils.copyFileHandles requires fields that does not require
    at rest
  • [SYNPY-680] - synapseutils.changeFileMetaData() needs description in
    documentation
  • [SYNPY-682] - improve download speeds to be comparable to AWS
  • [SYNPY-807] - Drop support for Python 2
  • [SYNPY-907] - Replace `from <module> import ...` with `import <module>`
  • [SYNPY-962] - remove 'password' as an option in default synapse config file
  • [SYNPY-972] - Link on Synapse Python Client Documentation points back at itself