From 207249c348a31e55d90d23780c2e6f8f538ac81e Mon Sep 17 00:00:00 2001 From: Martin Eigenmann Date: Thu, 3 Sep 2020 13:11:28 +0200 Subject: [PATCH 1/2] feat() allows for default values --- userdocker/config/default.py | 9 +++++++++ userdocker/helpers/parser.py | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/userdocker/config/default.py b/userdocker/config/default.py index a9db722..81a556e 100644 --- a/userdocker/config/default.py +++ b/userdocker/config/default.py @@ -117,6 +117,15 @@ ], } +# The following arguments sets default values that can be +# overwritten by the user. +# Do not include these args in ARGS_AVAILABLE or ARGS_ALWAYS +ARGS_DEFAULT = { + 'run': { + #'--memory': '50m' + } +} + # Volume mounts: # - VOLUME_MOUNTS_ALWAYS will be mounted whether the user wants it or not diff --git a/userdocker/helpers/parser.py b/userdocker/helpers/parser.py index 29f41d3..b734886 100644 --- a/userdocker/helpers/parser.py +++ b/userdocker/helpers/parser.py @@ -5,6 +5,7 @@ from ..config import ARGS_ALWAYS from ..config import ARGS_AVAILABLE +from ..config import ARGS_DEFAULT class _PatchThroughAssignmentAction(argparse._AppendAction): @@ -29,6 +30,9 @@ def init_subcommand_parser(parent_parser, scmd): patch_through_args=[], ) + for arg, val in ARGS_DEFAULT.get(scmd, {}).items(): + parser.add_argument(arg, default=[f'{arg}={val}'], dest="patch_through_args", action=_PatchThroughAssignmentAction) + # patch args through _args_seen = [] for args in ARGS_AVAILABLE.get(scmd, []) + ARGS_ALWAYS.get(scmd, []): From b375910a287665e7489958c3ebfa8fed1a5e959d Mon Sep 17 00:00:00 2001 From: Martin Eigenmann Date: Fri, 11 Jun 2021 15:30:14 +0200 Subject: [PATCH 2/2] fix: allow definition of more than one default --- userdocker/helpers/parser.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/userdocker/helpers/parser.py b/userdocker/helpers/parser.py index b734886..78ce27d 100644 --- a/userdocker/helpers/parser.py +++ b/userdocker/helpers/parser.py @@ -31,7 +31,8 @@ def init_subcommand_parser(parent_parser, scmd): ) for arg, val in ARGS_DEFAULT.get(scmd, {}).items(): - parser.add_argument(arg, default=[f'{arg}={val}'], dest="patch_through_args", action=_PatchThroughAssignmentAction) + parser.add_argument(arg, dest="patch_through_args", action=_PatchThroughAssignmentAction) + parser.set_defaults(patch_through_args=parser.get_default('patch_through_args') + [f'{arg}={val}']) # patch args through _args_seen = []