At 06:39 PM 1/30/2009 +0000, Floris Bruynooghe wrote:
On Fri, Jan 30, 2009 at 01:21:12AM +0100, Tarek Ziadé wrote:
> On Fri, Jan 30, 2009 at 12:34 AM, Floris Bruynooghe
> <floris.bruynoo...@gmail.com> wrote:
> > An argument against a generated .py file is that this won't work for
> > single-module python distributions.  But having a .cfg file or
> > something next to the module/package might defeat the point of trying
> > to help the FHS in violating it already.  OTOH .egg-info does that too
> > and seems to be accepted currently.
>
> Well, the egg-info file is the static version of setup.py metadata in some way,
> I would find a new file redundant.
>
> I am really curious though, to see what the file would contain..

I imagine things like libdir, prefix, datadir, docdir and other things
copied from autoconf.  Where the defaults would be something like:

prefix = sys.prefix
libdir = sys.prefix/lib/pythonX.Y/site-packages/pkgname
datadir = sys.prefix/share/mypackage
docdir = sys.prefix/share/doc/mypackage

I'm confused by the above lines: do you mean the *project* name, or the name of some package within the project? What if the project contains no packages, only modules? What is libdir for?


> from my current understanding, and having in mind to introduce such a
> file in a way things
> can gently evolve:
>
> What if an egg-info-like file was present in the package from the very
> beginning,
> describing the package metadata, and used by setup.py, *and* at build time
> by third party tools. (with setup.py knowing that it can be changed at run time)

I don't see why moving all the metadata to egg-info would improve
things.

Moving from code to data means better tool interoperability. setup.py sucks as a format for obtaining data, especially since many distutils newbs hardcode all sorts of rubbish in their setup.py files, like writing to files without paying attention to the command line.


  You could easily(?) deprecate the `package_data' and
`data_files' keywords to setup() and replace them with `doc_files',
`data_files', `man_files', `config_files', etc.  And depending on
which --sysconfdir, --datadir, etc options where used to setup.py
install_egg_info would write the correct values for datadir etc.  The
runtime would then use your pkginfo.get_metadata() to find the files.

...in which case, why not just put all the files in the .egg-info to begin with?

Meanwhile, getting rid of package_data or *requiring* a runtime API to access files is going to be a major barrier to adoption in the short run.

_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to