@@ -29,7 +29,8 @@ def __init__(self, connection_string="", debug=False):
29
29
self .create_service = CreateODM2 (session_factory = self ._session_factory , debug = self ._debug )
30
30
31
31
def reset_session (self ):
32
- self ._edit_session = self ._session_factory .getSession () # Reset the session in order to prevent memory leaks
32
+ # self._edit_session = self._session_factory.getSession() # Reset the session in order to prevent memory leaks
33
+ self ._edit_session = self .create_service .getSession ()
33
34
34
35
def get_db_version (self ):
35
36
return self ._edit_session .query (ODMVersion ).first ().version_number
@@ -40,15 +41,6 @@ def get_db_version(self):
40
41
#
41
42
#####################
42
43
43
- # Site methods
44
- def get_all_sites (self ):
45
- """
46
-
47
- :return: List[Sites]
48
- """
49
- return self ._edit_session .query (Site ).order_by (Site .code ).all ()
50
-
51
-
52
44
def get_used_sites (self ):
53
45
"""
54
46
Return a list of all sites that are being referenced in the Series Catalog Table
@@ -68,18 +60,6 @@ def get_used_sites(self):
68
60
69
61
return Sites
70
62
71
-
72
- def get_site_by_id (self , site_id ):
73
- """
74
- return a Site object that has an id=site_id
75
- :param site_id: integer- the identification number of the site
76
- :return: Sites
77
- """
78
- try :
79
- return self ._edit_session .query (Site ).filter_by (id = site_id ).first ()
80
- except :
81
- return None
82
-
83
63
# Variables methods
84
64
def get_used_variables (self ):
85
65
"""
@@ -103,43 +83,6 @@ def get_used_variables(self):
103
83
104
84
return Variables
105
85
106
- def get_variables_by_site_code (self , site_code ): # covers NoDV, VarUnits, TimeUnits
107
- """
108
- Finds all of variables at a site
109
- :param site_code: str
110
- :return: List[Variables]
111
- """
112
- try :
113
- var_ids = [x [0 ] for x in self ._edit_session .query (distinct (Series .variable_id )).filter_by (
114
- site_code = site_code ).all ()]
115
- except :
116
- var_ids = None
117
-
118
- variables = []
119
- for var_id in var_ids :
120
- variables .append (self ._edit_session .query (Variable ).filter_by (id = var_id ).first ())
121
-
122
- return variables
123
-
124
- # Method methods
125
- def get_all_methods (self ):
126
- return self ._edit_session .query (Method ).all ()
127
-
128
- def get_method_by_id (self , method_id ):
129
- try :
130
- result = self ._edit_session .query (Method ).filter_by (id = method_id ).first ()
131
- except :
132
- result = None
133
- return result
134
-
135
- def get_method_by_description (self , method_code ):
136
- try :
137
- result = self ._edit_session .query (Method ).filter_by (description = method_code ).first ()
138
- except :
139
- result = None
140
- logger .error ("method not found" )
141
- return result
142
-
143
86
def get_offset_types_by_series_id (self , series_id ):
144
87
"""
145
88
@@ -215,6 +158,31 @@ def get_series_from_filter(self):
215
158
# Pass in probably a Series object, match it against the database
216
159
pass
217
160
161
+ def get_all_qualifiers (self ):
162
+ """
163
+
164
+ :return: List[Qualifiers]
165
+ """
166
+ result = self ._edit_session .query (Qualifier ).order_by (Qualifier .code ).all ()
167
+ return result
168
+
169
+ def get_qualifier_by_code (self , code ):
170
+ """
171
+
172
+ :return: Qualifiers
173
+ """
174
+ result = self ._edit_session .query (Qualifier ).filter (Qualifier .code == code ).first ()
175
+ return result
176
+
177
+ def get_qualifiers_by_series_id (self , series_id ):
178
+ """
179
+
180
+ :param series_id:
181
+ :return:
182
+ """
183
+ subquery = self ._edit_session .query (DataValue .qualifier_id ).outerjoin (
184
+ Series .data_values ).filter (Series .id == series_id , DataValue .qualifier_id != None ).distinct ().subquery ()
185
+ return self ._edit_session .query (Qualifier ).join (subquery ).distinct ().all ()
218
186
219
187
#Data Value Methods
220
188
def get_values_by_series (self , series_id ):
@@ -430,7 +398,6 @@ def save_values(self, values):
430
398
431
399
def create_new_series (self , data_values , site_id , variable_id , method_id , source_id , qcl_id ):
432
400
"""
433
-
434
401
:param data_values:
435
402
:param site_id:
436
403
:param variable_id:
@@ -451,9 +418,8 @@ def create_new_series(self, data_values, site_id, variable_id, method_id, source
451
418
self ._edit_session .commit ()
452
419
return series
453
420
454
- def create_method (self , description , link ):
421
+ def create_method (self , description , link ): # DONE
455
422
"""
456
-
457
423
:param description:
458
424
:param link:
459
425
:return:
@@ -467,25 +433,19 @@ def create_method(self, description, link):
467
433
468
434
return meth
469
435
470
- def create_variable_by_var (self , var ):
436
+ def create_variable_by_var (self , var ): # DONE
471
437
"""
472
-
473
438
:param var: Variable Object
474
439
:return:
475
440
"""
476
- # try:
477
- # self._edit_session.add(var)
478
- # self._edit_session.commit()
479
- # return var
480
- # except:
481
- # return None
441
+
482
442
self .create_service .createVariable (var )
483
443
return var
484
444
485
445
def create_variable (
486
446
self , code , name , speciation , variable_unit_id , sample_medium ,
487
447
value_type , is_regular , time_support , time_unit_id , data_type ,
488
- general_category , no_data_value ):
448
+ general_category , no_data_value ): # DONE
489
449
"""
490
450
491
451
:param code:
@@ -519,7 +479,7 @@ def create_variable(
519
479
self .create_variable_by_var (var )
520
480
return var
521
481
522
- def create_qcl (self , code , definition , explanation ):
482
+ def create_qcl (self , code , definition , explanation ): # DONE
523
483
"""
524
484
525
485
:param code:
@@ -532,8 +492,7 @@ def create_qcl(self, code, definition, explanation):
532
492
qcl .definition = definition
533
493
qcl .explanation = explanation
534
494
535
- self ._edit_session .add (qcl )
536
- self ._edit_session .commit ()
495
+ self .create_service .createProcessingLevel (qcl )
537
496
return qcl
538
497
539
498
0 commit comments