Skip to content

Enumerations

Categorical SDIF fields. The SDIF code is each member's value, so a raw byte resolves with e.g. Sex("F") or Course("3"); unknown codes raise ValueError.

enums

SDIF v3 categorical enumerations.

Every enum here models a coded field in the SDIF v3 specification. Codes are the enum values, so a raw SDIF byte resolves with Sex("F") etc. The large geographic enums (LSC, State, Country) live in :mod:tunas.geography.

Sex

Bases: StrEnum

SDIF SEX Code 010 / EVENT SEX Code 011.

Stroke

Bases: StrEnum

SDIF STROKE Code 012.

display
display() -> str

Human-readable stroke name (e.g. "Free Relay", "IM").

Source code in src/tunas/enums.py
def display(self) -> str:
    """Human-readable stroke name (e.g. ``"Free Relay"``, ``"IM"``)."""
    return _STROKE_DISPLAY[self]

Course

Bases: StrEnum

SDIF COURSE Code 013 (numeric form).

The parser also accepts the alphabetic forms S (SCM), Y (SCY), and L (LCM) and normalizes them to these members.

Session

Bases: StrEnum

Which session a swim belongs to.

AttachStatus

Bases: StrEnum

Whether a swimmer is attached to a club at the meet.

MeetType

Bases: StrEnum

SDIF MEET Code 005.

Region

Bases: StrEnum

SDIF REGION Code 007 (fourteen USA Swimming regions).

EventTimeClass

Bases: StrEnum

SDIF EVENT TIME CLASS Code 014 (per-character).

The 2-byte file field is split into event_min_time_class (lower) and event_max_time_class (upper).

Organization

Bases: StrEnum

SDIF ORG Code 001.

FileType

Bases: StrEnum

SDIF FILE Code 003 (type of data transmitted).

Citizenship

Bases: StrEnum

SDIF CITIZEN Code 009 (the two non-country codes).

Any other citizenship value is a :class:~tunas.geography.Country code, so citizenship fields are typed Citizenship | Country | None.

SplitType

Bases: StrEnum

SDIF record G0 split-type code.

ResultStatus

Bases: StrEnum

Outcome of a swim.

OK denotes an official, recorded time. The others are non-time outcomes whose time is None (except course-X disqualifications, which retain a recorded time).

RelayLegOrder

Bases: StrEnum

SDIF ORDER Code 024 (relay leg position).

MemberStatus

Bases: StrEnum

SDIF MEMBER Code 021.

Season

Bases: StrEnum

SDIF SEASON Code 022.

Ethnicity

Bases: StrEnum

SDIF ETHNICITY Code 026 (sensitive personal data).

Affiliation

Bases: Enum

D3 program-affiliation flags (sensitive personal data).

Hy3FileType

Bases: StrEnum

Hy-Tek .hy3 file-type code (A1 cols 3-4).

A distinct code space from the SDIF :class:FileType; only MEET_RESULTS files carry meet results (and are what :func:~tunas.read_hy3 parses).