From d1b9ab4d29174091dd1daa3353e138abbb991c0b Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sat, 23 Jan 2021 21:39:11 +0100 Subject: [PATCH] ### 0.0.12 Release * Issue #52 download vaccination timeline data file * Issue #53 import vaccination timeline data file into db * Issue #54 /vaccination/imported * Issue #55 /vaccination/tasks * Issue #56 /vaccination/info --- etc/x.txt | 21 +++++++++ .../covid19/vaccination/vaccination_model.py | 43 ++++++++++--------- .../vaccination/vaccination_service.py | 4 +- .../vaccination/vaccination_service_import.py | 31 +++++++++---- 4 files changed, 67 insertions(+), 32 deletions(-) create mode 100644 etc/x.txt diff --git a/etc/x.txt b/etc/x.txt new file mode 100644 index 00000000..7e4d9e5e --- /dev/null +++ b/etc/x.txt @@ -0,0 +1,21 @@ +datum +dosen_kumulativ +dosen_differenz_zum_vortag +dosen_biontech_kumulativ +dosen_moderna_kumulativ +personen_erst_kumulativ +personen_voll_kumulativ +impf_quote_erst +impf_quote_voll +indikation_alter_dosen +indikation_beruf_dosen +indikation_medizinisch_dosen +indikation_pflegeheim_dosen +indikation_alter_erst +indikation_beruf_erst +indikation_medizinisch_erst +indikation_pflegeheim_erst +indikation_alter_voll +indikation_beruf_voll +indikation_medizinisch_voll +indikation_pflegeheim_voll diff --git a/org/woehlke/covid19/vaccination/vaccination_model.py b/org/woehlke/covid19/vaccination/vaccination_model.py index 3d87ab1e..8a6d334d 100644 --- a/org/woehlke/covid19/vaccination/vaccination_model.py +++ b/org/woehlke/covid19/vaccination/vaccination_model.py @@ -213,15 +213,28 @@ class VaccinationDataImportTable(db.Model): __tablename__ = 'vaccination_data_import' id = db.Column(db.Integer, primary_key=True) - date_reported = db.Column(db.String(255), nullable=False) - country_code = db.Column(db.String(255), nullable=False) - country = db.Column(db.String(255), nullable=False) - who_region = db.Column(db.String(255), nullable=False) - new_cases = db.Column(db.String(255), nullable=False) - cumulative_cases = db.Column(db.String(255), nullable=False) - new_deaths = db.Column(db.String(255), nullable=False) - cumulative_deaths = db.Column(db.String(255), nullable=False) - row_imported = db.Column(db.Boolean, nullable=False) + datum = db.Column(db.String(255), nullable=False) + dosen_kumulativ = db.Column(db.Integer, nullable=False) + dosen_differenz_zum_vortag = db.Column(db.Integer, nullable=False) + dosen_biontech_kumulativ = db.Column(db.Integer, nullable=False) + dosen_moderna_kumulativ = db.Column(db.Integer, nullable=False) + personen_erst_kumulativ = db.Column(db.Integer, nullable=False) + personen_voll_kumulativ = db.Column(db.Integer, nullable=False) + impf_quote_erst = db.Column(db.Float, nullable=False) + impf_quote_voll = db.Column(db.Float, nullable=False) + indikation_alter_dosen = db.Column(db.Integer, nullable=False) + indikation_beruf_dosen = db.Column(db.Integer, nullable=False) + indikation_medizinisch_dosen = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_dosen = db.Column(db.Integer, nullable=False) + indikation_alter_erst = db.Column(db.Integer, nullable=False) + indikation_beruf_erst = db.Column(db.Integer, nullable=False) + indikation_medizinisch_erst = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_erst = db.Column(db.Integer, nullable=False) + indikation_alter_voll = db.Column(db.Integer, nullable=False) + indikation_beruf_voll = db.Column(db.Integer, nullable=False) + indikation_medizinisch_voll = db.Column(db.Integer, nullable=False) + indikation_pflegeheim_voll = db.Column(db.Integer, nullable=False) + row_imported = db.Column(db.Boolean, nullable=False, default=False) @classmethod def remove_all(cls): @@ -241,18 +254,6 @@ class VaccinationDataImportTable(db.Model): def get_by_id(cls, other_id): return db.session.query(cls).filter(cls.id == other_id).one() - @classmethod - def get_regions(cls): - return db.session.query(cls.who_region).distinct() - - @classmethod - def get_dates_reported(cls): - return db.session.query(cls.date_reported).distinct() - - @classmethod - def get_for_one_day(cls, day): - return db.session.query(cls).filter(cls.date_reported == day).all() - @classmethod def get_new_dates_as_array(cls): sql_query = """ diff --git a/org/woehlke/covid19/vaccination/vaccination_service.py b/org/woehlke/covid19/vaccination/vaccination_service.py index b3b752aa..6e76b7a4 100644 --- a/org/woehlke/covid19/vaccination/vaccination_service.py +++ b/org/woehlke/covid19/vaccination/vaccination_service.py @@ -58,8 +58,8 @@ class VaccinationService: def run_update_initial(self, import_file=True): app.logger.info(" run update initial [begin]") app.logger.info("------------------------------------------------------------") - #if import_file: - # self.vaccination_service_import.import_file() + if import_file: + self.vaccination_service_import.import_file() #self.vaccination_service_update.update_db_initial() app.logger.info("") app.logger.info(" run update initial [done]") diff --git a/org/woehlke/covid19/vaccination/vaccination_service_import.py b/org/woehlke/covid19/vaccination/vaccination_service_import.py index 21d44747..1332840d 100644 --- a/org/woehlke/covid19/vaccination/vaccination_service_import.py +++ b/org/woehlke/covid19/vaccination/vaccination_service_import.py @@ -37,18 +37,31 @@ class VaccinationServiceImport: try: VaccinationDataImportTable.remove_all() with open(self.__src_cvsfile_name, newline='\n') as csv_file: - file_reader = csv.DictReader(csv_file, delimiter=',', quotechar='"') + file_reader = csv.DictReader(csv_file, delimiter='\t', quotechar='"') k = 0 for row in file_reader: o = VaccinationDataImportTable( - date_reported=row[keyDate_reported], - country_code=row['Country_code'], - country=row['Country'], - who_region=row['WHO_region'], - new_cases=row['New_cases'], - cumulative_cases=row['Cumulative_cases'], - new_deaths=row['New_deaths'], - cumulative_deaths=row['Cumulative_deaths'], + datum=row['datum'], + dosen_kumulativ=int(row['dosen_kumulativ']), + dosen_differenz_zum_vortag=int(row['dosen_differenz_zum_vortag']), + dosen_biontech_kumulativ=int(row['dosen_biontech_kumulativ']), + dosen_moderna_kumulativ=int(row['dosen_moderna_kumulativ']), + personen_erst_kumulativ=int(row['personen_erst_kumulativ']), + personen_voll_kumulativ=int(row['personen_voll_kumulativ']), + impf_quote_erst=float(row['impf_quote_erst']), + impf_quote_voll=float(row['impf_quote_voll']), + indikation_alter_dosen=int(row['indikation_alter_dosen']), + indikation_beruf_dosen=int(row['indikation_beruf_dosen']), + indikation_medizinisch_dosen=int(row['indikation_medizinisch_dosen']), + indikation_pflegeheim_dosen=int(row['indikation_pflegeheim_dosen']), + indikation_alter_erst=int(row['indikation_alter_erst']), + indikation_beruf_erst=int(row['indikation_beruf_erst']), + indikation_medizinisch_erst=int(row['indikation_medizinisch_erst']), + indikation_pflegeheim_erst=int(row['indikation_pflegeheim_erst']), + indikation_alter_voll=int(row['indikation_alter_voll']), + indikation_beruf_voll=int(row['indikation_beruf_voll']), + indikation_medizinisch_voll=int(row['indikation_medizinisch_voll']), + indikation_pflegeheim_voll=int(row['indikation_pflegeheim_voll']), row_imported=False ) db.session.add(o) -- GitLab