On 29/04/2024 17:15, Jeremy Spewock wrote:
It would be helpful if this top level docstring explained more of how
to use the text parser and some examples of using a small dataclass
that chains some of these methods together. At first glance it wasn't
clear to me why things were done the way they were or what these
methods really provided, but looking at how you use it in the testpmd
shell made more sense.

Ack.

This is declared but I don't see where it is used. There aren't many
typehints in this file, since these types can essentially be anything,
maybe using this could make some things slightly more clear (like, for
example, in eq v1 and v2 are the same type) but in most cases it's
implied so I'm not sure how beneficial this would be regardless.

A remnant of previous code! Well spotted.

Is it simpler to default this to base 10? I assume that's what it'll
be most of the time so we might as well allow users to skip this
parameter.

Base 0 just assumes the base of the number from the number prefix[1]. So
if it's 0xAF it's base 16, 0o755 it's base 8 and so on. Of course base 10 is assumed with no prefix. I can certainly leave it as 10 as default, but is there a benefit to our purpose?

If we just skip instead of raising an exception here, would this solve
the issues caused by the first and last line in the testpmd output?
The check to see if the first line is an invalid port would obviously
still not work, but would it solve the problem of the trailing prompt?

This exception is only raised when a field does not have a default value and there is no value to be assigned. Of course an exception is raised when attempting to construct and omitting a mandatory field, but this one is more meaningful as it provides context on what's wrong.

It is not related to neither trailing/leading strings. These don't affect the functionality of the class. But rather the actual parsing done by the "user".

[1] https://docs.python.org/3.10/library/functions.html#int

Reply via email to