def dump_all_data(self) -> None: # xxx_json の名を持つ関数のリストを生成(_で始まる内部変数は除外する) json_list = [ member[0] for member in inspect.getmembers(self) if member[0][-4:] == "json" and member[0][0] != "_" ] for json in json_list: # 関数は"_json"で終わっているので、それを拡張子に直す必要がある json_name = json[:-5] + ".json" print_log("data_manager", f"Make {json_name}...") # jsonを出力、evalで文字列から関数を呼び出している dumps_json(json_name, eval("self." + json + "()"))
def dump_and_check_all_data(self) -> None: # xxx_json の名を持つ関数のリストを生成する(_で始まる内部変数は除外する) # ちなみに、以降生成するjsonを増やす場合は"_json"で終わる関数と"_"で始まる、関数に対応する内部変数を用意すれば自動で認識される json_list = [ member[0] for member in inspect.getmembers(self) if member[0][-4:] == "json" and member[0][0] != "_" ] for json in json_list: # 関数は"_json"で終わっているので、それを拡張子に直す必要がある json_name = json[:-5] + ".json" print_log("data_manager", f"Make {json_name}...") # evalで文字列から関数を呼び出し、jsonを出力 print_log("data_manager", f"Dumps {json_name}...") dumps_json(json_name, eval("self." + json + "()"))
def dump_and_check_all_data(self) -> None: # xxx_json の名を持つ関数のリストを生成し(_で始まる内部変数は除外する)、その後jsonschemaを使ってバリデーションチェックをする # ちなみに、以降生成するjsonを増やす場合は"_json"で終わる関数と"_"で始まる、関数に対応する内部変数を用意すれば自動で認識される json_list = [ member[0] for member in inspect.getmembers(self) if member[0][-4:] == "json" and member[0][0] != "_" ] for json in json_list: # 関数は"_json"で終わっているので、それを拡張子に直す必要がある json_name = json[:-5] + ".json" print_log("data_manager", f"Make {json_name}...") # evalで文字列から関数を呼び出している made_json = eval("self." + json + "()") # schemaを読み込み、作成したjsonをチェックする。 print_log("data_manager", f"Validate {json_name}...") schema = loads_schema(json_name) validate(made_json, schema) print_log("data_manager", f"{json_name} is OK!") # jsonを出力 print_log("data_manager", f"Dumps {json_name}...") dumps_json(json_name, made_json)
def dump_and_check_all_data(self) -> None: global changed_flag # xxx_json の名を持つ関数のリストを生成し(_で始まる内部変数は除外する) # その後jsonschemaを使ってバリデーションチェックをし、現在のjsonと比較してフラグ(changed_flag)を操作する # ちなみに、以降生成するjsonを増やす場合は"_json"で終わる関数と"_"で始まる、関数に対応する内部変数を用意すれば自動で認識される json_list = [ member[0] for member in inspect.getmembers(self) if member[0][-4:] == "json" and member[0][0] != "_" ] for json in json_list: # 関数は"_json"で終わっているので、それを拡張子に直す必要がある json_name = json[:-5] + ".json" print_log("data_manager", f"Make {json_name}...") # evalで文字列から関数を呼び出している made_json = eval("self." + json + "()") # 現在デプロイされているjsonを取得し、現在のjsonと比較する # 比較結果が「等しくない」のであれば、そのファイルのバリデーションチェックをして出力、 # 「等しい」のであればそのまま出力する now_json = requests_now_data_json(json_name) if now_json != made_json: changed_flag = True # schemaを読み込み、作成したjsonをチェックする。 print_log("data_manager", f"Validate {json_name}...") schema = loads_schema(json_name) try: validate(made_json, schema) except exceptions.ValidationError: raise Exception(f"Check failed {json_name}!") print_log("data_manager", f"{json_name} is OK!") else: print_log("data_manager", f"{json_name} has not changed.") # jsonを出力 print_log("data_manager", f"Dumps {json_name}...") dumps_json(json_name, made_json)
def get_contacts(self) -> None: # 何行分相談数のデータがあるかを取得 while self.contacts_sheet: self.contacts_count += 1 value = self.contacts_sheet.cell(row=self.contacts_count, column=1).value if value is None: break def get_summary_count(self) -> None: # 何行分サマリーのデータがあるかを取得 while self.main_summary_sheet: self.summary_count += 1 value = self.main_summary_sheet.cell(row=self.summary_count, column=1).value if not value: break def get_all_summary_count(self) -> None: # 何行分サマリーのデータがあるかを取得 while self.all_summary_sheet: self.all_summary_count += 1 value = self.all_summary_sheet.cell(row=self.all_summary_count, column=1).value if not value: break if __name__ == '__main__': dumps_json("data.json", DataJson().data_json())
if not value: break def get_inspections(self) -> None: while self.inspections_sheet: self.inspections_count += 1 value = self.inspections_sheet.cell(row=self.inspections_count, column=1).value if value == "計": break def get_contacts1(self) -> None: while self.contacts1_sheet: self.contacts1_count += 1 value = self.contacts1_sheet.cell(row=self.contacts1_count, column=1).value if not value: break def get_contacts2(self) -> None: while self.contacts2_sheet: self.contacts2_count += 1 value = self.contacts2_sheet.cell(row=self.contacts2_count, column=1).value if not value: break if __name__ == '__main__': dumps_json(config.data_json_filename, DataJson().data_json())
def get_inspections(self) -> None: while self.sheets: self.inspections_count += 1 value = self.sheets.cell(row=self.inspections_count, column=1).value if not value: break if __name__ == '__main__': print_log("main", "Init classes") patients = Patients() inspections = Inspections() main_summary = MainSummary() print_log("main", "make patients.json...") dumps_json("patients.json", patients.patients_json()) print_log("main", "make patients_summary.json...") dumps_json("patients_summary.json", patients.patients_summary_json()) print_log("main", "make clusters.json...") dumps_json("clusters.json", patients.clusters_json()) print_log("main", "make clusters_summary.json...") dumps_json("clusters_summary.json", patients.clusters_summary_json()) print_log("main", "make age.json...") dumps_json("age.json", patients.age_json()) print_log("main", "make age_summary.json...") dumps_json("age_summary.json", patients.age_summary_json()) print_log("main", "make inspection.json...") dumps_json("inspections.json", inspections.inspections_json()) print_log("main", "make inspection_summary.json...") dumps_json("inspections_summary.json", inspections.inspection_summary_json())
self.clusters.append(str(over_cell).replace("\n", "")) # 最後のunder_cellをグルーピングしているover_cellをNoneに置き換える self.clusters[-under_cell_count] = "None" def get_inspections(self) -> None: # 検査データの行数の取得 while self.inspections_sheet: self.inspections_count += 1 value = self.inspections_sheet.cell(row=self.inspections_count, column=1).value if not value: break def get_data_count(self) -> None: # サマリーデータの行数の取得 while self.summary_sheet: self.data_count += 1 value = self.summary_sheet.cell(row=self.data_count, column=1).value if not value: break if __name__ == '__main__': print_log("main", "Init DataManager") data_manager = DataManager() data_manager.dump_and_check_all_data() print_log("main", "Make last_update.json...") dumps_json("last_update.json", { "last_update": datetime.now(jst).strftime("%Y-%m-%dT%H:%M:00+09:00") }) print_log("main", "Make files complete!")
def get_inspections(self) -> None: # 検査データの行数の取得 while self.inspections_sheet: self.inspections_count += 1 value = self.inspections_sheet.cell(row=self.inspections_count, column=1).value if not value: break def get_data_count(self) -> None: # サマリーデータの行数の取得 while self.summary_sheet: self.data_count += 1 value = self.summary_sheet.cell(row=self.data_count, column=1).value if not value: break if __name__ == '__main__': print_log("main", "Init DataManager") data_manager = DataManager() data_manager.dump_and_check_all_data() if changed_flag: last_update = { "last_update": datetime.now(jst).strftime("%Y-%m-%dT%H:%M:00+09:00") } else: last_update = requests_now_data_json("last_update.json") print_log("main", "Make last_update.json...") dumps_json("last_update.json", last_update) print_log("main", "Make files complete!")
def get_summary_count(self) -> None: # 何行分サマリーのデータがあるかを取得 while self.main_summary_sheet: self.summary_count += 1 value = self.main_summary_sheet.cell(row=self.summary_count, column=1).value if not value: break def get_all_summary_count(self) -> None: # 何行分サマリーのデータがあるかを取得 while self.all_summary_sheet: self.all_summary_count += 1 value = self.all_summary_sheet.cell(row=self.all_summary_count, column=1).value if not value: break def get_news_count(self) -> None: # 何行分ニュースデータがあるかを取得 while self.news_sheet: self.news_count += 1 value = self.news_sheet.cell(row=self.news_count, column=2).value if not value: break if __name__ == '__main__': data_json = DataJson() dumps_json("data.json", data_json.data_json()) dumps_json("news.json", data_json.news_json())