Skip to content

Commit fae0f9a

Browse files
author
sreeder
committed
update ODM switcher
1 parent d24f8f2 commit fae0f9a

File tree

8 files changed

+170
-35
lines changed

8 files changed

+170
-35
lines changed

src/Examples/Sample1_1.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212

1313
#createconnection (dbtype, servername, dbname, username, password)
1414
#session_factory = dbconnection.createConnection('mysql', 'localhost', 'odm2', 'ODM', 'odm')
15-
session_factory = dbconnection.createConnection('mysql', 'jws.uwrl.usu.edu', 'odm2', 'ODM', 'ODM123!!', 2)
15+
# session_factory = dbconnection.createConnection('mysql', 'jws.uwrl.usu.edu', 'odm2', 'ODM', 'ODM123!!', 2)
1616

1717

1818
#ODM1 DB
19-
#conn = dbconnection.createConnection('mysql', 'jws.uwrl.usu.edu', 'odm', "ODM", "ODM123!!", 1.1)
19+
session_factory = dbconnection.createConnection('mysql', 'jws.uwrl.usu.edu', 'odm', "ODM", "ODM123!!", 1.1)
2020

2121
pp = pprint.PrettyPrinter(indent=8)
2222

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
__author__ = 'stephanie'
2-
from cv_service import CVService
3-
from series_service import SeriesService
2+
# from cv_service import CVService, refreshDB
3+
from series_service import refreshDB, ODM, SeriesService
44
from edit_service import EditService
55
from export_service import ExportService
66

7-
__all__ = ['CVService', 'SeriesService', 'EditService', 'ExportService']
7+
__all__ = [ 'SeriesService', 'EditService', 'ExportService', 'ODM', 'refreshDB']
8+
# 'CVService',
9+
# def switch_service(version ):
10+
# cv_service.refreshDB(version)
11+
# series_service.refreshDB(version)

src/api/ODM1_1_1/services/cv_service.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,24 @@
44
alueTypeCV, DataTypeCV, GeneralCategoryCV, CensorCodeCV, TopicCategoryCV, SampleTypeCV, OffsetType, Sample, \
55
Qualifier, Unit
66
'''
7-
from ...versionSwitcher import ODM
7+
#from ...versionSwitcher import ODM
88
from ...base import serviceBase
99
from sqlalchemy import not_
1010

1111

12+
import ODM1_1_1.models as ODM1
13+
import ODM2.LikeODM1.models as ODM2
14+
15+
#Set Default
16+
ODM = ODM2
17+
18+
def refreshDB(ver):
19+
if ver == 1.1:
20+
ODM = ODM1
21+
elif ver == 2.0:
22+
ODM = ODM2
23+
24+
1225
class CVService(serviceBase):
1326

1427

@@ -22,9 +35,6 @@ def get_vertical_datum_cvs(self):
2235
def get_samples(self):
2336
result = self._session.query(ODM.Sample).order_by(ODM.Sample.lab_sample_code).all()
2437
return result
25-
26-
27-
2838
def get_site_type_cvs(self):
2939
result = self._session.query(ODM.SiteTypeCV).order_by(ODM.SiteTypeCV.term).all()
3040
return result

src/api/ODM1_1_1/services/edit_service.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import sqlite3
22

3-
from ...versionSwitcher import ODM
3+
#from ...versionSwitcher import ODM
44
from series_service import SeriesService
55

66
#from odmtools.odmdata import series as series_module
@@ -16,6 +16,8 @@
1616
#logger = tool.setupLogger(__name__, __name__ + '.log', 'w', logging.DEBUG)
1717

1818

19+
20+
1921
class EditService():
2022
# Mutual exclusion: cursor, or connection_string
2123
def __init__(self, series_id, connection=None, connection_string="", debug=False):
@@ -459,7 +461,7 @@ def updateSeries(self, var=None, method=None, qcl=None, is_new_series=False):
459461
if is_new_series:
460462

461463

462-
series = ODM.Series.copy_series(series)
464+
series = self.memDB.series_service.copy_series(series)
463465

464466

465467
if var:

src/api/ODM1_1_1/services/series_service.py

Lines changed: 126 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,27 @@
11
import logging
22

33

4-
from sqlalchemy import distinct, func
4+
from sqlalchemy import distinct, func, not_
55

66

7-
from ...ODMconnection import SessionFactory
8-
from ...versionSwitcher import ODM #.models import Site, Variable, Unit, Series, DataValue, Qualifier, OffsetType, Sample, Method, QualityControlLevel, ODMVersion
97
from ...base import serviceBase
10-
118
import pandas as pd
129

1310

11+
import api.ODM1_1_1.models as ODM1
12+
import api.ODM2.LikeODM1.models as ODM2
13+
14+
#Set Default
15+
ODM = ODM2
16+
17+
def refreshDB(ver):
18+
if ver == 1.1:
19+
ODM = ODM1
20+
elif ver == 2.0:
21+
ODM = ODM2
22+
23+
24+
1425

1526

1627
class SeriesService(serviceBase):
@@ -538,7 +549,7 @@ def create_new_series(self, data_values, site_id, variable_id, method_id, source
538549
self._session.commit()
539550
return series
540551

541-
def create_method(self, description, link):
552+
def create_method(self, description, link=None):
542553
"""
543554
544555
:param description:
@@ -769,4 +780,113 @@ def variable_exists(self, v):
769780
no_data_value=v.no_data_value).one()
770781
return result
771782
except:
772-
return None
783+
return None
784+
785+
786+
787+
788+
789+
####CV_Service
790+
791+
def get_vertical_datum_cvs(self):
792+
result = self._session.query(ODM.VerticalDatumCV).order_by(ODM.VerticalDatumCV.term).all()
793+
return result
794+
795+
def get_samples(self):
796+
result = self._session.query(ODM.Sample).order_by(ODM.Sample.lab_sample_code).all()
797+
return result
798+
def get_site_type_cvs(self):
799+
result = self._session.query(ODM.SiteTypeCV).order_by(ODM.SiteTypeCV.term).all()
800+
return result
801+
802+
def get_variable_name_cvs(self):
803+
result = self._session.query(ODM.VariableNameCV).order_by(ODM.VariableNameCV.term).all()
804+
return result
805+
806+
def get_offset_type_cvs(self):
807+
result = self._session.query(ODM.OffsetType).order_by(ODM.OffsetType.id).all()
808+
return result
809+
810+
def get_speciation_cvs(self):
811+
result = self._session.query(ODM.SpeciationCV).order_by(ODM.SpeciationCV.term).all()
812+
return result
813+
814+
def get_sample_medium_cvs(self):
815+
result = self._session.query(ODM.SampleMediumCV).order_by(ODM.SampleMediumCV.term).all()
816+
return result
817+
818+
def get_value_type_cvs(self):
819+
result = self._session.query(ODM.ValueTypeCV).order_by(ODM.ValueTypeCV.term).all()
820+
return result
821+
822+
def get_data_type_cvs(self):
823+
result = self._session.query(ODM.DataTypeCV).order_by(ODM.DataTypeCV.term).all()
824+
return result
825+
826+
def get_general_category_cvs(self):
827+
result = self._session.query(ODM.GeneralCategoryCV).order_by(ODM.GeneralCategoryCV.term).all()
828+
return result
829+
830+
def get_censor_code_cvs(self):
831+
result = self._session.query(ODM.CensorCodeCV).order_by(ODM.CensorCodeCV.term).all()
832+
return result
833+
834+
def get_sample_type_cvs(self):
835+
result = self._session.query(ODM.SampleTypeCV).order_by(ODM.SampleTypeCV.term).all()
836+
return result
837+
838+
def get_units(self):
839+
result = self._session.query(ODM.Unit).all()
840+
return result
841+
842+
def get_units_not_uni(self):
843+
result = self._session.query(ODM.Unit).filter(not_(ODM.Unit.name.contains('angstrom'))).all()
844+
return result
845+
846+
def get_units_names(self):
847+
result = self._session.query(ODM.Unit.name).all()
848+
return result
849+
850+
# return a single cv
851+
def get_unit_by_name(self, unit_name):
852+
result = self._session.query(ODM.Unit).filter_by(name=unit_name).first()
853+
return result
854+
855+
def get_unit_by_id(self, unit_id):
856+
result = self._session.query(ODM.Unit).filter_by(id=unit_id).first()
857+
return result
858+
859+
860+
861+
862+
def copy_series(from_series):
863+
new = ODM.Series()
864+
new.site_id = from_series.site_id
865+
new.site_code = from_series.site_code
866+
new.site_name = from_series.site_name
867+
new.variable_id = from_series.variable_id
868+
new.variable_code = from_series.variable_code
869+
new.variable_name = from_series.variable_name
870+
new.speciation = from_series.speciation
871+
new.variable_units_id = from_series.variable_units_id
872+
new.variable_units_name = from_series.variable_units_name
873+
new.sample_medium = from_series.sample_medium
874+
new.value_type = from_series.value_type
875+
new.time_support = from_series.time_support
876+
new.time_units_id = from_series.time_units_id
877+
new.time_units_name = from_series.time_units_name
878+
new.data_type = from_series.data_type
879+
new.general_category = from_series.general_category
880+
new.method_id = from_series.method_id
881+
new.method_description = from_series.method_description
882+
new.source_id = from_series.source_id
883+
new.source_description = from_series.source_description
884+
new.organization = from_series.organization
885+
new.citation = from_series.citation
886+
new.quality_control_level_id = from_series.quality_control_level_id
887+
new.quality_control_level_code = from_series.quality_control_level_code
888+
new.begin_date_time = from_series.begin_date_time
889+
new.begin_date_time_utc = from_series.begin_date_time_utc
890+
new.end_date_time_utc = from_series.end_date_time_utc
891+
new.value_count = from_series.value_count
892+
return new

src/api/ODM2/LikeODM1/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,5 @@
6262
'Variable',
6363
'VariableNameCV',
6464
'VerticalDatumCV',
65-
'MemoryDatabase',
66-
'copy_series',
67-
'copy_data_value'
65+
6866
]

src/api/ODMconnection.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
from sqlalchemy.orm import sessionmaker
55

66
from .ODM2.models import Variables as Variable2, change_schema
7-
from .versionSwitcher import ODM, refreshDB #import Variable as Variable1
7+
#from .versionSwitcher import ODM, refreshDB #import Variable as Variable1
8+
from .ODM1_1_1.services import ODM, refreshDB
89
import urllib
910
import sys
1011

src/api/versionSwitcher.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
__author__ = 'stephanie'
2-
3-
import ODM1_1_1.models as ODM1
4-
import ODM2.LikeODM1.models as ODM2
5-
6-
#Set Default
7-
ODM = ODM2
8-
9-
def refreshDB(ver):
10-
if ver == 1.1:
11-
ODM = ODM1
12-
elif ver == 2.0:
13-
ODM = ODM2
14-
1+
# __author__ = 'stephanie'
2+
#
3+
# import ODM1_1_1.models as ODM1
4+
# import ODM2.LikeODM1.models as ODM2
5+
#
6+
# #Set Default
7+
# ODM = ODM2
8+
#
9+
# def refreshDB(ver):
10+
# if ver == 1.1:
11+
# ODM = ODM1
12+
# elif ver == 2.0:
13+
# ODM = ODM2
14+
#

0 commit comments

Comments
 (0)