uv
5a07923e - Use Metadata10 to parse PKG-INFO of legacy editable (#3450)

Commit
1 year ago
Use Metadata10 to parse PKG-INFO of legacy editable (#3450) It turns out setuptools often uses Metadata-Version 2.1 in their PKG-INFO: https://github.com/hauntsaninja/setuptools/blob/4e766834d72623f3b938f1d4148547ea73af1bf5/setuptools/dist.py#L64 `Metadata23` requires Metadata-Version of at least 2.2. This means that uv doesn't actually recognise legacy editable installations from the most common way you'd actually get legacy editable installations (works great for most legacy editables I make at work though!) Anyway, over here we only need the version and don't care about anything else. Rather than make a `Metadata21`, I just add a version field to `Metadata10`. The one slightly tricky thing is that only Metadata-Version 1.2 and greater guarantee that the [version number is PEP 440 compatible](https://peps.python.org/pep-0345/#version), so I store the version in `Metadata10` as a `String` and only parse to `Version` at time of use. Also did you know that back in 2004, paramiko had a pokemon based versioning system?
Author
Parents
Loading