|
# Table of Contents |
|
|
|
* [Structure of TestCodeFlow](#structure-of-testcodeflow) |
|
* [TestCodeFlow](#TestCodeFlow) |
|
* [TestCodeFlow](#TestCodeFlow.TestCodeFlow) |
|
* [\_\_init\_\_](#TestCodeFlow.TestCodeFlow.__init__) |
|
* [instantiate\_from\_config](#TestCodeFlow.TestCodeFlow.instantiate_from_config) |
|
* [run](#TestCodeFlow.TestCodeFlow.run) |
|
* [TestCodeFileEditAtomicFlow](#TestCodeFileEditAtomicFlow) |
|
* [TestCodeFileEditAtomicFlow](#TestCodeFileEditAtomicFlow.TestCodeFileEditAtomicFlow) |
|
* [run](#run) |
|
* [\_\_init\_\_](#__init__) |
|
* [CodeTestingAtomicFlow](#CodeTestingAtomicFlow) |
|
* [CodeTestingAtomicFlow](#CodeTestingAtomicFlow.CodeTestingAtomicFlow) |
|
* [run](#CodeTestingAtomicFlow.CodeTestingAtomicFlow.run) |
|
|
|
|
|
|
|
# Structure of TestCodeFlow |
|
|
|
``` |
|
code |
|
| |
|
v |
|
+-------------------+ |
|
| TestCodeFileEdit | Edit a temp code file with the code to be tested and necessary imports (manually added): https://huggingface.co/aiflows/TestCodeFlowModule/blob/main/TestCodeFileEditAtomicFlow.py |
|
+-------------------+ |
|
| |
|
| (temp_code_file_location) |
|
| |
|
v |
|
+------------------+ |
|
| CodeTesting | Opens up the temp file until user closes the file, run the test code. |
|
+------------------+ |
|
| |
|
| (feedback) |
|
| |
|
v |
|
feedback |
|
|
|
|
|
``` |
|
Memory_files: |
|
- `library.py` |
|
|
|
|
|
<a id="TestCodeFlow"></a> |
|
|
|
# TestCodeFlow |
|
|
|
<a id="TestCodeFlow.TestCodeFlow"></a> |
|
|
|
## TestCodeFlow Objects |
|
|
|
```python |
|
class TestCodeFlow(SequentialFlow) |
|
``` |
|
|
|
This class is used to test code. It is a sequential flow that runs the following steps: |
|
1. Prepares the code to be tested, it is composed of the code to be tested and necessary import statements manually added. |
|
2. Opens the code in VSCode and waits for the user to clode the vscode session. The user is able to add tests. |
|
3. The following will be tested: |
|
a. (Default & Compulsory) Code syntax; |
|
b. (Added by user) Any other tests. |
|
4. Runs the test and returns the output. |
|
|
|
*Input Interface*: |
|
- `code` (str): The code to be tested. |
|
|
|
*Output Interface*: |
|
- `feedback` (str): The test results. |
|
|
|
*Configuration Parameters*: |
|
- `memory_files`: The memory files to be used in the flow, typically we need to have the code library as memory file here. |
|
- `input_interface`: The input interface of the flow. |
|
- `output_interface`: The output interface of the flow. |
|
- `subflows_config`: The subflows configuration. |
|
- `topology`: The topology of the subflows. |
|
|
|
<a id="TestCodeFlow.TestCodeFlow.__init__"></a> |
|
|
|
#### \_\_init\_\_ |
|
|
|
```python |
|
def __init__(memory_files: Dict[str, Any], **kwargs) |
|
``` |
|
|
|
This function instantiates the class. |
|
|
|
**Arguments**: |
|
|
|
- `memory_files` (`Dict[str, Any]`): The memory files to be used in the flow, typically we need to have the code library as memory file here. |
|
- `kwargs` (`Any`): The keyword arguments. |
|
|
|
<a id="TestCodeFlow.TestCodeFlow.instantiate_from_config"></a> |
|
|
|
#### instantiate\_from\_config |
|
|
|
```python |
|
@classmethod |
|
def instantiate_from_config(cls, config) |
|
``` |
|
|
|
This function instantiates the class from a configuration dictionary. |
|
|
|
**Arguments**: |
|
|
|
- `config` (`Dict[str, Any]`): The configuration dictionary. |
|
|
|
**Returns**: |
|
|
|
`TestCodeFlow`: The instantiated class. |
|
|
|
<a id="TestCodeFlow.TestCodeFlow.run"></a> |
|
|
|
#### run |
|
|
|
```python |
|
def run(input_data: Dict[str, Any]) -> Dict[str, Any] |
|
``` |
|
|
|
This function runs the flow. |
|
|
|
**Arguments**: |
|
|
|
- `input_data` (`Dict[str, Any]`): The input data. |
|
|
|
**Returns**: |
|
|
|
`Dict[str, Any]`: The output data. |
|
|
|
<a id="TestCodeFileEditAtomicFlow"></a> |
|
|
|
# TestCodeFileEditAtomicFlow |
|
|
|
<a id="TestCodeFileEditAtomicFlow.TestCodeFileEditAtomicFlow"></a> |
|
|
|
## TestCodeFileEditAtomicFlow Objects |
|
|
|
```python |
|
class TestCodeFileEditAtomicFlow(CodeFileEditAtomicFlow) |
|
``` |
|
|
|
Refer to: https://huggingface.co/aiflows/CodeFileEditFlowModule/tree/main |
|
|
|
*Input Interface*: |
|
- `code`: str |
|
- `memory_files`: Dict[str, str] |
|
|
|
*Output Interface*: |
|
- `code_editor_output`: str, the code editor output |
|
- `temp_code_file_location`: str, the location of the temporary code file |
|
|
|
*Configuration Parameters*: |
|
- `input_interface`: The input interface of the flow. |
|
- `output_interface`: The output interface of the flow. |
|
|
|
<a id="run"></a> |
|
|
|
# run |
|
|
|
<a id="__init__"></a> |
|
|
|
# \_\_init\_\_ |
|
|
|
<a id="CodeTestingAtomicFlow"></a> |
|
|
|
# CodeTestingAtomicFlow |
|
|
|
<a id="CodeTestingAtomicFlow.CodeTestingAtomicFlow"></a> |
|
|
|
## CodeTestingAtomicFlow Objects |
|
|
|
```python |
|
class CodeTestingAtomicFlow(InterpreterAtomicFlow) |
|
``` |
|
|
|
This class inherits from InterpreterAtomicFlow and is used to test code. |
|
|
|
*Input Interface*: |
|
- `temp_code_file_location`: Location of the file containing the code to be tested. |
|
|
|
*Output Interface*: |
|
- `feedback`: Feedback from the test (i.e. test results). |
|
|
|
*Configuration Parameters*: |
|
- `input_interface`: the input interface of the atomic flow. |
|
- `output_interface`: the output interface of the atomic flow. |
|
|
|
<a id="CodeTestingAtomicFlow.CodeTestingAtomicFlow.run"></a> |
|
|
|
#### run |
|
|
|
```python |
|
def run(input_data: Dict[str, Any]) |
|
``` |
|
|
|
Runs the atomic flow. |
|
|
|
**Arguments**: |
|
|
|
- `input_data` (`Dict[str, Any]`): The input data to the atomic flow. |
|
|
|
**Returns**: |
|
|
|
`Dict[str, Any]`: The output data of the atomic flow. |
|
|
|
|