Change syn.list to no longer use deprecated function chunkedQuery

Description

A user was wondering how to list files in a folder entity.
https://github.com/Sage-Bionetworks/synapsePythonClient/issues/389

It seems weird that we have list available in the command line client

but not a documented public method for list()

Environment

None

Activity

Show:
Kimyen Truong
July 16, 2018, 6:29 PM

, I will be tracking the development work related to syn.list here. I am setting you as validator because your work are effected by this issue.

Meredith Slota
July 17, 2018, 10:00 PM
Edited

Can you help me understand the approach we're taking here? Is it to do as describes and separate out getChildren from the _list functionality?

Kimyen Truong
July 17, 2018, 10:45 PM
Edited

, the Synapse Python client has multiple usage of the deprecated entity query. While the entity query system is deprecated in the backend, and in the develop branch of the client, some functions are still using it indirectly. syn.list is an example.

While deprecating the entity query, getChildren, look up child API and file view are supposed to replace all the needs of the entity query. However, it didn't. I am not sure if this is because we haven't successfully move users to use file view or there are other reasons.

Regardless, syn.list is currently using the deprecated entity query and cannot be replaced by any API that the backend provided:

  • getChildren doesn't give us the information we need. To use getChildren, we will ended up making n+1 calls to the backend, with n is the number of files under the hierarchy.

  • Using file view requires there is a file view for each scope that the user want to look into. Creating a file view on the fly is not perform very well. Also, using file view, we would run into view not available problems all the time.

So has proposed an API that could be exposed in the backend to help support the use of syn.list. The issue is tracked at PLFM-4578. This service is supposed to allow us to turn n calls to the backend to a n/limit calls, with limit is the number of entity the backend service allows in 1 batch.

Kimyen Truong
October 31, 2018, 1:33 AM
Edited
Kenneth Daily
January 17, 2019, 8:59 PM

works! tested with recursion too.

Assignee

Kimyen Truong

Reporter

Ziming Dong

Labels

Validator

Kenneth Daily

Development Area

None

Release Version History

None

Fix versions

Priority

Major
Configure