1
- # CV imports
2
1
from odmtools .odmdata import SessionFactory
3
2
from odmtools .odmdata import VerticalDatumCV
4
- from odmtools .odmdata import SiteTypeCV
5
- from odmtools .odmdata import VariableNameCV
6
- from odmtools .odmdata import SpeciationCV
7
- from odmtools .odmdata import SampleMediumCV
8
3
from odmtools .odmdata import ValueTypeCV
9
- from odmtools .odmdata import DataTypeCV
10
4
from odmtools .odmdata import GeneralCategoryCV
11
- from odmtools .odmdata import CensorCodeCV
12
- from odmtools .odmdata import TopicCategoryCV
13
- from odmtools .odmdata import SampleTypeCV
14
- from odmtools .odmdata import OffsetType
15
- from odmtools .odmdata import Sample
16
- from odmtools .odmdata import Qualifier
17
5
from odmtools .odmdata import Unit
18
6
from sqlalchemy import not_
19
7
from odm2api .ODM2 .services .readService import ReadODM2
20
8
21
9
22
- class CVService (): # Rename to ReadService
10
+ class ReadService :
23
11
# Accepts a string for creating a SessionFactory, default uses odmdata/connection.cfg
24
12
def __init__ (self , connection_string = "" , debug = False ):
25
13
self ._session_factory = SessionFactory (connection_string , debug )
26
14
self ._edit_session = self ._session_factory .getSession ()
27
15
self ._debug = debug
28
16
self .read_service = ReadODM2 (self ._session_factory , debug = self ._debug )
29
17
30
-
31
18
# Controlled Vocabulary get methods
32
-
33
19
#return a list of all terms in the cv
34
20
def get_vertical_datum_cvs (self ):
35
21
result = self ._edit_session .query (VerticalDatumCV ).order_by (VerticalDatumCV .term ).all ()
36
22
return result
37
23
38
24
def get_samples (self ):
39
- result = self ._edit_session .query (Sample ).order_by (Sample .lab_sample_code ).all ()
40
- return result
25
+ return self .read_service .getSamplingFeatures (ids = None , codes = None , uuids = None , type = None , wkt = None )
41
26
42
27
def get_site_type_cvs (self ):
43
- result = self ._edit_session .query (SiteTypeCV ).order_by (SiteTypeCV .term ).all ()
44
- return result
28
+ return self .read_service .getCVs (type = "Site Type" ) # OR return self.read_service.getCVs(type="Sampling Feature Type")
45
29
46
30
def get_variable_name_cvs (self ):
47
- result = self ._edit_session .query (VariableNameCV ).order_by (VariableNameCV .term ).all ()
48
- return result
31
+ return self .read_service .getCVs (type = "Variable Name" )
49
32
50
33
def get_offset_type_cvs (self ):
51
- result = self ._edit_session .query (OffsetType ).order_by (OffsetType .id ).all ()
52
- return result
34
+ return self .read_service .getCVs (type = "Spatial Offset Type" )
53
35
54
36
def get_speciation_cvs (self ):
55
- result = self ._edit_session .query (SpeciationCV ).order_by (SpeciationCV .term ).all ()
56
- return result
57
- # return self.read_service.getCVs(type="Speciation") # Returns Error running Query,
37
+ return self .read_service .getCVs (type = "Speciation" )
58
38
59
39
def get_sample_medium_cvs (self ):
60
- result = self ._edit_session .query (SampleMediumCV ).order_by (SampleMediumCV .term ).all ()
61
- return result
40
+ return self .read_service .getCVs (type = "Medium" )
62
41
63
42
def get_value_type_cvs (self ):
64
43
result = self ._edit_session .query (ValueTypeCV ).order_by (ValueTypeCV .term ).all ()
65
44
return result
66
45
67
46
def get_data_type_cvs (self ):
68
- result = self ._edit_session .query (DataTypeCV ).order_by (DataTypeCV .term ).all ()
69
- return result
47
+ return self .read_service .getCVs (type = "dataset type" )
70
48
71
49
def get_general_category_cvs (self ):
72
50
result = self ._edit_session .query (GeneralCategoryCV ).order_by (GeneralCategoryCV .term ).all ()
73
51
return result
74
52
75
53
def get_censor_code_cvs (self ):
76
- result = self ._edit_session .query (CensorCodeCV ).order_by (CensorCodeCV .term ).all ()
77
- return result
54
+ return self .read_service .getCVs (type = "censorcode" )
78
55
79
56
def get_sample_type_cvs (self ):
80
- result = self ._edit_session .query (SampleTypeCV ).order_by (SampleTypeCV .term ).all ()
81
- return result
57
+ return self .read_service .getCVs (type = "Sampling Feature Type" )
82
58
83
59
def get_units (self ):
84
- result = self ._edit_session .query (Unit ).all ()
85
- return result
60
+ return self .read_service .getUnits (ids = None , name = None , type = None )
86
61
87
62
def get_units_not_uni (self ):
88
63
result = self ._edit_session .query (Unit ).filter (not_ (Unit .name .contains ('angstrom' ))).all ()
@@ -94,16 +69,13 @@ def get_units_names(self):
94
69
95
70
# return a single cv
96
71
def get_unit_by_name (self , unit_name ):
97
- result = self ._edit_session .query (Unit ).filter_by (name = unit_name ).first ()
98
- return result
72
+ return self .read_service .getUnits (name = unit_name )
99
73
100
74
def get_unit_by_id (self , unit_id ):
101
- result = self ._edit_session .query (Unit ).filter_by (id = unit_id ).first ()
102
- return result
75
+ return self .read_service .getUnits (ids = unit_id )
103
76
104
77
def get_annotation_by_code (self , code ):
105
- self .read_service .getAnnotations (type = code )
106
- return
78
+ return self .read_service .getAnnotations (type = code )
107
79
108
80
def get_all_annotations (self ):
109
81
return self .read_service .getAnnotations (type = None )
0 commit comments