- I undid some of my changes from yesterday, on the grounds that they weren't necessary, and made it harder to do type inference.
- I realized that setting the PIP_CONSTRAINT environment variable made more sense than passing the --find-links argument to pip. I'm not sure if it's clear what use case could be somewhat covered by both of these. Basically, using constraint files was always the right answer for my use case, which is to have a bunch of packages in a repo that depend on each other, and I don't care about what's published. Passing --constraint to pip didn't work here when the packages use flit, because currently pip generates further pip commands that don't respect the constraint files. (This might be less of an issue now, since flit tries to avoid installing so much any more, I think.) BUT, the environment variables get passed through, so PIP_CONSTRAINT handles it. Before I realized this, I was pre-building the wheel files and storing them in a known location, so I could add that location as an index via --find-links. The problem with that approach is that pip wouldn't actually prefer one index to another in any way that mattered to me, and I didn't want to cut off PyPI entirely. The way to require a local version of a package is constraint files, which didn't work for me, until I figured out this workaround, and also flit changed to not require the workaround, but, eh, the workaround makes it cleaner. (And it'll come in handy if I ever roll my own PEP 517 backend for some, presumably terrible, reason.)
Anyway, next I want to switch focus to some systems that won't need such incredibly complicated formats for representing the relevant data, and work on factoring some things out. (For example, most RPG characters have names.)
And, I spaced out and it's late again, so I guess this post is done.