Skip to content

Python file

PythonFileToolSpec #

Bases: BaseToolSpec

Source code in llama_index/tools/python_file/base.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class PythonFileToolSpec(BaseToolSpec):
    spec_functions = ["function_definitions", "get_function", "get_functions"]

    def __init__(self, file_name: str) -> None:
        f = open(file_name).read()
        self.tree = ast.parse(f)

    def function_definitions(self, external: Optional[bool] = True) -> str:
        """使用此函数获取python文件中所有函数定义的名称和参数。

Args:
    external(可选[bool]):默认为true。如果为false,该函数还将返回以_开头的函数。
"""
        functions = ""
        for node in ast.walk(self.tree):
            if isinstance(node, ast.FunctionDef):
                if external and node.name.startswith("_"):
                    continue
                functions += f"""
name: {node.name}
arguments: {ast.dump(node.args)}
                    """
        return functions

    def get_function(self, name: str) -> str:
        """使用此函数从python文件中获取单个函数定义的名称和参数。

Args:
    name (str): 要检索的函数名称
"""
        for node in ast.walk(self.tree):
            if isinstance(node, ast.FunctionDef):
                if node.name == name:
                    return f"""
name: {node.name}
arguments: {ast.dump(node.args)}
docstring: {ast.get_docstring(node)}
                        """
        return None

    def get_functions(self, names: List[str]) -> str:
        """使用此函数来获取Python文件中一组函数定义的名称和参数。

Args:
    name(List[str]):要检索的函数名称
"""
        functions = ""
        for name in names:
            functions += self.get_function(name) + "\n"
        return functions

function_definitions #

function_definitions(
    external: Optional[bool] = True,
) -> str

使用此函数获取python文件中所有函数定义的名称和参数。

Source code in llama_index/tools/python_file/base.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    def function_definitions(self, external: Optional[bool] = True) -> str:
        """使用此函数获取python文件中所有函数定义的名称和参数。

Args:
    external(可选[bool]):默认为true。如果为false,该函数还将返回以_开头的函数。
"""
        functions = ""
        for node in ast.walk(self.tree):
            if isinstance(node, ast.FunctionDef):
                if external and node.name.startswith("_"):
                    continue
                functions += f"""
name: {node.name}
arguments: {ast.dump(node.args)}
                    """
        return functions

get_function #

get_function(name: str) -> str

使用此函数从python文件中获取单个函数定义的名称和参数。

Parameters:

Name Type Description Default
name str

要检索的函数名称

required
Source code in llama_index/tools/python_file/base.py
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    def get_function(self, name: str) -> str:
        """使用此函数从python文件中获取单个函数定义的名称和参数。

Args:
    name (str): 要检索的函数名称
"""
        for node in ast.walk(self.tree):
            if isinstance(node, ast.FunctionDef):
                if node.name == name:
                    return f"""
name: {node.name}
arguments: {ast.dump(node.args)}
docstring: {ast.get_docstring(node)}
                        """
        return None

get_functions #

get_functions(names: List[str]) -> str

使用此函数来获取Python文件中一组函数定义的名称和参数。

Source code in llama_index/tools/python_file/base.py
47
48
49
50
51
52
53
54
55
56
    def get_functions(self, names: List[str]) -> str:
        """使用此函数来获取Python文件中一组函数定义的名称和参数。

Args:
    name(List[str]):要检索的函数名称
"""
        functions = ""
        for name in names:
            functions += self.get_function(name) + "\n"
        return functions