#371·gs-quant

[BUG] EventTriggerRequirements start/end filters raise duplicate start argument

Author: mmudassar874Created Aug 10, 2026Updated Aug 10, 2026

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.

python
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_data

Actual result

TypeError: fake_get_data() got multiple values for argument 'start'

Cause

EventTriggerRequirements.get_trigger_times() passes the configured window through kwargs:

python
kwargs['start'] = self.start
kwargs['end'] = self.end

The default GsDataSource.get_data(state=None, **kwargs) then calls Dataset.get_data with a positional start value:

python
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