<div dir="ltr"><div class="gmail_default" style="font-family:arial,sans-serif">Both good points, I'll be sure to add/adjust those docstrings.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 16, 2023 at 1:05 PM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Nov 13, 2023 at 9:28 PM <<a href="mailto:jspewock@iol.unh.edu" target="_blank">jspewock@iol.unh.edu</a>> wrote:<br>
><br>
> From: Jeremy Spewock <<a href="mailto:jspewock@iol.unh.edu" target="_blank">jspewock@iol.unh.edu</a>><br>
><br>
> Adds methods in both os_session and linux session to allow for setting<br>
> MTU of port interfaces in an OS agnostic way.<br>
><br>
> Signed-off-by: Jeremy Spewock <<a href="mailto:jspewock@iol.unh.edu" target="_blank">jspewock@iol.unh.edu</a>><br>
> ---<br>
>  dts/framework/remote_session/linux_session.py | 7 +++++++<br>
>  dts/framework/remote_session/os_session.py    | 9 +++++++++<br>
>  2 files changed, 16 insertions(+)<br>
><br>
> diff --git a/dts/framework/remote_session/linux_session.py b/dts/framework/remote_session/linux_session.py<br>
> index a3f1a6bf3b..dab68d41b1 100644<br>
> --- a/dts/framework/remote_session/linux_session.py<br>
> +++ b/dts/framework/remote_session/linux_session.py<br>
> @@ -196,6 +196,13 @@ def configure_port_ip_address(<br>
>              verify=True,<br>
>          )<br>
><br>
> +    def configure_port_mtu(self, mtu: int, port: Port) -> None:<br>
<br>
This is missing a docstring.<br>
The way I've decided to document these overridden abstract methods is<br>
to just to link to the superclass's method, used heavily in<br>
<a href="https://patches.dpdk.org/project/dpdk/patch/20231115130959.39420-17-juraj.linkes@pantheon.tech/" rel="noreferrer" target="_blank">https://patches.dpdk.org/project/dpdk/patch/20231115130959.39420-17-juraj.linkes@pantheon.tech/</a>:<br>
"""Overrides :meth:`~.os_session.OSSession.configure_port_mtu`."""<br>
<br>
The docstring checker complains if the docstring is missing. There may<br>
be better ways, such as with @typing.override (but that requires<br>
Python 3.12 or typing_extensions, but there's a bug in Pylama that<br>
prevents us from using that solution:<br>
<a href="https://github.com/klen/pylama/pull/247" rel="noreferrer" target="_blank">https://github.com/klen/pylama/pull/247</a>).<br>
<br>
> +        self.send_command(<br>
> +            f"ip link set dev {port.logical_name} mtu {mtu}",<br>
> +            privileged=True,<br>
> +            verify=True,<br>
> +        )<br>
> +<br>
>      def configure_ipv4_forwarding(self, enable: bool) -> None:<br>
>          state = 1 if enable else 0<br>
>          self.send_command(f"sysctl -w net.ipv4.ip_forward={state}", privileged=True)<br>
> diff --git a/dts/framework/remote_session/os_session.py b/dts/framework/remote_session/os_session.py<br>
> index 8a709eac1c..c038f78b79 100644<br>
> --- a/dts/framework/remote_session/os_session.py<br>
> +++ b/dts/framework/remote_session/os_session.py<br>
> @@ -277,6 +277,15 @@ def configure_port_ip_address(<br>
>          Configure (add or delete) an IP address of the input port.<br>
>          """<br>
><br>
> +    @abstractmethod<br>
> +    def configure_port_mtu(self, mtu: int, port: Port) -> None:<br>
> +        """Configure MTU on a given port.<br>
> +<br>
> +        Args:<br>
> +            mtu: Desired MTU value.<br>
> +            port: Port to set the MTU on.<br>
> +        """<br>
<br>
I've compiled the rules for composing docstrings here:<br>
<a href="https://patches.dpdk.org/project/dpdk/patch/20231115130959.39420-4-juraj.linkes@pantheon.tech/" rel="noreferrer" target="_blank">https://patches.dpdk.org/project/dpdk/patch/20231115130959.39420-4-juraj.linkes@pantheon.tech/</a>.<br>
<br>
The relevant part here is:<br>
<br>
When referencing a parameter of a function or a method in their<br>
docstring, don't use<br>
any articles and put the parameter into single backticks. This mimics<br>
the style of<br>
`Python's documentation <<a href="https://docs.python.org/3/index.html" rel="noreferrer" target="_blank">https://docs.python.org/3/index.html</a>>`_.<br>
<br>
Both the mtu and the port parameters are mentioned, so they should be<br>
without articles and in backticks.<br>
<br>
> +<br>
>      @abstractmethod<br>
>      def configure_ipv4_forwarding(self, enable: bool) -> None:<br>
>          """<br>
> --<br>
> 2.42.0<br>
><br>
</blockquote></div>