Commit 4b80ef54 authored by Mark Dickinson's avatar Mark Dickinson

Issue #8973: Add __all__ to struct module, so that help(struct) correctly

displays information for the struct.Struct class.
parent 3a810e68
__all__ = [
# Functions
'calcsize', 'pack', 'unpack', 'unpack', 'unpack_from',
# Classes
'Struct',
# Exceptions
'error'
]
from _struct import *
from _struct import _clearcache
from _struct import __doc__
......@@ -1299,6 +1299,9 @@ Library
Extension Modules
-----------------
- Issue #8973: Add __all__ to struct module; this ensures that
help(struct) includes documentation for the struct.Struct class.
- Issue #3129: Trailing digits in format string are no longer ignored.
For example, "1" or "ilib123" are now invalid formats and cause
``struct.error`` to be raised.
......
......@@ -1398,9 +1398,8 @@ fail:
PyDoc_STRVAR(s_unpack__doc__,
"S.unpack(buffer) -> (v1, v2, ...)\n\
\n\
Return tuple containing values unpacked according to this Struct's format.\n\
Requires len(buffer) == self.size. See struct.__doc__ for more on format\n\
strings.");
Return a tuple containing values unpacked according to S.format. Requires\n\
len(buffer) == S.size. See help(struct) for more on format strings.");
static PyObject *
s_unpack(PyObject *self, PyObject *input)
......@@ -1426,12 +1425,10 @@ s_unpack(PyObject *self, PyObject *input)
}
PyDoc_STRVAR(s_unpack_from__doc__,
"S.unpack_from(buffer[, offset]) -> (v1, v2, ...)\n\
"S.unpack_from(buffer[, offset=0]) -> (v1, v2, ...)\n\
\n\
Return tuple containing values unpacked according to this Struct's format.\n\
Unlike unpack, unpack_from can unpack values from any object supporting\n\
the buffer API, not just str. Requires len(buffer[offset:]) >= self.size.\n\
See struct.__doc__ for more on format strings.");
Return a tuple containing values unpacked according to S.format. Requires\n\
len(buffer[offset:]) >= S.size. See help(struct) for more on format strings.");
static PyObject *
s_unpack_from(PyObject *self, PyObject *args, PyObject *kwds)
......@@ -1566,8 +1563,8 @@ s_pack_internal(PyStructObject *soself, PyObject *args, int offset, char* buf)
PyDoc_STRVAR(s_pack__doc__,
"S.pack(v1, v2, ...) -> bytes\n\
\n\
Return a bytes containing values v1, v2, ... packed according to this\n\
Struct's format. See struct.__doc__ for more on format strings.");
Return a bytes object containing values v1, v2, ... packed according to\n\
S.format. See help(struct) for more on format strings.");
static PyObject *
s_pack(PyObject *self, PyObject *args)
......@@ -1603,10 +1600,9 @@ s_pack(PyObject *self, PyObject *args)
PyDoc_STRVAR(s_pack_into__doc__,
"S.pack_into(buffer, offset, v1, v2, ...)\n\
\n\
Pack the values v1, v2, ... according to this Struct's format, write \n\
the packed bytes into the writable buffer buf starting at offset. Note\n\
that the offset is not an optional argument. See struct.__doc__ for \n\
more on format strings.");
Pack the values v1, v2, ... according to S.format and write the packed bytes\n\
into the writable buffer buf starting at offset. Note that the offset is not\n\
an optional argument. See help(struct) for more on format strings.");
static PyObject *
s_pack_into(PyObject *self, PyObject *args)
......@@ -1796,7 +1792,10 @@ calcsize(PyObject *self, PyObject *fmt)
}
PyDoc_STRVAR(pack_doc,
"Return bytes containing values v1, v2, ... packed according to fmt.");
"pack(fmt, v1, v2, ...) -> bytes\n\
\n\
Return a bytes object containing values v1, v2, ... packed according to fmt.\n\
See help(struct) for more on format strings.");
static PyObject *
pack(PyObject *self, PyObject *args)
......@@ -1825,8 +1824,11 @@ pack(PyObject *self, PyObject *args)
}
PyDoc_STRVAR(pack_into_doc,
"Pack the values v1, v2, ... according to fmt.\n\
Write the packed bytes into the writable buffer buf starting at offset.");
"pack_into(fmt, buffer, offset, v1, v2, ...)\n\
\n\
Pack the values v1, v2, ... according to fmt and write the packed bytes into\n\
the writable buffer buf starting at offset. Note that the offset is not an\n\
optional argument. See help(struct) for more on format strings.");
static PyObject *
pack_into(PyObject *self, PyObject *args)
......@@ -1855,8 +1857,10 @@ pack_into(PyObject *self, PyObject *args)
}
PyDoc_STRVAR(unpack_doc,
"Unpack the bytes containing packed C structure data, according to fmt.\n\
Requires len(bytes) == calcsize(fmt).");
"unpack(fmt, buffer) -> (v1, v2, ...)\n\
\n\
Return a tuple containing values unpacked according to fmt. Requires\n\
len(buffer) == calcsize(fmt). See help(struct) for more on format strings.");
static PyObject *
unpack(PyObject *self, PyObject *args)
......@@ -1875,8 +1879,11 @@ unpack(PyObject *self, PyObject *args)
}
PyDoc_STRVAR(unpack_from_doc,
"Unpack the buffer, containing packed C structure data, according to\n\
fmt, starting at offset. Requires len(buffer[offset:]) >= calcsize(fmt).");
"unpack_from(fmt, buffer[, offset=0]) -> (v1, v2, ...)\n\
\n\
Return a tuple containing values unpacked according to fmt. Requires\n\
len(buffer[offset:]) >= calcsize(fmt). See help(struct) for more on format\n\
strings.");
static PyObject *
unpack_from(PyObject *self, PyObject *args, PyObject *kwds)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment