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

终端用户界面

demo.gif

图形用户界面

demo2.png

更多用法示例

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(无需执行)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法在spring boot应用程序中启用本机内存跟踪   jakarta ee在Java Web项目上的多窗口   日期将Java时间戳转换为MySQL时间戳,反之亦然   java如何实现异步任务连接到服务器并解析JSON   java为什么我得到索引越界异常?   我们如何在java中以大写字母和小写字母存储同名文件   jni/java:有效不可变本机对象的线程安全发布/共享   Java将文本写入远程文件   int最小硬币算法   java如何设置/获取我在类Vehicle的主方法中创建的类Car的“ford”实例的名称?   java使用计时器在队列已满时重新调度使用者   java从字符串的末尾提取一个子字符串,直到遇到第一个空格为止?   java在SimpleApplication之外正确初始化物理状态