Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Feb 5, 2024
2 parents 74dc8ab + 1635bcd commit 92d4553
Showing 1 changed file with 36 additions and 2 deletions.
38 changes: 36 additions & 2 deletions interpreter/core/computer/terminal/languages/jupyter_language.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,5 +379,39 @@ def wrap_in_try_except(code):
return ast.unparse(parsed_code)


def string_to_python(code):
return {"function_name": "def function_name(): ..."}
def string_to_python(code_as_string):
parsed_code = ast.parse(code_as_string)

# Initialize containers for different categories
import_statements = []
functions = []
functions_dict = {}

# Traverse the AST
for node in ast.walk(parsed_code):
# Check for import statements
if isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom):
for alias in node.names:
# Handling the alias in import statements
if alias.asname:
import_statements.append(f"import {alias.name} as {alias.asname}")
else:
import_statements.append(f"import {alias.name}")
# Check for function definitions
elif isinstance(node, ast.FunctionDef):
func_info = {
'name': node.name,
'docstring': ast.get_docstring(node),
'body': '\n '.join(ast.unparse(stmt) for stmt in node.body[1:]) # Excludes the docstring
}
functions.append(func_info)

for func in functions:
# Consolidating import statements and function definition
function_content = '\n'.join(import_statements) + '\n\n'
function_content += f"def {func['name']}():\n \"\"\"{func['docstring']}\"\"\"\n {func['body']}\n"

# Adding to dictionary
functions_dict[func['name']] = function_content

return functions_dict

0 comments on commit 92d4553

Please sign in to comment.