fix: add missing entries to span __slots__#3483
Merged
Merged
Conversation
…nd SpeechSpanData __slots__ Both fields are set in __init__ and read in export() but were absent from __slots__. They silently fell into __dict__ because SpanData has no __slots__ of its own. If SpanData ever gains __slots__ = (), the missing entries would become un-settable and __init__ would raise AttributeError at first use.
seratch
approved these changes
May 21, 2026
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.
Problem
TranscriptionSpanDataandSpeechSpanDataboth set and read instance attributes that are absent from their__slots__declarations:TranscriptionSpanData: setsself.input_format(line 338), reads it inexport()(line 352) — not in__slots__(line 322–327)SpeechSpanData: setsself.output_format(line 379), reads it inexport()(line 394) — not in__slots__(line 366)Because
SpanData(the base class) doesn't define__slots__, instances have a__dict__fallback, so the code works today — but:__slots__declarations are incomplete and misleadingSpanDataever gains__slots__ = (), both attributes become un-settable and__init__raisesAttributeErrorimmediatelyvars(span), serializers walking__slots__) sees an inconsistent pictureFix
Add the two missing entries — one line each: