At 10:11 AM 12/23/2008 -0500, Rocky Bernstein wrote:
This is useful information and thanks for suggesting the workaround.
However this does not address the issue which is not about how I can
create an unzipped egg for my use or the use of others. (Or what I
did or didn't do to create such an zipped egg).
I am interested in writing tools that work with both zipped an
unzipped eggs. To the extent that setuptools/distutils is
responsible for setting the co_filename field in the code object
what should go inside that field? And how can a programmer reliably
and, if possible, uniformly untangle this to get/report a location.
Distutils and setuptools aren't responsible. Python sets the
co_filename to the original location of the source from which a file
was compiled. So one way to get the source file of a function is to
look in its func_globals for a __file__, and then convert .pyc/.pyo
on the extension to .py.
In Python 2.5 and above, the inspect and linecache modules (among
others) have been modified to support zipped files; they
automatically handle retrieving the source lines via the module
__loader__.get_source() method as well. You may want to look at that
code to see how it's handled, if you're needing to support 2.4 or 2.3
as well as 2.5+.
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig