Phillip J. Eby wrote:
For instance, if I have a project that uses SQLObject, I would like to make the SQLObject admin commands available. This way I could do things like "python setup.py sqlcreate", "python setup.py sqlstatus", etc. I want a single setting in setup.py to add all the commands from SQLObject. But I also don't want every setup.py on the system to have these same commands, because they mean nothing for a project that doesn't use SQLObject.
Yep, this is exactly what the setup_requires keyword is for. If SQLObject is the egg with entry points for those commands, then setup_requires=['SQLObject>=0.7b1'] or whatever will do the trick, to the point of downloading SQLObject to the setup directory and installing it there if need be.
(Of course, if SQLObject is already on sys.path due to the easy_install.pth file, then you will get those commands in every project anyway, but oh well.)
That last part is exactly what I'm trying to avoid. If every framework starts publishing 1-5 distutils commands -- and I think most frameworks have that potential -- it's going to be a bit overwhelming. And I don't like that installing SQLObject will needlessly change the entire system's setup.py commands. If packages listed in setup_requires had extra commands loaded, that would work fine. -- Ian Bicking / ianb@colorstudy.com / http://blog.ianbicking.org