mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 20:42:26 +00:00
New functionality for UK Sold house price data
This commit is contained in:
@@ -25,7 +25,7 @@ class AlternativeDataController(BaseController):
|
||||
"""Alternative Controller class"""
|
||||
|
||||
CHOICES_COMMANDS: List[str] = ["hn"]
|
||||
CHOICES_MENUS = ["covid", "oss"]
|
||||
CHOICES_MENUS = ["covid", "oss","realestate"]
|
||||
PATH = "/alternative/"
|
||||
CHOICES_GENERATION = True
|
||||
|
||||
@@ -43,6 +43,7 @@ class AlternativeDataController(BaseController):
|
||||
mt = MenuText("alternative/")
|
||||
mt.add_menu("covid")
|
||||
mt.add_menu("oss")
|
||||
mt.add_menu("realestate")
|
||||
mt.add_raw("\n")
|
||||
mt.add_cmd("hn")
|
||||
console.print(text=mt.menu_text, menu="Alternative")
|
||||
@@ -81,3 +82,12 @@ class AlternativeDataController(BaseController):
|
||||
|
||||
if ns_parser:
|
||||
hackernews_view.display_stories(limit=ns_parser.limit)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_realestate(self, _):
|
||||
"""Process realestate command."""
|
||||
from openbb_terminal.alternative.realestate.realestate_controller import (
|
||||
RealEstateController,
|
||||
)
|
||||
|
||||
self.queue = self.load_class(RealEstateController, self.queue)
|
||||
0
openbb_terminal/alternative/realestate/__init__.py
Normal file
0
openbb_terminal/alternative/realestate/__init__.py
Normal file
253
openbb_terminal/alternative/realestate/landRegistry_model.py
Normal file
253
openbb_terminal/alternative/realestate/landRegistry_model.py
Normal file
@@ -0,0 +1,253 @@
|
||||
""" UK Land Registry Model """
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import logging
|
||||
import io
|
||||
import pandas as pd
|
||||
from SPARQLWrapper.Wrapper import CSV, SPARQLWrapper
|
||||
|
||||
from openbb_terminal.decorators import log_start_end
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def pcd_format(postcode: str):
|
||||
return (
|
||||
postcode[0 : len(postcode) - 3].strip()
|
||||
+ " "
|
||||
+ postcode[len(postcode) - 3 : len(postcode)]
|
||||
)
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_estate_sales(postcode: str) -> pd.DataFrame:
|
||||
|
||||
"""All sales for specified postcode.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
postcode : str
|
||||
Postcode
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
All sales with that postcode
|
||||
"""
|
||||
|
||||
if not postcode:
|
||||
return pd.DataFrame()
|
||||
|
||||
# the upper is done since SDK calls don't appear to go through the controller
|
||||
pcd_postcode = pcd_format(postcode.upper())
|
||||
|
||||
query = f"""
|
||||
PREFIX lrppi: <http://landregistry.data.gov.uk/def/ppi/>
|
||||
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||
PREFIX owl: <http://www.w3.org/2002/07/owl#>
|
||||
PREFIX lrcommon: <http://landregistry.data.gov.uk/def/common/>
|
||||
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
PREFIX ukhpi: <http://landregistry.data.gov.uk/def/ukhpi/>
|
||||
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
PREFIX sr: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
|
||||
|
||||
SELECT ?paon ?saon ?street ?town ?county ?postcode ?amount ?date ?id ?category
|
||||
WHERE
|
||||
{{ VALUES ?postcode {{ "{pcd_postcode}" }}
|
||||
?addr lrcommon:postcode ?postcode .
|
||||
?transx lrppi:propertyAddress ?addr ;
|
||||
lrppi:pricePaid ?amount ;
|
||||
lrppi:transactionId ?id ;
|
||||
lrppi:transactionDate ?date .
|
||||
?transx lrppi:transactionCategory/skos:prefLabel ?category.
|
||||
|
||||
OPTIONAL {{ ?addr lrcommon:county ?county }}
|
||||
OPTIONAL {{ ?addr lrcommon:paon ?paon }}
|
||||
OPTIONAL {{ ?addr lrcommon:saon ?saon }}
|
||||
OPTIONAL {{ ?addr lrcommon:street ?street }}
|
||||
OPTIONAL {{ ?addr lrcommon:town ?town }}
|
||||
}}
|
||||
ORDER BY DESC(?date)
|
||||
"""
|
||||
endpoint = "http://landregistry.data.gov.uk/landregistry/query"
|
||||
|
||||
# df = sparql_dataframe.get(endpoint, query)
|
||||
|
||||
df = pd.DataFrame()
|
||||
sparql = SPARQLWrapper(endpoint)
|
||||
sparql.setReturnFormat(CSV)
|
||||
sparql.setQuery(query)
|
||||
|
||||
results = sparql.query().convert()
|
||||
if isinstance(results, bytes):
|
||||
_csv = io.StringIO(results.decode("utf-8"))
|
||||
# print( pd.read_csv(_csv, sep=","))
|
||||
df = pd.read_csv(_csv, sep=",")
|
||||
|
||||
return df
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_towns_sold_prices(
|
||||
town: str, startdate: str = "2010-01-01", enddate: str = ""
|
||||
) -> pd.DataFrame:
|
||||
"""Get towns sold house price data.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
town : str
|
||||
town
|
||||
|
||||
startdate : str
|
||||
startDate
|
||||
|
||||
enddate : str
|
||||
endDate
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
All sales for that town within the date range specified
|
||||
"""
|
||||
|
||||
# the upper is done since SDK calls don't appear to go through the controller
|
||||
town = town.upper()
|
||||
|
||||
query = f"""
|
||||
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
prefix owl: <http://www.w3.org/2002/07/owl#>
|
||||
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
prefix sr: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
|
||||
prefix ukhpi: <http://landregistry.data.gov.uk/def/ukhpi/>
|
||||
prefix lrppi: <http://landregistry.data.gov.uk/def/ppi/>
|
||||
prefix skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
prefix lrcommon: <http://landregistry.data.gov.uk/def/common/>
|
||||
|
||||
SELECT ?paon ?saon ?street ?county ?postcode ?amount ?date ?category
|
||||
WHERE
|
||||
{{
|
||||
VALUES ?town {{"{town}"^^xsd:string}}
|
||||
|
||||
?addr lrcommon:town ?town ;
|
||||
lrcommon:postcode ?postcode.
|
||||
|
||||
?transx lrppi:propertyAddress ?addr ;
|
||||
lrppi:pricePaid ?amount ;
|
||||
lrppi:transactionDate ?date ;
|
||||
lrppi:transactionCategory/skos:prefLabel ?category.
|
||||
|
||||
FILTER (
|
||||
?date > "{startdate}"^^xsd:date &&
|
||||
?date < "{enddate}"^^xsd:date
|
||||
).
|
||||
|
||||
OPTIONAL {{?addr lrcommon:county ?county}}
|
||||
OPTIONAL {{?addr lrcommon:paon ?paon}}
|
||||
OPTIONAL {{?addr lrcommon:saon ?saon}}
|
||||
OPTIONAL {{?addr lrcommon:saon ?postcode}}
|
||||
OPTIONAL {{?addr lrcommon:street ?street}}
|
||||
}}
|
||||
ORDER BY (?date && ?postcode)
|
||||
"""
|
||||
|
||||
endpoint = "http://landregistry.data.gov.uk/landregistry/query"
|
||||
|
||||
df = pd.DataFrame()
|
||||
sparql = SPARQLWrapper(endpoint)
|
||||
sparql.setReturnFormat(CSV)
|
||||
sparql.setQuery(query)
|
||||
sparql.method = "POST"
|
||||
|
||||
results = sparql.query().convert()
|
||||
if isinstance(results, bytes):
|
||||
_csv = io.StringIO(results.decode("utf-8"))
|
||||
df = pd.read_csv(_csv, sep=",")
|
||||
|
||||
return df
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def get_region_stats(
|
||||
region: str, startdate: str = "2010-01-01", enddate: str = ""
|
||||
) -> pd.DataFrame:
|
||||
"""Get regional house price statistics.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
region : str
|
||||
region
|
||||
|
||||
startdate : str
|
||||
startDate
|
||||
|
||||
enddate : str
|
||||
endDate
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
All stats for that region within the date range specified
|
||||
"""
|
||||
|
||||
region = region.lower()
|
||||
|
||||
query = f"""
|
||||
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||
prefix owl: <http://www.w3.org/2002/07/owl#>
|
||||
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
|
||||
prefix sr: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
|
||||
prefix ukhpi: <http://landregistry.data.gov.uk/def/ukhpi/>
|
||||
prefix lrppi: <http://landregistry.data.gov.uk/def/ppi/>
|
||||
prefix skos: <http://www.w3.org/2004/02/skos/core#>
|
||||
prefix lrcommon: <http://landregistry.data.gov.uk/def/common/>
|
||||
|
||||
SELECT ?month ?avgPrice ?avgPriceCash ?totalSalesVolume ?avgPriceExistingProperty
|
||||
?avgPriceFirstTimeBuyer
|
||||
?avgPriceDetached ?hpi ?detachedhpi ?newbuildhpi
|
||||
{{
|
||||
values ?refRegion {{<http://landregistry.data.gov.uk/id/region/{region}>}}
|
||||
?region ukhpi:refPeriodStart ?month ;
|
||||
ukhpi:housePriceIndex ?hpi ;
|
||||
ukhpi:refRegion ?refRegion ;
|
||||
ukhpi:averagePrice ?avgPrice ;
|
||||
ukhpi:averagePriceCash ?avgPriceCash ;
|
||||
ukhpi:salesVolume ?totalSalesVolume ;
|
||||
ukhpi:averagePriceDetached ?avgPriceDetached ;
|
||||
ukhpi:averagePriceExistingProperty ?avgPriceExistingProperty ;
|
||||
ukhpi:averagePriceFirstTimeBuyer ?avgPriceFirstTimeBuyer ;
|
||||
ukhpi:housePriceIndexDetached ?detachedhpi ;
|
||||
ukhpi:housePriceIndexNewBuild ?newbuildhpi .
|
||||
?refRegion rdfs:label ?regionLabel .
|
||||
FILTER(LANG(?regionLabel) = "en").
|
||||
FILTER (
|
||||
?month > "{startdate}"^^xsd:date &&
|
||||
?month < "{enddate}"^^xsd:date
|
||||
)
|
||||
|
||||
OPTIONAL {{?region ukhpi:housePriceIndexDetached ?detachedhpi}}
|
||||
OPTIONAL {{?region ukhpi:housePriceIndexNewBuild ?newbuildhpi }}
|
||||
OPTIONAL {{?region ukhpi:averagePrice ?averagePrice }}
|
||||
}}
|
||||
ORDER BY (?month)
|
||||
"""
|
||||
|
||||
endpoint = "http://landregistry.data.gov.uk/landregistry/query"
|
||||
|
||||
df = pd.DataFrame()
|
||||
sparql = SPARQLWrapper(endpoint)
|
||||
sparql.setReturnFormat(CSV)
|
||||
sparql.setQuery(query)
|
||||
sparql.method = "POST"
|
||||
|
||||
results = sparql.query().convert()
|
||||
if isinstance(results, bytes):
|
||||
_csv = io.StringIO(results.decode("utf-8"))
|
||||
df = pd.read_csv(_csv, sep=",")
|
||||
|
||||
return df
|
||||
143
openbb_terminal/alternative/realestate/landRegistry_view.py
Normal file
143
openbb_terminal/alternative/realestate/landRegistry_view.py
Normal file
@@ -0,0 +1,143 @@
|
||||
""" UK Land Registry View """
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
from openbb_terminal.decorators import log_start_end
|
||||
from openbb_terminal.alternative.realestate import landRegistry_model
|
||||
from openbb_terminal.helper_funcs import print_rich_table, export_data
|
||||
from openbb_terminal.rich_config import console
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def display_estate_sales(postcode: str, export: str = "") -> None:
|
||||
"""Display real estate sales.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
postcode : str
|
||||
Postcode
|
||||
|
||||
"""
|
||||
sales = landRegistry_model.get_estate_sales(postcode)
|
||||
|
||||
if sales.empty or len(sales) == 0:
|
||||
console.print(
|
||||
"[red]"
|
||||
+ "No data loaded.\n"
|
||||
+ "Make sure you picked a valid postcode."
|
||||
+ "[/red]\n"
|
||||
)
|
||||
return
|
||||
|
||||
print_rich_table(
|
||||
sales,
|
||||
show_index=False,
|
||||
title=f"[bold]{postcode}[/bold]",
|
||||
)
|
||||
|
||||
export_data(
|
||||
export,
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"sales",
|
||||
sales,
|
||||
)
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def display_towns_sold_prices(
|
||||
town: str, startdate: str, enddate: str, export: str = ""
|
||||
):
|
||||
"""Get towns sold house price data.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
town : str
|
||||
town
|
||||
|
||||
startdate : str
|
||||
startDate
|
||||
|
||||
enddate : str
|
||||
endDate
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
All sales for that town within the date range specified
|
||||
"""
|
||||
|
||||
sales = landRegistry_model.get_towns_sold_prices(town, startdate, enddate)
|
||||
|
||||
if sales.empty or len(sales) == 0:
|
||||
console.print(
|
||||
"[red]"
|
||||
+ "No data loaded.\n"
|
||||
+ "Make sure you picked a valid town and date range."
|
||||
+ "[/red]\n"
|
||||
)
|
||||
return
|
||||
|
||||
print_rich_table(
|
||||
sales,
|
||||
show_index=False,
|
||||
title=f"[bold]{town} : {startdate} - {enddate}[/bold]",
|
||||
)
|
||||
|
||||
export_data(
|
||||
export,
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"towns_sold_prices",
|
||||
sales,
|
||||
)
|
||||
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def display_region_stats(region: str, startdate: str, enddate: str, export: str = ""):
|
||||
"""Get towns sold house price data.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
region : str
|
||||
region
|
||||
|
||||
startdate : str
|
||||
startDate
|
||||
|
||||
enddate : str
|
||||
endDate
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
pd.DataFrame
|
||||
All stats for that region within the date range specified
|
||||
"""
|
||||
|
||||
stats = landRegistry_model.get_region_stats(region, startdate, enddate)
|
||||
|
||||
if stats.empty or len(stats) == 0:
|
||||
console.print(
|
||||
"[red]"
|
||||
+ "No data loaded.\n"
|
||||
+ "Make sure you picked a valid region and date range."
|
||||
+ "[/red]\n"
|
||||
)
|
||||
return
|
||||
|
||||
print_rich_table(
|
||||
stats,
|
||||
show_index=False,
|
||||
title=f"[bold]{region} : {startdate} - {enddate}[/bold]",
|
||||
)
|
||||
|
||||
export_data(
|
||||
export,
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"region_stats",
|
||||
stats,
|
||||
)
|
||||
282
openbb_terminal/alternative/realestate/realestate_controller.py
Normal file
282
openbb_terminal/alternative/realestate/realestate_controller.py
Normal file
@@ -0,0 +1,282 @@
|
||||
"""Trading Hours Controller."""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from typing import List
|
||||
|
||||
from openbb_terminal.custom_prompt_toolkit import NestedCompleter
|
||||
|
||||
from openbb_terminal import feature_flags as obbff
|
||||
from openbb_terminal.decorators import log_start_end
|
||||
from openbb_terminal.menu import session
|
||||
from openbb_terminal.helper_funcs import (
|
||||
EXPORT_ONLY_RAW_DATA_ALLOWED,
|
||||
)
|
||||
from openbb_terminal.rich_config import console, MenuText
|
||||
from openbb_terminal.parent_classes import BaseController
|
||||
from openbb_terminal.alternative.realestate import landRegistry_view
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class RealEstateController(BaseController):
|
||||
|
||||
"""Real Estate Controller class."""
|
||||
|
||||
CHOICES_COMMANDS = ["sales", "townsales", "regionstats"]
|
||||
PATH = "/alternative/realestate/"
|
||||
CHOICES_GENERATION = True
|
||||
# FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md")
|
||||
|
||||
def __init__(self, queue: List[str] = None):
|
||||
"""Construct Data."""
|
||||
super().__init__(queue)
|
||||
|
||||
self.enddate = None
|
||||
self.startdate = None
|
||||
self.town = None
|
||||
self.postcode = None
|
||||
self.region = None
|
||||
|
||||
if session and obbff.USE_PROMPT_TOOLKIT:
|
||||
choices: dict = self.choices_default
|
||||
self.completer = NestedCompleter.from_nested_dict(choices)
|
||||
|
||||
def print_help(self):
|
||||
|
||||
mt = MenuText("alternative/realestate/")
|
||||
mt.add_cmd("sales")
|
||||
mt.add_raw("\n")
|
||||
mt.add_param("_postcode", self.postcode or "")
|
||||
mt.add_raw("\n")
|
||||
mt.add_cmd("townsales")
|
||||
mt.add_raw("\n")
|
||||
mt.add_param("_town", self.town or "")
|
||||
mt.add_param("_startdate <YYYY-MM-DD>", self.startdate or "")
|
||||
mt.add_param("_enddate <YYYY-MM-DD>", self.enddate or "")
|
||||
mt.add_raw("\n")
|
||||
mt.add_cmd("regionstats")
|
||||
mt.add_raw("\n")
|
||||
mt.add_param("_region", self.region or "")
|
||||
mt.add_param("_startdate <YYYY-MM-DD>", self.startdate or "")
|
||||
mt.add_param("_enddate <YYYY-MM-DD>", self.enddate or "")
|
||||
|
||||
console.print(text=mt.menu_text, menu="UK Real Estate Sales Data")
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_sales(self, other_args: List[str]):
|
||||
"""Process 'postcode' command."""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="sales",
|
||||
description="Select the postcode you want to see sold house price data for. [Source: UK Land Registry]",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-p",
|
||||
"--postcode",
|
||||
help="Postcode",
|
||||
type=str.upper,
|
||||
required="-h" not in other_args,
|
||||
dest="postcode",
|
||||
metavar="postcode",
|
||||
)
|
||||
|
||||
if (
|
||||
other_args
|
||||
and "-p" not in other_args[0]
|
||||
and "--postcode" not in other_args[0]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(0, "-p")
|
||||
|
||||
ns_parser = self.parse_known_args_and_warn(
|
||||
parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
|
||||
)
|
||||
|
||||
if ns_parser:
|
||||
if ns_parser.postcode:
|
||||
landRegistry_view.display_estate_sales(
|
||||
ns_parser.postcode, export=ns_parser.export
|
||||
)
|
||||
else:
|
||||
console.print("[red]Select valid postcode[/red]\n")
|
||||
else:
|
||||
console.print("[red]Select valid postcode[/red]\n")
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_townsales(self, other_args: List[str]):
|
||||
"""Process 'townsales' command."""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="townsales",
|
||||
description="""Select the town and date range you want to see sold house price data for.
|
||||
[Source: UK Land Registry]""",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-t",
|
||||
"--town",
|
||||
help="Town that we want sales information for",
|
||||
type=str.upper,
|
||||
required="-h" not in other_args,
|
||||
dest="town",
|
||||
metavar="town",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-s",
|
||||
"--startdate",
|
||||
help="Start date that we want sales information for",
|
||||
type=str,
|
||||
required=True,
|
||||
dest="startdate",
|
||||
metavar="startdate",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-e",
|
||||
"--enddate",
|
||||
help="End date that we want sales information for",
|
||||
type=str,
|
||||
required=True,
|
||||
dest="enddate",
|
||||
metavar="enddate",
|
||||
)
|
||||
|
||||
if (
|
||||
other_args
|
||||
and "-t" not in other_args[0]
|
||||
and "--town" not in other_args[0]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(0, "-t")
|
||||
|
||||
if (
|
||||
other_args
|
||||
and len(other_args) > 2
|
||||
and "-s" not in other_args[2]
|
||||
and "--startdate" not in other_args[2]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(2, "-s")
|
||||
|
||||
if (
|
||||
other_args
|
||||
and len(other_args) > 4
|
||||
and "-e" not in other_args[4]
|
||||
and "--enddate" not in other_args[4]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(4, "-e")
|
||||
|
||||
ns_parser = self.parse_known_args_and_warn(
|
||||
parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
|
||||
)
|
||||
|
||||
if ns_parser:
|
||||
if ns_parser.town and ns_parser.startdate and ns_parser.enddate:
|
||||
landRegistry_view.display_towns_sold_prices(
|
||||
ns_parser.town,
|
||||
ns_parser.startdate,
|
||||
ns_parser.enddate,
|
||||
ns_parser.export,
|
||||
)
|
||||
else:
|
||||
console.print(
|
||||
"[red]Select the town you want to know about and a valid date range.[/red]\n"
|
||||
)
|
||||
else:
|
||||
console.print(
|
||||
"[red]Select the town you want to know about and a valid date range.[/red]\n"
|
||||
)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
def call_regionstats(self, other_args: List[str]):
|
||||
"""Process 'regionstats' command."""
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||
prog="regionstats",
|
||||
description="Select the region and date range you want see stats for. [Source: UK Land Registry]",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-r",
|
||||
"--region",
|
||||
help="Region that we want stats for",
|
||||
type=str.lower,
|
||||
required="-h" not in other_args,
|
||||
dest="region",
|
||||
metavar="region",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-s",
|
||||
"--startdate",
|
||||
help="Start date that we want sales information for",
|
||||
type=str,
|
||||
required=True,
|
||||
dest="startdate",
|
||||
metavar="startdate",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"-e",
|
||||
"--enddate",
|
||||
help="End date that we want sales information for",
|
||||
type=str,
|
||||
required=True,
|
||||
dest="enddate",
|
||||
metavar="enddate",
|
||||
)
|
||||
|
||||
if (
|
||||
other_args
|
||||
and "-r" not in other_args[0]
|
||||
and "--region" not in other_args[0]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(0, "-r")
|
||||
|
||||
if (
|
||||
other_args
|
||||
and len(other_args) > 2
|
||||
and "-s" not in other_args[2]
|
||||
and "--startdate" not in other_args[2]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(2, "-s")
|
||||
|
||||
if (
|
||||
other_args
|
||||
and len(other_args) > 4
|
||||
and "-e" not in other_args[4]
|
||||
and "--enddate" not in other_args[4]
|
||||
and "-h" not in other_args
|
||||
):
|
||||
other_args.insert(4, "-e")
|
||||
|
||||
ns_parser = self.parse_known_args_and_warn(
|
||||
parser, other_args, EXPORT_ONLY_RAW_DATA_ALLOWED
|
||||
)
|
||||
|
||||
if ns_parser:
|
||||
if ns_parser.region and ns_parser.startdate and ns_parser.enddate:
|
||||
landRegistry_view.display_region_stats(
|
||||
ns_parser.region,
|
||||
ns_parser.startdate,
|
||||
ns_parser.enddate,
|
||||
ns_parser.export,
|
||||
)
|
||||
else:
|
||||
console.print(
|
||||
"[red]Select the region you want to know about and a valid date range.[/red]\n"
|
||||
)
|
||||
else:
|
||||
console.print(
|
||||
"[red]Select the region you want to know about and a valid date range.[/red]\n"
|
||||
)
|
||||
4
openbb_terminal/miscellaneous/i18n/en.yml
vendored
4
openbb_terminal/miscellaneous/i18n/en.yml
vendored
@@ -862,6 +862,7 @@ en:
|
||||
alternative/hn: Hacker News most popular stories
|
||||
alternative/covid: COVID menu, cases, deaths, rates
|
||||
alternative/oss: Open Source menu, star history, repos information
|
||||
alternative/realestate: Real Estate menu, sold prices, HPIs
|
||||
alternative/covid/slopes: get countries with highest slope in cases
|
||||
alternative/covid/country: select country for data
|
||||
alternative/covid/_country: Country
|
||||
@@ -873,6 +874,9 @@ en:
|
||||
alternative/oss/rs: repo summary
|
||||
alternative/oss/sh: repo star history
|
||||
alternative/oss/tr: top starred repos
|
||||
alternative/realestate/sales: list UK house sales via postcode
|
||||
alternative/realestate/townsales: list UK house sales via town
|
||||
alternative/realestate/regionstats: retrieve UK sold house price stats by region
|
||||
econometrics/_data_loc: Looking for data in
|
||||
econometrics/load: load a dataset (also works with StatsModels datasets)
|
||||
econometrics/export: export a processed dataset
|
||||
|
||||
53
poetry.lock
generated
vendored
53
poetry.lock
generated
vendored
@@ -1545,6 +1545,17 @@ category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[[package]]
|
||||
name = "isodate"
|
||||
version = "0.6.1"
|
||||
description = "An ISO 8601 date/time/duration parser and formatter"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[package.dependencies]
|
||||
six = "*"
|
||||
|
||||
[[package]]
|
||||
name = "isort"
|
||||
version = "5.10.1"
|
||||
@@ -3481,6 +3492,26 @@ python-versions = ">=2.7"
|
||||
[package.extras]
|
||||
full = ["numpy"]
|
||||
|
||||
[[package]]
|
||||
name = "rdflib"
|
||||
version = "6.2.0"
|
||||
description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information."
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
isodate = "*"
|
||||
pyparsing = "*"
|
||||
|
||||
[package.extras]
|
||||
berkeleydb = ["berkeleydb"]
|
||||
dev = ["black (==22.6.0)", "flake8", "isort", "mypy", "pep8-naming", "types-setuptools", "flakeheaven"]
|
||||
docs = ["myst-parser", "sphinx (<6)", "sphinxcontrib-apidoc", "sphinxcontrib-kroki", "sphinx-autodoc-typehints"]
|
||||
html = ["html5lib"]
|
||||
networkx = ["networkx"]
|
||||
tests = ["html5lib", "pytest", "pytest-cov"]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "2022.3.2"
|
||||
@@ -3856,6 +3887,23 @@ category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "sparqlwrapper"
|
||||
version = "2.0.0"
|
||||
description = "SPARQL Endpoint interface to Python"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
|
||||
[package.dependencies]
|
||||
rdflib = ">=6.1.1"
|
||||
|
||||
[package.extras]
|
||||
dev = ["setuptools (>=3.7.1)", "mypy (>=0.931)", "pandas (>=1.3.5)", "pandas-stubs (>=1.2.0.48)"]
|
||||
docs = ["sphinx (<5)", "sphinx-rtd-theme"]
|
||||
keepalive = ["keepalive (>=0.5)"]
|
||||
pandas = ["pandas (>=1.3.5)"]
|
||||
|
||||
[[package]]
|
||||
name = "sphinx"
|
||||
version = "4.5.0"
|
||||
@@ -4856,7 +4904,7 @@ prediction = ["torch", "pytorch-lightning", "u8darts"]
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.8,<3.11, !=3.9.7"
|
||||
content-hash = "93af5b94272cecbbb58b50a5d271585b2217292a40007bbec5eaef5186802827"
|
||||
content-hash = "80a1a29b160bb77a07f1e8bf11d5a47ddd6219601d420f11c93cdcb56ef1bfcf"
|
||||
|
||||
[metadata.files]
|
||||
absl-py = []
|
||||
@@ -4980,6 +5028,7 @@ ipython = []
|
||||
ipython-genutils = []
|
||||
ipywidgets = []
|
||||
iso8601 = []
|
||||
isodate = []
|
||||
isort = []
|
||||
jedi = []
|
||||
jedi-language-server = []
|
||||
@@ -5126,6 +5175,7 @@ pyzmq = []
|
||||
qdldl = []
|
||||
quandl = []
|
||||
rapidfuzz = []
|
||||
rdflib = []
|
||||
regex = []
|
||||
requests = []
|
||||
requests-oauthlib = []
|
||||
@@ -5156,6 +5206,7 @@ sniffio = []
|
||||
snowballstemmer = []
|
||||
socketio-client-nexus = []
|
||||
soupsieve = []
|
||||
sparqlwrapper = []
|
||||
sphinx = []
|
||||
sphinxcontrib-applehelp = []
|
||||
sphinxcontrib-devhelp = []
|
||||
|
||||
1
pyproject.toml
vendored
1
pyproject.toml
vendored
@@ -108,6 +108,7 @@ docstring-parser = {version = "^0.15", optional = true}
|
||||
grpcio = "^1.51.1"
|
||||
jupyterlab-widgets = "^3.0.3"
|
||||
packaging = ">=22.0"
|
||||
SPARQLWrapper = "^2.0.0"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^6.2.2"
|
||||
|
||||
3
requirements-full.txt
vendored
3
requirements-full.txt
vendored
@@ -116,6 +116,7 @@ ipython-genutils==0.2.0; python_version >= "3.7"
|
||||
ipython==8.5.0; python_version >= "3.8"
|
||||
ipywidgets==8.0.2; python_version >= "3.7"
|
||||
iso8601==0.1.16
|
||||
isodate==0.6.1; python_version >= "3.7"
|
||||
isort==5.10.1; python_full_version >= "3.7.2" and python_version < "4.0"
|
||||
jedi==0.18.1; python_version >= "3.8"
|
||||
jinja2==3.1.2; python_version >= "3.7"
|
||||
@@ -252,6 +253,7 @@ pyzmq==24.0.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
qdldl==0.1.5.post2; python_version >= "3.7"
|
||||
quandl==3.7.0; python_version >= "3.6"
|
||||
rapidfuzz==1.9.1; python_version >= "2.7"
|
||||
rdflib==6.2.0; python_version >= "3.7"
|
||||
regex==2022.3.2; python_version >= "3.6"
|
||||
requests-oauthlib==1.3.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
||||
requests==2.28.1; python_version >= "3.7" and python_version < "4"
|
||||
@@ -282,6 +284,7 @@ sniffio==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_fu
|
||||
snowballstemmer==2.2.0; python_version >= "3.6"
|
||||
socketio-client-nexus==0.7.6
|
||||
soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0"
|
||||
sparqlwrapper==2.0.0; python_version >= "3.7"
|
||||
sphinx==4.5.0; python_version >= "3.6"
|
||||
sphinxcontrib-applehelp==1.0.2; python_version >= "3.6"
|
||||
sphinxcontrib-devhelp==1.0.2; python_version >= "3.6"
|
||||
|
||||
125
requirements.txt
vendored
125
requirements.txt
vendored
@@ -1,30 +1,27 @@
|
||||
aiodns==3.0.0; python_version >= "3.5.2" and python_full_version >= "3.7.0"
|
||||
aiohttp==3.8.3; python_version >= "3.6" and python_full_version >= "3.7.0"
|
||||
aiosignal==1.2.0; python_version >= "3.6" and python_full_version >= "3.7.0"
|
||||
alabaster==0.7.12; python_version >= "3.6"
|
||||
alpha-vantage==2.3.1
|
||||
altair==4.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
anyio==3.6.2; python_full_version >= "3.6.2" and python_version >= "3.8" and python_version < "4.0"
|
||||
appdirs==1.4.4
|
||||
appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin"
|
||||
arch==5.3.1; python_version >= "3.7"
|
||||
argon2-cffi-bindings==21.2.0; python_version >= "3.7"
|
||||
argon2-cffi==21.3.0; python_version >= "3.7"
|
||||
ascii-magic==1.6; python_version >= "3.5"
|
||||
astor==0.8.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8"
|
||||
astroid==2.12.12; python_full_version >= "3.7.2"
|
||||
astropy==5.1.1; python_version >= "3.8"
|
||||
asttokens==2.0.8; python_version >= "3.8"
|
||||
async-timeout==4.0.2; python_version >= "3.6" and python_full_version >= "3.7.0"
|
||||
atomicwrites==1.4.1; sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
attrs==21.4.0; python_full_version >= "3.7.0" and python_version >= "3.7" and (python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0") and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0")
|
||||
attrs==21.4.0; python_version >= "3.6" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7")
|
||||
babel==2.10.3; python_version >= "3.7"
|
||||
backcall==0.2.0; python_version >= "3.8"
|
||||
backoff==2.2.1; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0"
|
||||
backports.zoneinfo==0.2.1; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6") or python_full_version > "3.9.7" and python_version >= "3.6" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6")
|
||||
bandit==1.7.4; python_version >= "3.7"
|
||||
base58==2.1.1; python_version >= "3.5" and python_full_version >= "3.7.0"
|
||||
beartype==0.7.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.0"
|
||||
beautifulsoup4==4.11.1; python_full_version >= "3.6.0" and python_version >= "3.7"
|
||||
black==22.12.0; python_version >= "3.7"
|
||||
bleach==5.0.1; python_version >= "3.7"
|
||||
blinker==1.5; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.5.0" or python_full_version > "3.9.7"
|
||||
bs4==0.0.1
|
||||
@@ -32,39 +29,34 @@ bt==0.2.9; (python_version >= "2.7" and python_full_version < "3.0.0") or (pytho
|
||||
cachetools==5.2.0; python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
ccxt==2.5.80
|
||||
certifi==2022.9.24; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||
cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0"
|
||||
charset-normalizer==2.1.1; python_full_version >= "3.6.0"
|
||||
click==8.1.3; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
codespell==2.2.2; python_version >= "3.7"
|
||||
colorama==0.4.6; python_full_version >= "3.7.2" and python_version >= "3.8" and sys_platform == "win32" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") or platform_system == "Windows" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and python_full_version >= "3.7.0") and (python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.8" and python_full_version >= "3.7.0") and python_full_version < "4.0.0"
|
||||
colorama==0.4.6; python_full_version >= "3.7.0" and python_version >= "3.8" and sys_platform == "win32" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7")
|
||||
commonmark==0.9.1; python_full_version >= "3.6.3" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
convertdate==2.4.0; python_version >= "3.7" and python_version < "4"
|
||||
coverage==6.5.0; python_version >= "3.7"
|
||||
cryptography==38.0.2; python_version >= "3.6"
|
||||
cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0"
|
||||
cvxpy==1.2.1; python_version >= "3.7"
|
||||
cycler==0.11.0; python_version >= "3.7"
|
||||
cython==0.29.32; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8"
|
||||
dateparser==1.1.2; python_version >= "3.5"
|
||||
datetime==4.7; python_version >= "3.5"
|
||||
debugpy==1.6.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
decorator==5.1.1; python_version >= "3.8" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.5")
|
||||
debugpy==1.6.3; python_version >= "3.7"
|
||||
decorator==5.1.1; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8"
|
||||
defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
|
||||
degiro-connector==2.0.21; python_full_version >= "3.7.1" and python_full_version < "4.0.0"
|
||||
deprecation==2.1.0
|
||||
detecta==0.0.5; python_version >= "3.6"
|
||||
dill==0.3.6; python_version >= "3.7" and python_full_version >= "3.7.2"
|
||||
distlib==0.3.6; python_version >= "3.7"
|
||||
dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0"
|
||||
docutils==0.17.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
|
||||
entrypoints==0.4; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7")
|
||||
ecos==2.0.10; python_version >= "3.7"
|
||||
entrypoints==0.4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
et-xmlfile==1.1.0; python_version >= "3.6"
|
||||
exchange-calendars==4.2.3; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0"
|
||||
executing==1.1.1; python_version >= "3.8"
|
||||
fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
feedparser==6.0.10; python_version >= "3.6"
|
||||
ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
|
||||
filelock==3.8.0; python_version >= "3.7"
|
||||
financedatabase==1.0.2
|
||||
finnhub-python==2.4.15
|
||||
finviz==1.4.4
|
||||
@@ -87,30 +79,27 @@ holidays==0.14.2; python_version >= "3.7"
|
||||
html5lib==1.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0")
|
||||
httpcore==0.15.0; python_version >= "3.8" and python_version < "4.0"
|
||||
httpx==0.23.0; python_version >= "3.8" and python_version < "4.0"
|
||||
identify==2.5.7; python_version >= "3.7"
|
||||
idna==3.4; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
imagesize==1.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
||||
importlib-metadata==5.0.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.10" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.10"
|
||||
inflection==0.5.1; python_version >= "3.6"
|
||||
iniconfig==1.1.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
interface-meta==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.1" and python_full_version < "4.0.0"
|
||||
investiny==0.5.0; python_version >= "3.8" and python_version < "4.0"
|
||||
investpy==1.0.8; python_version >= "3.7"
|
||||
ipyflex==0.2.4; python_version >= "3.6"
|
||||
ipykernel==6.16.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
ipykernel==6.16.1; python_version >= "3.7"
|
||||
ipympl==0.8.4
|
||||
ipython-genutils==0.2.0; python_version >= "3.7"
|
||||
ipython==8.5.0; python_version >= "3.8"
|
||||
ipywidgets==8.0.2; python_version >= "3.7"
|
||||
iso8601==0.1.16
|
||||
isort==5.10.1; python_full_version >= "3.7.2" and python_version < "4.0"
|
||||
isodate==0.6.1; python_version >= "3.7"
|
||||
jedi==0.18.1; python_version >= "3.8"
|
||||
jinja2==3.1.2; python_version >= "3.7"
|
||||
joblib==1.2.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8"
|
||||
json5==0.9.10; python_version >= "3.7"
|
||||
jsonschema==3.2.0
|
||||
jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
jupyter-server==1.21.0; python_version >= "3.7"
|
||||
jupyterlab-pygments==0.2.2; python_version >= "3.7"
|
||||
jupyterlab-server==2.16.1; python_version >= "3.7"
|
||||
@@ -118,32 +107,25 @@ jupyterlab-widgets==3.0.3; python_version >= "3.7"
|
||||
jupyterlab==3.5.0; python_version >= "3.7"
|
||||
kiwisolver==1.4.4; python_version >= "3.7"
|
||||
korean-lunar-calendar==0.3.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0"
|
||||
lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.7.2"
|
||||
linearmodels==4.27; python_version >= "3.8"
|
||||
loguru==0.6.0; python_version >= "3.5" and python_full_version >= "3.7.0"
|
||||
lxml==4.9.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7"
|
||||
markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0"
|
||||
markupsafe==2.1.1; python_version >= "3.7"
|
||||
matplotlib-inline==0.1.6; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
matplotlib-inline==0.1.6; python_version >= "3.8"
|
||||
matplotlib==3.5.3; python_version >= "3.7"
|
||||
mccabe==0.6.1; python_full_version >= "3.7.2"
|
||||
mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0"
|
||||
mccabe==0.6.1; python_full_version >= "3.7.0"
|
||||
mistune==0.8.4; python_version >= "3.7"
|
||||
mock==4.0.3; python_version >= "3.6"
|
||||
more-itertools==9.0.0; python_version >= "3.7"
|
||||
mplfinance==0.12.9b1
|
||||
multidict==6.0.2; python_version >= "3.7" and python_full_version >= "3.7.0"
|
||||
multitasking==0.0.11
|
||||
mypy-extensions==0.4.3; python_version >= "3.8"
|
||||
mypy==0.930; python_version >= "3.6"
|
||||
myst-parser==0.15.2; python_version >= "3.6"
|
||||
nbclassic==0.4.5; python_version >= "3.7"
|
||||
nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0"
|
||||
nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
nbconvert==6.5.4; python_version >= "3.7"
|
||||
nbformat==5.7.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
nbmake==1.3.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
nodeenv==1.7.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
nbformat==5.7.0; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_version >= "3.7"
|
||||
networkx==2.8.7; python_version >= "3.8"
|
||||
notebook-shim==0.2.0; python_version >= "3.7"
|
||||
notebook==6.5.1; python_version >= "3.7"
|
||||
numpy==1.23.4; python_version >= "3.8"
|
||||
@@ -151,6 +133,7 @@ oandapyv20==0.6.3
|
||||
oauthlib==3.2.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
||||
onetimepass==1.0.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0"
|
||||
openpyxl==3.0.10; python_version >= "3.6"
|
||||
osqp==0.6.2.post5; python_version >= "3.7"
|
||||
packaging==22.0; python_version >= "3.7"
|
||||
pandas-datareader==0.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
|
||||
pandas-market-calendars==3.2; python_full_version >= "3.7.0"
|
||||
@@ -159,40 +142,34 @@ pandas==1.5.1; python_version >= "3.8"
|
||||
pandocfilters==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
||||
papermill @ git+https://github.com/nteract/papermill.git@main ; python_version >= "3.7"
|
||||
parso==0.8.3; python_version >= "3.8"
|
||||
pathspec==0.10.2; python_version >= "3.7"
|
||||
patsy==0.5.3; python_version >= "3.8"
|
||||
pbr==5.11.0; python_version >= "3.8"
|
||||
pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.8"
|
||||
pickleshare==0.7.5; python_version >= "3.8"
|
||||
pillow==9.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.7.2"
|
||||
plotly==5.10.0; python_version >= "3.6"
|
||||
pluggy==1.0.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
praw==7.6.0; python_version >= "3.7" and python_version < "4.0"
|
||||
prawcore==2.3.0; python_version >= "3.7" and python_version < "4.0"
|
||||
pre-commit==2.20.0; python_version >= "3.7"
|
||||
prometheus-client==0.15.0; python_version >= "3.7"
|
||||
prompt-toolkit==3.0.31; python_full_version >= "3.6.2"
|
||||
property-cached==1.6.4; python_version >= "3.8"
|
||||
protobuf==3.20.1; python_version >= "3.7"
|
||||
psaw==0.0.12; python_version >= "3"
|
||||
psutil==5.9.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
psutil==5.9.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
||||
ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.8" and os_name != "nt"
|
||||
pure-eval==0.2.2; python_version >= "3.8"
|
||||
py==1.11.0; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0" and implementation_name == "pypy"
|
||||
py==1.11.0; python_version >= "3.7" and python_full_version < "3.0.0" and implementation_name == "pypy" or implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.5.0"
|
||||
pyally==1.1.2
|
||||
pyarrow==9.0.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
pycares==4.2.2; python_version >= "3.5.2" and python_full_version >= "3.7.0"
|
||||
pycodestyle==2.7.0; python_full_version >= "3.7.0"
|
||||
pycoingecko==2.3.0
|
||||
pycparser==2.21; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
|
||||
pydantic==1.8.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
pydeck==0.8.0b4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
pyerfa==2.0.0.1; python_version >= "3.8"
|
||||
pyex==0.5.0
|
||||
pyflakes==2.3.1; python_full_version >= "3.7.0"
|
||||
pygments==2.13.0; python_version >= "3.6"
|
||||
pyhdfe==0.1.0; python_version >= "3.8"
|
||||
pylint==2.15.2; python_full_version >= "3.7.2"
|
||||
pyluach==2.0.2; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0"
|
||||
pymeeus==0.5.11; python_version >= "3.7" and python_version < "4"
|
||||
pympler==1.0.1; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6"
|
||||
@@ -202,10 +179,6 @@ pyotp==2.7.0; python_version >= "3.6"
|
||||
pyparsing==3.0.9; python_full_version >= "3.6.8" and python_version >= "3.7"
|
||||
pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
|
||||
pyrsistent==0.18.1; python_version >= "3.7"
|
||||
pytest-cov==3.0.0; python_version >= "3.6"
|
||||
pytest-mock==3.10.0; python_version >= "3.7"
|
||||
pytest-recording==0.12.1; python_version >= "3.5"
|
||||
pytest==6.2.5; python_version >= "3.6"
|
||||
pythclient==0.1.2; python_full_version >= "3.7.0"
|
||||
python-binance==1.0.16
|
||||
python-coinmarketcap==0.2
|
||||
@@ -215,49 +188,43 @@ python-i18n==0.3.9
|
||||
pytrends==4.8.0
|
||||
pytz-deprecation-shim==0.1.0.post0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6"
|
||||
pytz==2022.5; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and python_version < "4.0"
|
||||
pyupgrade==2.38.4; python_version >= "3.7"
|
||||
pywin32==304; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7"
|
||||
pywinpty==2.0.8; os_name == "nt" and python_version >= "3.7"
|
||||
pyyaml==6.0; python_version >= "3.7"
|
||||
pyzmq==24.0.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
|
||||
pyyaml==6.0; python_version >= "3.8"
|
||||
pyzmq==24.0.1; python_version >= "3.7"
|
||||
qdldl==0.1.5.post2; python_version >= "3.7"
|
||||
quandl==3.7.0; python_version >= "3.6"
|
||||
rapidfuzz==1.9.1; python_version >= "2.7"
|
||||
rdflib==6.2.0; python_version >= "3.7"
|
||||
regex==2022.3.2; python_version >= "3.6"
|
||||
requests-oauthlib==1.3.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0"
|
||||
requests==2.28.1; python_version >= "3.7" and python_version < "4"
|
||||
rfc3986==1.5.0; python_version >= "3.8" and python_version < "4.0"
|
||||
rich==12.6.0; python_full_version >= "3.6.3" and python_full_version < "4.0.0"
|
||||
riskfolio-lib==3.3.0; python_version >= "3.7"
|
||||
robin-stocks==2.1.0; python_version >= "3"
|
||||
ruamel.yaml.clib==0.2.7; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.5"
|
||||
ruamel.yaml==0.17.21; python_version >= "3"
|
||||
ruff==0.0.210; python_version >= "3.7"
|
||||
scikit-learn==1.1.2; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8"
|
||||
scipy==1.9.3; python_version >= "3.8"
|
||||
screeninfo==0.6.7
|
||||
scs==3.2.0; python_version >= "3.7"
|
||||
seaborn==0.11.2; python_version >= "3.6"
|
||||
semver==2.13.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.4.0" or python_full_version > "3.9.7"
|
||||
send2trash==1.8.0; python_version >= "3.7"
|
||||
sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0"
|
||||
setuptools-scm==6.4.2; python_version >= "3.8"
|
||||
sgmllib3k==1.0.0; python_version >= "3.6"
|
||||
six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_version >= "3.8" and python_full_version >= "3.3.0")
|
||||
six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8")
|
||||
smmap==5.0.0; python_version >= "3.7"
|
||||
sniffio==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.2"
|
||||
snowballstemmer==2.2.0; python_version >= "3.6"
|
||||
socketio-client-nexus==0.7.6
|
||||
soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0"
|
||||
sphinx==4.5.0; python_version >= "3.6"
|
||||
sphinxcontrib-applehelp==1.0.2; python_version >= "3.6"
|
||||
sphinxcontrib-devhelp==1.0.2; python_version >= "3.6"
|
||||
sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6"
|
||||
sphinxcontrib-jsmath==1.0.1; python_version >= "3.6"
|
||||
sphinxcontrib-qthelp==1.0.3; python_version >= "3.6"
|
||||
sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6"
|
||||
sparqlwrapper==2.0.0; python_version >= "3.7"
|
||||
squarify==0.4.3
|
||||
sseclient==0.0.27
|
||||
stack-data==0.5.1; python_version >= "3.8"
|
||||
statsmodels==0.13.2; python_version >= "3.7"
|
||||
stevedore==4.1.0; python_version >= "3.8"
|
||||
stocksera==0.1.21; python_version >= "3.6"
|
||||
streamlit==1.13.0; (python_version >= "3.7" and python_full_version < "3.9.7") or (python_full_version > "3.9.7")
|
||||
tabulate==0.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7"
|
||||
@@ -267,24 +234,15 @@ terminado==0.16.0; python_version >= "3.7"
|
||||
thepassiveinvestor==1.0.11
|
||||
threadpoolctl==3.1.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8"
|
||||
tinycss2==1.2.1; python_version >= "3.7"
|
||||
tokenize-rt==4.2.1; python_full_version >= "3.6.1" and python_version >= "3.7"
|
||||
tokenterminal==1.0.1
|
||||
toml==0.10.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0"
|
||||
tomli==2.0.1; python_version < "3.11" and python_full_version >= "3.7.2" and python_version >= "3.8" and python_full_version <= "3.11.0a6"
|
||||
tomlkit==0.11.5; python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.7.2"
|
||||
toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7"
|
||||
tomli==2.0.1; python_version >= "3.8"
|
||||
toolz==0.12.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7")
|
||||
tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0"
|
||||
tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7"
|
||||
tqdm==4.64.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7"
|
||||
tradingview-ta==3.3.0; python_version >= "3.6"
|
||||
traitlets==5.5.0; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
|
||||
types-python-dateutil==2.8.19.2
|
||||
types-pytz==2021.3.8
|
||||
types-pyyaml==6.0.12
|
||||
types-requests==2.28.11.2
|
||||
types-setuptools==57.4.18
|
||||
types-six==1.16.21
|
||||
types-urllib3==1.26.25.1
|
||||
typing-extensions==4.4.0; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
traitlets==5.5.0; python_full_version >= "3.7.0" and python_version >= "3.8"
|
||||
typing-extensions==4.4.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7")
|
||||
tzdata==2022.5; python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.7" and python_full_version < "3.9.7" and platform_system == "Windows" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6" and platform_system == "Windows"
|
||||
tzlocal==4.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6"
|
||||
ujson==5.5.0; python_version >= "3.7"
|
||||
@@ -295,8 +253,6 @@ user-agent==0.1.10
|
||||
vadersentiment==3.3.2
|
||||
validators==0.20.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.4"
|
||||
valinvest==0.0.2; python_version >= "3.6"
|
||||
vcrpy==4.2.1; python_version >= "3.7"
|
||||
virtualenv==20.16.5; python_version >= "3.7"
|
||||
voila==0.4.0; python_version >= "3.7"
|
||||
watchdog==2.1.9; python_version >= "3.6"
|
||||
wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8"
|
||||
@@ -305,7 +261,8 @@ websocket-client==1.4.1; python_version >= "3.8" and python_version < "4.0"
|
||||
websockets==10.3; python_version >= "3.7"
|
||||
widgetsnbextension==4.0.3; python_version >= "3.7"
|
||||
win32-setctime==1.1.0; python_version >= "3.5" and python_full_version >= "3.7.0" and sys_platform == "win32"
|
||||
wrapt==1.14.1; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and python_version >= "3.8" and python_version < "3.11"
|
||||
wrapt==1.14.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8"
|
||||
xlsxwriter==3.0.3; python_version >= "3.7"
|
||||
yarl==1.8.1; python_version >= "3.7" and python_full_version >= "3.7.0"
|
||||
yfinance==0.2.3
|
||||
zipp==3.10.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.10" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.10"
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import ssl
|
||||
|
||||
# IMPORTATION INTERNAL
|
||||
from openbb_terminal.alternative.realestate import landRegistry_model
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
|
||||
|
||||
def test_get_estate_sales():
|
||||
assert len(landRegistry_model.get_estate_sales("DA119NF")) > 0
|
||||
|
||||
|
||||
def test_invalid_postcode_get_estate_sales():
|
||||
assert len(landRegistry_model.get_estate_sales("DA11")) == 0
|
||||
|
||||
|
||||
def test_get_towns_sold_prices():
|
||||
assert (
|
||||
len(
|
||||
landRegistry_model.get_towns_sold_prices(
|
||||
"DARTFORD", "2019-01-01", "2022-01-01"
|
||||
)
|
||||
)
|
||||
> 0
|
||||
)
|
||||
|
||||
|
||||
def test_get_region_stats():
|
||||
assert (
|
||||
len(landRegistry_model.get_region_stats("KENT", "2019-01-01", "2022-01-01")) > 0
|
||||
)
|
||||
Reference in New Issue
Block a user