Skip to content

Commit 919afc1

Browse files
author
Francisco Arrieta
committed
Converted most of the get functions in the series service to connect to omd2
Series, values, plot, and dataframes need to be converted
1 parent 07516a9 commit 919afc1

7 files changed

Lines changed: 46 additions & 82 deletions

File tree

odmtools/controller/WizardMethodController.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,15 @@ def getMethod(self):
6464
m = Method()
6565
if self.method_view.auto_method_radio.GetValue():
6666
description = "Values derived from ODM Tools Python"
67-
m = self.series_service.get_method_by_description(description)
67+
m = self.series_service.get_method_by_code(description)
6868
if m is None:
6969
m = Method()
7070
m.description = description
7171
elif self.method_view.existing_method_radio.GetValue():
7272
index = self.method_view.existing_method_table.GetFirstSelected()
7373
desc = self.method_view.existing_method_table.GetItem(index, 0).GetText()
7474

75-
m = self.series_service.get_method_by_description(desc)
75+
m = self.series_service.get_method_by_code(desc)
7676
elif self.method_view.create_method_radio.GetValue():
7777
m.description = self.method_view.description_text_ctrl.GetValue()
7878

odmtools/controller/WizardProcessLevelController.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __set_create_proces_section(self, active):
3939

4040
def __fetch_data(self):
4141
series_service = self.service_manager.get_series_service()
42-
processes = series_service.get_all_qcls()
42+
processes = series_service.get_all_processing_levels()
4343

4444
data = []
4545
for proc in processes:
@@ -62,6 +62,6 @@ def getQCL(self):
6262
elif self.processing_level_view.existing_process_radio.GetValue():
6363
selected_row = self.processing_level_view.existing_process_table.get_selected_row()
6464
code = selected_row[0]
65-
q = self.service_manager.get_series_service().get_qcl_by_code(qcl_code=code)
65+
q = self.service_manager.get_series_service().get_processing_level_by_code(proc_level_code=code)
6666

6767
return q

odmtools/gui/pageQCL.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def getQCL(self):
122122
logger.debug("lstQCL: %s" %(self.lstQCL))
123123
code= self.lstQCL.GetItem(index, 0).GetText()
124124
logger.debug(code)
125-
q= self.series_service.get_qcl_by_code(code)
125+
q= self.series_service.get_processing_level_by_code(code)
126126

127127
## q.id = self.lstQCL.GetItem(index,3).GetText()
128128
## q.code = self.lstQCL.GetItem(index, 0).GetText()

odmtools/gui/wizSave.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def __init__(self, parent, title, series_service, qcl):
4848
self._init_data(self.panel.series_service)
4949

5050
def _init_data(self, series):
51-
qcl = series.get_all_qcls()
51+
qcl = series.get_all_processing_levels()
5252
index = 0
5353
for q, i in zip(qcl, range(len(qcl))):
5454
num_items = self.panel.lstQCL.GetItemCount()

odmtools/odmservices/edit_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def get_filter_list(self):
284284
return self._filter_list
285285

286286
def get_qcl(self, qcl_id):
287-
return self.memDB.series_service.get_qcl_by_id(qcl_id)
287+
return self.memDB.series_service.get_processing_level_by_id(qcl_id)
288288

289289
def get_method(self, method_id):
290290
return self.memDB.series_service.get_method_by_id(method_id)

odmtools/odmservices/series_service.py

Lines changed: 35 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
import logging
2-
3-
42
from sqlalchemy import distinct, func
5-
6-
73
from odmtools.odmdata import SessionFactory
84
from odmtools.odmdata import Site
95
# from odmtools.odmdata import Variable
106
from odm2api.ODM2.models import *
11-
from odmtools.odmdata import Unit
127
from odmtools.odmdata import Series
138
from odmtools.odmdata import DataValue
149
from odmtools.odmdata import Qualifier
1510
from odmtools.odmdata import OffsetType
1611
from odmtools.odmdata import Sample
1712
# from odmtools.odmdata import Method
18-
from odm2api.ODM2.models import Methods
1913
from odmtools.odmdata import QualityControlLevel
2014
from odmtools.odmdata import ODMVersion
2115
from odmtools.common.logger import LoggerTool
2216
import pandas as pd
2317
from odm2api.ODM2.services.createService import CreateODM2
24-
from odm2api.ODM2.models import Annotations
2518
from odm2api.ODM2.services.readService import *
2619

