import pydantic | |
import os | |
import fileinput | |
def replace_string_in_files(folder_path, old_str, new_str): | |
for subdir, dirs, files in os.walk(folder_path): | |
for file in files: | |
file_path = os.path.join(subdir, file) | |
# Check if the file is a text file (you can modify this condition based on your needs) | |
if file.endswith(".txt") or file.endswith(".py"): | |
# Open the file in place for editing | |
with fileinput.FileInput(file_path, inplace=True) as f: | |
for line in f: | |
# Replace the old string with the new string | |
print(line.replace(old_str, new_str), end='') | |
def use_pydantic_v1(): | |
module_file_path = pydantic.__file__ | |
module_file_path = module_file_path.split('pydantic')[0] + 'haystack' | |
with open(module_file_path+'/schema.py','r') as f: | |
haystack_schema_file = f.read() | |
if 'from pydantic.v1' not in haystack_schema_file: | |
replace_string_in_files(module_file_path, 'from pydantic', 'from pydantic.v1') |