From patchwork Mon Dec 4 10:24:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Juraj_Linke=C5=A1?= X-Patchwork-Id: 454 Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id C8E604366A; Mon, 4 Dec 2023 11:24:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B129D40DD8; Mon, 4 Dec 2023 11:24:31 +0100 (CET) Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by mails.dpdk.org (Postfix) with ESMTP id 0374D4028C for ; Mon, 4 Dec 2023 11:24:31 +0100 (CET) Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-40838915cecso43541665e9.2 for ; Mon, 04 Dec 2023 02:24:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; s=google; t=1701685470; x=1702290270; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5dt0oGNpqoCZbWd8FbMS1M+XHeE5Mw+LD3qjFQQq4L0=; b=dnng9syqq32y0SBQPOABSyTLXIjlY4JweXJ3iwyGVdn97PMwWsJghHdDYHVt8GAEle 9EJCejIYgr7/ivEZJQ/e+S8mCU6lyLCpkxoA2+Qun6jljHbilDNBQ2Qb+jvu6U3Gfuau Ah4qslNO8CRGZU1OJ+5mujeWkFIpEk32jnHCYfpN68MbiJaGEIfW/QTh2iZ0R9TkDkmP 8pE/whhXix9sSRRjiBxP6qRy3x4CKnkJX/jUAETPiWD49wt6nHEFSCiVF1gdZsuFvo7a 16Q8DCZzA8Hbz4zMob8CRUVVCNYrTX9oiE4GVqnZHjsmTK0nK8LwWp5Xt2TbawR6vYOn jfHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701685470; x=1702290270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5dt0oGNpqoCZbWd8FbMS1M+XHeE5Mw+LD3qjFQQq4L0=; b=BHfRKoxLmeCFW7ksLfBGgFqoQpEZMGfe0xP/tiqZonKTnW8nuLEB4WZm1rHHaf7UKe yrJFLk295UGqDcIi/aU8Y9JIlXJrC9LSsPkoZ6enUPFOjQYbzvI4z7nRAKBGNlP97CiV n8Z9VmxtEIOcL5LZiKAsW297Gd43rzWGSbbvkC4AQYdn4MXozFl9w55HslhypdQSr6o8 uC8ai90HZFR+kQBf0wY7VaHudSHPpK59LAvEHcE6PYXVd1qwSdI+dPaNWfZDL6FedkCJ 8WzubJu8N50tezcANTF9QzhRSPcOFKAY5JWnEtsSOSA+3QJWl7DAFG1sV+EOJQCvhNm2 i6vg== X-Gm-Message-State: AOJu0Yz5N+s1bdCogFaEcddNL8cp9691GQNw1BjzsKyAVuo9wlv4aYvl f8N8CYEOtv6D4/2H1K4S9iWJ7Q== X-Google-Smtp-Source: AGHT+IFvoVEMMoiHfsKhoFTwzKGSJ9/9msnh4XgdHiXuy6xsoz417DuYlqieK5fJDJa8Erq3rJUejg== X-Received: by 2002:a7b:cd0a:0:b0:40b:5e59:da94 with SMTP id f10-20020a7bcd0a000000b0040b5e59da94mr2044181wmj.167.1701685470593; Mon, 04 Dec 2023 02:24:30 -0800 (PST) Received: from jlinkes-PT-Latitude-5530.pantheon.local ([81.89.53.154]) by smtp.gmail.com with ESMTPSA id m28-20020a05600c3b1c00b0040b2b38a1fasm14255415wms.4.2023.12.04.02.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Dec 2023 02:24:30 -0800 (PST) From: =?utf-8?q?Juraj_Linke=C5=A1?= To: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com, jspewock@iol.unh.edu, probb@iol.unh.edu, paul.szczepanek@arm.com, yoan.picchi@foss.arm.com, Luca.Vizzarro@arm.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= Subject: [PATCH v9 00/21] dts: docstrings update Date: Mon, 4 Dec 2023 11:24:08 +0100 Message-Id: <20231204102429.106709-1-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231123151344.162812-1-juraj.linkes@pantheon.tech> References: <20231123151344.162812-1-juraj.linkes@pantheon.tech> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The first commit makes changes to the code. These code changes mainly change the structure of the code so that the actual API docs generation works. There are also some code changes which get reflected in the documentation, such as making functions/methods/attributes private or public. The rest of the commits deal with the actual docstring documentation (from which the API docs are generated). The format of the docstrings is the Google format [0] with PEP257 [1] and some guidelines captured in the last commit of this group covering what the Google format doesn't. The docstring updates are split into many commits to make review possible. When accepted, they may be squashed. The docstrings have been composed in anticipation of [2], adhering to maximum line length of 100. We don't have a tool for automatic docstring formatting, hence the usage of 100 right away to save time. NOTE: The logger.py module is not fully documented, as it's being refactored and the refactor will be submitted in the near future. Documenting it now seems unnecessary. [0] https://google.github.io/styleguide/pyguide.html#s3.8.4-comments-in-classes [1] https://peps.python.org/pep-0257/ [2] https://patches.dpdk.org/project/dpdk/list/?series=29844 v7: Split the series into docstrings and api docs generation and addressed comments. v8: Addressed review comments, all of which were pretty minor - small gramatical changes, a little bit of rewording to remove confusion here and there, additional explanations and so on. v9: Addressed review comments, again all minor grammar fixes. Juraj Linkeš (21): dts: code adjustments for doc generation dts: add docstring checker dts: add basic developer docs dts: exceptions docstring update dts: settings docstring update dts: logger and utils docstring update dts: dts runner and main docstring update dts: test suite docstring update dts: test result docstring update dts: config docstring update dts: remote session docstring update dts: interactive remote session docstring update dts: port and virtual device docstring update dts: cpu docstring update dts: os session docstring update dts: posix and linux sessions docstring update dts: node docstring update dts: sut and tg nodes docstring update dts: base traffic generators docstring update dts: scapy tg docstring update dts: test suites docstring update doc/guides/tools/dts.rst | 73 +++ dts/framework/__init__.py | 12 +- dts/framework/config/__init__.py | 375 +++++++++++++--- dts/framework/config/types.py | 132 ++++++ dts/framework/dts.py | 162 +++++-- dts/framework/exception.py | 156 ++++--- dts/framework/logger.py | 72 ++- dts/framework/remote_session/__init__.py | 80 ++-- .../interactive_remote_session.py | 36 +- .../remote_session/interactive_shell.py | 150 +++++++ dts/framework/remote_session/os_session.py | 284 ------------ dts/framework/remote_session/python_shell.py | 32 ++ .../remote_session/remote/__init__.py | 27 -- .../remote/interactive_shell.py | 131 ------ .../remote_session/remote/python_shell.py | 12 - .../remote_session/remote/remote_session.py | 168 ------- .../remote_session/remote/testpmd_shell.py | 45 -- .../remote_session/remote_session.py | 230 ++++++++++ .../{remote => }/ssh_session.py | 28 +- dts/framework/remote_session/testpmd_shell.py | 84 ++++ dts/framework/settings.py | 188 ++++++-- dts/framework/test_result.py | 301 ++++++++++--- dts/framework/test_suite.py | 236 +++++++--- dts/framework/testbed_model/__init__.py | 29 +- dts/framework/testbed_model/{hw => }/cpu.py | 209 ++++++--- dts/framework/testbed_model/hw/__init__.py | 27 -- dts/framework/testbed_model/hw/port.py | 60 --- .../testbed_model/hw/virtual_device.py | 16 - .../linux_session.py | 70 ++- dts/framework/testbed_model/node.py | 214 ++++++--- dts/framework/testbed_model/os_session.py | 422 ++++++++++++++++++ dts/framework/testbed_model/port.py | 93 ++++ .../posix_session.py | 85 +++- dts/framework/testbed_model/sut_node.py | 238 ++++++---- dts/framework/testbed_model/tg_node.py | 69 ++- .../traffic_generator/__init__.py | 43 ++ .../capturing_traffic_generator.py | 49 +- .../{ => traffic_generator}/scapy.py | 110 +++-- .../traffic_generator.py | 47 +- dts/framework/testbed_model/virtual_device.py | 29 ++ dts/framework/utils.py | 122 ++--- dts/main.py | 19 +- dts/poetry.lock | 12 +- dts/pyproject.toml | 6 +- dts/tests/TestSuite_hello_world.py | 16 +- dts/tests/TestSuite_os_udp.py | 20 +- dts/tests/TestSuite_smoke_tests.py | 61 ++- 47 files changed, 3452 insertions(+), 1628 deletions(-) create mode 100644 dts/framework/config/types.py rename dts/framework/remote_session/{remote => }/interactive_remote_session.py (76%) create mode 100644 dts/framework/remote_session/interactive_shell.py delete mode 100644 dts/framework/remote_session/os_session.py create mode 100644 dts/framework/remote_session/python_shell.py delete mode 100644 dts/framework/remote_session/remote/__init__.py delete mode 100644 dts/framework/remote_session/remote/interactive_shell.py delete mode 100644 dts/framework/remote_session/remote/python_shell.py delete mode 100644 dts/framework/remote_session/remote/remote_session.py delete mode 100644 dts/framework/remote_session/remote/testpmd_shell.py create mode 100644 dts/framework/remote_session/remote_session.py rename dts/framework/remote_session/{remote => }/ssh_session.py (82%) create mode 100644 dts/framework/remote_session/testpmd_shell.py rename dts/framework/testbed_model/{hw => }/cpu.py (50%) delete mode 100644 dts/framework/testbed_model/hw/__init__.py delete mode 100644 dts/framework/testbed_model/hw/port.py delete mode 100644 dts/framework/testbed_model/hw/virtual_device.py rename dts/framework/{remote_session => testbed_model}/linux_session.py (77%) create mode 100644 dts/framework/testbed_model/os_session.py create mode 100644 dts/framework/testbed_model/port.py rename dts/framework/{remote_session => testbed_model}/posix_session.py (73%) create mode 100644 dts/framework/testbed_model/traffic_generator/__init__.py rename dts/framework/testbed_model/{ => traffic_generator}/capturing_traffic_generator.py (68%) rename dts/framework/testbed_model/{ => traffic_generator}/scapy.py (71%) rename dts/framework/testbed_model/{ => traffic_generator}/traffic_generator.py (51%) create mode 100644 dts/framework/testbed_model/virtual_device.py