Python path .resolve() doesn't expand ~, only .. and symlinks!
I religiously do .realpath() pretty much every time I get a path from user input. Naively believing it also expands ~ etc.
Once I forgot and once I entered a non-expanded path myself: ~/this/
Then was tracking it as a bug, and found this bundle of joy:
/home/sh/me/dir~/me/dir/Checkpoints/checkpoint_288
It is in fact not illegal to create a directory called ~ in Unix.
And the things that used it as-is where there, and the things that were using it after a realpath were using another directory.
OK, I resolve()-d it - still the same.
TIL Path.resolve() takes care of symlinks and ..-like components, but not ~. So it should be Path.expanduser().resolve() from now on.
Nel mezzo del deserto posso dire tutto quello che voglio.
comments powered by Disqus