bsrn.archive.validation#

BSRN station-to-archive field validators.

Each *_validateFunction name matches LR_SPECS validate_func. The LR* models in bsrn.archive.records_models call them through Pydantic pydantic.functional_validators.AfterValidator (scalar fields) and pydantic.field_validator() (LR0100 / LR4000 minute vectors with yearMonth). Lookup tables live in bsrn.archive.specs (QUANTITIES, …).

Functions

A15_validateFunction(value)

Validate Fortran A15 string field.

A18_validateFunction(value)

Validate Fortran A18 string field.

A25_validateFunction(value)

Validate Fortran A25 string field.

A30_validateFunction(value)

Validate Fortran A30 string field.

A38_validateFunction(value)

Validate Fortran A38 string field.

A40_validateFunction(value)

Validate Fortran A40 string field.

A5_validateFunction(value)

Validate Fortran A5 string field.

A80_validateFunction(value)

Validate Fortran A80 string field.

A_validateFunction(value[, maxLenght])

Validate non-empty string length for Fortran A fields.

C_validateFunction(value)

Accept any non-empty numeric-like token (archive C / free numeric).

F12_4_validateFunction(value)

Validate F12.4 float field (underscore name avoids a dot in Python).

F7_3_validateFunction(value)

Validate F7.3 float field (underscore name avoids a dot in Python).

F_validateFunction(value, w, d)

Validate float width for Fortran F{w}.{d} (integer and fractional parts).

I2_validateFunction(value)

Validate Fortran I2 integer field.

I3_validateFunction(value)

Validate Fortran I3 integer field.

I4_validateFunction(value)

Validate Fortran I4 integer field.

I5_validateFunction(value)

Validate Fortran I5 integer field.

I8_validateFunction(value)

Validate Fortran I8 integer field.

I_validateFunction(value, digits[, v_min, v_max])

Validate integer value for Fortran I width and optional bounds.

LR0100_validateFunction(value[, yearMonth])

Ensure minute-series length matches the month when yearMonth is set.

LR4000_validateFunction(value[, yearMonth])

Ensure LR4000 minute-series length matches the month when yearMonth is set.

L_validateFunction(value)

Validate Python bool for Fortran logical L fields.

azimuth_validateFunction(value)

Validate comma-separated azimuth list A1,A2,... (free A width).

body_validateFunction(value)

Validate pyrgeometer body compensation code against specs.PYRGEOMETER_BODY.

date_validateFunction(value)

Validate MM/DD/YY date string (A8).

day_validateFunction(value)

Validate day-of-month in 131 (I2).

dome_validateFunction(value)

Validate pyrgeometer dome compensation code against specs.PYRGEOMETER_DOME.

elevation_validateFunction(value)

Validate comma-separated horizon elevation list E1,E2,....

email_validateFunction(value)

Validate e-mail string (A50).

genericValidateFunction(value)

Validate yearMonth token (A7 in LR0100 / LR4000: 'YYYY-MM').

hour_validateFunction(value)

Validate hour of day 023 (I2).

latitude_validateFunction(value)

Validate latitude string matching F7.3 and regex pattern.

longitude_validateFunction(value)

Validate longitude string matching F7.3 and regex pattern.

minute_validateFunction(value)

Validate minute 059 (I2).

month_validateFunction(value)

Validate calendar month in 112 (I2).

quantities_validateFunction(value)

Validate radiation quantity code against specs.QUANTITIES.

surface_validateFunction(value)

Validate surface type code against specs.SURFACES.

tcpip_validateFunction(value)

Validate IPv4-style TCP/IP string (A15).

telephone_validateFunction(value)

Validate telephone string (length + simple digit pattern).

topography_validateFunction(value)

Validate topography code against specs.TOPOGRAPHIES.

year_validateFunction(value)

Validate four-digit year (I4, minimum 1992 per BSRN spec).

zenith_validateFunction(value)

Validate zenith angle 090 degrees (I2).