Add refresh option for Bristol waste schedule
This commit is contained in:
		
							parent
							
								
									7456f72325
								
							
						
					
					
						commit
						199eb82bce
					
				| 
						 | 
				
			
			@ -104,7 +104,9 @@ def parse(root: lxml.html.HtmlElement) -> list[Event]:
 | 
			
		|||
BristolSchedule = list[dict[str, typing.Any]]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def get_bristol_data(data_dir: str, uprn: str) -> BristolSchedule:
 | 
			
		||||
async def get_bristol_data(
 | 
			
		||||
    data_dir: str, uprn: str, refresh: bool = False
 | 
			
		||||
) -> BristolSchedule:
 | 
			
		||||
    """Get Bristol Waste schedule, with cache."""
 | 
			
		||||
    now = datetime.now()
 | 
			
		||||
    waste_dir = os.path.join(data_dir, "waste")
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +124,7 @@ async def get_bristol_data(data_dir: str, uprn: str) -> BristolSchedule:
 | 
			
		|||
        json_data = json.load(open(os.path.join(waste_dir, recent_filename)))
 | 
			
		||||
        return typing.cast(BristolSchedule, json_data["data"])
 | 
			
		||||
 | 
			
		||||
    if existing and delta < timedelta(hours=ttl_hours):
 | 
			
		||||
    if not refresh and existing and delta < timedelta(hours=ttl_hours):
 | 
			
		||||
        return get_from_recent()
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
| 
						 | 
				
			
			@ -186,9 +188,11 @@ async def get_bristol_gov_uk_data(uprn: str) -> httpx.Response:
 | 
			
		|||
    return response
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async def get_bristol_gov_uk(start_date: date, data_dir: str, uprn: str) -> list[Event]:
 | 
			
		||||
async def get_bristol_gov_uk(
 | 
			
		||||
    start_date: date, data_dir: str, uprn: str, refresh: bool = False
 | 
			
		||||
) -> list[Event]:
 | 
			
		||||
    """Get waste collection schedule from Bristol City Council."""
 | 
			
		||||
    data = await get_bristol_data(data_dir, uprn)
 | 
			
		||||
    data = await get_bristol_data(data_dir, uprn, refresh)
 | 
			
		||||
 | 
			
		||||
    by_date: defaultdict[date, list[str]] = defaultdict(list)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue