Start work on docker module
This commit is contained in:
30
sia/util.py
30
sia/util.py
@@ -1,7 +1,8 @@
|
||||
from .inference_result import InferenceResult
|
||||
|
||||
import xml.etree.ElementTree as ET
|
||||
from typing import Iterator, TypeVar
|
||||
import re
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
from .inference_result import InferenceResult
|
||||
|
||||
def get_valid_root_elements(schema: str) -> set:
|
||||
"""
|
||||
@@ -44,4 +45,25 @@ def split_response(response: str, valid_elements: set) -> InferenceResult:
|
||||
split_point = last_match.start()
|
||||
reasoning = response[:split_point].strip()
|
||||
actions = response[split_point:].strip()
|
||||
return InferenceResult(reasoning, actions)
|
||||
return InferenceResult(reasoning, actions)
|
||||
|
||||
def stop_before_value(iterator: Iterator[str], stop_value: str) -> Iterator[str]:
|
||||
"""
|
||||
Creates an iterator that yields values from the input iterator
|
||||
until it encounters the stop_value (exclusive).
|
||||
|
||||
Args:
|
||||
iterator: The source iterator
|
||||
stop_value: The value to stop before
|
||||
|
||||
Yields:
|
||||
Values from the iterator until stop_value is encountered
|
||||
If stop_value is part of an item, yields the part before stop_value
|
||||
"""
|
||||
for item in iterator:
|
||||
if stop_value in item:
|
||||
split_point = item.index(stop_value)
|
||||
if split_point > 0:
|
||||
yield item[:split_point]
|
||||
break
|
||||
yield item
|
||||
Reference in New Issue
Block a user