Tweaked script field arg parsing to strip whitespace almost everywhere
The whitespace sensitivity of field args was starting to be a problem,
mostly for advanced plotmpl.py usage (which tbf might be appropriately
described as "super hacky" in how it uses CLI parameters):
./scripts/plotmpl.py \
-Dcase=" \
bench_rbyd_attr_append, \
bench_rbyd_attr_remove, \
bench_rbyd_attr_fetch, \
..."
This may present problems when parsing CSV files with whitespace, in
theory, maybe. But given the scope of these scripts for littlefs...
just don't do that. Thanks.
This commit is contained in:
+5
-1
@@ -667,7 +667,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+5
-1
@@ -755,7 +755,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+5
-1
@@ -664,7 +664,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+5
-1
@@ -1224,7 +1224,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+5
-1
@@ -1196,7 +1196,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+17
-4
@@ -1423,14 +1423,20 @@ if __name__ == "__main__":
|
|||||||
'-b', '--by',
|
'-b', '--by',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Group by this field. Can rename fields with new_name=old_name.")
|
help="Group by this field. Can rename fields with new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-x',
|
'-x',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Field to use for the x-axis. Can rename fields with "
|
help="Field to use for the x-axis. Can rename fields with "
|
||||||
"new_name=old_name.")
|
"new_name=old_name.")
|
||||||
@@ -1438,13 +1444,20 @@ if __name__ == "__main__":
|
|||||||
'-y',
|
'-y',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Field to use for the y-axis. Can rename fields with "
|
help="Field to use for the y-axis. Can rename fields with "
|
||||||
"new_name=old_name.")
|
"new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
action='append',
|
action='append',
|
||||||
help="Only include results where this field is this value. May include "
|
help="Only include results where this field is this value. May include "
|
||||||
"comma-separated options.")
|
"comma-separated options.")
|
||||||
|
|||||||
+17
-4
@@ -1103,14 +1103,20 @@ if __name__ == "__main__":
|
|||||||
'-b', '--by',
|
'-b', '--by',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Group by this field. Can rename fields with new_name=old_name.")
|
help="Group by this field. Can rename fields with new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-x',
|
'-x',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Field to use for the x-axis. Can rename fields with "
|
help="Field to use for the x-axis. Can rename fields with "
|
||||||
"new_name=old_name.")
|
"new_name=old_name.")
|
||||||
@@ -1118,13 +1124,20 @@ if __name__ == "__main__":
|
|||||||
'-y',
|
'-y',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Field to use for the y-axis. Can rename fields with "
|
help="Field to use for the y-axis. Can rename fields with "
|
||||||
"new_name=old_name.")
|
"new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
action='append',
|
action='append',
|
||||||
help="Only include results where this field is this value. May include "
|
help="Only include results where this field is this value. May include "
|
||||||
"comma-separated options.")
|
"comma-separated options.")
|
||||||
|
|||||||
+5
-1
@@ -701,7 +701,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+5
-1
@@ -620,7 +620,11 @@ if __name__ == "__main__":
|
|||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value.")
|
help="Only include results where this field is this value.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
def __call__(self, parser, namespace, value, option):
|
def __call__(self, parser, namespace, value, option):
|
||||||
|
|||||||
+13
-3
@@ -741,7 +741,10 @@ if __name__ == "__main__":
|
|||||||
'-b', '--by',
|
'-b', '--by',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Group by this field. Can rename fields with new_name=old_name.")
|
help="Group by this field. Can rename fields with new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@@ -749,14 +752,21 @@ if __name__ == "__main__":
|
|||||||
dest='fields',
|
dest='fields',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (
|
type=lambda x: (
|
||||||
lambda k,v=None: (k, v.split(',') if v is not None else ())
|
lambda k, vs=None: (
|
||||||
|
k.strip(),
|
||||||
|
tuple(v.strip() for v in vs.split(','))
|
||||||
|
if vs is not None else ())
|
||||||
)(*x.split('=', 1)),
|
)(*x.split('=', 1)),
|
||||||
help="Show this field. Can rename fields with new_name=old_name.")
|
help="Show this field. Can rename fields with new_name=old_name.")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-D', '--define',
|
'-D', '--define',
|
||||||
dest='defines',
|
dest='defines',
|
||||||
action='append',
|
action='append',
|
||||||
type=lambda x: (lambda k,v: (k, set(v.split(','))))(*x.split('=', 1)),
|
type=lambda x: (
|
||||||
|
lambda k, vs: (
|
||||||
|
k.strip(),
|
||||||
|
{v.strip() for v in vs.split(',')})
|
||||||
|
)(*x.split('=', 1)),
|
||||||
help="Only include results where this field is this value. May include "
|
help="Only include results where this field is this value. May include "
|
||||||
"comma-separated options.")
|
"comma-separated options.")
|
||||||
class AppendSort(argparse.Action):
|
class AppendSort(argparse.Action):
|
||||||
|
|||||||
Reference in New Issue
Block a user