Okay, more good progress. The Pip object has all of the fields that I currently know it'll need, and I wrote the combine method, which was nice and easy relative to the equivalent on CmdMeta, because CmdMeta is still handling the "does not exist on one side" logic, which means I can just assume that the other side exists.
Next up is the resolve method, which I'm going to have to think carefully about. It goes like:
- Locate the environment directory
- Create its parent directory
- Create the environment
- Run the pip command
- Return the command path
With some "obvious" steps to make sure everything sequences properly. The part I want to think about is generating the environment directory. It's basically supposed to be a prefix plus a unique suffix. I think for now I'll just set the prefix as a module constant. So, let's give this a shot...
Well, the code for the resolve method looks good, but I'm trying to get the typing right, and, um... Things are suddenly going very wrong and I'm not sure how to fix them yet.
It looks like I need to redo a bunch of Unions. I strongly suspect that there's a way to get what I want done, done, elegantly, but for now I'll settle for "working".
After I get all of these typing errors resolved, I'll still need to get the pyproject-build stuff ported, but I think at that point I'll be very close to being ready for a release, code-wise if not test-wise.
Anyway, I'm going to publish this and keep grinding away at those type errors; I don't want to keep this entry any longer.