Source code for gharchive.search

import datetime
import itertools
from typing import Optional, Tuple, Union, List

import pandas as pd

SUPPORTED_BEGIN_YEAR = 2015


[docs]class SearchDates: strings: List[str]
[docs] def __init__( self, start_date: str, end_date: Optional[str] = None ): if end_date is None: end_date = start_date self.start_date = start_date self.end_date = end_date self.strings = self.make_strs()
[docs] def make_strs(self) -> List[str]: dates = pd.date_range(start=self.start_date, end=self.end_date, freq='h') date_strs = [_date_to_str(date) for date in dates] return date_strs
def _date_to_str(date: pd.Timestamp): mdy = date.strftime("%Y-%m-%d") if date.hour == 0: h = '0' else: h = date.strftime("%H").lstrip("0") return f'{mdy}-{h}' def _zero_pad(num: int) -> str: num_str = str(num) if len(num_str) > 1: return num_str elif len(num_str) == 1: return f"0{num}" else: raise ValueError(f"invalid num: {num}")