[Distutils] setuptools: Utility of setup() arguments

Ian Bicking ianb at colorstudy.com
Wed Sep 7 00:59:59 CEST 2005

Phillip J. Eby wrote:
> Only that I personally found editing the files directly to be an 
> enormous pain.  :)

Why?  The only issue I see is that setup.py puts all that data in one 
place, where otherwise it's several separate files to work with.  But 
anyway, I guess I'm thinking about tools to make that manipulation 
easier or more consistent, so I'm apt to consider them separately.

> There are numerous ways to solve your problem, however.  For example, 
> you can create a command that runs egg_info and then rewrites the 
> requires.txt file, and run it before commands that need egg_info.  For 
> example, you could create an alias like:
>     develop = egg_info strict_requires develop
> that runs your "exact_requires" to rewrite the file before running develop.

I think I'd probably want something like:

   strict_install = egg_info --tag-date strict_requires install

I feel like using a specific set of requirements means that the package 
itself is a new version, hence --tag-date.  And the whole thing is best 
done as an entirely new command (strict_install) since this is something 
I'd only do for some installations (not during development, for 
instance), and I don't really want to override an existing command.

I'm a little wary of rewriting something that egg_info writes, because 
egg_info can rewrite it later.  But I suppose the command alias makes it 
into a single operation, so it doesn't seem as fragile.  Though one 
advantage of editing the files is that I could apply strict_requires to 
a tag and commit those changes, encapsulating the exact environment that 
was used when creating that tag.

Ian Bicking  /  ianb at colorstudy.com  /  http://blog.ianbicking.org

More information about the Distutils-SIG mailing list