Tachi67 commited on
Commit
1fad7ec
·
1 Parent(s): e7a6ac4

Update CodeFileEditAtomicFlow.py

Browse files
Files changed (1) hide show
  1. CodeFileEditAtomicFlow.py +29 -0
CodeFileEditAtomicFlow.py CHANGED
@@ -19,6 +19,11 @@ class CodeFileEditAtomicFlow(AtomicFlow):
19
  - `temp_code_file_location`: str
20
  """
21
  def _generate_content(self, code_lib_location, code_str) -> str:
 
 
 
 
 
22
  content = (
23
  "# The below code will be appended to " +
24
  code_lib_location + "\n"
@@ -33,11 +38,22 @@ class CodeFileEditAtomicFlow(AtomicFlow):
33
  return content
34
 
35
  def _generate_temp_file_location(self, code_lib_location):
 
 
 
 
36
  directory = os.path.dirname(code_lib_location)
37
  ret = os.path.join(directory, 'temp.py')
38
  return ret
39
 
40
  def _write_code_content_to_file(self, file_location, content: str):
 
 
 
 
 
 
 
41
  try:
42
  with open(file_location, "w") as file:
43
  file.write(content)
@@ -48,6 +64,10 @@ class CodeFileEditAtomicFlow(AtomicFlow):
48
  return False, str(e), file_location
49
 
50
  def _check_input(self, input_data: Dict[str, Any]):
 
 
 
 
51
  assert "code" in input_data, "code is not passed to CodeFileEditAtomicFlow"
52
  assert "language_of_code" in input_data, "language_of_code is not passed to CodeFileEditAtomicFlow"
53
  assert "memory_files" in input_data, "memory_files is not passed to CodeFileEditAtomicFlow"
@@ -59,6 +79,11 @@ class CodeFileEditAtomicFlow(AtomicFlow):
59
  assert language_of_code.lower() == 'python', "sorry!! only writing python code is supported."
60
 
61
  def _generate_input_to_writer(self, input_data: Dict[str, Any]):
 
 
 
 
 
62
  code_str = input_data['code']
63
  code_lib_location = input_data["memory_files"]["code_library"]
64
  content_to_write = self._generate_content(code_lib_location, code_str)
@@ -69,6 +94,10 @@ class CodeFileEditAtomicFlow(AtomicFlow):
69
  self,
70
  input_data: Dict[str, Any]
71
  ):
 
 
 
 
72
  self._check_input(input_data)
73
 
74
  # ~~~ Getting input data to the file editor ~~~
 
19
  - `temp_code_file_location`: str
20
  """
21
  def _generate_content(self, code_lib_location, code_str) -> str:
22
+ """This function generates the content to be written to the temp file.
23
+ :param code_lib_location (str): The location of the code library file.
24
+ :param code_str (str): The code to be written to the temp file.
25
+ :return: (str) The content to be written to the temp file.
26
+ """
27
  content = (
28
  "# The below code will be appended to " +
29
  code_lib_location + "\n"
 
38
  return content
39
 
40
  def _generate_temp_file_location(self, code_lib_location):
41
+ """This function generates the location of the temp file.
42
+ :param code_lib_location (str): The location of the code library file.
43
+ :return: (str) The location of the temp file.
44
+ """
45
  directory = os.path.dirname(code_lib_location)
46
  ret = os.path.join(directory, 'temp.py')
47
  return ret
48
 
49
  def _write_code_content_to_file(self, file_location, content: str):
50
+ """This function writes the content to the temp file.
51
+ :param file_location (str): The location of the temp file.
52
+ :param content (str): The content to be written to the temp file.
53
+ :return: (bool, str, str) The first value is a boolean indicating if the write was successful.
54
+ The second value is a string containing the output of the write operation.
55
+ The third value is a string containing the location of the temp file.
56
+ """
57
  try:
58
  with open(file_location, "w") as file:
59
  file.write(content)
 
64
  return False, str(e), file_location
65
 
66
  def _check_input(self, input_data: Dict[str, Any]):
67
+ """This function checks if the input data is valid.
68
+ :param input_data (Dict[str, Any]): The input data.
69
+ :return: None
70
+ """
71
  assert "code" in input_data, "code is not passed to CodeFileEditAtomicFlow"
72
  assert "language_of_code" in input_data, "language_of_code is not passed to CodeFileEditAtomicFlow"
73
  assert "memory_files" in input_data, "memory_files is not passed to CodeFileEditAtomicFlow"
 
79
  assert language_of_code.lower() == 'python', "sorry!! only writing python code is supported."
80
 
81
  def _generate_input_to_writer(self, input_data: Dict[str, Any]):
82
+ """This function generates the input to the writer function.
83
+ :param input_data (Dict[str, Any]): The input data.
84
+ :return: (str, str) The first value is a string containing the content to be written to the temp file.
85
+ The second value is a string containing the location of the temp file.
86
+ """
87
  code_str = input_data['code']
88
  code_lib_location = input_data["memory_files"]["code_library"]
89
  content_to_write = self._generate_content(code_lib_location, code_str)
 
94
  self,
95
  input_data: Dict[str, Any]
96
  ):
97
+ """This function runs the atomic flow.
98
+ :param input_data (Dict[str, Any]): The input data.
99
+ :return: Dict[str, Any] The output data.
100
+ """
101
  self._check_input(input_data)
102
 
103
  # ~~~ Getting input data to the file editor ~~~