Ask for function args by Terminal UI / GUI, ensuring the type annotation. Inspired by python-fire, and it maybe need a human-friendly interactive UI.
Install
pip install ask4args -U
Simple Usage
python3 -m ask4args module:function
Terminal UI
GUI
More Usage Examples
from ask4args.core import Ask4Args, Ask4ArgsGUI, Ask4ArgsWeb
from typing import List, Dict
def test_normal_function(a: int, b: int = 2, **args_dict: Dict[str, int]):
assert a == 1
assert b == 2
assert args_dict['c'] == 3
return ('success', vars())
def test_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]
"""
assert a == 1.1
assert b == 2
assert c is False
assert d == 'string'
assert e == 1
assert f == [1, 2, 3]
assert args_dict['h'] == 3
return ('success', vars())
class TestClass(object):
def test_method(self, a: str, b: int = 1):
assert a == ''
assert b == 1
return ('success', vars())
@classmethod
def test_class_method(cls, a: str, b: int = 1):
assert a == ''
assert b == 1
return ('success', vars())
def test_defaults(a: int):
assert a == 1
return ('success', vars())
if __name__ == "__main__":
cls = Ask4Args
pass
TODO