@@ -686,23 +686,88 @@ def getResults(self, ids=None, type=None, uuids=None, actionid=None, simulationi
686686 return None
687687
688688 # Datasets
689- def getDataSets (self , codes = None , uuids = None ):
689+ def getDataSets (self , ids = None , codes = None , uuids = None , dstype = None ):
690690 """
691- * Pass nothing - returns a list of all DataSet objects
692- * Pass a list of DataSetCode - returns a single DataSet object for each code
693- * Pass a list of UUIDS - returns a single DataSet object for each UUID
691+ Retrieve a list of Datasets
692+
693+ Args:
694+ ids (list, optional): List of DataSetsIDs.
695+ codes (list, optional): List of DataSet Codes.
696+ uuids (list, optional): List of Dataset UUIDs string.
697+ dstype (str, optional): Type of Dataset from
698+ `controlled vocabulary name <http://vocabulary.odm2.org/datasettype/>`_.
699+
700+
701+ Returns:
702+ list: List of DataSets Objects
703+
704+ Examples:
705+ >>> READ = ReadODM2(SESSION_FACTORY)
706+ >>> READ.getDataSets(ids=[39, 40])
707+ >>> READ.getDataSets(codes=['HOME', 'FIELD'])
708+ >>> READ.getDataSets(uuids=['a6f114f1-5416-4606-ae10-23be32dbc202',
709+ ... '5396fdf3-ceb3-46b6-aaf9-454a37278bb4'])
710+ >>> READ.getDataSets(dstype='singleTimeSeries')
711+
694712 """
695713 q = self ._session .query (DataSets )
714+ if ids :
715+ q = q .filter (DataSets .DataSetID .in_ (codes ))
696716 if codes :
697717 q = q .filter (DataSets .DataSetCode .in_ (codes ))
698718 if uuids :
699719 q .filter (DataSets .DataSetUUID .in_ (uuids ))
720+ if dstype :
721+ q = q .filter (DataSets .DataSetTypeCV == dstype )
700722 try :
701723 return q .all ()
702724 except Exception as e :
703725 print ('Error running Query {}' .format (e ))
704726 return None
705727
728+ # Datasets
729+
730+ def getDataSetsResults (self , ids = None , codes = None , uuids = None , dstype = None ):
731+ """
732+ Retrieve a detailed list of Datasets along with detailed metadata about the datasets
733+ and the results contained within them
734+
735+ Args:
736+ ids (list, optional): List of DataSetsIDs.
737+ codes (list, optional): List of DataSet Codes.
738+ uuids (list, optional): List of Dataset UUIDs string.
739+ dstype (str, optional): Type of Dataset from
740+ `controlled vocabulary name <http://vocabulary.odm2.org/datasettype/>`_.
741+
742+
743+ Returns:
744+ list: List of DataSetsResults Objects
745+
746+ Examples:
747+ >>> READ = ReadODM2(SESSION_FACTORY)
748+ >>> READ.getDataSetsResults(ids=[39, 40])
749+ >>> READ.getDataSetsResults(codes=['HOME', 'FIELD'])
750+ >>> READ.getDataSetsResults(uuids=['a6f114f1-5416-4606-ae10-23be32dbc202',
751+ ... '5396fdf3-ceb3-46b6-aaf9-454a37278bb4'])
752+ >>> READ.getDataSetsResults(dstype='singleTimeSeries')
753+
754+ """
755+ q = self ._session .query (DataSetsResults )\
756+ .join (DataSets )
757+ if ids :
758+ q = q .filter (DataSets .DataSetID .in_ (codes ))
759+ if codes :
760+ q = q .filter (DataSets .DataSetCode .in_ (codes ))
761+ if uuids :
762+ q .filter (DataSets .DataSetUUID .in_ (uuids ))
763+ if dstype :
764+ q = q .filter (DataSets .DataSetTypeCV == dstype )
765+ try :
766+ return q .all ()
767+ except Exception as e :
768+ print ('Error running Query {}' .format (e ))
769+ return None
770+
706771 def getSamplingFeatureDatasets (self , ids = None , codes = None , uuids = None , dstype = None ):
707772 """
708773 Retrieve a list of Datasets associated with the given sampling feature data.
0 commit comments