[Python-ideas] Add a cryptographic hash (e.g SHA1) of source toPython Compiled objects?
rocky at gnu.org
rocky at gnu.org
Wed Feb 4 10:57:18 CET 2009
Terry Reedy writes:
> rocky at gnu.org wrote:
>
> > Without a doubt you all are much more familiar at this stuff that I
> > am. (In fact I'm a rank novice.) So I'd be grateful if someone would
> > post code for a function say:
> >
> > compare_src_obj(python_src, python_obj)
> >
> > that takes two strings -- a Python source filename and a Python object
> > -- does what's outlined above, and returns a status which indicates
> > the same or if not and if not whether the difference is because of the
> > wrong version of Python was used.
>
> Interesting question. For equaility, I would start with, just guessing
> a bit:
>
> marshal(compile(open(file.py).read())) == open(file.pyc).read()
>
> Specifically for version clash, I believe the first 4 bytes are a magic
> version number. If that is not part of the marshal string, it would
> need to be skipped for the equality comparison.
There's also the mtime that needs to be ignored mentioned in prior
posts. And is there a table which converts a magic number version back
into a string with the Python version number? Thanks.
More information about the Python-ideas
mailing list