Update CodeTestingAtomicFlow.py
Browse files- CodeTestingAtomicFlow.py +5 -7
CodeTestingAtomicFlow.py
CHANGED
|
@@ -5,12 +5,12 @@ from flow_modules.Tachi67.InterpreterFlowModule import InterpreterAtomicFlow
|
|
| 5 |
|
| 6 |
|
| 7 |
class CodeTestingAtomicFlow(InterpreterAtomicFlow):
|
| 8 |
-
def
|
|
|
|
| 9 |
while True:
|
| 10 |
-
|
| 11 |
-
current_time = os.path.getmtime(file_location)
|
| 12 |
-
if current_time != last_check_time:
|
| 13 |
break
|
|
|
|
| 14 |
def _prepare_code_and_lang(self, input_data: Dict[str, Any]):
|
| 15 |
file_location = input_data["temp_code_file_location"]
|
| 16 |
input_data["language"] = "python"
|
|
@@ -20,7 +20,6 @@ class CodeTestingAtomicFlow(InterpreterAtomicFlow):
|
|
| 20 |
|
| 21 |
def _check_input(self, input_data: Dict[str, Any]):
|
| 22 |
assert "temp_code_file_location" in input_data, "temp_code_file_location not passed to CodeTestingAtomicFlow"
|
| 23 |
-
assert "temp_code_file_written_timestamp" in input_data, "temp_code_file_written_timestamp not passed to CodeTestingAtomicFlow"
|
| 24 |
|
| 25 |
def _delete_file(self, file_location):
|
| 26 |
if os.path.exists(file_location):
|
|
@@ -31,8 +30,7 @@ class CodeTestingAtomicFlow(InterpreterAtomicFlow):
|
|
| 31 |
input_data: Dict[str, Any]):
|
| 32 |
self._check_input(input_data)
|
| 33 |
file_loc = input_data["temp_code_file_location"]
|
| 34 |
-
|
| 35 |
-
self._wait_for_file_update(file_loc, last_timestamp)
|
| 36 |
self._prepare_code_and_lang(input_data)
|
| 37 |
self._process_input_data(input_data)
|
| 38 |
response = self._call()
|
|
|
|
| 5 |
|
| 6 |
|
| 7 |
class CodeTestingAtomicFlow(InterpreterAtomicFlow):
|
| 8 |
+
def _open_file_and_wait_for_file_update(self, file_location, check_interval=1):
|
| 9 |
+
process = subprocess.Popen(["code", "--wait", file_location])
|
| 10 |
while True:
|
| 11 |
+
if process.poll() is not None:
|
|
|
|
|
|
|
| 12 |
break
|
| 13 |
+
time.sleep(check_interval)
|
| 14 |
def _prepare_code_and_lang(self, input_data: Dict[str, Any]):
|
| 15 |
file_location = input_data["temp_code_file_location"]
|
| 16 |
input_data["language"] = "python"
|
|
|
|
| 20 |
|
| 21 |
def _check_input(self, input_data: Dict[str, Any]):
|
| 22 |
assert "temp_code_file_location" in input_data, "temp_code_file_location not passed to CodeTestingAtomicFlow"
|
|
|
|
| 23 |
|
| 24 |
def _delete_file(self, file_location):
|
| 25 |
if os.path.exists(file_location):
|
|
|
|
| 30 |
input_data: Dict[str, Any]):
|
| 31 |
self._check_input(input_data)
|
| 32 |
file_loc = input_data["temp_code_file_location"]
|
| 33 |
+
self._open_file_and_wait_for_file_update(file_loc)
|
|
|
|
| 34 |
self._prepare_code_and_lang(input_data)
|
| 35 |
self._process_input_data(input_data)
|
| 36 |
response = self._call()
|