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
- 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:
- Raises:
ValueError – If line is empty or parsing fails
- 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:
BaseModelContainer 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:
- 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:
- 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].