Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
c611a5b1
Commit
c611a5b1
authored
Mar 12, 2017
by
Serhiy Storchaka
Committed by
GitHub
Mar 12, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-29746: Update marshal docs to Python 3. (#547)
parent
93710c15
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
29 deletions
+31
-29
Doc/c-api/marshal.rst
Doc/c-api/marshal.rst
+4
-4
Doc/glossary.rst
Doc/glossary.rst
+7
-0
Doc/library/marshal.rst
Doc/library/marshal.rst
+8
-11
Python/marshal.c
Python/marshal.c
+12
-14
No files found.
Doc/c-api/marshal.rst
View file @
c611a5b1
...
...
@@ -34,7 +34,7 @@ unmarshalling. Version 2 uses a binary format for floating point numbers.
.. c:function:: PyObject* PyMarshal_WriteObjectToString(PyObject *value, int version)
Return a
string
object containing the marshalled representation of *value*.
Return a
bytes
object containing the marshalled representation of *value*.
*version* indicates the file format.
...
...
@@ -88,10 +88,10 @@ written using these routines?
:exc:`TypeError`) and returns *NULL*.
.. c:function:: PyObject* PyMarshal_ReadObjectFromString(const char *
string
, Py_ssize_t len)
.. c:function:: PyObject* PyMarshal_ReadObjectFromString(const char *
data
, Py_ssize_t len)
Return a Python object from the data stream in a
character
buffer
containing *len* bytes pointed to by *
string
*.
Return a Python object from the data stream in a
byte
buffer
containing *len* bytes pointed to by *
data
*.
On error, sets the appropriate exception (:exc:`EOFError` or
:exc:`TypeError`) and returns *NULL*.
...
...
Doc/glossary.rst
View file @
c611a5b1
...
...
@@ -131,6 +131,10 @@ Glossary
binary
file
A
:
term
:`
file
object
`
able
to
read
and
write
:
term
:`
bytes
-
like
objects
<
bytes
-
like
object
>`.
Examples
of
binary
files
are
files
opened
in
binary
mode
(``
'rb'
``,
``
'wb'
``
or
``
'rb+'
``),
:
data
:`
sys
.
stdin
.
buffer
`,
:
data
:`
sys
.
stdout
.
buffer
`,
and
instances
of
:
class
:`
io
.
BytesIO
`
and
:
class
:`
gzip
.
GzipFile
`.
..
seealso
::
A
:
term
:`
text
file
`
reads
and
writes
:
class
:`
str
`
objects
.
...
...
@@ -966,6 +970,9 @@ Glossary
A :term:`file object` able to read and write :class:`str` objects.
Often, a text file actually accesses a byte-oriented datastream
and handles the :term:`text encoding` automatically.
Examples of text files are files opened in text mode (``'
r
'`` or ``'
w
'``),
:data:`sys.stdin`, :data:`sys.stdout`, and instances of
:class:`io.StringIO`.
.. seealso::
A :term:`binary file` reads and write :class:`bytes` objects.
...
...
Doc/library/marshal.rst
View file @
c611a5b1
...
...
@@ -49,7 +49,7 @@ For format *version* lower than 3, recursive lists, sets and dictionaries cannot
be written (see below).
There are functions that read/write files as well as functions operating on
string
s.
bytes-like object
s.
The module defines these functions:
...
...
@@ -57,9 +57,7 @@ The module defines these functions:
.. function:: dump(value, file[, version])
Write the value on the open file. The value must be a supported type. The
file must be an open file object such as ``sys.stdout`` or returned by
:func:`open` or :func:`os.popen`. It must be opened in binary mode (``'wb'``
or ``'w+b'``).
file must be a writeable :term:`binary file`.
If the value has (or contains an object that has) an unsupported type, a
:exc:`ValueError` exception is raised --- but garbage data will also be written
...
...
@@ -74,8 +72,7 @@ The module defines these functions:
Read one value from the open file and return it. If no valid value is read
(e.g. because the data has a different Python version's incompatible marshal
format), raise :exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. The
file must be an open file object opened in binary mode (``'rb'`` or
``'r+b'``).
file must be a readable :term:`binary file`.
.. note::
...
...
@@ -85,7 +82,7 @@ The module defines these functions:
.. function:: dumps(value[, version])
Return the
string
that would be written to a file by ``dump(value, file)``. The
Return the
bytes object
that would be written to a file by ``dump(value, file)``. The
value must be a supported type. Raise a :exc:`ValueError` exception if value
has (or contains an object that has) an unsupported type.
...
...
@@ -93,11 +90,11 @@ The module defines these functions:
(see below).
.. function:: loads(
string
)
.. function:: loads(
bytes
)
Convert the
string
to a value. If no valid value is found, raise
:exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra
character
s in the
string
are ignored.
Convert the
:term:`bytes-like object`
to a value. If no valid value is found, raise
:exc:`EOFError`, :exc:`ValueError` or :exc:`TypeError`. Extra
byte
s in the
input
are ignored.
In addition, the following constants are defined:
...
...
Python/marshal.c
View file @
c611a5b1
...
...
@@ -549,7 +549,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p)
w_object
(
co
->
co_lnotab
,
p
);
}
else
if
(
PyObject_CheckBuffer
(
v
))
{
/* Write unknown bytes-like objects as a byte
string
*/
/* Write unknown bytes-like objects as a byte
s object
*/
Py_buffer
view
;
if
(
PyObject_GetBuffer
(
v
,
&
view
,
PyBUF_SIMPLE
)
!=
0
)
{
w_byte
(
TYPE_UNKNOWN
,
p
);
...
...
@@ -1086,7 +1086,7 @@ r_object(RFILE *p)
if
(
PyErr_Occurred
())
break
;
if
(
n
<
0
||
n
>
SIZE32_MAX
)
{
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
string
size out of range)"
);
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
bytes object
size out of range)"
);
break
;
}
v
=
PyBytes_FromStringAndSize
((
char
*
)
NULL
,
n
);
...
...
@@ -1110,7 +1110,7 @@ r_object(RFILE *p)
if
(
PyErr_Occurred
())
break
;
if
(
n
<
0
||
n
>
SIZE32_MAX
)
{
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
unicode
size out of range)"
);
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
string
size out of range)"
);
break
;
}
goto
_read_ascii
;
...
...
@@ -1150,7 +1150,7 @@ r_object(RFILE *p)
if
(
PyErr_Occurred
())
break
;
if
(
n
<
0
||
n
>
SIZE32_MAX
)
{
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
unicode
size out of range)"
);
PyErr_SetString
(
PyExc_ValueError
,
"bad marshal data (
string
size out of range)"
);
break
;
}
if
(
n
!=
0
)
{
...
...
@@ -1612,7 +1612,7 @@ PyMarshal_WriteObjectToString(PyObject *x, int version)
if
(
wf
.
ptr
-
base
>
PY_SSIZE_T_MAX
)
{
Py_DECREF
(
wf
.
str
);
PyErr_SetString
(
PyExc_OverflowError
,
"too much marshal data for a
string
"
);
"too much marshal data for a
bytes object
"
);
return
NULL
;
}
if
(
_PyBytes_Resize
(
&
wf
.
str
,
(
Py_ssize_t
)(
wf
.
ptr
-
base
))
<
0
)
...
...
@@ -1658,8 +1658,7 @@ PyDoc_STRVAR(dump_doc,
"dump(value, file[, version])
\n
\
\n
\
Write the value on the open file. The value must be a supported type.
\n
\
The file must be an open file object such as sys.stdout or returned by
\n
\
open() or os.popen(). It must be opened in binary mode ('wb' or 'w+b').
\n
\
The file must be a writeable binary file.
\n
\
\n
\
If the value has (or contains an object that has) an unsupported type, a
\n
\
ValueError exception is raised - but garbage data will also be written
\n
\
...
...
@@ -1715,8 +1714,7 @@ PyDoc_STRVAR(load_doc,
Read one value from the open file and return it. If no valid value is
\n
\
read (e.g. because the data has a different Python version's
\n
\
incompatible marshal format), raise EOFError, ValueError or TypeError.
\n
\
The file must be an open file object opened in binary mode ('rb' or
\n
\
'r+b').
\n
\
The file must be a readable binary file.
\n
\
\n
\
Note: If an object containing an unsupported type was marshalled with
\n
\
dump(), load() will substitute None for the unmarshallable type."
);
...
...
@@ -1735,7 +1733,7 @@ marshal_dumps(PyObject *self, PyObject *args)
PyDoc_STRVAR
(
dumps_doc
,
"dumps(value[, version])
\n
\
\n
\
Return the
string
that would be written to a file by dump(value, file).
\n
\
Return the
bytes object
that would be written to a file by dump(value, file).
\n
\
The value must be a supported type. Raise a ValueError exception if
\n
\
value has (or contains an object that has) an unsupported type.
\n
\
\n
\
...
...
@@ -1771,8 +1769,8 @@ marshal_loads(PyObject *self, PyObject *args)
PyDoc_STRVAR
(
loads_doc
,
"loads(bytes)
\n
\
\n
\
Convert the bytes
object to a value. If no valid value is found, raise
\n
\
EOFError, ValueError or TypeError. Extra character
s in the input are
\n
\
Convert the bytes
-like object to a value. If no valid value is found,
\n
\
raise EOFError, ValueError or TypeError. Extra byte
s in the input are
\n
\
ignored."
);
static
PyMethodDef
marshal_methods
[]
=
{
...
...
@@ -1810,8 +1808,8 @@ Functions:\n\
\n
\
dump() -- write value to a file
\n
\
load() -- read value from a file
\n
\
dumps() --
write value to a string
\n
\
loads() -- read value from a
string
"
);
dumps() --
marshal value as a bytes object
\n
\
loads() -- read value from a
bytes-like object
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment