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

Reply via email to