From 16907b13db90887684e02d8987ef658b463b56a2 Mon Sep 17 00:00:00 2001 From: GabeKoga <45213757+GabeKoga@users.noreply.github.com> Date: Thu, 9 May 2024 21:35:21 -0300 Subject: [PATCH] Fix/yaml formatting (#590) * Bug/curly_braces_yaml Added parser to help users on yaml syntax * context error Patch and later will prioritize this again to have context work with the yaml --- src/crewai/project/crew_base.py | 4 +++- src/crewai/utilities/__init__.py | 1 + src/crewai/utilities/parser.py | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/crewai/utilities/parser.py diff --git a/src/crewai/project/crew_base.py b/src/crewai/project/crew_base.py index a38dbe1a0..93dfbc6c2 100644 --- a/src/crewai/project/crew_base.py +++ b/src/crewai/project/crew_base.py @@ -1,6 +1,7 @@ import inspect import os from pathlib import Path +from crewai.utilities.parser import YamlParser import yaml from dotenv import load_dotenv @@ -40,6 +41,7 @@ def CrewBase(cls): @staticmethod def load_yaml(config_path: str): with open(config_path, "r") as file: - return yaml.safe_load(file) + parsedContent = YamlParser.parse(file) + return yaml.safe_load(parsedContent) return WrappedClass diff --git a/src/crewai/utilities/__init__.py b/src/crewai/utilities/__init__.py index 92bd9cd69..e21c4815b 100644 --- a/src/crewai/utilities/__init__.py +++ b/src/crewai/utilities/__init__.py @@ -6,3 +6,4 @@ from .printer import Printer from .prompts import Prompts from .rpm_controller import RPMController from .fileHandler import FileHandler +from .parser import YamlParser diff --git a/src/crewai/utilities/parser.py b/src/crewai/utilities/parser.py new file mode 100644 index 000000000..1e100c77f --- /dev/null +++ b/src/crewai/utilities/parser.py @@ -0,0 +1,17 @@ +import re + + +class YamlParser: + def parse(file): + content = file.read() + # Replace single { and } with doubled ones, while leaving already doubled ones intact and the other special characters {# and {% + modified_content = re.sub(r"(?