From 25781c9164ab9ff642b6c3ff9ca8c8bf7575add8 Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Mon, 24 May 2021 04:32:13 +0200 Subject: [PATCH] Refactoring: rename covid19 to flask_covid19 --- .../rki_vaccination_model.py | 11 +- .../rki_vaccination_service.py | 29 +-- .../rki_vaccination_service_update.py | 200 ++++-------------- 3 files changed, 55 insertions(+), 185 deletions(-) diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py index d7793e59..e99b6b36 100644 --- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py +++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py @@ -89,10 +89,13 @@ class RkiVaccinationData(db.Model): @classmethod def remove_all(cls): - for one in cls.get_all(): - db.session.delete(one) - db.session.commit() - return None + num_rows_deleted = 0 + try: + num_rows_deleted = db.session.query(cls).delete() + db.session.commit() + except Exception: + db.session.rollback() + return num_rows_deleted @classmethod def get_all_as_page(cls, page: int): diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py index 00b9da19..44f13d8e 100644 --- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py +++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py @@ -24,7 +24,6 @@ class RkiVaccinationService: def download(self): flash("VaccinationService.download [start]") - # TODO self.service_download.download() self.service_download.download_file() flash("VaccinationService.download [done]") return self @@ -34,43 +33,35 @@ class RkiVaccinationService: return self def full_update_dimension_tables(self): - # TODO self.service_update_full.full_update_dimension_tables() - self.service_update_full.update_dimension_tables_only() + self.service_update_full.full_update_dimension_tables() return self def update_dimension_tables(self): - # TODO self.service_update.update_dimension_tables() - self.service_update.update_dimension_tables_only() + self.service_update.update_dimension_tables() return self def full_update_fact_table(self): - # TODO self.service_update_full.full_update_fact_table() - self.service_update_full.update_fact_table_initial_only() + self.service_update_full.full_update_fact_table() return self def update_fact_table(self): - # TODO self.service_update.update_fact_table() - self.service_update.update_fact_table_incremental_only() + self.service_update.update_fact_table() return self def full_update_star_schema(self): - self.service_import.import_file() - # TODO self.service_update_full.full_update_star_schema() - self.service_update_full.update_star_schema_initial() + self.service_update_full.full_update_star_schema() return self def update_star_schema(self): - self.service_import.import_file() - # TODO self.service_update.update_star_schema() - self.service_update.update_star_schema_incremental() + self.service_update.update_star_schema() return self def full_update(self): - # TODO self.service_update_full.full_update_star_schema() - self.service_update_full.update_star_schema_initial() + self.service_import.import_file() + self.service_update_full.full_update_star_schema() return self def update(self): - # TODO self.service_update.update_star_schema() - self.service_update.update_star_schema_incremental() + self.service_import.import_file() + self.service_update.update_star_schema() return self diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py index d3928954..ff81894c 100644 --- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py +++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py @@ -8,51 +8,46 @@ from flask_covid19.blueprints.data_rki_vaccination.rki_vaccination_model import class RkiVaccinationServiceUpdateBase: def __init__(self, database, config: BlueprintConfig): app.logger.debug("------------------------------------------------------------") - app.logger.debug(" Europe Service Update [init]") + app.logger.debug(" Vaccination Service Update [init]") app.logger.debug("------------------------------------------------------------") self.__database = database self.cfg = config app.logger.debug("------------------------------------------------------------") - app.logger.debug(" Europe Service Update [ready] ") + app.logger.debug(" Vaccination Service Update [ready] ") class RkiVaccinationServiceUpdateFull(RkiVaccinationServiceUpdateBase): - def __update_date_reported(self): - app.logger.info(" __update_date_reported [begin]") + def __full_update_date_reported(self): + app.logger.info(" RkiVaccinationServiceUpdateFull.__full_update_date_reported [begin]") app.logger.info("------------------------------------------------------------") - RkiVaccinationData.remove_all() RkiVaccinationDateReported.remove_all() date_reported_list = RkiVaccinationImport.get_date_reported_as_array() i = 0 for one_date_reported in date_reported_list: i += 1 - output = " [ " + str(i) + " ] " + one_date_reported + " added" o = RkiVaccinationDateReported.create_new_object_factory(one_date_reported) db.session.add(o) + output = " full_update RkiVaccination date_reported [ " + str(i) + " ] " + str(o) app.logger.info(output) db.session.commit() - app.logger.info(" __update_date_reported [done]") + app.logger.info(" RkiVaccinationServiceUpdateFull.__full_update_date_reported [done]") app.logger.info("------------------------------------------------------------") return self - def __update_fact_table_initial(self): + def __full_update_fact_table(self): app.logger.info(" __update_data_initial [begin]") app.logger.info("------------------------------------------------------------") RkiVaccinationData.remove_all() result_date_rep = RkiVaccinationImport.get_date_rep() i = 0 for item_date_rep, in result_date_rep: - date_reported = RkiVaccinationDateReported.find_by_date_reported( - p_date_reported=item_date_rep + d = RkiVaccinationDateReported.get_by_date_reported( + s_date_reported_import_str=item_date_rep ) - if date_reported is None: - o = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=item_date_rep) - date_reported = o - result_data_import = RkiVaccinationImport.find_by_datum(date_reported.date_reported_import_str) - for item_import in result_data_import: + for item_import in RkiVaccinationImport.find_by_datum(d.date_reported_import_str): o = RkiVaccinationData( - date_reported=date_reported, + date_reported=d, dosen_kumulativ=item_import.dosen_kumulativ, dosen_differenz_zum_vortag=item_import.dosen_differenz_zum_vortag, dosen_biontech_kumulativ=item_import.dosen_biontech_kumulativ, @@ -72,89 +67,34 @@ class RkiVaccinationServiceUpdateFull(RkiVaccinationServiceUpdateBase): indikation_alter_voll=item_import.indikation_alter_voll, indikation_beruf_voll=item_import.indikation_beruf_voll, indikation_medizinisch_voll=item_import.indikation_medizinisch_voll, - indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll + indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll, + processed_update=False, + processed_full_update=True, ) + item_import.processed_full_update = True db.session.add(o) i += 1 if i % 500 == 0: - app.logger.info(" update Vaccination initial ... " + str(i) + " rows") + app.logger.info(" full update Vaccination data ... " + str(i) + " rows") db.session.commit() db.session.commit() - app.logger.info(" update Vaccination initial ... " + str(i) + " rows total") + app.logger.info(" full update Vaccination data ... " + str(i) + " rows total") app.logger.info(" __update_data_initial [done]") app.logger.info("------------------------------------------------------------") return self - def __update_fact_table_incremental(self): - app.logger.info(" __update_fact_table_incremental Vaccination [begin]") - app.logger.info("------------------------------------------------------------") - result_date_rep = RkiVaccinationImport.get_daterep_missing_in_vaccination_data() - i = 0 - for item_date_rep in result_date_rep: - date_reported = RkiVaccinationDateReported.find_by_date_reported(item_date_rep) - #date_reported = RkiVaccinationDateReported.create_new_object_factory(item_date_rep) - result_data_import = RkiVaccinationImport.find_by_datum(item_date_rep) - for item_data_import in result_data_import: - o = RkiVaccinationData( - date_reported=date_reported, - dosen_kumulativ=item_data_import.dosen_kumulativ, - dosen_differenz_zum_vortag=item_data_import.dosen_differenz_zum_vortag, - dosen_biontech_kumulativ=item_data_import.dosen_biontech_kumulativ, - dosen_moderna_kumulativ=item_data_import.dosen_moderna_kumulativ, - personen_erst_kumulativ=item_data_import.personen_erst_kumulativ, - personen_voll_kumulativ=item_data_import.personen_voll_kumulativ, - impf_quote_erst=item_data_import.impf_quote_erst, - impf_quote_voll=item_data_import.impf_quote_voll, - indikation_alter_dosen=item_data_import.indikation_alter_dosen, - indikation_beruf_dosen=item_data_import.indikation_beruf_dosen, - indikation_medizinisch_dosen=item_data_import.indikation_medizinisch_dosen, - indikation_pflegeheim_dosen=item_data_import.indikation_pflegeheim_dosen, - indikation_alter_erst=item_data_import.indikation_alter_erst, - indikation_beruf_erst=item_data_import.indikation_beruf_erst, - indikation_medizinisch_erst=item_data_import.indikation_medizinisch_erst, - indikation_pflegeheim_erst=item_data_import.indikation_pflegeheim_erst, - indikation_alter_voll=item_data_import.indikation_alter_voll, - indikation_beruf_voll=item_data_import.indikation_beruf_voll, - indikation_medizinisch_voll=item_data_import.indikation_medizinisch_voll, - indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll - ) - db.session.add(o) - i += 1 - if i % 500 == 0: - app.logger.info(" update Vaccination incremental ... " + str(i) + " rows") - db.session.commit() - db.session.commit() - app.logger.info(" update Vaccination incremental ... " + str(i) + " rows total") - app.logger.info(" __update_fact_table_incremental Vaccination [done]") - app.logger.info("------------------------------------------------------------") - return self - - def __update_dimension_table_date_reported(self): - self.__update_date_reported() - return self - - def update_dimension_tables_only(self): - self.__update_dimension_table_date_reported() - return self - - def update_fact_table_incremental_only(self): - self.__update_fact_table_incremental() - return self - - def update_fact_table_initial_only(self): - self.__update_fact_table_initial() + def full_update_dimension_tables(self): + RkiVaccinationData.remove_all() + self.__full_update_date_reported() return self - def update_star_schema_incremental(self): - self.__update_dimension_table_date_reported() - self.__update_fact_table_incremental() + def full_update_fact_table(self): + self.__full_update_fact_table() return self - def update_star_schema_initial(self): - RkiVaccinationData.remove_all() - RkiVaccinationDateReported.remove_all() - self.__update_dimension_table_date_reported() - self.__update_fact_table_initial() + def full_update_star_schema(self): + self.full_update_dimension_tables() + self.full_update_fact_table() return self @@ -163,7 +103,6 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase): def __update_date_reported(self): app.logger.info(" __update_date_reported [begin]") app.logger.info("------------------------------------------------------------") - RkiVaccinationData.remove_all() RkiVaccinationDateReported.remove_all() date_reported_list = RkiVaccinationImport.get_date_reported_as_array() i = 0 @@ -178,65 +117,14 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase): app.logger.info("------------------------------------------------------------") return self - def __update_fact_table_initial(self): - app.logger.info(" __update_data_initial [begin]") - app.logger.info("------------------------------------------------------------") - RkiVaccinationData.remove_all() - result_date_rep = RkiVaccinationImport.get_date_rep() - i = 0 - for item_date_rep, in result_date_rep: - date_reported = RkiVaccinationDateReported.find_by_date_reported( - p_date_reported=item_date_rep - ) - if date_reported is None: - o = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=item_date_rep) - date_reported = o - result_data_import = RkiVaccinationImport.find_by_datum(date_reported.date_reported_import_str) - for item_import in result_data_import: - o = RkiVaccinationData( - date_reported=date_reported, - dosen_kumulativ=item_import.dosen_kumulativ, - dosen_differenz_zum_vortag=item_import.dosen_differenz_zum_vortag, - dosen_biontech_kumulativ=item_import.dosen_biontech_kumulativ, - dosen_moderna_kumulativ=item_import.dosen_moderna_kumulativ, - personen_erst_kumulativ=item_import.personen_erst_kumulativ, - personen_voll_kumulativ=item_import.personen_voll_kumulativ, - impf_quote_erst=item_import.impf_quote_erst, - impf_quote_voll=item_import.impf_quote_voll, - indikation_alter_dosen=item_import.indikation_alter_dosen, - indikation_beruf_dosen=item_import.indikation_beruf_dosen, - indikation_medizinisch_dosen=item_import.indikation_medizinisch_dosen, - indikation_pflegeheim_dosen=item_import.indikation_pflegeheim_dosen, - indikation_alter_erst=item_import.indikation_alter_erst, - indikation_beruf_erst=item_import.indikation_beruf_erst, - indikation_medizinisch_erst=item_import.indikation_medizinisch_erst, - indikation_pflegeheim_erst=item_import.indikation_pflegeheim_erst, - indikation_alter_voll=item_import.indikation_alter_voll, - indikation_beruf_voll=item_import.indikation_beruf_voll, - indikation_medizinisch_voll=item_import.indikation_medizinisch_voll, - indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll - ) - db.session.add(o) - i += 1 - if i % 500 == 0: - app.logger.info(" update Vaccination initial ... " + str(i) + " rows") - db.session.commit() - db.session.commit() - app.logger.info(" update Vaccination initial ... " + str(i) + " rows total") - app.logger.info(" __update_data_initial [done]") - app.logger.info("------------------------------------------------------------") - return self - - def __update_fact_table_incremental(self): + def __update_fact_table(self): app.logger.info(" __update_fact_table_incremental Vaccination [begin]") app.logger.info("------------------------------------------------------------") result_date_rep = RkiVaccinationImport.get_daterep_missing_in_vaccination_data() i = 0 for item_date_rep in result_date_rep: - date_reported = RkiVaccinationDateReported.find_by_date_reported(item_date_rep) - #date_reported = RkiVaccinationDateReported.create_new_object_factory(item_date_rep) - result_data_import = RkiVaccinationImport.find_by_datum(item_date_rep) - for item_data_import in result_data_import: + date_reported = RkiVaccinationDateReported.get_by_date_reported(item_date_rep) + for item_data_import in RkiVaccinationImport.find_by_datum(item_date_rep): o = RkiVaccinationData( date_reported=date_reported, dosen_kumulativ=item_data_import.dosen_kumulativ, @@ -258,7 +146,9 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase): indikation_alter_voll=item_data_import.indikation_alter_voll, indikation_beruf_voll=item_data_import.indikation_beruf_voll, indikation_medizinisch_voll=item_data_import.indikation_medizinisch_voll, - indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll + indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll, + processed_update=True, + processed_full_update=False, ) db.session.add(o) i += 1 @@ -271,30 +161,16 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase): app.logger.info("------------------------------------------------------------") return self - def __update_dimension_table_date_reported(self): + def update_dimension_tables(self): + RkiVaccinationData.remove_all() self.__update_date_reported() return self - def update_dimension_tables_only(self): - self.__update_dimension_table_date_reported() - return self - - def update_fact_table_incremental_only(self): - self.__update_fact_table_incremental() + def update_fact_table(self): + self.__update_fact_table() return self - def update_fact_table_initial_only(self): - self.__update_fact_table_initial() - return self - - def update_star_schema_incremental(self): - self.__update_dimension_table_date_reported() - self.__update_fact_table_incremental() - return self - - def update_star_schema_initial(self): - RkiVaccinationData.remove_all() - RkiVaccinationDateReported.remove_all() - self.__update_dimension_table_date_reported() - self.__update_fact_table_initial() + def update_star_schema(self): + self.update_dimension_tables() + self.update_fact_table() return self -- GitLab