Skip to content

jakecyr/python-code-parse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Code Parser

pipeline status

Simple functions built on Python ast to parse Python code and extract information about functions, parameters, etc.

Used for auto-type-hinting projects.

Install with pip

pip install python_code_parse

Functions

get_function_info_by_name

Returns a FunctionInfo object containing information about a function and it's parameters in a given code string.

get_all_function_info_from_code

Returns a list of FunctionInfo objects, each containing information about a function and it's parameters in a given code string.

replace_function_signature

Replace a function declaration including the parameters (with annotations and default values) and the return type.

function_returns

Returns a boolean value saying if a given function returns a value or None.

Example

Below is the output of running the parser on the example examples/basic_example.py:

from python_code_parse import get_all_function_info_from_code, FunctionInfo
from typing import List

with open("examples/basic_example.py", "r") as f:
    data = f.read()

function_infos: List[FunctionInfo] = get_all_function_info_from_code(data)

print(function_infos)

"""
[
  FunctionInfo(
    name='sum',
    args=[
      FunctionArg(name='a', annotation='int'),
      FunctionArg(name='b', annotation='', default = '1')
    ],
    return_type='None',
    line=1
  ),
  FunctionInfo(
    name='subtract',
    args=[
      FunctionArg(name='a', annotation=''),
      FunctionArg(name='b', annotation='')
    ],
    return_type='int',
    line=5
  ),
  FunctionInfo(
    name='log',
    args=[
      FunctionArg(name='message', annotation='str', special=SpecialArg.kwonlyargs),
    ],
    return_type='None',
    line=9
  )
]
"""

About

Parse Python code and return structured objects with function information.

Resources

Stars

Watchers

Forks

Languages