[Distutils] What about an info command?

Greg Ward gward@python.net
Sun, 9 Apr 2000 19:57:26 -0400


On 07 April 2000, Bastian Kleineidam said:
> I'd like to extract some information stored in setup.py, namely
> the package version.

Yeah, good idea.

> A way to provide this is an "info" command. So you can have:
> ./setup.py info [--version,--name,--url,--author,...]

I'm not sure this is the right way to do it.  Although in general I like
the modularity of the "command" system, I think this information is so
fundamental to the distribution that it belongs in the Distribution
class -- note the query methods 'get_name()', 'has_ext_modules()',
etc. that I recently added; this would be in the same vein.

This implies hacking the 'parse_command_line()' in dist.py -- feel free
to refactor this sucker if you spot a good way to break it up.  (...he
inspects the code...)  Let me rephrase that: *please* find a way to
break this method up and refactor it.  And then work in the following
options:

    --name               -> "Distutils"
    --version            -> "0.8"
    --fullname           -> "Distutils-0.8"
    --author             -> "Greg Ward"
    --author-email       -> "gward@python.net"
    --maintainer         -> ""
    --maintainer-email   -> ""
    --contact            -> maintainer if present, else author
    --contact-email      -> maintainer_email if present, else author_email
    --url                -> "http://www.python.org/sigs/distutils-sig/"
    --description        -> "Python Distribution Utilities"

The logic for --name, --version, and --fullname is already in the
'get_name()', 'get_version()', and 'get_full_name()' methods of
Distribution; you should add 'get_contact()' and 'get_contact_email()'
methods to support the two --contact options.  Other than that, direct
attribute access should work.

These methods should all act like --help -- not an error, but once seen,
we won't run any commands, no matter what else is on the command line.

Thanks for the idea -- looking forward to a new patch!

        Greg
-- 
Greg Ward - Linux weenie                                gward@python.net
http://starship.python.net/~gward/
We have always been at war with Oceania.