v2.0.0
Highlights
-
Multi-threaded download of files from Synapse can be enabled by setting
syn.multi_threaded
toTrue
on asynapseclient.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
andfileNames
are optional parameters insynapseutils.copyFileHandles()
-
Synapse Docker Repository(
synapseclient.DockerRepository
) objects can now be submitted to Synapse evaluation queues using theentity
argument insynapseclient.Synapse.submit()
. An optional argumentdocker_tag="latest"
has also been added tosynapseclient.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