2720

@@ -51,12 +44,13 @@ def get_db_version(self):
5144
#####################
5245

5346
# Site methods
54-
def get_all_sites(self):
47+
def get_all_sites(self): # Site -> Sampling Feature in ODM2
5548
"""
5649
5750
:return: List[Sites]
5851
"""
59-
return self._edit_session.query(Site).order_by(Site.code).all()
52+
# return self._edit_session.query(Site).order_by(Site.code).all()
53+
return self.read_service.getSamplingFeatures(ids=None, codes=None, uuids=None,type=None, wkt=None)
6054

6155

6256
def get_used_sites(self):
@@ -65,10 +59,12 @@ def get_used_sites(self):
6559
:return: List[Sites]
6660
"""
6761
try:
68-
site_ids = [x[0] for x in self._edit_session.query(distinct(Series.site_id)).all()]
62+
site_ids = [site_ids[0] for site_ids in self._edit_session.query(distinct(Results.FeatureActionID)).all()]
6963
except:
7064
site_ids = None
7165

66+
site_ids = self._edit_session.query(FeatureActions.SamplingFeatureID).filter(FeatureActions.FeatureActionID.in_(site_ids)).all()
67+
7268
if not site_ids:
7369
return None
7470

@@ -85,10 +81,11 @@ def get_site_by_id(self, site_id):
8581
:param site_id: integer- the identification number of the site
8682
:return: Sites
8783
"""
88-
try:
89-
return self._edit_session.query(Site).filter_by(id=site_id).first()
90-
except:
91-
return None
84+
# try:
85+
# return self._edit_session.query(Site).filter_by(id=site_id).first()
86+
# except:
87+
# return None
88+
return self.read_service.getSamplingFeatures(ids=site_id)
9289

9390
# Variables methods
9491
def get_used_variables(self):
@@ -98,10 +95,12 @@ def get_used_variables(self):
9895
"""
9996

10097
try:
101-
var_ids = [x[0] for x in self._edit_session.query(distinct(Series.variable_id)).all()]
98+
# var_ids = [x[0] for x in self._edit_session.query(distinct(Series.variable_id)).all()]
99+
var_ids = [x[0] for x in self._edit_session.query(distinct(Results.VariableID)).all()]
102100
except:
103101
var_ids = None
104102

103+
var_ids = self._edit_session.query(Results.VariableID).filter(Results.VariableID.in_(var_ids)).all()
105104
if not var_ids:
106105
return None
107106

@@ -115,32 +114,25 @@ def get_used_variables(self):
115114

116115
def get_all_variables(self):
117116
"""
118-
119117
:return: List[Variables]
120118
"""
121-
return self._edit_session.query(Variables).all()
119+
return self.read_service.getVariables(ids=None, codes=None)
122120

123121
def get_variable_by_id(self, variable_id):
124122
"""
125123
126124
:param variable_id: int
127125
:return: Variables
128126
"""
129-
try:
130-
return self._edit_session.query(Variables).filter_by(id=variable_id).first()
131-
except:
132-
return None
127+
return self.read_service.getVariables(ids=variable_id)
133128

134129
def get_variable_by_code(self, variable_code):
135130
"""
136131
137132
:param variable_code: str
138133
:return: Variables
139134
"""
140-
try:
141-
return self._edit_session.query(Variables).filter_by(code=variable_code).first()
142-
except:
143-
return None
135+
return self.read_service.getVariables(codes=variable_code)
144136

145137
def get_variables_by_site_code(self, site_code): # covers NoDV, VarUnits, TimeUnits
146138
"""
@@ -163,50 +155,39 @@ def get_variables_by_site_code(self, site_code): # covers NoDV, VarUnits, TimeU
163155
# Unit methods
164156
def get_all_units(self):
165157
"""
166-
167158
:return: List[Units]
168159
"""
169-
return self._edit_session.query(Unit).all()
160+
return self.read_service.getUnits(ids=None, name=None, type=None)
170161

171162
def get_unit_by_name(self, unit_name):
172163
"""
173-
174164
:param unit_name: str
175165
:return: Units
176166
"""
177-
try:
178-
return self._edit_session.query(Unit).filter_by(name=unit_name).first()
179-
except:
180-
return None
167+
return self.read_service.getUnits(name=unit_name)
181168

