Coding 2023-03-31
Okay, let's think about MOTR and the Cmd.env field some more. It's arguably inaccurate, but not in a way that matters, to shove everything into one mapping type in each place. So, let's give that a shot.
...
Changing the code seemed to work, but it looks like I made it unhappy...
Okay, that was a legitimate error, a mistype. Fixed easily enough. Now, I'll get the other problem...
And, done.
Now, before I think about continuing the update path here, I should really try to update some of my dependencies.
When I run the latest version of Mypy against the MOTR code base... It complains mightily because of some Extremely Normal code.
...
I slammed into it a few times. Here are the basic issues:
- TypeVars that are restricted to a range of values including a (user-defined?) generic type parameterized with Any no longer unify with that type parameterized with a specific type.
- Sometimes, for some reason, a function that always defines a return type, is considered to not actually return. The heavy use of overload in this area of code may be confusing things.
I can get around the former case by using an unrestricted type variable, which is basically harmless, but I can't even figure out which line is making it complain in the latter case. Like, yes, there are line numbers in the error messages, but those are at usage, so it's kind of already too late, in that the idea that this function can fail to return is already locked in.
Anyway, I'll get back to that later, or not. I made my choices for the cmd module tonight, and I'll call that good enough.
Good night.