From bedfc1dab4d137ac9388d812c45d78e3dd985a79 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Wed, 16 Jul 2025 14:26:40 +0000 Subject: [PATCH] osmosis monday --- etl/epr_etl_example.py | 2 +- etl/fileReader/pdfReaderToText.py | 1 - etl/fileReader/sitenotes.py | 5 +- etl/hubSpotClient/types.py | 4 +- etl/osmosis_data/asset_list.xlsx | Bin 27461 -> 20673 bytes ...osmosis_monday_to_sharepoint_automation.py | 86 +++++++++++------- 6 files changed, 60 insertions(+), 38 deletions(-) diff --git a/etl/epr_etl_example.py b/etl/epr_etl_example.py index 866c75a..e0a7032 100644 --- a/etl/epr_etl_example.py +++ b/etl/epr_etl_example.py @@ -1,7 +1,7 @@ from etl.surveyedData.surveryedData import surveyedDataProcessor files = [ - "/tmp/sharepoint/Sandwell/SANDWELL-001/26 Willow close B64 6EG/Content (13).pdf", + # "/tmp/sharepoint/Sandwell/SANDWELL-001/26 Willow close B64 6EG/Content (13).pdf", "/tmp/sharepoint/Livewest/Livewest-001/12 Birch End/Summary Information 12 Birch End.pdf" ] diff --git a/etl/fileReader/pdfReaderToText.py b/etl/fileReader/pdfReaderToText.py index 9668eed..c1d5834 100644 --- a/etl/fileReader/pdfReaderToText.py +++ b/etl/fileReader/pdfReaderToText.py @@ -33,7 +33,6 @@ class pdfReaderToText(): self.all_text += text self.text_list = self.all_text.split('\n') - pprint(self.text_list) def get_list_of_text(self): return self.text_list diff --git a/etl/fileReader/sitenotes.py b/etl/fileReader/sitenotes.py index 1df8747..7799252 100644 --- a/etl/fileReader/sitenotes.py +++ b/etl/fileReader/sitenotes.py @@ -298,7 +298,6 @@ class WarmHomesConditionReport(SiteNotesExtractor): # Gable 2 data = self.get_data_between("2.2.4. External Elevation - Gable 2", "2.3. Conservatory or Outbuilding") - pprint(self.raw_data) state = True if self.get_next_value(data, "Is there a 4th external elevation?").lower() == "yes" else False if state is False: gable_two = ExternalElevationGableTwo(is_there_a_fourth_external_elevation=state) @@ -1601,9 +1600,9 @@ class EnergyPerformanceReportWithData(SiteNotesExtractor): class EnergyPerformanceReportSummaryInformation(SiteNotesExtractor): def __init__(self, data_list): - super().__init__(data_list) + self.raw_data = data_list self.type = ReportType.ENERGY_PERFORMANCE_REPORT_SUMMARY_INFORMATION - self.master_obj = self.setup() + self.setup() def setup(self): pass \ No newline at end of file diff --git a/etl/hubSpotClient/types.py b/etl/hubSpotClient/types.py index e004243..c042d6d 100644 --- a/etl/hubSpotClient/types.py +++ b/etl/hubSpotClient/types.py @@ -81,7 +81,7 @@ class SubmissionInfoFromDeal(BaseModel): missing_items.append("Condition Report") if sdp.epr_summary_information is None: - missing_items.append("EPR Energy report with data is missing") + missing_items.append("EPR Energy report with data") if sdp.rd_sap_xml is None: missing_items.append("RDSAP XML") @@ -90,7 +90,7 @@ class SubmissionInfoFromDeal(BaseModel): missing_items.append("LIG SAP XML") if sdp.epr_summary_information is None: - missing_items.append("EPR Summary information is missing") + missing_items.append("EPR Summary information") if missing_items: raise ValueError(f"Missing required items: {', '.join(missing_items)}") diff --git a/etl/osmosis_data/asset_list.xlsx b/etl/osmosis_data/asset_list.xlsx index ceada9c65be1198d05dd8027d96138f840418fd9..822b436c5566f8a0ca16a938bb22f974b4eeb705 100644 GIT binary patch delta 5098 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

Sg0rqUUepQhtfWdVI2bH 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 diff --git a/etl/osmosis_monday_to_sharepoint_automation.py b/etl/osmosis_monday_to_sharepoint_automation.py index 4e83612..40118f4 100644 --- a/etl/osmosis_monday_to_sharepoint_automation.py +++ b/etl/osmosis_monday_to_sharepoint_automation.py @@ -8,57 +8,81 @@ from etl.scraper.scraper import SharePointInstaller from etl.scraper.scraper import SharePointScraper import pandas as pd from tqdm import tqdm +import time -osmosis = SharePointScraper(SharePointInstaller.OSMOSIS_WAVE_2) +osmosis = SharePointScraper(SharePointInstaller.OSMOSIS_WAVE_3) -parent_folder = "/Osmosis ACD/Osmosis ACD Projects/WCHG/WCHG Walkups/Property Folders" +parent_folder = "/Osmosis-ACD Projects/Cardo/Cardo (Wales & West)/2506 Cardo Property Folders" -asset_list = pd.read_excel("osmosis_data/asset_list.xlsx", sheet_name="Sheet1") +asset_list = pd.read_excel("osmosis_data/asset_list.xlsx", sheet_name="Sheet 1") new_asset_list = [] # Create asset list and location for index, address in tqdm(asset_list.iterrows()): - folder_name = address['Name'] + " " + address['Postcode'] - webUrl = osmosis.create_dir(folder_name, parent_folder) - - first_folder = "1. Retrofit Assessment" - osmosis.create_dir(first_folder, parent_folder + f"/{folder_name}") - osmosis.create_dir("A. Assessment", parent_folder + f"/{folder_name}/{first_folder}") - osmosis.create_dir("B. Air Tightness Tests", parent_folder + f"/{folder_name}/{first_folder}") + if index > 39: + folder_name = address['Name'] + " " + address['Postcode'] + webUrl = osmosis.create_dir(folder_name, parent_folder) + time.sleep(1) + print(f"building folders insidea {folder_name}") - second_folder = "2. RC Mid-Term Plan" - osmosis.create_dir(second_folder, parent_folder + f"/{folder_name}") - osmosis.create_dir("SAP", parent_folder + f"/{folder_name}/{second_folder}") + print("building retrofit assessment") + first_folder = "1. Retrofit Assessment" + osmosis.create_dir(first_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("A. Assessment", parent_folder + f"/{folder_name}/{first_folder}") + osmosis.create_dir("B. Air Tightness Tests", parent_folder + f"/{folder_name}/{first_folder}") - third_folder = "3. Retrofit Design" - osmosis.create_dir(third_folder, parent_folder + f"/{folder_name}") + print("building RC MID Term plan") + second_folder = "2. RC Mid-Term Plan" + osmosis.create_dir(second_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("SAP", parent_folder + f"/{folder_name}/{second_folder}") - fourth_folder = "4. Post EPC" - osmosis.create_dir(fourth_folder, parent_folder + f"/{folder_name}") - osmosis.create_dir(f"{address['Name']} - POST EPC Photos", parent_folder + f"/{folder_name}/{fourth_folder}") + print("building Retrofit Design") + third_folder = "3. Retrofit Design" + osmosis.create_dir(third_folder, parent_folder + f"/{folder_name}") - fifth_folder = "5. Trustmark Lodgement" - osmosis.create_dir(fifth_folder, parent_folder + f"/{folder_name}") - osmosis.create_dir("1. Works", parent_folder + f"/{folder_name}/{fifth_folder}") + print("building post epc") + fourth_folder = "4. Post EPC" + osmosis.create_dir(fourth_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir(f"{address['Name']} - POST EPC Photos", parent_folder + f"/{folder_name}/{fourth_folder}") - osmosis.create_dir("2. Required Documents", parent_folder + f"/{folder_name}/{fifth_folder}") - osmosis.create_dir("3. Additional Documents", parent_folder + f"/{folder_name}/{fifth_folder}") - - asset_data = { - "Name": address['Name'], - "Postcode": address['Postcode'], - "Sharepoint": webUrl, - } + print("Building Trust mark Lodgement") + fifth_folder = "5. Trustmark Lodgement" + osmosis.create_dir(fifth_folder, parent_folder + f"/{folder_name}") + osmosis.create_dir("1. Works", parent_folder + f"/{folder_name}/{fifth_folder}") - new_asset_list.append(asset_data) + osmosis.create_dir("2. Required Documents", parent_folder + f"/{folder_name}/{fifth_folder}") + osmosis.create_dir("3. Additional Documents", parent_folder + f"/{folder_name}/{fifth_folder}") + + asset_data = { + "Name": address['Name'], + "Postcode": address['Postcode'], + "Sharepoint": webUrl, + } + print(asset_data) + + new_asset_list.append(asset_data) -# Osmosist File strucutre +# Run this is you just want to get url +def just_url(asset_list): + new_asset_list = [] + for index, address in tqdm(asset_list.iterrows()): + folder_name = address['Name'] + " " + address['Postcode'] + webUrl = osmosis.create_dir(folder_name, parent_folder) + asset_data = { + "Name": address['Name'], + "Postcode": address['Postcode'], + "Sharepoint": webUrl, + } + print(asset_data) + new_asset_list.append(asset_data) + return new_asset_list +new_asset_list = just_url(asset_list=asset_list) df = pd.DataFrame(new_asset_list) df.to_csv("output.csv", index=False)