Bruno Desthuilliers wrote:

I think you broke something somewhere. Assuming you're using Python 2.x (>= 2.3 IIRC), my above code works.


ARGH! Forgot the "delayed staticmethod" line -- in effect I called staticmethod twice:

    @staticmethod
    def print_internal_date(filename):
        f = open(filename + 'c', "rb")
        data = f.read(8)
        mtime = struct.unpack("<i", data[4:])
        return time.asctime(time.gmtime(mtime[0]))

    tagdata = {'compiled_fname': lambda x: x + 'c',
                'size': os.path.getsize,
'internal_date': lambda x: PYFileInfo.print_internal_date.__get__(x)
            }

    # HERE I BROKE IT
    print_internal_date = staticmethod(print_internal_date)

    def __init__(self, fname=None):
        FileInfo.__init__(self,fname)

    def __setitem__(self, key, value):
        FileInfo.__setitem__(self, key, value)
        if key == 'name' and value:
            self.__get_props(value)

    def testit(self, fname):
        self.print_internal_date(fname+'c')
        PYFileInfo.print_internal_date.__get__(fname+'c')


You're right. It works.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to