[Distutils] Further extending of setup.py
Ian Bicking
ianb at colorstudy.com
Mon Mar 13 19:03:57 CET 2006
I'd like to get rid of the "paster" script, moving some of what it does
into setup.py or elsewhere.
To a degree that is possible, but I think requires some additions to
setuptools:
* An entry point group that is not globally looked up, like
distutils.commands. This would be a set of commands the package
provides only for itself. I expect it to look like:
[distutils.commands.local]
sql_record = sqlobject.manage.distextension:sql_record
Exactly like what we have currently, just not looked up globally.
* Additionally, or probably even better, something that enumerates
locations for commands. E.g.:
extra_commands=['SQLObject']
And then it would look in the SQLObject egg for
distutils.commands.local, and apply everything found there to this
package. Right now, for instance, buildutils adds a "pytest" command to
every project, even though it only applies to some projects (for some
commands this is ok, like "info", so two different entry points makes
sense). A project could list itself to provide its own custom commands;
I think that won't be too circular. Typically commands you provide for
yourself or someone else are different -- e.g., the SQLObject commands
don't apply to SQLObject itself.
* Everything that can be done on a deployed egg will probably go in
app/egg-specific command-line scripts, and maybe I'll make a little
framework to make these easier to write, but that's entirely an
implementation detail. But I'm also thinking that extra_commands could
be used as a hint to that framework, and would kind of facilitate
coordination of in-development commands with after-deployment commands.
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Distutils-SIG
mailing list