No application developer will quickly figure out what a tilde means. Maybe it means 'roughly', but it requires too much thought and is ambiguous. 2.5 is not roughly 2.5.2. It is the same exactly.
Before we had : Requires-Python: 2.5, 2.6
That made much more sense. It was simple and unambiguous, and is relevant to typical packaging scenarios.
Unfortunately, it is fairly ambiguous, and makes no sense. It means "requires Python 2.5 *AND* requires Python 2.6", which is a requirement that no single version can meet.
No, it means a library requires either python 2.5 *OR* python 2.6 to be installed properly.
If not, the implication is that the user will be prompted to install anyway.