Package: tvb-rest-client
TVB REST clientThetvb-rest-clientis a helper package built with the intention to simplify a
Python client interaction with TVB REST Server.
All the logic necessary to prepare and send requests towards the REST server, is embedded under this client API.GETrequests are sent from this python client using therequestslibrary.For thePOSTrequests, a client has to attach a file with some input configuration.
Such a file is usually anH5in TVB specific format.
Thus,tvb-rest-clienthas all the logic for preparing those H5 files and sending requests.
Also, the REST server uses a Keycloak client at log in time, so this client will open a browser that allows the user to
log in, before attempting to make the requests.UsageYou should have a TVB REST server running, or access to a public one.
Then intotvb-rest-clientyou need to provide the URL towards this TVB REST server.
For the following example, we will suppose TVB REST server runs onhttp://localhost:9090To launch a TVB REST server locally, you should downloadtvb-frameworkversion >2.0. and launch it:$ python -m tvb.interfaces.web.run WEB_PROFILE  # Launch TVB web and REST servers locallyAccessing the client API entry-pointIf the TVB REST server you want to access runs at another address, change the parameter
in the bellow TVBClient instantiation.fromtvb.interfaces.rest.client.tvb_clientimportTVBClienttvb_client=TVBClient("http://localhost:9090")Attempt to login and start using the client API to send requests, by calling different types of methods:methods that return a list of DTOstvb_client.browser_login()list_of_user_projects=tvb_client.get_project_list()list_of_datatypes_in_project=tvb_client.get_data_in_project(list_of_user_projects[0].gid)list_of_operations_for_datatype=tvb_client.get_operations_for_datatype(list_of_datatypes_in_project[0].gid)method that download data files locally, under a folder chosen by the clientdatatype_path=tvb_client.retrieve_datatype(list_of_datatypes_in_project[0].gid,download_folder)method that loads in memory the datatype downloaded previouslydatatype=tvb_client.load_datatype_from_file(datatype_path)methods that launch operations in the TVB serverSuch an operation requires the client to prepare the operation configuration and send it in an H5 file together with the requests.By using the client API, the user only needs to instantiate the proper Model class and send it as argument to the following method.
It wraps the serialization of the Model inside the H5 and the attaching to the POST request.The example above launches a Fourier analyzer, we suppose the Fourier AlgorithmDTO islist_of_operations_for_datatype[0].fromtvb.adapters.analyzers.fourier_adapterimportFFTAdapterModel,FourierAdapterproject_gid=list_of_user_projects[0].gidmodel=FFTAdapterModel()# logic to fill the model with required attributesoperation_gid=tvb_client.launch_operation(project_gid,FourierAdapter,model)method to monitor the status of an operationmonitor_operation(tvb_client,operation_gid)AcknowledgmentsThis project has received funding from the European Union’s Horizon 2020 Framework Programme for Research and
Innovation under the Specific Grant Agreement Nos. 785907 (Human Brain Project SGA2), 945539 (Human Brain Project SGA3)
and VirtualBrainCloud 826421.