region:us
# Table of Contents

* [RunCodeFlow](#RunCodeFlow)
  * [RunCodeFlow](#RunCodeFlow.RunCodeFlow)
* [ExecuteCodeAtomicFlow](#ExecuteCodeAtomicFlow)
  * [ExecuteCodeAtomicFlow](#ExecuteCodeAtomicFlow.ExecuteCodeAtomicFlow)
    * [run](#ExecuteCodeAtomicFlow.ExecuteCodeAtomicFlow.run)
* [RunCodeAskUserFlow](#RunCodeAskUserFlow)
  * [RunCodeAskUserFlow](#RunCodeAskUserFlow.RunCodeAskUserFlow)
    * [run](#RunCodeAskUserFlow.RunCodeAskUserFlow.run)
* [library](#library)
* [run](#run)
* [RunCodeFileEditAtomicFlow](#RunCodeFileEditAtomicFlow)
  * [RunCodeFileEditAtomicFlow](#RunCodeFileEditAtomicFlow.RunCodeFileEditAtomicFlow)
* [\_\_init\_\_](#__init__)

<a id="RunCodeFlow"></a>

# RunCodeFlow

<a id="RunCodeFlow.RunCodeFlow"></a>

## RunCodeFlow Objects

```python
class RunCodeFlow(SequentialFlow)
```

This flow is used to run code in a file. It opens up the file in VSCode and waits for the user to save and close the file.
Once the file is closed, it reads the code from the file and executes it. It then returns the output of the execution.
Finally, the flow asks the user for feedback on the execution of the code.

*Input Interface*:
- code: The code to be executed.
- language: The language of the code to be executed.
- memory_files: The dictionary containing the location of the code library.

*Output Interface*:
- summary: The summary of the execution of the code. (To be written to the logs of the caller flow)
- result: The result of the execution of the code. (To be returned to the controller of the caller flow)

*Configuration Parameters*:
- `input_interface`: The input interface of the flow. (Default: `['code', 'language', 'memory_files']`)
- `output_interface`: The output interface of the flow. (Default: `['summary', 'result']`)
- `subflows_config`: The configuration of the subflows of the flow.
- `early_exit_key`: The key to be pressed to exit the flow early.
- `topology`: The topology of the subflows.

<a id="ExecuteCodeAtomicFlow"></a>

# ExecuteCodeAtomicFlow

<a id="ExecuteCodeAtomicFlow.ExecuteCodeAtomicFlow"></a>

## ExecuteCodeAtomicFlow Objects

```python
class ExecuteCodeAtomicFlow(InterpreterAtomicFlow)
```

This class inherits from InterpreterAtomicFlow and is used to execute code in a file.
It opens up the file in VSCode and waits for the user to save and close the file. Once the file is saved and closed, it reads the code
from the file and executes it. It then returns the output of the execution.

*Input Interface*:
- temp_code_file_location: The location of the file containing the code to be executed.
- language: The language of the code to be executed.

*Output Interface*:
- interpreter_output: The output of the execution of the code.
- code_ran: The code that was executed.

*Configuration Parameters*:
- `input_interface`: The input interface of the atomic flow.
- `output_interface`: The output interface of the atomic flow.

<a id="ExecuteCodeAtomicFlow.ExecuteCodeAtomicFlow.run"></a>

#### run

```python
def run(input_data: Dict[str, Any])
```

This method is called when the atomic flow is called.

**Arguments**:

- `input_data` (`Dict[str, Any]`): The input_data dictionary.

**Returns**:

`Dict[str, Any]`: The output of the execution of the code.

<a id="RunCodeAskUserFlow"></a>

# RunCodeAskUserFlow

<a id="RunCodeAskUserFlow.RunCodeAskUserFlow"></a>

## RunCodeAskUserFlow Objects

```python
class RunCodeAskUserFlow(HumanStandardInputFlow)
```

Refer to: https://huggingface.co/aiflows/ExtendLibraryFlowModule/blob/main/ExtLibAskUserFlow.py

*Input Interface*:
- `question`: The question asked

*Expected Behaviour*:
- The question is displayed, and the user gives feedback by input string.

*Output Interface*:
- `result`: The input of the user.
- `summary`: The summary that will be written by the caller.

*Configuration Parameters*:
- `query_message_prompt_template`: The template of the message that is displayed to the user.
- `request_multi_line_input`: Whether the user should be able to input multiple lines. Default: False.
- `end_of_input_string`: The string that the user can input to indicate that he/she is done with the input. Default: EOI

<a id="RunCodeAskUserFlow.RunCodeAskUserFlow.run"></a>

#### run

```python
def run(input_data: Dict[str, Any]) -> Dict[str, Any]
```

Run the flow module.

**Arguments**:

- `input_data` (`Dict[str, Any]`): The input data.

**Returns**:

`Dict[str, Any]`: The output data.

<a id="library"></a>

# library

<a id="run"></a>

# run

<a id="RunCodeFileEditAtomicFlow"></a>

# RunCodeFileEditAtomicFlow

<a id="RunCodeFileEditAtomicFlow.RunCodeFileEditAtomicFlow"></a>

## RunCodeFileEditAtomicFlow Objects

```python
class RunCodeFileEditAtomicFlow(CodeFileEditAtomicFlow)
```

Refer to: https://huggingface.co/aiflows/CodeFileEditFlowModule

*Input Interface*:
- `code`: str
- `language_of_code`: str
- `memory_files`: Dict[str, str]

*Output Interface*:
- `code_editor_output`: str
- `temp_code_file_location`: str

*Configuration Parameters*:
- `input_interface`: The input interface of the atomic flow.
- `output_interface`: The output interface of the atomic flow.

<a id="__init__"></a>

# \_\_init\_\_

