Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/133906/?format=api
http://patches.dpdk.org/api/patches/133906/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231106171601.160749-6-juraj.linkes@pantheon.tech/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20231106171601.160749-6-juraj.linkes@pantheon.tech>", "list_archive_url": "https://inbox.dpdk.org/dev/20231106171601.160749-6-juraj.linkes@pantheon.tech", "date": "2023-11-06T17:15:43", "name": "[v5,05/23] dts: settings docstring update", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "2111667e992066a828e0cafc8f440b115c4f47ff", "submitter": { "id": 1626, "url": "http://patches.dpdk.org/api/people/1626/?format=api", "name": "Juraj Linkeš", "email": "juraj.linkes@pantheon.tech" }, "delegate": { "id": 2642, "url": "http://patches.dpdk.org/api/users/2642/?format=api", "username": "mcoquelin", "first_name": "Maxime", "last_name": "Coquelin", "email": "maxime.coquelin@redhat.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231106171601.160749-6-juraj.linkes@pantheon.tech/mbox/", "series": [ { "id": 30173, "url": "http://patches.dpdk.org/api/series/30173/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30173", "date": "2023-11-06T17:15:38", "name": "dts: add dts api docs", "version": 5, "mbox": "http://patches.dpdk.org/series/30173/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/133906/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/133906/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id E94C6432BB;\n\tMon, 6 Nov 2023 18:16:49 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 80D8B40ED0;\n\tMon, 6 Nov 2023 18:16:14 +0100 (CET)", "from mail-ej1-f53.google.com (mail-ej1-f53.google.com\n [209.85.218.53]) by mails.dpdk.org (Postfix) with ESMTP id 51BD140C35\n for <dev@dpdk.org>; Mon, 6 Nov 2023 18:16:12 +0100 (CET)", "by mail-ej1-f53.google.com with SMTP id\n a640c23a62f3a-9c2a0725825so695314966b.2\n for <dev@dpdk.org>; Mon, 06 Nov 2023 09:16:12 -0800 (PST)", "from jlinkes-PT-Latitude-5530.. (ip-46.34.243.197.o2inet.sk.\n [46.34.243.197]) by smtp.gmail.com with ESMTPSA id\n s10-20020a170906354a00b009b947aacb4bsm47016eja.191.2023.11.06.09.16.10\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 06 Nov 2023 09:16:11 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1699290972; x=1699895772; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=OsLxKn4mOXV2TuK2LbXZ03RA5dZb5BIPscylrtxoXE4=;\n b=ULB+AdPjvN4wS3C5u8EBqf6IxqbNRVq26auRnVpjcaImo3BMIACzHLDAVli0+Hh5/D\n AHDMWp001V0TUGaNEHH/rwArelsCMUEcRb5SE8oHRQp7MCPJbEeQkUYdnGQBDeJ/9sFe\n sIIY5fV5ySjDKU17iZ47KQuc5G7McGMOdqfrEiwAUDo2vvGLbli6itGaFMhkUd7RrBAP\n OadKYYtU739TpTflv8p/lzz8lBeIxSlLTU1uCxIpbnbjP+qWS8yCrx18Hi7PVr6VowK/\n cu2Xvv+brxcVz52Kk4tqfjemA7rkWuRWFBGPzykffYA/VtkKvqL2zTexg+g51qAkmFqe\n bwBA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1699290972; x=1699895772;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=OsLxKn4mOXV2TuK2LbXZ03RA5dZb5BIPscylrtxoXE4=;\n b=btA0/EOGb6xbHAK2bQmuEH53GMX/A7ZuwhwMOEMDGFXp1HzyIFmS8ODlNYGr9GILQy\n 1GgJRvW8pXwOTgc4Qa33IRDfhSkG3W9yhtV82kXQzfPeP3Mc5LMiMhPmWU20XEwOFDro\n vb0JgK04TtqoX6jFmVEb0Kld6ZaBxNdL4ZeixWNk5MSTlQPTdxWzBXYrdKJ/fCs7seBb\n EY5/lBWl4kazf2s7J6KkuDjVtVMcBqvS6iXmLO9CsB3dXVpRS00Q9p+YaAnEKRNxufpO\n 7hZdBaF3tQB/mQCdnaXaQ8/8FUfxfJ34qTts8ixelQ83HWgDSukunCYmMKTdyiqdM/FH\n 3a2A==", "X-Gm-Message-State": "AOJu0YzpnjcIG/NjBb54NocqvH+KMZKyXZmSNYAb4s9vx0fv21Al+Fun\n uXVLj5mY78Bt65SRJzB3J8uKJQ==", "X-Google-Smtp-Source": "\n AGHT+IGU0OQWAiYYi7Kh9KvTQZP2xwimBVHr2r8ArLMA7dwQ2dLkW4cl4pZypR3V0iAsm8MU9Sjryw==", "X-Received": "by 2002:a17:907:9485:b0:9de:be52:6094 with SMTP id\n dm5-20020a170907948500b009debe526094mr5207195ejc.9.1699290972018;\n Mon, 06 Nov 2023 09:16:12 -0800 (PST)", "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "To": "thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,\n bruce.richardson@intel.com, jspewock@iol.unh.edu, probb@iol.unh.edu,\n paul.szczepanek@arm.com, yoan.picchi@foss.arm.com", "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>", "Subject": "[PATCH v5 05/23] dts: settings docstring update", "Date": "Mon, 6 Nov 2023 18:15:43 +0100", "Message-Id": "<20231106171601.160749-6-juraj.linkes@pantheon.tech>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20231106171601.160749-1-juraj.linkes@pantheon.tech>", "References": "<20230831100407.59865-1-juraj.linkes@pantheon.tech>\n <20231106171601.160749-1-juraj.linkes@pantheon.tech>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "Format according to the Google format and PEP257, with slight\ndeviations.\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\n---\n dts/framework/settings.py | 101 +++++++++++++++++++++++++++++++++++++-\n 1 file changed, 100 insertions(+), 1 deletion(-)", "diff": "diff --git a/dts/framework/settings.py b/dts/framework/settings.py\nindex 7f5841d073..787db7c198 100644\n--- a/dts/framework/settings.py\n+++ b/dts/framework/settings.py\n@@ -3,6 +3,70 @@\n # Copyright(c) 2022-2023 PANTHEON.tech s.r.o.\n # Copyright(c) 2022 University of New Hampshire\n \n+\"\"\"Environment variables and command line arguments parsing.\n+\n+This is a simple module utilizing the built-in argparse module to parse command line arguments,\n+augment them with values from environment variables and make them available across the framework.\n+\n+The command line value takes precedence, followed by the environment variable value,\n+followed by the default value defined in this module.\n+\n+The command line arguments along with the supported environment variables are:\n+\n+.. option:: --config-file\n+.. envvar:: DTS_CFG_FILE\n+\n+ The path to the YAML test run configuration file.\n+\n+.. option:: --output-dir, --output\n+.. envvar:: DTS_OUTPUT_DIR\n+\n+ The directory where DTS logs and results are saved.\n+\n+.. option:: --compile-timeout\n+.. envvar:: DTS_COMPILE_TIMEOUT\n+\n+ The timeout for compiling DPDK.\n+\n+.. option:: -t, --timeout\n+.. envvar:: DTS_TIMEOUT\n+\n+ The timeout for all DTS operation except for compiling DPDK.\n+\n+.. option:: -v, --verbose\n+.. envvar:: DTS_VERBOSE\n+\n+ Set to any value to enable logging everything to the console.\n+\n+.. option:: -s, --skip-setup\n+.. envvar:: DTS_SKIP_SETUP\n+\n+ Set to any value to skip building DPDK.\n+\n+.. option:: --tarball, --snapshot, --git-ref\n+.. envvar:: DTS_DPDK_TARBALL\n+\n+ The path to a DPDK tarball, git commit ID, tag ID or tree ID to test.\n+\n+.. option:: --test-cases\n+.. envvar:: DTS_TESTCASES\n+\n+ A comma-separated list of test cases to execute. Unknown test cases will be silently ignored.\n+\n+.. option:: --re-run, --re_run\n+.. envvar:: DTS_RERUN\n+\n+ Re-run each test case this many times in case of a failure.\n+\n+Attributes:\n+ SETTINGS: The module level variable storing framework-wide DTS settings.\n+\n+Typical usage example::\n+\n+ from framework.settings import SETTINGS\n+ foo = SETTINGS.foo\n+\"\"\"\n+\n import argparse\n import os\n from collections.abc import Callable, Iterable, Sequence\n@@ -16,6 +80,23 @@\n \n \n def _env_arg(env_var: str) -> Any:\n+ \"\"\"A helper method augmenting the argparse Action with environment variables.\n+\n+ If the supplied environment variable is defined, then the default value\n+ of the argument is modified. This satisfies the priority order of\n+ command line argument > environment variable > default value.\n+\n+ Arguments with no values (flags) should be defined using the const keyword argument\n+ (True or False). When the argument is specified, it will be set to const, if not specified,\n+ the default will be stored (possibly modified by the corresponding environment variable).\n+\n+ Other arguments work the same as default argparse arguments, that is using\n+ the default 'store' action.\n+\n+ Returns:\n+ The modified argparse.Action.\n+ \"\"\"\n+\n class _EnvironmentArgument(argparse.Action):\n def __init__(\n self,\n@@ -68,14 +149,28 @@ def __call__(\n \n @dataclass(slots=True)\n class Settings:\n+ \"\"\"Default framework-wide user settings.\n+\n+ The defaults may be modified at the start of the run.\n+ \"\"\"\n+\n+ #:\n config_file_path: Path = Path(__file__).parent.parent.joinpath(\"conf.yaml\")\n+ #:\n output_dir: str = \"output\"\n+ #:\n timeout: float = 15\n+ #:\n verbose: bool = False\n+ #:\n skip_setup: bool = False\n+ #:\n dpdk_tarball_path: Path | str = \"dpdk.tar.xz\"\n+ #:\n compile_timeout: float = 1200\n+ #:\n test_cases: list[str] = field(default_factory=list)\n+ #:\n re_run: int = 0\n \n \n@@ -169,7 +264,7 @@ def _get_parser() -> argparse.ArgumentParser:\n action=_env_arg(\"DTS_RERUN\"),\n default=SETTINGS.re_run,\n type=int,\n- help=\"[DTS_RERUN] Re-run each test case the specified amount of times \"\n+ help=\"[DTS_RERUN] Re-run each test case the specified number of times \"\n \"if a test failure occurs\",\n )\n \n@@ -177,6 +272,10 @@ def _get_parser() -> argparse.ArgumentParser:\n \n \n def get_settings() -> Settings:\n+ \"\"\"Create new settings with inputs from the user.\n+\n+ The inputs are taken from the command line and from environment variables.\n+ \"\"\"\n parsed_args = _get_parser().parse_args()\n return Settings(\n config_file_path=parsed_args.config_file,\n", "prefixes": [ "v5", "05/23" ] }{ "id": 133906, "url": "