From 5125c8da2ca76df022650aaeb6830af392362933 Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 29 Aug 2022 17:01:14 +0900 Subject: [PATCH] First commit --- pargs.py | 27 +++++++++++++++++++++++++++ tests/test_appname.py | 10 ++++++++++ 2 files changed, 37 insertions(+) create mode 100644 pargs.py create mode 100644 tests/test_appname.py diff --git a/pargs.py b/pargs.py new file mode 100644 index 0000000..3ce4c4c --- /dev/null +++ b/pargs.py @@ -0,0 +1,27 @@ +import sys + + +def parse_args(argv=None): + argv = argv if argv else sys.argv + print(argv) + args = [arg for arg in argv if not arg.startswith('-')] + argv = [arg for arg in argv if arg not in args] + # kwargs = {key: value for key, value in value.split('=') if value.startswith('-') and '=' in value} + # myDict = { k:v for (k,v) in zip(keys, values)} + kwargs = {} + + print(argv) + print(args) + print(kwargs) + + return args, kwargs + + +if __name__ == '__main__': + parse_args([ + '/home/pat/Git/pargs/pargs.py', + 'command', + 'positional', + '--flag', + '--optional=value' + ]) \ No newline at end of file diff --git a/tests/test_appname.py b/tests/test_appname.py new file mode 100644 index 0000000..8d343c5 --- /dev/null +++ b/tests/test_appname.py @@ -0,0 +1,10 @@ +import sys +import pytest +from pargs import parse_args + + +def test_get_appname(): + _input = 'appname command positional --flag --optional=value' + args, kwargs = parse_args(_input.split()) + assert args == ['appname', 'command', 'positional'] + assert kwargs == {'flag': True, 'optional': 'value'} \ No newline at end of file