|
| 1 | +import sys |
| 2 | +import argparse |
| 3 | +from utils import generate_module_stubs, generate_component_stubs |
| 4 | + |
| 5 | + |
| 6 | +def main(site_package_dir,modules_name,use_pybind11 = False): |
| 7 | + |
| 8 | + work_dir = site_package_dir |
| 9 | + modules = modules_name |
| 10 | + |
| 11 | + #Generate stubs using either pybind11-stubgen or mypy version of stubgen |
| 12 | + |
| 13 | + print(f"Generating stubgen for modules: {modules}") |
| 14 | + |
| 15 | + for module_name in modules: |
| 16 | + generate_module_stubs(module_name, work_dir,use_pybind11) |
| 17 | + |
| 18 | + #Generate stubs for components using the factory |
| 19 | + target_name="Sofa.Component" |
| 20 | + generate_component_stubs(work_dir,target_name) |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +if __name__ == "__main__": |
| 25 | + parser = argparse.ArgumentParser( |
| 26 | + prog='generate_stubs', |
| 27 | + description='Generates python stubs for SOFA modules') |
| 28 | + |
| 29 | + parser.add_argument('--use_pybind11',action='store_true',help='If flag is present, will use pybind11-stubgen instead of mypy stugen') |
| 30 | + parser.add_argument('-d','--site_package_dir',nargs=1,help='Path to the site-package folder containing the SOFA modules') |
| 31 | + parser.add_argument('-m','--modules_name',nargs='+',help='List of modules names to generate stubs for') |
| 32 | + |
| 33 | + args = parser.parse_args() |
| 34 | + |
| 35 | + main(args.site_package_dir,args.modules_name,args.use_pybind11) |
0 commit comments