182169
def get_unit_by_id(self, unit_id):
183170
"""
184-
185171
:param unit_id: int
186172
:return: Units
187173
"""
188-
try:
189-
return self._edit_session.query(Unit).filter_by(id=unit_id).first()
190-
except:
191-
return None
174+
self.read_service.getUnits(ids=unit_id)
192175

193-
194-
def get_all_qualifiers(self):
176+
def get_all_qualifiers(self): # Rename to annotations
195177
"""
196-
197178
:return: List[Qualifiers]
198179
"""
199180
# result = self._edit_session.query(Annotations).order_by(Annotations.AnnotationCode).all()
200181
# return result
201182
return self.read_service.getAnnotations(None)
202183

203-
def get_qualifier_by_code(self, code):
184+
def get_qualifier_by_code(self, code): # Rename to get_annotations_by_type
204185
"""
205-
206186
:return: Qualifiers
207187
"""
208-
result = self._edit_session.query(Qualifier).filter(Qualifier.code==code).first()
209-
return result
188+
# result = self._edit_session.query(Qualifier).filter(Qualifier.code==code).first()
189+
# return result
190+
return self.read_service.getAnnotations(type=code)
210191

211192
def get_qualifiers_by_series_id(self, series_id):
212193
"""
@@ -218,40 +199,23 @@ def get_qualifiers_by_series_id(self, series_id):
218199
Series.data_values).filter(Series.id == series_id, DataValue.qualifier_id != None).distinct().subquery()
219200
return self._edit_session.query(Qualifier).join(subquery).distinct().all()
220201

221-
#QCL methods
222-
def get_all_qcls(self):
223-
return self._edit_session.query(QualityControlLevel).all()
202+
def get_all_processing_levels(self):
203+
return self.read_service.getProcessingLevels(ids=None, codes=None)
224204

225-
def get_qcl_by_id(self, qcl_id):
226-
try:
227-
return self._edit_session.query(QualityControlLevel).filter_by(id=qcl_id).first()
228-
except:
229-
return None
205+
def get_processing_level_by_id(self, proc_level_id):
206+
return self.read_service.getProcessingLevels(ids=proc_level_id)
230207

231-
def get_qcl_by_code(self, qcl_code):
232-
try:
233-
return self._edit_session.query(QualityControlLevel).filter_by(code=qcl_code).first()
234-
except:
235-
return None
208+
def get_processing_level_by_code(self, proc_level_code):
209+
return self.read_service.getProcessingLevels(codes=proc_level_code)
236210

237-
# Method methods
238211
def get_all_methods(self):
239-
return self._edit_session.query(Methods).all()
212+
return self.read_service.getMethods(ids=None, codes=None, type=None)
240213

241214
def get_method_by_id(self, method_id):
242-
try:
243-
result = self._edit_session.query(Methods).filter_by(id=method_id).first()
244-
except:
245-
result = None
246-
return result
215+
return self.read_service.getMethods(ids=method_id)
247216

248-
def get_method_by_description(self, method_code):
249-
try:
250-
result = self._edit_session.query(Methods).filter_by(description=method_code).first()
251-
except:
252-
result = None
253-
logger.error("method not found")
254-
return result
217+
def get_method_by_code(self, method_code):
218+
return self.read_service.getMethods(codes=method_code)
255219

256220
def get_offset_types_by_series_id(self, series_id):
257221
"""

tests/test_odmservices/test_series_service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,17 @@ def test_get_data_value_by_id(self):
248248
assert dv.data_value == db_dv.data_value
249249

250250
def test_get_qcl_by_id(self):
251-
assert self.series_service.get_qcl_by_id(10) == None
251+
assert self.series_service.get_processing_level_by_id(10) == None
252252

253253
qcl = test_util.add_qcl(self.session)
254-
db_qcl = self.series_service.get_qcl_by_id(qcl.id)
254+
db_qcl = self.series_service.get_processing_level_by_id(qcl.id)
255255
assert qcl.code == db_qcl.code
256256

257257
def test_get_all_qcls(self):
258-
assert self.series_service.get_all_qcls() == []
258+
assert self.series_service.get_all_processing_levels() == []
259259

260260
qcl = test_util.add_qcl(self.session)
261-
all_qcls = self.series_service.get_all_qcls()
261+
all_qcls = self.series_service.get_all_processing_levels()
262262

263263
assert len(all_qcls) == 1
264264
assert qcl.id == all_qcls[0].id

0 commit comments

Comments
 (0)