[Python-Dev] Where is PyMarshal_ReadShortFromFile() ?
James C. Ahlstrom
jim@interet.com
Fri, 12 Oct 2001 09:45:39 -0400
"Fred L. Drake, Jr." wrote:
>
> James C. Ahlstrom writes:
> > Yes, I think PyMarshal_ReadLongFromFile() and PyMarshal_ReadShortFromFile()
> > are indeed part of Python's public C API, and that is why they were in
> > marshal.c with public declarations.
>
> I think my "should they be?" question remains valid.
Ooops, I meant "they were in marshal.h".
Yes they should be public, because PyMarshal_ReadLongFromFile() is used
in import.c to read the Python byte code signature MAGIC from a *.pyc file.
I need a PyMarshal_ReadShortFromFile() to read zip archives in import.c.
> Modules/_testcapimodule.c.
Thanks, I knew it had to be somewhere but I couldn't find it.
> If the function is being sufficiently covered by other tests, then we
> don't need to add new tests. Since it was missing, I have to presume
> it wasn't being called. That tells me that it either isn't needed at
> all or some test needs to exercise it.
Not true. PyMarshal_ReadLongFromFile() is just a wraper function
for the function r_long() which is used internally by marshal.
Similarly, there is already an r_short() used internally by marshal.
Presumably, marshal would't work if these fail, so I assume they
work. The PyMarshal_ReadShortFromFile() is just a wraper for r_short(),
not new funtionality.
> As for the documentation, I think the discoverability issue I
> brought up indicates that we're doing the right thing -- its a lot
> easier to learn the public API with documentation than without it. I
> don't know about the rest of the PythonLabs group, but I certainly
> find the C API documentaiton useful.
Yes, I find it essential, and wish there were more.
JimA