[BUG] EventTriggerRequirements start/end filters raise duplicate start argument
Description
EventTriggerRequirements.get_trigger_times() raises a TypeError when the new start / end window parameters are used with the default GsDataSource.
The failure occurs before any network request is made.
Reproduction
Tested against current master / release 2.1.3.
import datetime as dt
from gs_quant.backtests.triggers import EventTriggerRequirements
from gs_quant.data import Dataset
original_get_data = Dataset.get_data
def fake_get_data(self, start=None, end=None, **kwargs):
raise AssertionError(
"Dataset.get_data was entered successfully; duplicate start was not reproduced"
)
Dataset.get_data = fake_get_data
try:
requirement = EventTriggerRequirements(
event_name="CPI",
start=dt.date(2026, 1, 1),
end=dt.date(2026, 2, 1),
)
requirement.get_trigger_times()
finally:
Dataset.get_data = original_get_dataActual result
TypeError: fake_get_data() got multiple values for argument 'start'Cause
EventTriggerRequirements.get_trigger_times() passes the configured window through kwargs:
kwargs['start'] = self.start
kwargs['end'] = self.endThe default GsDataSource.get_data(state=None, **kwargs) then calls Dataset.get_data with a positional start value:
ds.get_data(dt.datetime(2000, 1, 1), **kwargs)Because Dataset.get_data defines start as its first positional argument, the request supplies start twice when an event-trigger start window is configured.
Expected behavior
EventTriggerRequirements(start=..., end=...) should constrain the macro-event dataset query to the requested window without producing an argument collision.
Environment
- gs-quant: current master / release 2.1.3
- Reproduction does not require Marquee credentials or network access
Source: goldmansachs/gs-quant