Closed FrostyX closed 2 years ago
Minimal reproducer:
[root@abdd4a932efa /]# cat test-file
#! /bin/python
import argparse
def get_parser():
parser = argparse.ArgumentParser()
parser.add_argument("test")
return parser
if __name__ == "__main__":
get_parser().parse_args()
[root@abdd4a932efa /]# argparse-manpage --pyfile test-file --function get_parser
Traceback (most recent call last):
File "/usr/bin/argparse-manpage", line 9, in <module>
load_entry_point('argparse-manpage==2', 'console_scripts', 'argparse-manpage')()
File "/usr/lib/python2.7/site-packages/build_manpages/cli/__init__.py", line 64, in main
parser = get_parser(import_type, import_from, obj_name, obj_type)
File "/usr/lib/python2.7/site-packages/build_manpages/build_manpage.py", line 43, in get_parser
return get_parser_from_file(import_from, objname, objtype)
File "/usr/lib/python2.7/site-packages/build_manpages/build_manpage.py", line 38, in get_parser_from_file
return get_obj(filedict[objname], objtype)
File "/usr/lib/python2.7/site-packages/build_manpages/build_manpage.py", line 19, in get_obj
return obj()
File "test-file", line 6, in get_parser
parser = argparse.ArgumentParser()
AttributeError: 'NoneType' object has no attribute 'ArgumentParser'
And then just with runpy:
[root@abdd4a932efa /]# cat expose
#! /bin/python2
import runpy
translated = runpy.run_path("test-file")
translated["get_parser"]()
[root@abdd4a932efa /]# ./expose
Traceback (most recent call last):
File "./expose", line 5, in <module>
translated["get_parser"]()
File "test-file", line 6, in get_parser
parser = argparse.ArgumentParser()
AttributeError: 'NoneType' object has no attribute 'ArgumentParser'
Quoting @praiskup here:
See https://github.com/praiskup/resalloc/pull/77