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()
, 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.
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?
, 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.
works! tested with recursion too.