Skip to content

fix: preserve calendar declarations across ingestion and updates #97

Closed

Description

@stefan-jansen

Problem

DataManager.load/import_data still use calendar=None for omission and write version-1 null metadata. A caller explicitly disabling calendars therefore gets a stored declaration that inherits NYSE downstream. Incremental gap detection also ignores the stored feed calendar and uses only an asset-class crypto hint, so a disabled schedule can still cause imputation.

Required behavior

Carry canonical calendar/FeedSpec declarations through load, import, initial update and incremental update. Explicit selection overrides declared feed/stored metadata, then NYSE. Preserve omitted versus explicit None and the temporal version; do not automatically relabel legacy payloads unless the caller explicitly overrides them. Persist timezone/timestamp/grid declarations that Data's Metadata supports. Validate incompatible declarations/calendars before publication. Exchange remains descriptive metadata, not an implicit selector.

Gap classification receives the selected calendar and declared semantics, not only the asset class. None disables schedule-derived detection and cannot manufacture rows from timestamp spacing even when the legacy fill flag is enabled. Missing-data acquisition and imputation remain separate. The requested frequency/bar type must agree with declared feed metadata, rather than silently storing contradictory meanings.

This depends on session/Metadata PR94; review the ingestion diff separately and require full main-target CI/docs/package checks after that prerequisite lands. Unsupported intraday-grid/daily event interpretations remain explicit, not a claim of all calendar conformance. Preserve published0.2.1; no release/deploy or heavy local suite during Backtest's timing window. AI-assisted implementation under maintainer direction.

Activity

  1. added a commit that references this issue on Oct 17, 2026
    e6568c0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions