Skip to content

Commit

Permalink
more making overlord happy
Browse files Browse the repository at this point in the history
  • Loading branch information
alexmlongLANL committed Feb 22, 2025
1 parent 3b589a6 commit b48eed1
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/pleiades/sammy/parameters/radius.py
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,7 @@ def _parse_numbers_from_line(line: str, start_pos: int, width: int) -> List[int]
List[int]: List of parsed integers, stopping at first invalid value
"""
where_am_i = "RadiusCardAlternate._parse_numbers_from_line()"
logger.info(f"{where_am_i}: Parsing fixed-width integers from line")

numbers = []
pos = start_pos
Expand Down Expand Up @@ -551,6 +552,7 @@ def _parse_spin_groups_and_channels(cls, lines: List[str]) -> Tuple[List[int], O
Handles continuation lines (-1 marker) and IX=0 marker for channels
"""
where_am_i = "RadiusCardAlternate._parse_spin_groups_and_channels()"
logger.info(f"{where_am_i}: Parsing spin groups and channels from lines")

spin_groups = []
channels = None
Expand Down Expand Up @@ -593,24 +595,28 @@ def from_lines(cls, lines: List[str]) -> "RadiusCardAlternate":
ValueError: If lines are invalid or required data is missing
"""
where_am_i = "RadiusCardAlternate.from_lines()"
logger.info(f"{where_am_i}: Parsing radius parameters from lines")

if not lines:
raise ValueError("No lines provided")

# Validate header
if not cls.is_header_line(lines[0]):
logger.error(f"{where_am_i}: Invalid header line: {lines[0]}")
raise ValueError(f"Invalid header line: {lines[0]}")

# Get content lines (skip header and trailing blank)
content_lines = [line for line in lines[1:] if line.strip()]
if not content_lines:
logger.error(f"{where_am_i}: No parameter lines found")
raise ValueError("No parameter lines found")

# Parse first line for main parameters
main_line = content_lines[0]

# Ensure line is long enough
if len(main_line) < 35: # Minimum length for main parameters
logger.error(f"{where_am_i}: Parameter line too short")
raise ValueError("Parameter line too short")

# Parse main parameters
Expand All @@ -625,12 +631,14 @@ def from_lines(cls, lines: List[str]) -> "RadiusCardAlternate":
params["vary_effective"] = VaryFlag(int(main_line[FORMAT_ALTERNATE["ifleff"]].strip() or "0"))
params["vary_true"] = VaryFlag(int(main_line[FORMAT_ALTERNATE["ifltru"]].strip() or "0"))
except ValueError:
logger.error(f"{where_am_i}: Invalid vary flags")
raise ValueError("Invalid vary flags")

# Parse spin groups and channels
spin_groups, channels = cls._parse_spin_groups_and_channels(content_lines)

if not spin_groups:
logger.error(f"{where_am_i}: No spin groups found")
raise ValueError("No spin groups found")

params["spin_groups"] = spin_groups
Expand All @@ -640,8 +648,10 @@ def from_lines(cls, lines: List[str]) -> "RadiusCardAlternate":
try:
parameters = RadiusParameters(**params)
except ValueError as e:
logger.error(f"{where_am_i}: Invalid parameter values: {e}")
raise ValueError(f"Invalid parameter values: {e}")

logger.info(f"{where_am_i}: Successfully parsed radius parameters")
return cls(parameters=parameters)

def to_lines(self) -> List[str]:
Expand Down

0 comments on commit b48eed1

Please sign in to comment.