mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Merged revisions 86537,86867-86868,86881,86887,86913-86915,86931-86933,86960,86964,86974,86980,86996,87008,87050 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k ........ r86537 | georg.brandl | 2010-11-19 23:09:04 +0100 (Fr, 19 Nov 2010) | 1 line Do not put a raw REPLACEMENT CHARACTER in the document. ........ r86867 | georg.brandl | 2010-11-29 15:50:54 +0100 (Mo, 29 Nov 2010) | 1 line Fix indentation bug. ........ r86868 | georg.brandl | 2010-11-29 15:53:15 +0100 (Mo, 29 Nov 2010) | 1 line Fix heading style inconsistencies. ........ r86881 | georg.brandl | 2010-11-30 08:43:28 +0100 (Di, 30 Nov 2010) | 1 line #10584: fix bad links. ........ r86887 | georg.brandl | 2010-11-30 15:57:54 +0100 (Di, 30 Nov 2010) | 1 line Fix typo. ........ r86913 | georg.brandl | 2010-12-01 16:32:43 +0100 (Mi, 01 Dez 2010) | 1 line Add missing word, and add a better reference to the actual function. ........ r86914 | georg.brandl | 2010-12-01 16:36:33 +0100 (Mi, 01 Dez 2010) | 1 line #10594: fix parameter names in PyList API docs. ........ r86915 | georg.brandl | 2010-12-01 16:44:25 +0100 (Mi, 01 Dez 2010) | 1 line Fix some markup and style in the unittest docs. ........ r86931 | georg.brandl | 2010-12-02 10:06:12 +0100 (Do, 02 Dez 2010) | 1 line Fix-up documentation of makedirs(). ........ r86932 | david.malcolm | 2010-12-02 17:41:00 +0100 (Do, 02 Dez 2010) | 2 lines Fix spelling of Jamie Zawinski's surname in urllib.parse docstring (issue 10606) ........ r86933 | georg.brandl | 2010-12-02 19:02:01 +0100 (Do, 02 Dez 2010) | 1 line #10597: fix Py_SetPythonHome docs by pointing to where the meaning of PYTHONHOME is already documented. ........ r86960 | georg.brandl | 2010-12-03 08:55:44 +0100 (Fr, 03 Dez 2010) | 1 line #10360: catch TypeError in WeakSet.__contains__, just like WeakKeyDictionary does. ........ r86964 | georg.brandl | 2010-12-03 10:58:38 +0100 (Fr, 03 Dez 2010) | 1 line #10549: fix interface of docclass() for text documenter. ........ r86974 | georg.brandl | 2010-12-03 16:30:09 +0100 (Fr, 03 Dez 2010) | 1 line Markup consistency fixes. ........ r86980 | georg.brandl | 2010-12-03 18:19:27 +0100 (Fr, 03 Dez 2010) | 1 line Fix punctuation. ........ r86996 | georg.brandl | 2010-12-03 20:56:42 +0100 (Fr, 03 Dez 2010) | 1 line Fix indentation. ........ r87008 | georg.brandl | 2010-12-04 10:04:04 +0100 (Sa, 04 Dez 2010) | 1 line Fix typo. ........ r87050 | georg.brandl | 2010-12-04 18:09:30 +0100 (Sa, 04 Dez 2010) | 1 line Fix typo. ........
This commit is contained in:
parent
622ce124b6
commit
f6c8fd62b9
17 changed files with 62 additions and 51 deletions
|
@ -318,8 +318,9 @@ Process-wide parameters
|
||||||
.. cfunction:: void Py_SetPythonHome(wchar_t *home)
|
.. cfunction:: void Py_SetPythonHome(wchar_t *home)
|
||||||
|
|
||||||
Set the default "home" directory, that is, the location of the standard
|
Set the default "home" directory, that is, the location of the standard
|
||||||
Python libraries. The libraries are searched in
|
Python libraries. See :envvar:`PYTHONHOME` for the meaning of the
|
||||||
:file:`{home}/lib/python{version}` and :file:`{home}/lib/python{version}`.
|
argument string.
|
||||||
|
|
||||||
The argument should point to a zero-terminated character string in static
|
The argument should point to a zero-terminated character string in static
|
||||||
storage whose contents will not change for the duration of the program's
|
storage whose contents will not change for the duration of the program's
|
||||||
execution. No code in the Python interpreter will change the contents of
|
execution. No code in the Python interpreter will change the contents of
|
||||||
|
|
|
@ -37,7 +37,7 @@ List Objects
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
If *length* is greater than zero, the returned list object's items are
|
If *len* is greater than zero, the returned list object's items are
|
||||||
set to ``NULL``. Thus you cannot use abstract API functions such as
|
set to ``NULL``. Thus you cannot use abstract API functions such as
|
||||||
:cfunc:`PySequence_SetItem` or expose the object to Python code before
|
:cfunc:`PySequence_SetItem` or expose the object to Python code before
|
||||||
setting all items to a real object with :cfunc:`PyList_SetItem`.
|
setting all items to a real object with :cfunc:`PyList_SetItem`.
|
||||||
|
@ -58,9 +58,9 @@ List Objects
|
||||||
|
|
||||||
.. cfunction:: PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
|
.. cfunction:: PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
|
||||||
|
|
||||||
Return the object at position *pos* in the list pointed to by *p*. The
|
Return the object at position *index* in the list pointed to by *list*. The
|
||||||
position must be positive, indexing from the end of the list is not
|
position must be positive, indexing from the end of the list is not
|
||||||
supported. If *pos* is out of bounds, return *NULL* and set an
|
supported. If *index* is out of bounds, return *NULL* and set an
|
||||||
:exc:`IndexError` exception.
|
:exc:`IndexError` exception.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -265,10 +265,13 @@ Unicode result). The following examples show the differences::
|
||||||
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0:
|
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0:
|
||||||
unexpected code byte
|
unexpected code byte
|
||||||
>>> b'\x80abc'.decode("utf-8", "replace")
|
>>> b'\x80abc'.decode("utf-8", "replace")
|
||||||
'\ufffdabc'
|
'?abc'
|
||||||
>>> b'\x80abc'.decode("utf-8", "ignore")
|
>>> b'\x80abc'.decode("utf-8", "ignore")
|
||||||
'abc'
|
'abc'
|
||||||
|
|
||||||
|
(In this code example, the Unicode replacement character has been replaced by
|
||||||
|
a question mark because it may not be displayed on some systems.)
|
||||||
|
|
||||||
Encodings are specified as strings containing the encoding's name. Python 3.2
|
Encodings are specified as strings containing the encoding's name. Python 3.2
|
||||||
comes with roughly 100 different encodings; see the Python Library Reference at
|
comes with roughly 100 different encodings; see the Python Library Reference at
|
||||||
:ref:`standard-encodings` for a list. Some encodings have multiple names; for
|
:ref:`standard-encodings` for a list. Some encodings have multiple names; for
|
||||||
|
|
|
@ -20,7 +20,7 @@ the Oracle Berkeley DB.
|
||||||
|
|
||||||
.. function:: whichdb(filename)
|
.. function:: whichdb(filename)
|
||||||
|
|
||||||
This functionattempts to guess which of the several simple database modules
|
This function attempts to guess which of the several simple database modules
|
||||||
available --- :mod:`dbm.gnu`, :mod:`dbm.ndbm` or :mod:`dbm.dumb` --- should
|
available --- :mod:`dbm.gnu`, :mod:`dbm.ndbm` or :mod:`dbm.dumb` --- should
|
||||||
be used to open a given file.
|
be used to open a given file.
|
||||||
|
|
||||||
|
|
|
@ -347,7 +347,6 @@ The :class:`SequenceMatcher` class has this constructor:
|
||||||
|
|
||||||
:class:`SequenceMatcher` objects have the following methods:
|
:class:`SequenceMatcher` objects have the following methods:
|
||||||
|
|
||||||
|
|
||||||
.. method:: set_seqs(a, b)
|
.. method:: set_seqs(a, b)
|
||||||
|
|
||||||
Set the two sequences to be compared.
|
Set the two sequences to be compared.
|
||||||
|
|
|
@ -473,9 +473,7 @@ libraries, then the logger name specified can be "orgname.foo" rather than
|
||||||
just "foo".
|
just "foo".
|
||||||
|
|
||||||
.. versionadded:: 3.1
|
.. versionadded:: 3.1
|
||||||
The :class:`NullHandler` class was not present in previous versions, but is
|
The :class:`NullHandler` class.
|
||||||
now included, so that it need not be defined in library code.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Logging Levels
|
Logging Levels
|
||||||
|
@ -593,8 +591,7 @@ provided:
|
||||||
more information.
|
more information.
|
||||||
|
|
||||||
.. versionadded:: 3.1
|
.. versionadded:: 3.1
|
||||||
|
The :class:`NullHandler` class.
|
||||||
The :class:`NullHandler` class was not present in previous versions.
|
|
||||||
|
|
||||||
The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
|
The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
|
||||||
classes are defined in the core logging package. The other handlers are
|
classes are defined in the core logging package. The other handlers are
|
||||||
|
@ -1816,6 +1813,7 @@ sends logging output to a disk file. It inherits the output functionality from
|
||||||
|
|
||||||
Outputs the record to the file.
|
Outputs the record to the file.
|
||||||
|
|
||||||
|
|
||||||
.. _null-handler:
|
.. _null-handler:
|
||||||
|
|
||||||
NullHandler
|
NullHandler
|
||||||
|
@ -1827,12 +1825,10 @@ The :class:`NullHandler` class, located in the core :mod:`logging` package,
|
||||||
does not do any formatting or output. It is essentially a "no-op" handler
|
does not do any formatting or output. It is essentially a "no-op" handler
|
||||||
for use by library developers.
|
for use by library developers.
|
||||||
|
|
||||||
|
|
||||||
.. class:: NullHandler()
|
.. class:: NullHandler()
|
||||||
|
|
||||||
Returns a new instance of the :class:`NullHandler` class.
|
Returns a new instance of the :class:`NullHandler` class.
|
||||||
|
|
||||||
|
|
||||||
.. method:: emit(record)
|
.. method:: emit(record)
|
||||||
|
|
||||||
This method does nothing.
|
This method does nothing.
|
||||||
|
@ -2609,6 +2605,7 @@ wire).
|
||||||
Returns the message for this :class:`LogRecord` instance after merging any
|
Returns the message for this :class:`LogRecord` instance after merging any
|
||||||
user-supplied arguments with the message.
|
user-supplied arguments with the message.
|
||||||
|
|
||||||
|
|
||||||
.. _logger-adapter:
|
.. _logger-adapter:
|
||||||
|
|
||||||
LoggerAdapter Objects
|
LoggerAdapter Objects
|
||||||
|
@ -2616,22 +2613,21 @@ LoggerAdapter Objects
|
||||||
|
|
||||||
:class:`LoggerAdapter` instances are used to conveniently pass contextual
|
:class:`LoggerAdapter` instances are used to conveniently pass contextual
|
||||||
information into logging calls. For a usage example , see the section on
|
information into logging calls. For a usage example , see the section on
|
||||||
`adding contextual information to your logging output`__.
|
:ref:`adding contextual information to your logging output <context-info>`.
|
||||||
|
|
||||||
__ context-info_
|
|
||||||
|
|
||||||
.. class:: LoggerAdapter(logger, extra)
|
.. class:: LoggerAdapter(logger, extra)
|
||||||
|
|
||||||
Returns an instance of :class:`LoggerAdapter` initialized with an
|
Returns an instance of :class:`LoggerAdapter` initialized with an
|
||||||
underlying :class:`Logger` instance and a dict-like object.
|
underlying :class:`Logger` instance and a dict-like object.
|
||||||
|
|
||||||
.. method:: process(msg, kwargs)
|
.. method:: process(msg, kwargs)
|
||||||
|
|
||||||
Modifies the message and/or keyword arguments passed to a logging call in
|
Modifies the message and/or keyword arguments passed to a logging call in
|
||||||
order to insert contextual information. This implementation takes the object
|
order to insert contextual information. This implementation takes the object
|
||||||
passed as *extra* to the constructor and adds it to *kwargs* using key
|
passed as *extra* to the constructor and adds it to *kwargs* using key
|
||||||
'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
|
'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
|
||||||
(possibly modified) versions of the arguments passed in.
|
(possibly modified) versions of the arguments passed in.
|
||||||
|
|
||||||
In addition to the above, :class:`LoggerAdapter` supports all the logging
|
In addition to the above, :class:`LoggerAdapter` supports all the logging
|
||||||
methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`,
|
methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`,
|
||||||
|
|
|
@ -1015,7 +1015,7 @@ Files and Directories
|
||||||
Availability: Unix, Windows.
|
Availability: Unix, Windows.
|
||||||
|
|
||||||
|
|
||||||
.. function:: makedirs(path[, mode])
|
.. function:: makedirs(path, mode=0o777)
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: directory; creating
|
single: directory; creating
|
||||||
|
@ -1029,8 +1029,8 @@ Files and Directories
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
:func:`makedirs` will become confused if the path elements to create include
|
:func:`makedirs` will become confused if the path elements to create
|
||||||
:data:`os.pardir`.
|
include :data:`pardir`.
|
||||||
|
|
||||||
This function handles UNC paths correctly.
|
This function handles UNC paths correctly.
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ general :mod:`pickle` should always be the preferred way to serialize Python
|
||||||
objects. :mod:`marshal` exists primarily to support Python's :file:`.pyc`
|
objects. :mod:`marshal` exists primarily to support Python's :file:`.pyc`
|
||||||
files.
|
files.
|
||||||
|
|
||||||
The :mod:`pickle` module differs from :mod:`marshal` several significant ways:
|
The :mod:`pickle` module differs from :mod:`marshal` in several significant ways:
|
||||||
|
|
||||||
* The :mod:`pickle` module keeps track of the objects it has already serialized,
|
* The :mod:`pickle` module keeps track of the objects it has already serialized,
|
||||||
so that later references to the same object won't be serialized again.
|
so that later references to the same object won't be serialized again.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
:mod:`urllib.request` --- extensible library for opening URLs
|
:mod:`urllib.request` --- Extensible library for opening URLs
|
||||||
=============================================================
|
=============================================================
|
||||||
|
|
||||||
.. module:: urllib.request
|
.. module:: urllib.request
|
||||||
|
@ -299,18 +299,19 @@ The following classes are provided:
|
||||||
users for the required information on the controlling terminal. A subclass may
|
users for the required information on the controlling terminal. A subclass may
|
||||||
override this method to support more appropriate behavior if needed.
|
override this method to support more appropriate behavior if needed.
|
||||||
|
|
||||||
The :class:`FancyURLopener` class offers one additional method that should be
|
The :class:`FancyURLopener` class offers one additional method that should be
|
||||||
overloaded to provide the appropriate behavior:
|
overloaded to provide the appropriate behavior:
|
||||||
|
|
||||||
.. method:: prompt_user_passwd(host, realm)
|
.. method:: prompt_user_passwd(host, realm)
|
||||||
|
|
||||||
Return information needed to authenticate the user at the given host in the
|
Return information needed to authenticate the user at the given host in the
|
||||||
specified security realm. The return value should be a tuple, ``(user,
|
specified security realm. The return value should be a tuple, ``(user,
|
||||||
password)``, which can be used for basic authentication.
|
password)``, which can be used for basic authentication.
|
||||||
|
|
||||||
|
The implementation prompts for this information on the terminal; an application
|
||||||
|
should override this method to use an appropriate interaction model in the local
|
||||||
|
environment.
|
||||||
|
|
||||||
The implementation prompts for this information on the terminal; an application
|
|
||||||
should override this method to use an appropriate interaction model in the local
|
|
||||||
environment.
|
|
||||||
|
|
||||||
.. class:: OpenerDirector()
|
.. class:: OpenerDirector()
|
||||||
|
|
||||||
|
@ -1249,8 +1250,8 @@ The following example uses no proxies at all, overriding environment settings::
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
:mod:`urllib.response` --- Response classes used by urllib.
|
:mod:`urllib.response` --- Response classes used by urllib
|
||||||
===========================================================
|
==========================================================
|
||||||
|
|
||||||
.. module:: urllib.response
|
.. module:: urllib.response
|
||||||
:synopsis: Response classes used by urllib.
|
:synopsis: Response classes used by urllib.
|
||||||
|
|
|
@ -163,8 +163,8 @@ ZipFile Objects
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The file-like object is read-only and provides the following methods:
|
The file-like object is read-only and provides the following methods:
|
||||||
:meth:`read`, :meth:`readline`, :meth:`readlines`, :meth:`__iter__`,
|
:meth:`!read`, :meth:`!readline`, :meth:`!readlines`, :meth:`!__iter__`,
|
||||||
:meth:`__next__`.
|
:meth:`!__next__`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|
|
@ -1318,8 +1318,8 @@ groups from right to left).
|
||||||
true numerically due to roundoff. For example, and assuming a platform on which
|
true numerically due to roundoff. For example, and assuming a platform on which
|
||||||
a Python float is an IEEE 754 double-precision number, in order that ``-1e-100 %
|
a Python float is an IEEE 754 double-precision number, in order that ``-1e-100 %
|
||||||
1e100`` have the same sign as ``1e100``, the computed result is ``-1e-100 +
|
1e100`` have the same sign as ``1e100``, the computed result is ``-1e-100 +
|
||||||
1e100``, which is numerically exactly equal to ``1e100``. Function :func:`fmod`
|
1e100``, which is numerically exactly equal to ``1e100``. The function
|
||||||
in the :mod:`math` module returns a result whose sign matches the sign of the
|
:func:`math.fmod` returns a result whose sign matches the sign of the
|
||||||
first argument instead, and so returns ``-1e-100`` in this case. Which approach
|
first argument instead, and so returns ``-1e-100`` in this case. Which approach
|
||||||
is more appropriate depends on the application.
|
is more appropriate depends on the application.
|
||||||
|
|
||||||
|
@ -1340,7 +1340,8 @@ groups from right to left).
|
||||||
the :keyword:`is` operator, like those involving comparisons between instance
|
the :keyword:`is` operator, like those involving comparisons between instance
|
||||||
methods, or constants. Check their documentation for more info.
|
methods, or constants. Check their documentation for more info.
|
||||||
|
|
||||||
.. [#] The ``%`` is also used for string formatting; the same precedence applies.
|
.. [#] The ``%`` operator is also used for string formatting; the same
|
||||||
|
precedence applies.
|
||||||
|
|
||||||
.. [#] The power operator ``**`` binds less tightly than an arithmetic or
|
.. [#] The power operator ``**`` binds less tightly than an arithmetic or
|
||||||
bitwise unary operator on its right, that is, ``2**-1`` is ``0.5``.
|
bitwise unary operator on its right, that is, ``2**-1`` is ``0.5``.
|
||||||
|
|
|
@ -66,7 +66,11 @@ class WeakSet:
|
||||||
return sum(x() is not None for x in self.data)
|
return sum(x() is not None for x in self.data)
|
||||||
|
|
||||||
def __contains__(self, item):
|
def __contains__(self, item):
|
||||||
return ref(item) in self.data
|
try:
|
||||||
|
wr = ref(item)
|
||||||
|
except TypeError:
|
||||||
|
return False
|
||||||
|
return wr in self.data
|
||||||
|
|
||||||
def __reduce__(self):
|
def __reduce__(self):
|
||||||
return (self.__class__, (list(self),),
|
return (self.__class__, (list(self),),
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ doubt, consult the module reference at the location listed above.
|
||||||
result = result + self.section('FILE', file)
|
result = result + self.section('FILE', file)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def docclass(self, object, name=None, mod=None):
|
def docclass(self, object, name=None, mod=None, *ignored):
|
||||||
"""Produce text documentation for a given class object."""
|
"""Produce text documentation for a given class object."""
|
||||||
realname = object.__name__
|
realname = object.__name__
|
||||||
name = name or realname
|
name = name or realname
|
||||||
|
|
|
@ -50,7 +50,8 @@ class TestWeakSet(unittest.TestCase):
|
||||||
def test_contains(self):
|
def test_contains(self):
|
||||||
for c in self.letters:
|
for c in self.letters:
|
||||||
self.assertEqual(c in self.s, c in self.d)
|
self.assertEqual(c in self.s, c in self.d)
|
||||||
self.assertRaises(TypeError, self.s.__contains__, [[]])
|
# 1 is not weakref'able, but that TypeError is caught by __contains__
|
||||||
|
self.assertNotIn(1, self.s)
|
||||||
self.assertTrue(self.obj in self.fs)
|
self.assertTrue(self.obj in self.fs)
|
||||||
del self.obj
|
del self.obj
|
||||||
self.assertTrue(ustr('F') not in self.fs)
|
self.assertTrue(ustr('F') not in self.fs)
|
||||||
|
|
|
@ -8,7 +8,7 @@ and L. Masinter, January 2005.
|
||||||
RFC 2396: "Uniform Resource Identifiers (URI)": Generic Syntax by T.
|
RFC 2396: "Uniform Resource Identifiers (URI)": Generic Syntax by T.
|
||||||
Berners-Lee, R. Fielding, and L. Masinter, August 1998.
|
Berners-Lee, R. Fielding, and L. Masinter, August 1998.
|
||||||
|
|
||||||
RFC 2368: "The mailto URL scheme", by P.Hoffman , L Masinter, J. Zwinski, July 1998.
|
RFC 2368: "The mailto URL scheme", by P.Hoffman , L Masinter, J. Zawinski, July 1998.
|
||||||
|
|
||||||
RFC 1808: "Relative Uniform Resource Locators", by R. Fielding, UC Irvine, June
|
RFC 1808: "Relative Uniform Resource Locators", by R. Fielding, UC Irvine, June
|
||||||
1995.
|
1995.
|
||||||
|
|
|
@ -42,6 +42,11 @@ Library
|
||||||
without folding whitespace. It now uses the continuation_ws, as it
|
without folding whitespace. It now uses the continuation_ws, as it
|
||||||
does for continuation lines that it creates itself.
|
does for continuation lines that it creates itself.
|
||||||
|
|
||||||
|
- Issue #10360: In WeakSet, do not raise TypeErrors when testing for
|
||||||
|
membership of non-weakrefable objects.
|
||||||
|
|
||||||
|
- Issue #10549: Fix pydoc traceback when text-documenting certain classes.
|
||||||
|
|
||||||
- Issue #11110: Fix _sqlite to not deref a NULL when module creation fails.
|
- Issue #11110: Fix _sqlite to not deref a NULL when module creation fails.
|
||||||
|
|
||||||
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
|
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
|
||||||
|
|
|
@ -595,7 +595,7 @@ bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index, PyObject *valu
|
||||||
needed = 0;
|
needed = 0;
|
||||||
}
|
}
|
||||||
else if (values == (PyObject *)self || !PyByteArray_Check(values)) {
|
else if (values == (PyObject *)self || !PyByteArray_Check(values)) {
|
||||||
/* Make a copy an call this function recursively */
|
/* Make a copy and call this function recursively */
|
||||||
int err;
|
int err;
|
||||||
values = PyByteArray_FromObject(values);
|
values = PyByteArray_FromObject(values);
|
||||||
if (values == NULL)
|
if (values == NULL)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue