mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
making full_address property
This commit is contained in:
parent
001e9ce882
commit
cadf8836d1
1 changed files with 24 additions and 11 deletions
|
|
@ -7,7 +7,11 @@ from typing import Callable, Optional
|
||||||
import httpx
|
import httpx
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
from backend.epc_client.exceptions import EpcApiError, EpcNotFoundError, EpcRateLimitError
|
from backend.epc_client.exceptions import (
|
||||||
|
EpcApiError,
|
||||||
|
EpcNotFoundError,
|
||||||
|
EpcRateLimitError,
|
||||||
|
)
|
||||||
from backend.epc_client._retry import call_with_retry
|
from backend.epc_client._retry import call_with_retry
|
||||||
from datatypes.epc.domain.epc_property_data import EpcPropertyData
|
from datatypes.epc.domain.epc_property_data import EpcPropertyData
|
||||||
from datatypes.epc.domain.mapper import EpcPropertyDataMapper
|
from datatypes.epc.domain.mapper import EpcPropertyDataMapper
|
||||||
|
|
@ -26,6 +30,7 @@ class EpcSearchResult:
|
||||||
current_energy_efficiency_band: str
|
current_energy_efficiency_band: str
|
||||||
registration_date: str
|
registration_date: str
|
||||||
|
|
||||||
|
@property
|
||||||
def full_address(self) -> str:
|
def full_address(self) -> str:
|
||||||
parts = [
|
parts = [
|
||||||
self.address_line_1,
|
self.address_line_1,
|
||||||
|
|
@ -68,12 +73,16 @@ class EpcClientService:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Round 1: score on addressLine1 only
|
# Round 1: score on addressLine1 only
|
||||||
cert_num = self._pick_best_cert(candidates, address, use_full_address=False, fn=get_uprn_candidates)
|
cert_num = self._pick_best_cert(
|
||||||
|
candidates, address, use_full_address=False, fn=get_uprn_candidates
|
||||||
|
)
|
||||||
if cert_num:
|
if cert_num:
|
||||||
return self._safe_get(cert_num)
|
return self._safe_get(cert_num)
|
||||||
|
|
||||||
# Round 2: score on all address lines joined
|
# Round 2: score on all address lines joined
|
||||||
cert_num = self._pick_best_cert(candidates, address, use_full_address=True, fn=get_uprn_candidates)
|
cert_num = self._pick_best_cert(
|
||||||
|
candidates, address, use_full_address=True, fn=get_uprn_candidates
|
||||||
|
)
|
||||||
if cert_num:
|
if cert_num:
|
||||||
return self._safe_get(cert_num)
|
return self._safe_get(cert_num)
|
||||||
|
|
||||||
|
|
@ -145,14 +154,18 @@ class EpcClientService:
|
||||||
use_full_address: bool,
|
use_full_address: bool,
|
||||||
fn: Callable[..., pd.DataFrame],
|
fn: Callable[..., pd.DataFrame],
|
||||||
) -> Optional[str]:
|
) -> Optional[str]:
|
||||||
df = pd.DataFrame([
|
df = pd.DataFrame(
|
||||||
{
|
[
|
||||||
"address": r.full_address() if use_full_address else r.address_line_1,
|
{
|
||||||
"uprn": str(r.uprn) if r.uprn is not None else "",
|
"address": (
|
||||||
"certificate_number": r.certificate_number,
|
r.full_address() if use_full_address else r.address_line_1
|
||||||
}
|
),
|
||||||
for r in candidates
|
"uprn": str(r.uprn) if r.uprn is not None else "",
|
||||||
])
|
"certificate_number": r.certificate_number,
|
||||||
|
}
|
||||||
|
for r in candidates
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
scored = fn(df, user_address=user_address)
|
scored = fn(df, user_address=user_address)
|
||||||
if scored.empty:
|
if scored.empty:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue