From: Luca Vizzarro <Luca.Vizzarro@arm.com>
To: "Juraj Linkeš" <juraj.linkes@pantheon.tech>, dev@dpdk.org
Cc: Jeremy Spewock <jspewock@iol.unh.edu>,
Paul Szczepanek <paul.szczepanek@arm.com>
Subject: Re: [PATCH v2 3/5] dts: add parsing utility module
Date: Wed, 5 Jun 2024 14:00:57 +0100 [thread overview]
Message-ID: <d1d53ca2-080d-49f6-a310-d05be58cea15@arm.com> (raw)
In-Reply-To: <f954fe9f-d83d-4f05-8670-b7ac64499915@pantheon.tech>
On 05/06/2024 13:19, Juraj Linkeš wrote:
>>>> + return cls.compose(partial(int, base=int_base),
>>>> cls.find(pattern))
>>>> +
>>>> + """============ END PARSER FUNCTIONS ============"""
>>>> +
>>>> + @classmethod
>>>> + def parse(cls, text: str) -> Self:
>>>
>>> Would converting this into __init__(self, text: str) work? Sounds
>>> like we could just use "for field in fields(self)" and then setattr()
>>> to populate the variables.
>>
>> I am not in favour of overriding the constructor, as I see the parsing
>> ability as an extension to the class.
>
> Well, the class should primarily do the parsing (based on its name), so
> everything else is an extension in my mind >> Nonetheless, this would make sense if we think that this would be used
>> exclusively for objects that need to be parsed in order to be
>> constructed. I purposefully left the flexibility open, but if we don't
>> think it'll ever be needed, then it's not a game changer to me.
>
> Everything about the class indicates (or outright says) that parsing
> should be the only purpose. I can't really imagine what else we could
> add (in this state, an instance before calling parse() would be just the
> text with fields containing function in the metadata needed for parsing
> - what else is there to do with this data?). Can you elaborate if you
> can think of something?
>
> And again, that said, it doesn't matter much, but I like the constructor
> as it really doesn't look like the class could (or should) do anything
> else than parsing text.
I think there is some confusion going on. The class is any data object
like TestPmdPort. TextParser is an implementation of a parsing
functionality, a Protocol/interface with a pre-implemented
functionality, which can be added as an extension.
The only way this would make sense is if these data objects are actually
"text representation to object adapters". If we are exclusively
interpreting them as such, then yes, it would totally make sense to
bring a custom constructor. But if we will need to re-use the objects
for other reasons aside from parsing, then we may have to revert to the
current implementation.
next prev parent reply other threads:[~2024-06-05 13:01 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-12 11:11 [PATCH 0/5] dts: testpmd show port info/stats Luca Vizzarro
2024-04-12 11:11 ` [PATCH 1/5] dts: fix InteractiveShell command prompt filtering Luca Vizzarro
2024-04-16 8:40 ` Juraj Linkeš
2024-04-16 12:12 ` Luca Vizzarro
2024-04-17 13:06 ` Juraj Linkeš
2024-04-17 14:17 ` Luca Vizzarro
2024-04-18 6:31 ` Juraj Linkeš
2024-04-29 16:16 ` Jeremy Spewock
2024-04-12 11:11 ` [PATCH 2/5] dts: skip first line of send_command output Luca Vizzarro
2024-04-16 8:48 ` Juraj Linkeš
2024-04-16 12:15 ` Luca Vizzarro
2024-04-17 13:18 ` Juraj Linkeš
2024-04-29 15:18 ` Jeremy Spewock
2024-06-14 18:58 ` Nicholas Pratte
2024-04-12 11:11 ` [PATCH 3/5] dts: add parsing utility module Luca Vizzarro
2024-04-16 8:59 ` Juraj Linkeš
2024-04-16 12:16 ` Luca Vizzarro
2024-04-29 16:15 ` Jeremy Spewock
2024-04-30 10:49 ` Luca Vizzarro
2024-04-30 20:03 ` Jeremy Spewock
2024-04-12 11:11 ` [PATCH 4/5] dts: add `show port info` command to TestPmdShell Luca Vizzarro
2024-04-16 9:03 ` Juraj Linkeš
2024-04-16 12:24 ` Luca Vizzarro
2024-04-17 13:22 ` Juraj Linkeš
2024-04-17 14:25 ` Luca Vizzarro
2024-04-17 15:29 ` Luca Vizzarro
2024-04-18 6:41 ` Juraj Linkeš
2024-04-18 10:52 ` Luca Vizzarro
2024-04-12 11:11 ` [PATCH 5/5] dts: add `show port stats` " Luca Vizzarro
2024-04-16 9:04 ` Juraj Linkeš
2024-04-29 15:54 ` Jeremy Spewock
2024-04-30 10:51 ` Luca Vizzarro
2024-05-09 11:26 ` [PATCH v2 0/5] dts: testpmd show port info/stats Luca Vizzarro
2024-05-09 11:26 ` [PATCH v2 1/5] dts: fix InteractiveShell command prompt filtering Luca Vizzarro
2024-05-31 21:06 ` Jeremy Spewock
2024-06-04 13:57 ` Juraj Linkeš
2024-05-09 11:26 ` [PATCH v2 2/5] dts: skip first line of send command output Luca Vizzarro
2024-05-31 21:06 ` Jeremy Spewock
2024-06-04 13:58 ` Juraj Linkeš
2024-05-09 11:26 ` [PATCH v2 3/5] dts: add parsing utility module Luca Vizzarro
2024-05-31 21:06 ` Jeremy Spewock
2024-06-04 15:13 ` Juraj Linkeš
2024-06-05 10:35 ` Luca Vizzarro
2024-06-05 12:19 ` Juraj Linkeš
2024-06-05 13:00 ` Luca Vizzarro [this message]
2024-05-09 11:26 ` [PATCH v2 4/5] dts: add `show port info` command to TestPmdShell Luca Vizzarro
2024-05-31 21:06 ` Jeremy Spewock
2024-06-03 9:11 ` Luca Vizzarro
2024-06-04 15:40 ` Juraj Linkeš
2024-06-05 11:03 ` Luca Vizzarro
2024-05-09 11:26 ` [PATCH v2 5/5] dts: add `show port stats` " Luca Vizzarro
2024-05-20 14:26 ` Nicholas Pratte
2024-05-21 15:00 ` Luca Vizzarro
2024-05-31 21:07 ` Jeremy Spewock
2024-06-04 15:44 ` Juraj Linkeš
2024-06-05 11:04 ` Luca Vizzarro
2024-06-05 14:44 ` [PATCH v3 0/5] dts: testpmd show port info/stats Luca Vizzarro
2024-06-05 14:45 ` [PATCH v3 1/5] dts: fix InteractiveShell command prompt filtering Luca Vizzarro
2024-06-05 14:45 ` [PATCH v3 2/5] dts: skip first line of send command output Luca Vizzarro
2024-06-05 14:45 ` [PATCH v3 3/5] dts: add parsing utility module Luca Vizzarro
2024-06-05 14:45 ` [PATCH v3 4/5] dts: add `show port info` command to TestPmdShell Luca Vizzarro
2024-06-05 14:45 ` [PATCH v3 5/5] dts: add `show port stats` " Luca Vizzarro
2024-06-06 9:17 ` [PATCH v4 0/5] dts: testpmd show port info/stats Luca Vizzarro
2024-06-06 9:17 ` [PATCH v4 1/5] dts: fix InteractiveShell command prompt filtering Luca Vizzarro
2024-06-06 18:52 ` Jeremy Spewock
2024-06-06 9:17 ` [PATCH v4 2/5] dts: skip first line of send command output Luca Vizzarro
2024-06-06 18:52 ` Jeremy Spewock
2024-06-06 9:17 ` [PATCH v4 3/5] dts: add parsing utility module Luca Vizzarro
2024-06-06 18:52 ` Jeremy Spewock
2024-06-06 21:14 ` Luca Vizzarro
2024-06-06 9:17 ` [PATCH v4 4/5] dts: add `show port info` command to TestPmdShell Luca Vizzarro
2024-06-06 18:52 ` Jeremy Spewock
2024-06-06 9:17 ` [PATCH v4 5/5] dts: add `show port stats` " Luca Vizzarro
2024-06-06 18:53 ` Jeremy Spewock
2024-06-06 21:34 ` [PATCH v5 0/5] dts: testpmd show port info/stats Luca Vizzarro
2024-06-06 21:34 ` [PATCH v5 1/5] dts: fix InteractiveShell command prompt filtering Luca Vizzarro
2024-06-07 11:15 ` Juraj Linkeš
2024-06-07 13:10 ` Jeremy Spewock
2024-06-14 20:05 ` Nicholas Pratte
2024-06-06 21:34 ` [PATCH v5 2/5] dts: skip first line of send command output Luca Vizzarro
2024-06-07 11:16 ` Juraj Linkeš
2024-06-07 13:10 ` Jeremy Spewock
2024-06-06 21:34 ` [PATCH v5 3/5] dts: add parsing utility module Luca Vizzarro
2024-06-07 11:16 ` Juraj Linkeš
2024-06-07 13:11 ` Jeremy Spewock
2024-06-14 17:39 ` Nicholas Pratte
2024-06-06 21:34 ` [PATCH v5 4/5] dts: add `show port info` command to TestPmdShell Luca Vizzarro
2024-06-07 11:16 ` Juraj Linkeš
2024-06-07 13:11 ` Jeremy Spewock
2024-06-14 17:36 ` Nicholas Pratte
2024-06-06 21:34 ` [PATCH v5 5/5] dts: add `show port stats` " Luca Vizzarro
2024-06-07 11:16 ` Juraj Linkeš
2024-06-07 13:11 ` Jeremy Spewock
2024-06-14 17:34 ` Nicholas Pratte
2024-06-20 3:04 ` [PATCH v5 0/5] dts: testpmd show port info/stats Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d1d53ca2-080d-49f6-a310-d05be58cea15@arm.com \
--to=luca.vizzarro@arm.com \
--cc=dev@dpdk.org \
--cc=jspewock@iol.unh.edu \
--cc=juraj.linkes@pantheon.tech \
--cc=paul.szczepanek@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).