gridstatus / gridstatusio

Python client for accessing the GridStatus.io Hosted API.
https://www.gridstatus.io
BSD 3-Clause "New" or "Revised" License
26 stars 3 forks source link

Add support for publish time #23

Closed kmax12 closed 9 months ago

kmax12 commented 9 months ago

Example notebook coming soon

Example usage

def test_publish_time_latest():
    today = pd.Timestamp.now(tz="UTC").floor("D")

    df = client.get_dataset(
        dataset="ercot_hourly_resource_outage_capacity_reports",
        start=today - pd.Timedelta(days=2),
        end=today,
        publish_time="latest",
        verbose=True,
    )

    assert df["publish_time_utc"].nunique() > 1, "Expected multiple publish times"
    assert (
        df["interval_start_utc"].value_counts() == 1
    ).all(), "Expected each interval to only occur once"

def test_publish_time_latest_report():
    df = client.get_dataset(
        dataset="ercot_hourly_resource_outage_capacity_reports",
        publish_time="latest_report",
        verbose=True,
    )

    assert df["publish_time_utc"].nunique() == 1, "Expected one publish time"
    assert (
        df["interval_start_utc"].value_counts() == 1
    ).all(), "Expected each interval to only occur once"

def test_publish_time_specific_time():
    publish_time = "2023-10-04 04:02:52+00:00"

    df = client.get_dataset(
        dataset="ercot_hourly_resource_outage_capacity_reports",
        publish_time=publish_time,
        verbose=True,
    )

    assert (df["publish_time_utc"] == publish_time).all(), "Expected one publish time"
    assert (
        df["interval_start_utc"].value_counts() == 1
    ).all(), "Expected each interval to only occur once"