Documentation Index
Fetch the complete documentation index at: https://docs.camel-ai.org/llms.txt
Use this file to discover all available pages before exploring further.
PythonVerifier
class PythonVerifier(BaseVerifier):
The PythonVerifier class verifies Python-based implementations
by executing them in an isolated virtual environment.
Features:
- Creates a virtual environment with a specified Python version.
- Installs required packages before executing the provided script.
- Executes the script and compares the output against a ground truth,
if supplied.
- Automatically cleans up the virtual environment after execution.
The verification process ensures that the code runs in a controlled
environment, minimizing external dependencies and conflicts.
init
def __init__(
self,
extractor: Optional[BaseExtractor] = None,
timeout: Optional[float] = 30.0,
required_packages: Optional[List[str]] = None,
float_tolerance: Optional[float] = None,
**kwargs
):
Initializes the PythonVerifier.
Parameters:
- extractor (Optional[BaseExtractor], optional): The extractor to use for extracting code from the solution. (default: :obj:
None)
- timeout (Optional[float], optional): The execution timeout in seconds. (default: :obj:
30.0)
- required_packages (Optional[List[str]], optional): A list of packages to install in the virtual environment. (default: :obj:
None)
- float_tolerance (Optional[float], optional): The tolerance for floating point comparisons. (default: :obj:
None)
_cleanup_venv
Clean up the virtual environment if it exists.
_is_uv_environment
def _is_uv_environment(self):
Detect whether the current Python runtime is managed by uv.
_setup_with_uv
def _setup_with_uv(self):
Create virtual environment and install packages using uv.
_is_expression
def _is_expression(self, code: str):
Determines whether a given string of code is a single expression.
This utility uses Python’s AST module to parse the code and checks if
it consists of a single expression node.
Parameters:
- code (str): The Python code to analyze.
Returns:
bool: True if the code is a single expression, False otherwise.
_is_equal_with_tolerance
def _is_equal_with_tolerance(self, a: Any, b: Any):
Compares two Python objects for equality with optional float
tolerance.
This method recursively compares nested structures (lists, tuples,
sets, and dictionaries) and applies floating point tolerance when
comparing numerical values. If no float tolerance is set, a runtime
error is raised.
Parameters:
- a (Any): First value to compare.
- b (Any): Second value to compare.
Returns:
bool: True if the values are considered equal within the
specified float tolerance; False otherwise.