From f7506e9fe00f3944e1c35a97de7b9de170adce67 Mon Sep 17 00:00:00 2001 From: Sinisa Veseli <sveseli@aps.anl.gov> Date: Mon, 6 Mar 2017 22:25:49 +0000 Subject: [PATCH] starting to document DS experiment API --- doc/sphinx/source/dm.ds_web_service.api.rst | 12 ++++ doc/sphinx/source/index.rst | 1 + .../daq_web_service/api/experimentDaqApi.py | 2 +- .../dm/ds_web_service/api/experimentDsApi.py | 56 ++++++++++++++++++- 4 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 doc/sphinx/source/dm.ds_web_service.api.rst diff --git a/doc/sphinx/source/dm.ds_web_service.api.rst b/doc/sphinx/source/dm.ds_web_service.api.rst new file mode 100644 index 00000000..da6ab6d5 --- /dev/null +++ b/doc/sphinx/source/dm.ds_web_service.api.rst @@ -0,0 +1,12 @@ +.. automodule:: dm.ds_web_service.api + +.. currentmodule:: dm.ds_web_service.api + +ExperimentDsApi +----------------- + +.. autoclass:: dm.ds_web_service.api.experimentDsApi.ExperimentDsApi() + :show-inheritance: + :members: __init__, getExperimentTypes, getExperiments + + diff --git a/doc/sphinx/source/index.rst b/doc/sphinx/source/index.rst index d7220f53..ea388478 100644 --- a/doc/sphinx/source/index.rst +++ b/doc/sphinx/source/index.rst @@ -12,6 +12,7 @@ The `dm` package contains python APIs for accessing Data Management services. :maxdepth: 4 :caption: Contents: + dm.ds_web_service.api dm.daq_web_service.api dm.aps_bss.api diff --git a/src/python/dm/daq_web_service/api/experimentDaqApi.py b/src/python/dm/daq_web_service/api/experimentDaqApi.py index 4dc9f83f..802ebf5e 100755 --- a/src/python/dm/daq_web_service/api/experimentDaqApi.py +++ b/src/python/dm/daq_web_service/api/experimentDaqApi.py @@ -38,7 +38,7 @@ class ExperimentDaqApi(DaqRestApi): :param protocol: DM service protocol :type protocol: str - >>> api = ExperimentDaqApi(username='dm', password='XYZ', host='bluegill1', port=22236, protocol='https') + >>> api = ExperimentDaqApi(username='dm', password='XYZ', host='bluegill1', port=33336, protocol='https') ''' DaqRestApi.__init__(self, username, password, host, port, protocol) diff --git a/src/python/dm/ds_web_service/api/experimentDsApi.py b/src/python/dm/ds_web_service/api/experimentDsApi.py index cf2314f3..f898f866 100755 --- a/src/python/dm/ds_web_service/api/experimentDsApi.py +++ b/src/python/dm/ds_web_service/api/experimentDsApi.py @@ -10,18 +10,70 @@ from dm.common.objects.experimentType import ExperimentType from dsRestApi import DsRestApi class ExperimentDsApi(DsRestApi): + ''' + Data Management API for accessing experiment interface provided by the + DS service. + ''' def __init__(self, username=None, password=None, host=None, port=None, protocol=None): + ''' + Constructor. + + :param username: DM username + :type username: str + + :param password: DM password + :type password: str + + :param host: DM service host + :type host: str + + :param port: DM service port + :type port: int + + :param protocol: DM service protocol + :type protocol: str + + >>> api = ExperimentDsApi(username='dm', password='XYZ', host='bluegill1', port=22236, protocol='https') + ''' DsRestApi.__init__(self, username, password, host, port, protocol) - @DsRestApi.execute + @DsRestApi.execute2 def getExperimentTypes(self): + ''' + Get list of allowed experiment types. + + :returns: list of ExperimentType objects + + :raises AuthorizationError: in case user is not logged in + + :raises DmException: in case of any other errors + + >>> experimentTypeList = api.getExperimentTypes() + >>> for experimentType in experimentTypeList: + >>> print experimentType['id'], experimentType['name'] + ''' + url = '%s/experimentTypes' % (self.getContextRoot()) responseData = self.sendSessionRequest(url=url, method='GET') return self.toDmObjectList(responseData, ExperimentType) - @DsRestApi.execute + @DsRestApi.execute2 def getExperiments(self): + ''' + Get list of known experiments. + + :returns: list of Experiment objects + + :raises AuthorizationError: in case user does not have DM administrator role + + :raises DmException: in case of any other errors + + >>> experimentList = api.getExperiments() + >>> for experiment in experimentList: + >>> print experiment['id'], experiment['name'] + ''' + url = '%s/experiments' % (self.getContextRoot()) responseData = self.sendSessionRequest(url=url, method='GET') return self.toDmObjectList(responseData, Experiment) -- GitLab