tephpy.exceptions#

The public tephpy exception hierarchy (spec §6).

Every exception tephpy raises for user-correctable input derives from TephpyError, so except TephpyError catches them all. Units problems raise TephpyUnitsError; physically impossible data raises a TephpyValidationError subclass carrying the offending level indices. Validation happens at ingest (Sounding construction), not mid-plot.

Configuration-file problems are the one place tephpy also warns: TephpyConfigWarning is a UserWarning, not a TephpyError, because an unusable configuration file degrades to the hardwired defaults instead of stopping the import (configfile spec §5).

Exceptions#

TephpyError

Root of the tephpy exception hierarchy.

TephpyUnitsError

Missing, ambiguous, unparsable, or wrong-dimension units (spec §5).

TephpyValidationError

Physically impossible input, identified by level indices (spec §6).

NonMonotonicPressureError

Pressure is not strictly monotonic (spec §3.4).

DewpointExceedsTemperatureError

Dewpoint exceeds temperature at one or more levels (spec §3.4).

MissingDataError

The sounding lacks a field the requested operation needs (spec §6).

TephpyIOError

A reader could not fetch or make sense of its source (spec §6).

ProfileTooShortError

The profile tops out at or below the parcel's LCL (spec §6).

TephpyConfigError

A configuration file could not be read or made sense of.

TephpyConfigWarning

A configuration file was used, but something in it was ignored.

Module Contents#

exception tephpy.exceptions.TephpyError[source]#

Bases: Exception

Root of the tephpy exception hierarchy.

exception tephpy.exceptions.TephpyUnitsError[source]#

Bases: TephpyError

Missing, ambiguous, unparsable, or wrong-dimension units (spec §5).

exception tephpy.exceptions.TephpyValidationError(message: str, *, levels: tuple[int, Ellipsis] = ())[source]#

Bases: TephpyError

Physically impossible input, identified by level indices (spec §6).

Parameters:
messagestr

Description of the failed validation.

levelstuple of int, optional

Zero-based indices of the offending levels, when the failure is attributable to specific levels.

Attributes:
levelstuple of int

Zero-based indices of the offending levels; empty when the failure is not attributable to specific levels.

levels = ()#
exception tephpy.exceptions.NonMonotonicPressureError(message: str, *, levels: tuple[int, Ellipsis] = ())[source]#

Bases: TephpyValidationError

Pressure is not strictly monotonic (spec §3.4).

exception tephpy.exceptions.DewpointExceedsTemperatureError(message: str, *, levels: tuple[int, Ellipsis] = ())[source]#

Bases: TephpyValidationError

Dewpoint exceeds temperature at one or more levels (spec §3.4).

Equality — saturation — is physical and accepted; only strict excess is rejected.

exception tephpy.exceptions.MissingDataError(message: str, *, levels: tuple[int, Ellipsis] = ())[source]#

Bases: TephpyValidationError

The sounding lacks a field the requested operation needs (spec §6).

Raised at the operation’s boundary — the earliest point the need is knowable — e.g. parcel analysis without dewpoint, or (in a later release) wind barbs without wind.

exception tephpy.exceptions.TephpyIOError[source]#

Bases: TephpyError

A reader could not fetch or make sense of its source (spec §6).

Network failures, HTTP errors, the archive’s “no data” replies, a malformed or unrecognisable file, and an ambiguous read (an IGRA station file holding many soundings with no time= selector) all raise this, summarising the upstream response or file state.

exception tephpy.exceptions.ProfileTooShortError(message: str, *, levels: tuple[int, Ellipsis] = ())[source]#

Bases: TephpyValidationError

The profile tops out at or below the parcel’s LCL (spec §6).

No moist ascent exists, so every parcel-derived quantity would be meaningless; calc.parcel_path and calc.indices both raise this. The LCL tested is the one the path would use — the corrected one when a cloud-base correction is requested.

exception tephpy.exceptions.TephpyConfigError[source]#

Bases: TephpyError

A configuration file could not be read or made sense of.

A malformed YAML document, a top-level entry that is not a mapping, an unknown configuration section, and a $TEPHPYRC naming a file that does not exist all raise this. Raised only when the file was asked for explicitly; the import-time auto-load warns instead (configfile spec §5).

exception tephpy.exceptions.TephpyConfigWarning[source]#

Bases: UserWarning

A configuration file was used, but something in it was ignored.

An unknown option, an option whose value is an explicit null, and any failure during the import-time auto-load warn rather than raise, so a typo in a configuration file cannot make tephpy unimportable (configfile spec §5).