get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 76623,
    "url": "http://patches.dpdk.org/api/patches/76623/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200906013133.26360-11-stephen@networkplumber.org/",
    "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": "<20200906013133.26360-11-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200906013133.26360-11-stephen@networkplumber.org",
    "date": "2020-09-06T01:31:32",
    "name": "[10/11] dpdk-telemetry-client: fix some pylint warnings",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8395f765bb091dde7ca63264fe68ba83f9588632",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "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/20200906013133.26360-11-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 11970,
            "url": "http://patches.dpdk.org/api/series/11970/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11970",
            "date": "2020-09-06T01:31:22",
            "name": "Python script updates",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/11970/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/76623/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/76623/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 16DD7A04C5;\n\tSun,  6 Sep 2020 03:33:21 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DA7A31C190;\n\tSun,  6 Sep 2020 03:31:57 +0200 (CEST)",
            "from mail-pg1-f170.google.com (mail-pg1-f170.google.com\n [209.85.215.170]) by dpdk.org (Postfix) with ESMTP id 9B3171C129\n for <dev@dpdk.org>; Sun,  6 Sep 2020 03:31:53 +0200 (CEST)",
            "by mail-pg1-f170.google.com with SMTP id u13so6306195pgh.1\n for <dev@dpdk.org>; Sat, 05 Sep 2020 18:31:53 -0700 (PDT)",
            "from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127])\n by smtp.gmail.com with ESMTPSA id n127sm10731863pfn.155.2020.09.05.18.31.51\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 05 Sep 2020 18:31:51 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=fKkIOINUQ2FC8wT3qqw/AlsKkaC+NNbLh/FZX952GRc=;\n b=QtHic2I8YnPEKrXGk+KAMd7eYEPpgBhmd9HHleVCrzeC8J7rlhvJnxq8JG9voo1VBU\n dOGX/eBAtEzWYcuE1EcnP9K+obxq5dztlX6LKIPLaHnz7WVzIvPYCUERFKEwMGALindY\n vX6GVs7DbpdiFNCoJ+ZMSbOb6xguN4SUVnREyqmYZKl+G8Oh6iE5NSbpSY6N8ZQCnT2T\n lT4OwWGtEznbhcCYY55wtZDy9drYyNDX1AQr9whXQv+aakB3sZpu2QhXl0kYe+r/HF+A\n rOVlm839TephFKWexSfKjvvzvuCIStnRp8fSag3BgItPs/DWgDNOhBoOfoUUTCPZVxhh\n ufrw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=fKkIOINUQ2FC8wT3qqw/AlsKkaC+NNbLh/FZX952GRc=;\n b=XcayyIqa8yzw4sNoDkCVUJsN3TTy7aqLszh/Q8CcvCR0BDKUN+nkPlGJYki8iCKXoV\n gDZnNxy9zu8MUWNmFUFB9i47fTy6vSJbWAVqxwr0M9QVeyjdTDiYIqL8ePzFg/1d2vli\n oxL71zZqw/E8tRpgzEI+BI7GygjKl4Jt0zwelZ7fxJ7Vht8H/2pq9XQgKTbl1cSiKm23\n MoCgalkjLJd0X0KImTvQr/EtJclYsOYMDOCkeau2ImmkMd12vmafh1gdbDmJzw1vKTOA\n rFBJ75GqwYETGqag5yFKIXunuefEzqWgLI7QeOf8RBIM1nXuR/1wOaXd/vDglooPs694\n 9lAA==",
        "X-Gm-Message-State": "AOAM532xlFc8ZzQ8KXGciImbbvyRUiIjHClcsR7SyM9+eHl1Ic8lk2uI\n hogqRs5PHM/h0a/AmKu4SqvzCCOf5hTxLg==",
        "X-Google-Smtp-Source": "\n ABdhPJzJ8W6xmCGcLERqx2k4Q4X6NOyvNWivpI7D2uvcHihZ1Lp93DLDBoApNthvmlwbG/dUsXhNkA==",
        "X-Received": "by 2002:aa7:84d5:0:b029:13c:1611:653a with SMTP id\n x21-20020aa784d50000b029013c1611653amr13128355pfn.12.1599355912270;\n Sat, 05 Sep 2020 18:31:52 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>",
        "Date": "Sat,  5 Sep 2020 18:31:32 -0700",
        "Message-Id": "<20200906013133.26360-11-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20200906013133.26360-1-stephen@networkplumber.org>",
        "References": "<20200906013133.26360-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 10/11] dpdk-telemetry-client: fix some pylint\n\twarnings",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Convert comments to docstrings as appropriate.\nRemove unnecessary paren in if statement.\nRemove extra whitespace after print.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n usertools/dpdk-telemetry-client.py | 28 ++++++++++++++++++----------\n 1 file changed, 18 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py\nindex fa599046a46b..7a22d1b99864 100755\n--- a/usertools/dpdk-telemetry-client.py\n+++ b/usertools/dpdk-telemetry-client.py\n@@ -32,7 +32,8 @@ def __del__(self):\n \n class Client:\n \n-    def __init__(self): # Creates a client instance\n+    def __init__(self):\n+        ''' Creates a client instance '''\n         self.socket = Socket()\n         self.file_path = None\n         self.choice = None\n@@ -45,16 +46,18 @@ def __del__(self):\n         except:\n             print(\"Error - Client could not be destroyed\")\n \n-    def getFilepath(self, file_path): # Gets arguments from Command-Line and assigns to instance of client\n+    def getFilepath(self, file_path):\n+        '''Gets arguments from Command-Line and assigns to instance of client'''\n         self.file_path = file_path\n \n-    def register(self): # Connects a client to DPDK-instance\n+    def register(self):\n+        '''Connects a client to DPDK-instance'''\n         if os.path.exists(self.file_path):\n             os.unlink(self.file_path)\n         try:\n             self.socket.recv_fd.bind(self.file_path)\n         except socket.error as msg:\n-            print (\"Error - Socket binding error: \" + str(msg) + \"\\n\")\n+            print(\"Error - Socket binding error: \" + str(msg) + \"\\n\")\n         self.socket.recv_fd.settimeout(2)\n         self.socket.send_fd.connect(\"/var/run/dpdk/rte/telemetry\")\n         JSON = (API_REG + self.file_path + \"\\\"}}\")\n@@ -63,16 +66,19 @@ def register(self): # Connects a client to DPDK-instance\n         self.socket.recv_fd.listen(1)\n         self.socket.client_fd = self.socket.recv_fd.accept()[0]\n \n-    def unregister(self): # Unregister a given client\n+    def unregister(self):\n+        ''' Unregister a given client '''\n         self.socket.client_fd.send((API_UNREG + self.file_path + \"\\\"}}\").encode())\n         self.socket.client_fd.close()\n \n-    def requestMetrics(self): # Requests metrics for given client\n+    def requestMetrics(self):\n+        ''' Requests metrics for given client '''\n         self.socket.client_fd.send(METRICS_REQ.encode())\n         data = self.socket.client_fd.recv(BUFFER_SIZE).decode()\n         print(\"\\nResponse: \\n\", data)\n \n-    def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics for given client\n+    def repeatedlyRequestMetrics(self, sleep_time):\n+        ''' Recursively requests metrics for given client '''\n         print(\"\\nPlease enter the number of times you'd like to continuously request Metrics:\")\n         n_requests = int(input(\"\\n:\"))\n         print(\"\\033[F\") #Removes the user input from screen, cleans it up\n@@ -81,12 +87,14 @@ def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics f\n             self.requestMetrics()\n             time.sleep(sleep_time)\n \n-    def requestGlobalMetrics(self): #Requests global metrics for given client\n+    def requestGlobalMetrics(self):\n+        ''' Requests global metrics for given client '''\n         self.socket.client_fd.send(GLOBAL_METRICS_REQ.encode())\n         data = self.socket.client_fd.recv(BUFFER_SIZE).decode()\n         print(\"\\nResponse: \\n\", data)\n \n-    def interactiveMenu(self, sleep_time): # Creates Interactive menu within the script\n+    def interactiveMenu(self, sleep_time):\n+        ''' Creates Interactive menu within the script '''\n         while self.choice != 4:\n             print(\"\\nOptions Menu\")\n             print(\"[1] Send for Metrics for all ports\")\n@@ -116,7 +124,7 @@ def interactiveMenu(self, sleep_time): # Creates Interactive menu within the scr\n \n     sleep_time = 1\n     file_path = \"\"\n-    if (len(sys.argv) == 2):\n+    if len(sys.argv) == 2:\n         file_path = sys.argv[1]\n     else:\n         print(\"Warning - No filepath passed, using default (\" + DEFAULT_FP + \").\")\n",
    "prefixes": [
        "10/11"
    ]
}