PythonFirelike,通过终端UI/GUI请求函数参数,确保类型注释。阅读更多:https://github.com/ClericPy/ask4args。
ask4args的Python项目详细描述
Ask4args
通过终端UI/GUI请求函数参数,确保类型注释。灵感来自python-fire,它可能需要一个人性化的交互式UI。在
安装
pip install ask4args -U
简单用法
python3 -m ask4args module:function
终端用户界面
图形用户界面更多用法示例
fromask4args.coreimportAsk4Args,Ask4ArgsGUI,Ask4ArgsWebfromtypingimportList,Dictdeftest_normal_function(a:int,b:int=2,**args_dict:Dict[str,int]):# first a value=1, args_dict['c']=3, others use default.# press 1, enter, enter, enter, c, enter, 3, enter, enterasserta==1assertb==2assertargs_dict['c']==3return('success',vars())deftest_keyword_only_function(a:float,b:int=2,*,c:bool=False,d:str='string',e:int=None,f:List[int]=None,**args_dict:Dict[str,int]):"""Read the doc, and test kw-only args. :param a: one float num :type a: float :param b: one int num, defaults to 4 :type b: int, optional :param c: boolen arg, defaults to False :type c: bool, optional :param d: string arg, defaults to 'string' :type d: str, optional :return: return the args_dict :rtype: Dict[str, list] """asserta==1.1assertb==2assertcisFalseassertd=='string'asserte==1assertf==[1,2,3]assertargs_dict['h']==3return('success',vars())classTestClass(object):deftest_method(self,a:str,b:int=1):asserta==''assertb==1return('success',vars())@classmethoddeftest_class_method(cls,a:str,b:int=1):asserta==''assertb==1return('success',vars())deftest_defaults(a:int):asserta==1return('success',vars())if__name__=="__main__":# cls = Ask4ArgsWebcls=Ask4Args# cls = Ask4ArgsGUI# =====================# =====================# ('success', {'a': 1, 'b': 2, 'args_dict': {'c': 3}})# cls(test_normal_function).run()# =====================# ('success', {'a': 1.1, 'b': 2, 'c': False, 'd': 'string', 'e': 1, 'f': [1, 2, 3], 'args_dict': {'h': 3}})# cls(test_keyword_only_function,# choices={# 'e': [1, 2, 3, 4, 5]# },# checkboxes={# 'f': [1, 2, 3, 4, 5]# }).run()# =====================# cls(TestClass().test_method).run()# =====================# cls(TestClass().test_class_method).run()# =====================# cls(test_defaults, defaults={'a': 1}).run()pass
待办事项
- [x] 终端用户界面
- [x] 图形用户界面
- []
Web UI(无需执行)
- 项目
标签: