Example #1
0
 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 + "()"))
Example #2
0
 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 + "()"))
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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())
Example #6
0
            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())
Example #7
0
    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())
Example #8
0
            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!")
Example #9
0
    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!")
Example #10
0
    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())