Repository navigation
fix: classify daily gaps using declared exchange sessions - #90
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #89
Outcome
Daily GapDetector detection now counts authoritative exchange sessions strictly between observed daily labels. An NYSE holiday/weekend is not missing data, an early-close session is still one session, and an outage affecting every asset remains missing. Explicit calendar wins over shared FeedSpec metadata, then NYSE; None disables classification, while 24/7 is a real schedule. The resolver is imported from Specs, pinned to merged source 701bde68744035050ede386efce498234c661c21 rather than the unrelated active local Specs checkout.
Compatibility
Existing positional parameters remain supported. is_crypto=True selects 24/7 only absent an explicit/feed calendar. Default daily missing counts change intentionally to scheduled NYSE sessions. Legacy version-1 metadata null inherits, while version-2 explicit null disables checks. Daily Date/Datetime values retain session-label interpretation. Explicit event/bar-close semantics and intraday calendar declarations fail clearly instead of claiming support. Intraday legacy calls are unchanged.
Detection never fills or modifies the frame. Existing elapsed-grid filling and separate update-manager range planning are not claimed as calendar-aware; documentation states those limits. No release or deployment is requested. A future PyPI release must replace the immutable VCS dependency with a qualified released Specs version; this source qualification is not a claim of PyPI release readiness.
Executed evidence
Review and assistance
AI-assisted code, tests and prose under maintainer direction. Reviewed the source diff, legacy call compatibility, schedule independence from observations, metadata semantics and input immutability. Calendar selection is shared, not reimplemented. No unrelated source/workflow changes or release artifacts are included.