11import 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
97from ...base import serviceBase
10-
118import 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
1627class 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
0 commit comments