Well, after thinking over those ideas from last night, I came up with an even better one. The invocations are quite compact, but they should be flexible if I need to mess around.
Looking over the flake8.py file, I see that I want a similar helper setup for options.
Okay, that was, basically speaking, all a fun distraction from the more pressing issue of "how do I hook up the junit output from various commands into junitparser and junit2html?". From an interface perspective, I think I want a helper function that can be invoked from the program-specific helpers to generate the options. Except, no, I'm not sure if that works? Because I can't properly emit the generated requirements until after all of the underlying commands have been built. So, it's like I need some kind of wrapper around the program-specific command builder that can somehow introspect it to extract the relevant data.
I'm not figuring this out tonight, because this is going to get messy really fast. I might think something different in the morning, but right now, the way I'm thinking about this is, this is going to look like "integrate the ideas currently known as MetaBuilder more tightly into the Builder interface". Basically, some kind of Registry-type field that has a MetaBuilder under a field like JUNIT_XML. (Although, since the types are all the same, I shouldn't need to use the "Registry" stuff that I have currently.)
It might not be necessary to track this on the Builder if I can put together the correct interface for constructing and using this stuff. I have some notes on this that I don't want to look over right now, but I'm going to need them.
For now, I'd better get to bed.