pleiades.sammy.parameters.external_r module

Data class for card 03::external R-function parameters.

class pleiades.sammy.parameters.external_r.ExternalRFormat(value)[source]

Bases: Enum

FORMAT_3 = '3'
FORMAT_3A = '3a'
class pleiades.sammy.parameters.external_r.ExternalREntry(*, format_type: ExternalRFormat, spin_group: int, channel: int, E_down: float, E_up: float, R_con: float, R_lin: float, s_alpha: Annotated[float | None, Ge(ge=0)] = None, vary_s_alpha: VaryFlag | None = VaryFlag.NO, s_con: Annotated[float | None, Ge(ge=0)] = None, s_lin: float | None = None, R_q: float | None = None, vary_s_con: VaryFlag | None = VaryFlag.NO, vary_s_lin: VaryFlag | None = VaryFlag.NO, vary_R_q: VaryFlag | None = VaryFlag.NO, vary_E_down: VaryFlag = VaryFlag.NO, vary_E_up: VaryFlag = VaryFlag.NO, vary_R_con: VaryFlag = VaryFlag.NO, vary_R_lin: VaryFlag = VaryFlag.NO)[source]

Bases: BaseModel

format_type: ExternalRFormat
spin_group: int
channel: int
E_down: float
E_up: float
R_con: float
R_lin: float
s_alpha: float | None
vary_s_alpha: VaryFlag | None
s_con: float | None
s_lin: float | None
R_q: float | None
vary_s_con: VaryFlag | None
vary_s_lin: VaryFlag | None
vary_R_q: VaryFlag | None
vary_E_down: VaryFlag
vary_E_up: VaryFlag
vary_R_con: VaryFlag
vary_R_lin: VaryFlag
validate_format_specific_fields() ExternalREntry[source]
classmethod from_str(line: str, format_type: ExternalRFormat) ExternalREntry[source]

Parse an external R-function entry from a fixed-width format line.

Parameters:
  • line – Input line to parse

  • format_type – Format type to use

Returns:

Parsed entry

Return type:

ExternalREntry

Raises:

ValueError – If line is empty or parsing fails

to_str() str[source]

Convert the external R-function entry to fixed-width format string.

model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pleiades.sammy.parameters.external_r.ExternalRFunction(*, format_type: ExternalRFormat, entries: List[ExternalREntry] = <factory>)[source]

Bases: BaseModel

Container for External R-function entries (Card Set 3/3a).

This class handles a complete External R-function card set, including: - Header line - Multiple parameter entries - Trailing blank line

Examples

>>> # Create from lines
>>> lines = [
...     "EXTERnal R-function parameters follow",
...     " 1 2 1.2340E+00 5.6780E+00 1.2300E-01 4.5600E-01 7.8900E-01 1 0 0 1 0",
...     " 2 1 2.3450E+00 6.7890E+00 2.3400E-01 5.6700E-01 8.9000E-01 0 1 0 0 1",
...     ""
... ]
>>> r_function = ExternalRFunction.from_lines(lines)
>>> len(r_function.entries)
2
>>> # Convert back to lines
>>> output_lines = r_function.to_lines()
>>> len(output_lines)
4  # Header + 2 entries + blank line
format_type: ExternalRFormat
entries: List[ExternalREntry]
classmethod is_header_line(line: str) ExternalRFormat | None[source]

Check if line is a header and return corresponding format type.

Parameters:

line – Input line to check

Returns:

ExternalRFormat if line is a header, None otherwise

classmethod write_header(format_type: ExternalRFormat) str[source]

Generate the appropriate header line for the format.

Parameters:

format_type – Format type to use

Returns:

Header line

Return type:

str

classmethod from_lines(lines: List[str]) ExternalRFunction[source]

Parse a complete External R-function card set from lines.

Parameters:

lines – List of input lines including header and entries

Returns:

Parsed card set

Return type:

ExternalRFunction

Raises:

ValueError – If no valid header found or invalid format

to_lines() List[str][source]

Convert the card set to a list of lines.

Returns:

Lines including header, entries, and trailing blank line

Return type:

List[str]

model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].