get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/134793/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 134793,
    "url": "http://patches.dpdk.org/api/patches/134793/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231204102429.106709-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": "<20231204102429.106709-6-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231204102429.106709-6-juraj.linkes@pantheon.tech",
    "date": "2023-12-04T10:24:13",
    "name": "[v9,05/21] dts: settings docstring update",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "7d55227457234e401ffdfd8a730a7c72f649dca4",
    "submitter": {
        "id": 1626,
        "url": "http://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231204102429.106709-6-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 30441,
            "url": "http://patches.dpdk.org/api/series/30441/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30441",
            "date": "2023-12-04T10:24:08",
            "name": "dts: docstrings update",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/30441/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134793/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/134793/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 CDE4E4366A;\n\tMon,  4 Dec 2023 11:25:10 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 549C241060;\n\tMon,  4 Dec 2023 11:24:39 +0100 (CET)",
            "from mail-wm1-f46.google.com (mail-wm1-f46.google.com\n [209.85.128.46]) by mails.dpdk.org (Postfix) with ESMTP id 5DAA040E72\n for <dev@dpdk.org>; Mon,  4 Dec 2023 11:24:36 +0100 (CET)",
            "by mail-wm1-f46.google.com with SMTP id\n 5b1f17b1804b1-40c0873cf84so13881395e9.1\n for <dev@dpdk.org>; Mon, 04 Dec 2023 02:24:36 -0800 (PST)",
            "from jlinkes-PT-Latitude-5530.pantheon.local ([81.89.53.154])\n by smtp.gmail.com with ESMTPSA id\n m28-20020a05600c3b1c00b0040b2b38a1fasm14255415wms.4.2023.12.04.02.24.34\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 04 Dec 2023 02:24:35 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=pantheon.tech; s=google; t=1701685476; x=1702290276; 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=CCNc9kWJ1NNoU6JO0SvKKLXK/BM6pco6XY3SjKbCz6s=;\n b=jFIWKNkfC99P5v0CGsetKAwSeDRHFfkq+vUu29NHVvODQ2n313ImEvGl3SGef6oOpx\n IKmVooYEqCiBkGr8QA31u9ZG4Y4NO/ecN4CByaF1YvI/ooAtOLM8WVXPINbgssjeU+rA\n PFVxaRFePMzo5zG/WTQlg7ApGmtEfSPmNzbRuY2YgVNETitzyrQz6+mKJNGaSfwx3K0s\n 3Bf2Sh83uunpYzlYPjhh6ZlJfQUgeRXdMB8Zpf9Hady+Gptq6igLy9hCp52aEC4BFucv\n TtBO6rhRz0i0ZumxMPZkje/T6Rw9ILTkaHY2xSL8+j39tjxrLRAcIrPVHC64zl07orHW\n yaVg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1701685476; x=1702290276;\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=CCNc9kWJ1NNoU6JO0SvKKLXK/BM6pco6XY3SjKbCz6s=;\n b=PVRGPMBPBqQ6+yXoyYCheu/UPFeuxSltuKunrLje5BHB65WDkHyiY28n9UbPVUx4X1\n 0rDlELFp9zDwUGsYp4P4sAoAmdjaEu06BQmJ4OW/msllg1oNfO/Op4V6IOhz/4YHTEDx\n kHdvDi6DkxQ98wRr2iRQqEYjDrg6Vg25+ckAVmhuXUyX4ZKWAxzyi4k6ZCFZnNbMgo5Y\n YXKRlKftNQz8MlKI71GQoeRXbhhz7oQqSiPh9Wyy3h+V9KRx3P2jn+04ders4ONRLKBO\n U1cWAO8i8DdZmCxau1DTXRmvM0glkk2FErOapmSkjmgXusTKfxZ7XWwWdlFyL8pTM84U\n +fJQ==",
        "X-Gm-Message-State": "AOJu0Yz3Mf9j5KzdIvo+kj1XzKvTSemCIIutRfCCL8v9kMeejq7/HYCc\n RHhR02K70abl5bfGpshClM6ICA==",
        "X-Google-Smtp-Source": "\n AGHT+IEqMUl8pYA9fdU7wlSJJ9qFJ4ZPdRMb+lWPSlpcbYc8aeJ+KT5d8WYYvXh8JmffaAmZeI4npA==",
        "X-Received": "by 2002:a05:600c:3111:b0:40b:5e1e:cf3 with SMTP id\n g17-20020a05600c311100b0040b5e1e0cf3mr2232978wmo.46.1701685476013;\n Mon, 04 Dec 2023 02:24:36 -0800 (PST)",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, jspewock@iol.unh.edu,\n probb@iol.unh.edu, paul.szczepanek@arm.com, yoan.picchi@foss.arm.com,\n Luca.Vizzarro@arm.com",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Subject": "[PATCH v9 05/21] dts: settings docstring update",
        "Date": "Mon,  4 Dec 2023 11:24:13 +0100",
        "Message-Id": "<20231204102429.106709-6-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20231204102429.106709-1-juraj.linkes@pantheon.tech>",
        "References": "<20231123151344.162812-1-juraj.linkes@pantheon.tech>\n <20231204102429.106709-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 | 103 +++++++++++++++++++++++++++++++++++++-\n 1 file changed, 102 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/dts/framework/settings.py b/dts/framework/settings.py\nindex 25b5dcff22..41f98e8519 100644\n--- a/dts/framework/settings.py\n+++ b/dts/framework/settings.py\n@@ -3,6 +3,72 @@\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+The module provides one key module-level variable:\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 +82,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 +151,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@@ -166,7 +263,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@@ -174,6 +271,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": [
        "v9",
        "05/21"
    ]
}