Skip to content

pandas_utils

langroid/utils/pandas_utils.py

UnsafeCommandError

Bases: ValueError

Raised when a command string violates security policy.

CommandValidator(df_name='df')

Bases: NodeVisitor

AST walker that enforces the security policy.

Source code in langroid/utils/pandas_utils.py
def __init__(self, df_name: str = "df"):
    self.df_name = df_name
    self.depth = 0
    self.chain = 0

sanitize_command(expr, df_name='df')

Validate expr; return it unchanged if it passes all rules, else raise UnsafeCommandError with the first violation encountered.

Source code in langroid/utils/pandas_utils.py
def sanitize_command(expr: str, df_name: str = "df") -> str:
    """
    Validate *expr*; return it unchanged if it passes all rules,
    else raise UnsafeCommandError with the first violation encountered.
    """
    tree = ast.parse(expr, mode="eval")
    CommandValidator(df_name).visit(tree)
    return expr