44 lines
913 B
Python
44 lines
913 B
Python
import yaml
|
|
|
|
|
|
def _send_message(message):
|
|
out_data = f"""\n{message}\n"""
|
|
print(out_data, flush=True)
|
|
|
|
|
|
def _parse_chatmark_response(response):
|
|
# resonse looks like:
|
|
"""
|
|
``` some_name
|
|
some key name 1: value1
|
|
some key name 2: value2
|
|
```
|
|
"""
|
|
# parse key values
|
|
lines = response.strip().split("\n")
|
|
if len(lines) <= 2:
|
|
return {}
|
|
|
|
data = yaml.safe_load("\n".join(lines[1:-1]))
|
|
return data
|
|
|
|
|
|
def pipe_interaction(message: str):
|
|
_send_message(message)
|
|
|
|
lines = []
|
|
while True:
|
|
try:
|
|
line = input()
|
|
if line.strip().startswith("```yaml"):
|
|
lines = []
|
|
elif line.strip() == "```":
|
|
lines.append(line)
|
|
break
|
|
lines.append(line)
|
|
except EOFError:
|
|
pass
|
|
|
|
response = "\n".join(lines)
|
|
return _parse_chatmark_response(response)
|