parent
							
								
									aa612b94f0
								
							
						
					
					
						commit
						697f317c5e
					
				| 
						 | 
					@ -9,7 +9,7 @@ from datetime import date, datetime, timedelta
 | 
				
			||||||
import dateutil.rrule
 | 
					import dateutil.rrule
 | 
				
			||||||
import dateutil.tz
 | 
					import dateutil.tz
 | 
				
			||||||
import flask
 | 
					import flask
 | 
				
			||||||
import holidays  # type: ignore
 | 
					import holidays
 | 
				
			||||||
import isodate  # type: ignore
 | 
					import isodate  # type: ignore
 | 
				
			||||||
import lxml
 | 
					import lxml
 | 
				
			||||||
import pytz
 | 
					import pytz
 | 
				
			||||||
| 
						 | 
					@ -228,6 +228,20 @@ def read_events_yaml(data_dir: str, start: date, end: date) -> list[Event]:
 | 
				
			||||||
    return events
 | 
					    return events
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def find_markets_during_stay(
 | 
				
			||||||
 | 
					    accommodation_events: list[Event], markets: list[Event]
 | 
				
			||||||
 | 
					) -> list[Event]:
 | 
				
			||||||
 | 
					    """Market events that happen during accommodation stays."""
 | 
				
			||||||
 | 
					    overlapping_markets = []
 | 
				
			||||||
 | 
					    for market in markets:
 | 
				
			||||||
 | 
					        for e in accommodation_events:
 | 
				
			||||||
 | 
					            # Check if the market date is within the accommodation dates.
 | 
				
			||||||
 | 
					            if e.date <= market.date <= (e.end_date or e.date):
 | 
				
			||||||
 | 
					                overlapping_markets.append(market)
 | 
				
			||||||
 | 
					                break  # Breaks the inner loop if overlap is found.
 | 
				
			||||||
 | 
					    return overlapping_markets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async def get_data(
 | 
					async def get_data(
 | 
				
			||||||
    now: datetime, config: flask.config.Config
 | 
					    now: datetime, config: flask.config.Config
 | 
				
			||||||
) -> typing.Mapping[str, str | object]:
 | 
					) -> typing.Mapping[str, str | object]:
 | 
				
			||||||
| 
						 | 
					@ -301,10 +315,13 @@ async def get_data(
 | 
				
			||||||
    ):
 | 
					    ):
 | 
				
			||||||
        holidays += get_holidays(country, last_year, next_year)
 | 
					        holidays += get_holidays(country, last_year, next_year)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    events += combine_holidays(holidays)
 | 
					    accommodation_events = accommodation.get_events(
 | 
				
			||||||
 | 
					        os.path.join(my_data, "accommodation.yaml")
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    events += combine_holidays(holidays)
 | 
				
			||||||
    events += birthday.get_birthdays(last_year, os.path.join(my_data, "entities.yaml"))
 | 
					    events += birthday.get_birthdays(last_year, os.path.join(my_data, "entities.yaml"))
 | 
				
			||||||
    events += accommodation.get_events(os.path.join(my_data, "accommodation.yaml"))
 | 
					    events += accommodation_events
 | 
				
			||||||
    events += travel.all_events(my_data)
 | 
					    events += travel.all_events(my_data)
 | 
				
			||||||
    events += conference.get_list(os.path.join(my_data, "conferences.yaml"))
 | 
					    events += conference.get_list(os.path.join(my_data, "conferences.yaml"))
 | 
				
			||||||
    events += backwell_bins + bristol_bins
 | 
					    events += backwell_bins + bristol_bins
 | 
				
			||||||
| 
						 | 
					@ -316,6 +333,13 @@ async def get_data(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    events += domains.renewal_dates(my_data)
 | 
					    events += domains.renewal_dates(my_data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # hide markets that happen while away
 | 
				
			||||||
 | 
					    markets = [e for e in events if e.name == "market"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    overlapping_markets = find_markets_during_stay(accommodation_events, markets)
 | 
				
			||||||
 | 
					    for market in overlapping_markets:
 | 
				
			||||||
 | 
					        events.remove(market)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for launch in rockets:
 | 
					    for launch in rockets:
 | 
				
			||||||
        dt = None
 | 
					        dt = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue