debug / utils.py
jayendra26's picture
Initial commit
f8b106f
Raw
History Blame Contribute Delete
1.79 kB
"""
utils.py
========
Utility functions shared across the entire DEBUG_ENV project.
Contains:
- Formatting helpers
- Color codes for terminal output (optional, cross-platform safe)
- Separator line generators
"""
def separator(char: str = "=", width: int = 60) -> str:
"""
Generate a separator line for display.
Args:
char (str): Character to fill the line with.
width (int): Total width of the line.
Returns:
str: A separator string.
"""
return char * width
def format_reward(reward: float) -> str:
"""
Format a reward value with a leading + or - sign.
Args:
reward (float): The reward value.
Returns:
str: Formatted reward string (e.g., '+0.30' or '-0.20').
"""
if reward >= 0:
return f"+{reward:.2f}"
return f"{reward:.2f}"
def format_score(score: float) -> str:
"""
Format a score to 2 decimal places.
Args:
score (float): The score value.
Returns:
str: Formatted score string (e.g., '1.00').
"""
return f"{score:.2f}"
def print_header(title: str, width: int = 60):
"""
Print a centered header with separator lines above and below.
Args:
title (str): The header title text.
width (int): Width for centering.
"""
print()
print(separator("=", width))
print(title.center(width))
print(separator("=", width))
def truncate(text: str, max_len: int = 80) -> str:
"""
Truncate long strings for display.
Args:
text (str): The string to truncate.
max_len (int): Maximum display length.
Returns:
str: Truncated string with '...' appended if shortened.
"""
if len(text) <= max_len:
return text
return text[:max_len - 3] + "..."