Say I have a package with a console console like
from setuptools import setup setup( name='eg_package', version='0.0.1', description='Trivial test package', packages=[ 'eg_package', ], entry_points={ 'console_scripts': [ 'foo = eg_package.main:main', ] }, )
If I set it with an explicit string tag using egg_info -b mytag , the resulting script has __requires__ = 'eg-package===0.0.1mytag' , i.e. with 3 "=" signs. This happens when the tag is not something ordinary, like b1 for the beta.
At first, I thought it was a mistake, but the setuptools documentation assumes this is a valid request identifier. However, it does not work with older versions of setuptools, which cause problems with our systems.
My question is what does "===" mean and why does modern setuptools use it?
source share