mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
210 lines
10 KiB
Python
210 lines
10 KiB
Python
# import extract_msg
|
|
from datetime import datetime
|
|
from sqlalchemy.orm import sessionmaker
|
|
from backend.app.db.connection import db_engine
|
|
from backend.app.db.functions.non_intrusive_surveys import upload_non_intrusive_survey_notes
|
|
|
|
|
|
def parse_msg_body(text):
|
|
# Split the text into lines
|
|
lines = text.split('\r\n')
|
|
|
|
# Dictionary to hold the parsed data
|
|
data = {}
|
|
|
|
# Process each line
|
|
for line in lines:
|
|
# Remove all asterisks and extra whitespace
|
|
clean_line = line.replace('*', '').strip()
|
|
|
|
if clean_line: # Ensure the line is not empty after cleaning
|
|
# Attempt to split clean '=' if present
|
|
if '=' in clean_line:
|
|
clean_line = clean_line.replace(' = ', ': ')
|
|
|
|
# Use line content as a key with a default value indicating presence
|
|
# Generate a unique key for lines without '='
|
|
data[f"Info{len(data) + 1}"] = clean_line
|
|
|
|
return data
|
|
|
|
|
|
def app():
|
|
"""
|
|
This code retrieves the results of the non-invasive surveys, to be stored in S3
|
|
:return:
|
|
"""
|
|
|
|
# filepath = ("/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/5 Oaklands B62 "
|
|
# "0JA/Immo - 5 Oaklands Halesowen B62 0JA.msg")
|
|
# filepath = ("/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/6 Beech Rd DY1 "
|
|
# "4BP/IMMO - 6 Beech Road Dudley DY1 4BP.msg")
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/8 Corporation Rd DY2 "
|
|
# "7PX/IMMO - 8 Corporation Road Dudley DY2 7PX.msg"
|
|
# )
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/21 Wells Rd DY5 3TB/"
|
|
# "IMMO - 21 Wells Road Brierley Hill DY5 3TB.msg"
|
|
# )
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/47 Fairfield Rd DY8 "
|
|
# "5UJ/IMMO - 47 Fairfield Road Wordsley Stourbridge DY8 5UJ.msg"
|
|
# )
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/91 Osprey Drive DY1 "
|
|
# "2JS/IMMO - 91 Osprey Drive Dudley DY1 2JS.msg"
|
|
# )
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/195 Ashenhurst Rd DY1 "
|
|
# "2JB/IMMO - 195 Ashenhurst Road Dudley DY1 2JB.msg"
|
|
# )
|
|
# filepath = (
|
|
# "/Users/khalimconn-kowlessar/Downloads/IMMO - Dudley Pilot - non-invasive raw data/27 Milton Rd DY1 2JB/IMMO "
|
|
# "- 27 Milton Road Coseley Bilston WV14 8HZ.msg"
|
|
# )
|
|
#
|
|
# with extract_msg.Message(filepath) as msg:
|
|
# body = msg.body
|
|
#
|
|
# from pprint import pprint
|
|
# pprint(parse_msg_body(body))
|
|
|
|
# We manually create the non-invasive notes for the pilot
|
|
non_invasive_notes = [
|
|
{
|
|
'uprn': 90028499,
|
|
# 'address': '5 Oaklands',
|
|
# 'postcode': 'B62 0JA',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation. '
|
|
'There is a shared alleyway with the neighbour, that is a solid brick wall.',
|
|
'Wall Render': 'Partial render between top of ground floor window and bottom of 1st floor window',
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: North East, Back house direction: South West',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90055152,
|
|
# 'address': '6 Beech Road',
|
|
# 'postcode': 'DY1 4BP',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': '1st floor is solid brick with external wall insulation. 2nd floor is cavity, '
|
|
'retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': None,
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Side house direction: North East',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90070461,
|
|
# 'address': '8 Corporation Road',
|
|
# 'postcode': 'DY2 7PX',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': "External wall insulation",
|
|
'Wall Render': "Render finish throughout",
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: North East, Back house direction: South West',
|
|
'Access to mains?': None,
|
|
},
|
|
{
|
|
'uprn': 90022227,
|
|
# 'address': '21 Wells Road',
|
|
# 'postcode': 'DY5 3TB',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': None,
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: East, Back house direction: West',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90077535,
|
|
# 'address': '47 Fairfield Road',
|
|
# 'postcode': 'DY8 5UJ',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': None,
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: East, Back house direction: West',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90060989,
|
|
# 'address': '53 Bromley',
|
|
# 'postcode': 'DY5 4PJ',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': "Filled at build, partially filled - celotex/king board, 50mm cavity remaining - "
|
|
"recommends a cavity wall fill",
|
|
"Roof": "Hipped roof",
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': "Front house direction: North, Back house direction: South, Side house direction: West",
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90048026,
|
|
# 'address': '91 Osprey Drive',
|
|
# 'postcode': 'DY1 2JS',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': 'Tile hung front and rear of property',
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Side house direction: East',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90093693,
|
|
# 'address': '150 Huntingtree Road',
|
|
# 'postcode': 'B63 4HP',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Heating': 'Electric (storage heaters)',
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
"Roof": "Hipped roof",
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': "Front house direction: North West, Back house direction: South East, Side house direction: "
|
|
"North East",
|
|
},
|
|
{
|
|
'uprn': 90051858,
|
|
# 'address': '195 Ashenhurst Road',
|
|
# 'postcode': 'DY1 2JB',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': "Solid render front and rear of property",
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: South, Back house direction: North',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
{
|
|
'uprn': 90106884,
|
|
# 'address': '27 Milton Road',
|
|
# 'postcode': 'WV14 8HZ',
|
|
'surveyor': 'Carl Fitzgerald - The Warmfront Team',
|
|
'survey_date': datetime.strptime('2024-04-11', '%Y-%m-%d'),
|
|
'Wall Insulation': 'Cavity wall, retro drilled, containing loose fibre insulation. Consider getting a '
|
|
'CIGA check and extracting the cavity, replacing with bead insulation.',
|
|
'Wall Render': "Solid render front and rear of property",
|
|
'Existing solar PV': 'No existing solar',
|
|
'Orientation': 'Front house direction: South East, Back house direction: North West',
|
|
'Access to mains?': 'Property has access to the mains',
|
|
},
|
|
]
|
|
|
|
session = sessionmaker(bind=db_engine)()
|
|
upload_non_intrusive_survey_notes(session=session, non_invasive_notes=non_invasive_notes, batch_size=500)
|