1990-12-20 23:06:42 +08:00
|
|
|
/* Built-in functions */
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
#include "Python.h"
|
2008-03-31 04:03:44 +08:00
|
|
|
#include "Python-ast.h"
|
1990-12-20 23:06:42 +08:00
|
|
|
|
|
|
|
#include "node.h"
|
2005-10-21 03:59:25 +08:00
|
|
|
#include "code.h"
|
1990-12-20 23:06:42 +08:00
|
|
|
|
2011-08-13 12:10:50 +08:00
|
|
|
#include "asdl.h"
|
|
|
|
#include "ast.h"
|
|
|
|
|
1997-04-12 04:37:35 +08:00
|
|
|
#include <ctype.h>
|
|
|
|
|
2010-05-15 20:27:16 +08:00
|
|
|
#ifdef HAVE_LANGINFO_H
|
|
|
|
#include <langinfo.h> /* CODESET */
|
|
|
|
#endif
|
|
|
|
|
2001-05-14 20:17:34 +08:00
|
|
|
/* The default encoding used by the platform file system APIs
|
|
|
|
Can remain NULL for all platforms that don't have such a concept
|
2007-10-15 10:52:41 +08:00
|
|
|
|
|
|
|
Don't forget to modify PyUnicode_DecodeFSDefault() if you touch any of the
|
|
|
|
values for Py_FileSystemDefaultEncoding!
|
2001-05-14 20:17:34 +08:00
|
|
|
*/
|
2011-07-04 20:23:54 +08:00
|
|
|
#ifdef HAVE_MBCS
|
2001-05-14 20:17:34 +08:00
|
|
|
const char *Py_FileSystemDefaultEncoding = "mbcs";
|
2008-10-04 00:09:28 +08:00
|
|
|
int Py_HasFileSystemDefaultEncoding = 1;
|
2003-02-10 17:22:01 +08:00
|
|
|
#elif defined(__APPLE__)
|
|
|
|
const char *Py_FileSystemDefaultEncoding = "utf-8";
|
2008-10-04 00:09:28 +08:00
|
|
|
int Py_HasFileSystemDefaultEncoding = 1;
|
2011-07-04 19:48:30 +08:00
|
|
|
#else
|
2010-05-15 20:27:16 +08:00
|
|
|
const char *Py_FileSystemDefaultEncoding = NULL; /* set by initfsencoding() */
|
2008-10-04 00:09:28 +08:00
|
|
|
int Py_HasFileSystemDefaultEncoding = 0;
|
2001-05-14 20:17:34 +08:00
|
|
|
#endif
|
2001-05-13 16:04:26 +08:00
|
|
|
|
2013-11-08 06:07:29 +08:00
|
|
|
_Py_IDENTIFIER(__builtins__);
|
|
|
|
_Py_IDENTIFIER(__dict__);
|
|
|
|
_Py_IDENTIFIER(__prepare__);
|
|
|
|
_Py_IDENTIFIER(__round__);
|
|
|
|
_Py_IDENTIFIER(encoding);
|
|
|
|
_Py_IDENTIFIER(errors);
|
2011-10-14 16:20:37 +08:00
|
|
|
_Py_IDENTIFIER(fileno);
|
|
|
|
_Py_IDENTIFIER(flush);
|
2013-11-08 06:07:29 +08:00
|
|
|
_Py_IDENTIFIER(metaclass);
|
|
|
|
_Py_IDENTIFIER(sort);
|
|
|
|
_Py_IDENTIFIER(stdin);
|
|
|
|
_Py_IDENTIFIER(stdout);
|
|
|
|
_Py_IDENTIFIER(stderr);
|
2011-10-09 16:38:36 +08:00
|
|
|
|
2015-04-04 04:53:51 +08:00
|
|
|
#include "clinic/bltinmodule.c.h"
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, waiting for *args support */
|
2007-03-18 23:41:51 +08:00
|
|
|
static PyObject *
|
|
|
|
builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
|
|
|
|
{
|
2011-10-23 20:04:16 +08:00
|
|
|
PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns, *cell;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *cls = NULL;
|
2011-10-28 21:00:50 +08:00
|
|
|
Py_ssize_t nargs;
|
2015-03-18 22:02:06 +08:00
|
|
|
int isclass = 0; /* initialize to prevent gcc warning */
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
assert(args != NULL);
|
|
|
|
if (!PyTuple_Check(args)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"__build_class__: args is not a tuple");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
nargs = PyTuple_GET_SIZE(args);
|
|
|
|
if (nargs < 2) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"__build_class__: not enough arguments");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
func = PyTuple_GET_ITEM(args, 0); /* Better be callable */
|
2013-05-17 03:37:25 +08:00
|
|
|
if (!PyFunction_Check(func)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
2014-08-06 03:01:10 +08:00
|
|
|
"__build_class__: func must be a function");
|
2013-05-17 03:37:25 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
name = PyTuple_GET_ITEM(args, 1);
|
|
|
|
if (!PyUnicode_Check(name)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"__build_class__: name is not a string");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
bases = PyTuple_GetSlice(args, 2, nargs);
|
|
|
|
if (bases == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (kwds == NULL) {
|
|
|
|
meta = NULL;
|
|
|
|
mkw = NULL;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
mkw = PyDict_Copy(kwds); /* Don't modify kwds passed in! */
|
|
|
|
if (mkw == NULL) {
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return NULL;
|
|
|
|
}
|
2013-11-07 05:46:51 +08:00
|
|
|
meta = _PyDict_GetItemId(mkw, &PyId_metaclass);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (meta != NULL) {
|
|
|
|
Py_INCREF(meta);
|
2013-11-07 05:46:51 +08:00
|
|
|
if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(meta);
|
|
|
|
Py_DECREF(mkw);
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return NULL;
|
|
|
|
}
|
2011-10-23 20:04:16 +08:00
|
|
|
/* metaclass is explicitly given, check if it's indeed a class */
|
|
|
|
isclass = PyType_Check(meta);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
if (meta == NULL) {
|
2011-10-23 20:04:16 +08:00
|
|
|
/* if there are no bases, use type: */
|
|
|
|
if (PyTuple_GET_SIZE(bases) == 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
meta = (PyObject *) (&PyType_Type);
|
2011-10-23 20:04:16 +08:00
|
|
|
}
|
|
|
|
/* else get the type of the first base */
|
2010-05-09 23:52:27 +08:00
|
|
|
else {
|
|
|
|
PyObject *base0 = PyTuple_GET_ITEM(bases, 0);
|
|
|
|
meta = (PyObject *) (base0->ob_type);
|
|
|
|
}
|
|
|
|
Py_INCREF(meta);
|
2011-10-23 20:04:16 +08:00
|
|
|
isclass = 1; /* meta is really a class */
|
|
|
|
}
|
2011-10-23 20:36:42 +08:00
|
|
|
|
2011-10-23 20:04:16 +08:00
|
|
|
if (isclass) {
|
|
|
|
/* meta is really a class, so check for a more derived
|
|
|
|
metaclass, or possible metaclass conflicts: */
|
|
|
|
winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta,
|
|
|
|
bases);
|
|
|
|
if (winner == NULL) {
|
|
|
|
Py_DECREF(meta);
|
|
|
|
Py_XDECREF(mkw);
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (winner != meta) {
|
|
|
|
Py_DECREF(meta);
|
|
|
|
meta = winner;
|
|
|
|
Py_INCREF(meta);
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2011-10-23 20:04:16 +08:00
|
|
|
/* else: meta is not a class, so we cannot do the metaclass
|
|
|
|
calculation, so we will use the explicitly given object as it is */
|
2011-10-11 00:11:30 +08:00
|
|
|
prep = _PyObject_GetAttrId(meta, &PyId___prepare__);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (prep == NULL) {
|
|
|
|
if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
|
|
|
|
PyErr_Clear();
|
|
|
|
ns = PyDict_New();
|
2007-03-18 23:41:51 +08:00
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
else {
|
|
|
|
Py_DECREF(meta);
|
|
|
|
Py_XDECREF(mkw);
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
2016-08-23 05:33:13 +08:00
|
|
|
PyObject *pargs[2] = {name, bases};
|
|
|
|
ns = _PyObject_FastCallDict(prep, pargs, 2, mkw);
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(prep);
|
|
|
|
}
|
|
|
|
if (ns == NULL) {
|
|
|
|
Py_DECREF(meta);
|
|
|
|
Py_XDECREF(mkw);
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return NULL;
|
|
|
|
}
|
2013-05-17 03:37:25 +08:00
|
|
|
cell = PyEval_EvalCodeEx(PyFunction_GET_CODE(func), PyFunction_GET_GLOBALS(func), ns,
|
|
|
|
NULL, 0, NULL, 0, NULL, 0, NULL,
|
|
|
|
PyFunction_GET_CLOSURE(func));
|
2010-05-09 23:52:27 +08:00
|
|
|
if (cell != NULL) {
|
2016-08-23 07:34:35 +08:00
|
|
|
PyObject *margs[3] = {name, bases, ns};
|
|
|
|
cls = _PyObject_FastCallDict(meta, margs, 3, mkw);
|
2012-06-02 14:57:36 +08:00
|
|
|
if (cls != NULL && PyCell_Check(cell))
|
|
|
|
PyCell_Set(cell, cls);
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(cell);
|
|
|
|
}
|
|
|
|
Py_DECREF(ns);
|
|
|
|
Py_DECREF(meta);
|
|
|
|
Py_XDECREF(mkw);
|
|
|
|
Py_DECREF(bases);
|
|
|
|
return cls;
|
2007-03-18 23:41:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
PyDoc_STRVAR(build_class_doc,
|
|
|
|
"__build_class__(func, name, *bases, metaclass=None, **kwds) -> class\n\
|
|
|
|
\n\
|
|
|
|
Internal helper function used by the class statement.");
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2006-04-21 18:40:58 +08:00
|
|
|
builtin___import__(PyObject *self, PyObject *args, PyObject *kwds)
|
1995-01-03 03:04:15 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
static char *kwlist[] = {"name", "globals", "locals", "fromlist",
|
|
|
|
"level", 0};
|
2011-03-15 03:54:52 +08:00
|
|
|
PyObject *name, *globals = NULL, *locals = NULL, *fromlist = NULL;
|
2012-04-15 02:10:13 +08:00
|
|
|
int level = 0;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2011-03-15 03:54:52 +08:00
|
|
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "U|OOOi:__import__",
|
2010-05-09 23:52:27 +08:00
|
|
|
kwlist, &name, &globals, &locals, &fromlist, &level))
|
|
|
|
return NULL;
|
2011-03-15 03:54:52 +08:00
|
|
|
return PyImport_ImportModuleLevelObject(name, globals, locals,
|
|
|
|
fromlist, level);
|
1995-01-03 03:04:15 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(import_doc,
|
2012-08-07 04:34:44 +08:00
|
|
|
"__import__(name, globals=None, locals=None, fromlist=(), level=0) -> module\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
2010-09-28 05:08:38 +08:00
|
|
|
Import a module. Because this function is meant for use by the Python\n\
|
|
|
|
interpreter and not for general use it is better to use\n\
|
|
|
|
importlib.import_module() to programmatically import a module.\n\
|
|
|
|
\n\
|
|
|
|
The globals argument is only used to determine the context;\n\
|
|
|
|
they are not modified. The locals argument is unused. The fromlist\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
should be a list of names to emulate ``from name import ...'', or an\n\
|
|
|
|
empty list to emulate ``import name''.\n\
|
|
|
|
When importing a module from a package, note that __import__('A.B', ...)\n\
|
|
|
|
returns package A when fromlist is empty, but its submodule B when\n\
|
2006-04-21 18:40:58 +08:00
|
|
|
fromlist is not empty. Level is used to determine whether to perform \n\
|
2012-07-31 05:45:54 +08:00
|
|
|
absolute or relative imports. 0 is absolute while a positive number\n\
|
2006-04-21 18:40:58 +08:00
|
|
|
is the number of parent directories to search relative to the current module.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
1995-01-03 03:04:15 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
abs as builtin_abs
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
x: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the absolute value of the argument.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_abs(PyObject *module, PyObject *x)
|
|
|
|
/*[clinic end generated code: output=b1b433b9e51356f5 input=bed4ca14e29c20d1]*/
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyNumber_Absolute(x);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
all as builtin_all
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
iterable: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return True if bool(x) is True for all values x in the iterable.
|
|
|
|
|
|
|
|
If the iterable is empty, return True.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
2005-03-11 14:49:40 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_all(PyObject *module, PyObject *iterable)
|
|
|
|
/*[clinic end generated code: output=ca2a7127276f79b3 input=1a7c5d1bc3438a21]*/
|
2005-03-11 14:49:40 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *it, *item;
|
|
|
|
PyObject *(*iternext)(PyObject *);
|
|
|
|
int cmp;
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
it = PyObject_GetIter(iterable);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (it == NULL)
|
|
|
|
return NULL;
|
|
|
|
iternext = *Py_TYPE(it)->tp_iternext;
|
|
|
|
|
|
|
|
for (;;) {
|
|
|
|
item = iternext(it);
|
|
|
|
if (item == NULL)
|
|
|
|
break;
|
|
|
|
cmp = PyObject_IsTrue(item);
|
|
|
|
Py_DECREF(item);
|
|
|
|
if (cmp < 0) {
|
|
|
|
Py_DECREF(it);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (cmp == 0) {
|
|
|
|
Py_DECREF(it);
|
|
|
|
Py_RETURN_FALSE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Py_DECREF(it);
|
|
|
|
if (PyErr_Occurred()) {
|
|
|
|
if (PyErr_ExceptionMatches(PyExc_StopIteration))
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Py_RETURN_TRUE;
|
2005-03-11 14:49:40 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
any as builtin_any
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
iterable: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return True if bool(x) is True for any x in the iterable.
|
|
|
|
|
|
|
|
If the iterable is empty, return False.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
2005-03-11 14:49:40 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_any(PyObject *module, PyObject *iterable)
|
|
|
|
/*[clinic end generated code: output=fa65684748caa60e input=41d7451c23384f24]*/
|
2005-03-11 14:49:40 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *it, *item;
|
|
|
|
PyObject *(*iternext)(PyObject *);
|
|
|
|
int cmp;
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
it = PyObject_GetIter(iterable);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (it == NULL)
|
|
|
|
return NULL;
|
|
|
|
iternext = *Py_TYPE(it)->tp_iternext;
|
|
|
|
|
|
|
|
for (;;) {
|
|
|
|
item = iternext(it);
|
|
|
|
if (item == NULL)
|
|
|
|
break;
|
|
|
|
cmp = PyObject_IsTrue(item);
|
|
|
|
Py_DECREF(item);
|
|
|
|
if (cmp < 0) {
|
|
|
|
Py_DECREF(it);
|
|
|
|
return NULL;
|
|
|
|
}
|
2015-10-09 12:42:47 +08:00
|
|
|
if (cmp > 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(it);
|
|
|
|
Py_RETURN_TRUE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Py_DECREF(it);
|
|
|
|
if (PyErr_Occurred()) {
|
|
|
|
if (PyErr_ExceptionMatches(PyExc_StopIteration))
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Py_RETURN_FALSE;
|
2005-03-11 14:49:40 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
ascii as builtin_ascii
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return an ASCII-only representation of an object.
|
|
|
|
|
|
|
|
As repr(), return a string containing a printable representation of an
|
|
|
|
object, but escape the non-ASCII characters in the string returned by
|
|
|
|
repr() using \\x, \\u or \\U escapes. This generates a string similar
|
|
|
|
to that returned by repr() in Python 2.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
2008-06-12 02:37:52 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_ascii(PyObject *module, PyObject *obj)
|
|
|
|
/*[clinic end generated code: output=6d37b3f0984c7eb9 input=4c62732e1b3a3cc9]*/
|
2008-06-12 02:37:52 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyObject_ASCII(obj);
|
2008-06-12 02:37:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
bin as builtin_bin
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
number: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the binary representation of an integer.
|
|
|
|
|
|
|
|
>>> bin(2796202)
|
|
|
|
'0b1010101010101010101010'
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
Merged revisions 55817-55961 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55837 | guido.van.rossum | 2007-06-08 16:04:42 -0700 (Fri, 08 Jun 2007) | 2 lines
PEP 3119 -- the abc module.
................
r55838 | guido.van.rossum | 2007-06-08 17:38:55 -0700 (Fri, 08 Jun 2007) | 2 lines
Implement part of PEP 3119 -- One Trick Ponies.
................
r55847 | guido.van.rossum | 2007-06-09 08:28:06 -0700 (Sat, 09 Jun 2007) | 2 lines
Different way to do one trick ponies, allowing registration (per PEP strawman).
................
r55849 | guido.van.rossum | 2007-06-09 18:06:38 -0700 (Sat, 09 Jun 2007) | 3 lines
Make sure that the magic looking for __hash__ (etc.) doesn't apply to
real subclasses of Hashable.
................
r55852 | guido.van.rossum | 2007-06-10 08:29:51 -0700 (Sun, 10 Jun 2007) | 2 lines
Add some more examples, e.g. generators and dict views.
................
r55853 | guido.van.rossum | 2007-06-10 08:31:59 -0700 (Sun, 10 Jun 2007) | 2 lines
keys() and items() *are* containers -- just values() isn't.
................
r55864 | georg.brandl | 2007-06-10 15:29:40 -0700 (Sun, 10 Jun 2007) | 2 lines
PEP 3127: new octal literals, binary literals.
................
r55865 | georg.brandl | 2007-06-10 15:31:37 -0700 (Sun, 10 Jun 2007) | 2 lines
Some octal literal fixes in Tools.
................
r55866 | georg.brandl | 2007-06-10 15:37:43 -0700 (Sun, 10 Jun 2007) | 2 lines
Tokenizer changes for PEP 3127.
................
r55867 | georg.brandl | 2007-06-10 15:37:55 -0700 (Sun, 10 Jun 2007) | 2 lines
Some docs for PEP 3127.
................
r55868 | georg.brandl | 2007-06-10 15:44:39 -0700 (Sun, 10 Jun 2007) | 2 lines
Missed a place in intobject.c. Is that used anymore anyway?
................
r55871 | neal.norwitz | 2007-06-10 18:31:49 -0700 (Sun, 10 Jun 2007) | 182 lines
Merged revisions 55729-55868 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55731 | neal.norwitz | 2007-06-01 00:29:12 -0700 (Fri, 01 Jun 2007) | 7 lines
SF 1668596/1720897: distutils now copies data files
even if package_dir is empty.
This needs to be backported. I'm too tired tonight. It would be great
if someone backports this if the buildbots are ok with it. Otherwise,
I will try to get to it tomorrow.
........
r55732 | georg.brandl | 2007-06-01 04:33:33 -0700 (Fri, 01 Jun 2007) | 2 lines
Bug #1722484: remove docstrings again when running with -OO.
........
r55735 | georg.brandl | 2007-06-01 12:20:27 -0700 (Fri, 01 Jun 2007) | 2 lines
Fix wrong issue number.
........
r55739 | brett.cannon | 2007-06-01 20:02:29 -0700 (Fri, 01 Jun 2007) | 3 lines
Have configure raise an error when building on AtheOS. Code specific to AtheOS
will be removed in Python 2.7.
........
r55746 | neal.norwitz | 2007-06-02 11:33:53 -0700 (Sat, 02 Jun 2007) | 1 line
Update expected birthday of 2.6
........
r55751 | neal.norwitz | 2007-06-03 13:32:50 -0700 (Sun, 03 Jun 2007) | 10 lines
Backout the original 'fix' to 1721309 which had no effect.
Different versions of Berkeley DB handle this differently.
The comments and bug report should have the details. Memory is allocated
in 4.4 (and presumably earlier), but not in 4.5. Thus
4.5 has the free error, but not earlier versions.
Mostly update comments, plus make the free conditional.
This fix was already applied to the 2.5 branch.
........
r55752 | brett.cannon | 2007-06-03 16:13:41 -0700 (Sun, 03 Jun 2007) | 6 lines
Make _strptime.TimeRE().pattern() use ``\s+`` for matching whitespace instead
of ``\s*``. This prevents patterns from "stealing" bits from other patterns in
order to make a match work.
Closes bug #1730389. Will be backported.
........
r55766 | hyeshik.chang | 2007-06-05 11:16:52 -0700 (Tue, 05 Jun 2007) | 4 lines
Fix build on FreeBSD. Bluetooth HCI API in FreeBSD is quite different
from Linux's. Just fix the build for now but the code doesn't
support the complete capability of HCI on FreeBSD yet.
........
r55770 | hyeshik.chang | 2007-06-05 11:58:51 -0700 (Tue, 05 Jun 2007) | 4 lines
Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
reads a file that ends with incomplete sequence and sizehint argument
for .read() is specified.
........
r55775 | hyeshik.chang | 2007-06-05 12:28:15 -0700 (Tue, 05 Jun 2007) | 2 lines
Fix for Windows: close a temporary file before trying to delete it.
........
r55783 | guido.van.rossum | 2007-06-05 14:24:47 -0700 (Tue, 05 Jun 2007) | 2 lines
Patch by Tim Delany (missing DECREF). SF #1731330.
........
r55785 | collin.winter | 2007-06-05 17:17:35 -0700 (Tue, 05 Jun 2007) | 3 lines
Patch #1731049: make threading.py use a proper "raise" when checking internal state, rather than assert statements (which get stripped out by -O).
........
r55786 | facundo.batista | 2007-06-06 08:13:37 -0700 (Wed, 06 Jun 2007) | 4 lines
FTP.ntransfercmd method now uses create_connection when passive,
using the timeout received in connection time.
........
r55792 | facundo.batista | 2007-06-06 10:15:23 -0700 (Wed, 06 Jun 2007) | 7 lines
Added an optional timeout parameter to function urllib2.urlopen,
with tests in test_urllib2net.py (must have network resource
enabled to execute them). Also modified test_urllib2.py because
testing mock classes must take it into acount. Docs are also
updated.
........
r55793 | thomas.heller | 2007-06-06 13:19:19 -0700 (Wed, 06 Jun 2007) | 1 line
Build _ctypes and _ctypes_test in the ReleaseAMD64 configuration.
........
r55802 | georg.brandl | 2007-06-07 06:23:24 -0700 (Thu, 07 Jun 2007) | 3 lines
Disallow function calls like foo(None=1).
Backport from py3k rev. 55708 by Guido.
........
r55804 | georg.brandl | 2007-06-07 06:30:24 -0700 (Thu, 07 Jun 2007) | 2 lines
Make reindent.py executable.
........
r55805 | georg.brandl | 2007-06-07 06:34:10 -0700 (Thu, 07 Jun 2007) | 2 lines
Patch #1667860: Fix UnboundLocalError in urllib2.
........
r55821 | kristjan.jonsson | 2007-06-07 16:53:49 -0700 (Thu, 07 Jun 2007) | 1 line
Fixing changes to getbuildinfo.c that broke linux builds
........
r55828 | thomas.heller | 2007-06-08 09:10:27 -0700 (Fri, 08 Jun 2007) | 1 line
Make this test work with older Python releases where struct has no 't' format character.
........
r55829 | martin.v.loewis | 2007-06-08 10:29:20 -0700 (Fri, 08 Jun 2007) | 3 lines
Bug #1733488: Fix compilation of bufferobject.c on AIX.
Will backport to 2.5.
........
r55831 | thomas.heller | 2007-06-08 11:20:09 -0700 (Fri, 08 Jun 2007) | 2 lines
[ 1715718 ] x64 clean compile patch for _ctypes, by Kristj?n Valur
with small modifications.
........
r55832 | thomas.heller | 2007-06-08 12:01:06 -0700 (Fri, 08 Jun 2007) | 1 line
Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.
........
r55833 | thomas.heller | 2007-06-08 12:08:31 -0700 (Fri, 08 Jun 2007) | 2 lines
Fix wrong documentation, and correct the punktuation.
Closes [1700455].
........
r55834 | thomas.heller | 2007-06-08 12:14:23 -0700 (Fri, 08 Jun 2007) | 1 line
Fix warnings by using proper function prototype.
........
r55839 | neal.norwitz | 2007-06-08 20:36:34 -0700 (Fri, 08 Jun 2007) | 7 lines
Prevent expandtabs() on string and unicode objects from causing a segfault when
a large width is passed on 32-bit platforms. Found by Google.
It would be good for people to review this especially carefully and verify
I don't have an off by one error and there is no other way to cause overflow.
........
r55841 | neal.norwitz | 2007-06-08 21:48:22 -0700 (Fri, 08 Jun 2007) | 1 line
Use macro version of GET_SIZE to avoid Coverity warning (#150) about a possible error.
........
r55842 | martin.v.loewis | 2007-06-09 00:42:52 -0700 (Sat, 09 Jun 2007) | 3 lines
Patch #1733960: Allow T_LONGLONG to accept ints.
Will backport to 2.5.
........
r55843 | martin.v.loewis | 2007-06-09 00:58:05 -0700 (Sat, 09 Jun 2007) | 2 lines
Fix Windows build.
........
r55845 | martin.v.loewis | 2007-06-09 03:10:26 -0700 (Sat, 09 Jun 2007) | 2 lines
Provide LLONG_MAX for S390.
........
r55854 | thomas.heller | 2007-06-10 08:59:17 -0700 (Sun, 10 Jun 2007) | 4 lines
First version of build scripts for Windows/AMD64 (no external
components are built yet, and 'kill_python' is disabled).
........
r55855 | thomas.heller | 2007-06-10 10:55:51 -0700 (Sun, 10 Jun 2007) | 3 lines
For now, disable the _bsddb, _sqlite3, _ssl, _testcapi, _tkinter
modules in the ReleaseAMD64 configuration because they do not compile.
........
r55856 | thomas.heller | 2007-06-10 11:27:54 -0700 (Sun, 10 Jun 2007) | 1 line
Need to set the environment variables, otherwise devenv.com is not found.
........
r55860 | thomas.heller | 2007-06-10 14:01:17 -0700 (Sun, 10 Jun 2007) | 1 line
Revert commit 55855.
........
................
r55880 | neal.norwitz | 2007-06-10 22:07:36 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix the refleak counter on test_collections. The ABC metaclass creates
a registry which must be cleared on each run. Otherwise, there *seem*
to be refleaks when there really aren't any. (The class is held within
the registry even though it's no longer needed.)
................
r55884 | neal.norwitz | 2007-06-10 22:46:33 -0700 (Sun, 10 Jun 2007) | 1 line
These tests have been removed, so they are no longer needed here
................
r55886 | georg.brandl | 2007-06-11 00:26:37 -0700 (Mon, 11 Jun 2007) | 3 lines
Optimize access to True and False in the compiler (if True)
and the peepholer (LOAD_NAME True).
................
r55905 | georg.brandl | 2007-06-11 10:02:26 -0700 (Mon, 11 Jun 2007) | 5 lines
Remove __oct__ and __hex__ and use __index__ for converting
non-ints before formatting in a base.
Add a bin() builtin.
................
r55906 | georg.brandl | 2007-06-11 10:04:44 -0700 (Mon, 11 Jun 2007) | 2 lines
int(x, 0) does not "guess".
................
r55907 | georg.brandl | 2007-06-11 10:05:47 -0700 (Mon, 11 Jun 2007) | 2 lines
Add a comment to explain that nb_oct and nb_hex are nonfunctional.
................
r55908 | guido.van.rossum | 2007-06-11 10:49:18 -0700 (Mon, 11 Jun 2007) | 2 lines
Get rid of unused imports and comment.
................
r55910 | guido.van.rossum | 2007-06-11 13:05:17 -0700 (Mon, 11 Jun 2007) | 2 lines
_Abstract.__new__ now requires either no arguments or __init__ overridden.
................
r55911 | guido.van.rossum | 2007-06-11 13:07:49 -0700 (Mon, 11 Jun 2007) | 7 lines
Move the collections ABCs to a separate file, _abcoll.py, in order to avoid
needing to import _collections.so during the bootstrap (this will become
apparent in the next submit of os.py).
Add (plain and mutable) ABCs for Set, Mapping, Sequence.
................
r55912 | guido.van.rossum | 2007-06-11 13:09:31 -0700 (Mon, 11 Jun 2007) | 2 lines
Rewrite the _Environ class to use the new collections ABCs.
................
r55913 | guido.van.rossum | 2007-06-11 13:59:45 -0700 (Mon, 11 Jun 2007) | 72 lines
Merged revisions 55869-55912 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55869 | neal.norwitz | 2007-06-10 17:42:11 -0700 (Sun, 10 Jun 2007) | 1 line
Add Atul Varma for patch # 1667860
........
r55870 | neal.norwitz | 2007-06-10 18:22:03 -0700 (Sun, 10 Jun 2007) | 1 line
Ignore valgrind problems on Ubuntu from ld
........
r55872 | neal.norwitz | 2007-06-10 18:48:46 -0700 (Sun, 10 Jun 2007) | 2 lines
Ignore config.status.lineno which seems new (new autoconf?)
........
r55873 | neal.norwitz | 2007-06-10 19:14:39 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent these tests from running on Win64 since they don\'t apply there either
........
r55874 | neal.norwitz | 2007-06-10 19:16:10 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix a bug when there was a newline in the string expandtabs was called on.
This also catches another condition that can overflow.
Will backport.
........
r55879 | neal.norwitz | 2007-06-10 21:52:37 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent hang if the port cannot be opened.
........
r55881 | neal.norwitz | 2007-06-10 22:28:45 -0700 (Sun, 10 Jun 2007) | 4 lines
Add all of the distuils modules that don't seem to have explicit tests. :-(
Move an import in mworkscompiler so that this module can be imported on
any platform. Hopefully this works on all platforms.
........
r55882 | neal.norwitz | 2007-06-10 22:35:10 -0700 (Sun, 10 Jun 2007) | 4 lines
SF #1734732, lower case the module names per PEP 8.
Will backport.
........
r55885 | neal.norwitz | 2007-06-10 23:16:48 -0700 (Sun, 10 Jun 2007) | 4 lines
Not sure why this only fails sometimes on Unix machines. Better
to disable it and only import msvccompiler on Windows since that's
the only place it can work anyways.
........
r55887 | neal.norwitz | 2007-06-11 00:29:43 -0700 (Mon, 11 Jun 2007) | 4 lines
Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
Will backport
........
r55889 | neal.norwitz | 2007-06-11 00:36:24 -0700 (Mon, 11 Jun 2007) | 1 line
Reflow long line
........
r55896 | thomas.heller | 2007-06-11 08:58:33 -0700 (Mon, 11 Jun 2007) | 3 lines
Use "O&" in calls to PyArg_Parse when we need a 'void*' instead of "k"
or "K" codes.
........
r55901 | facundo.batista | 2007-06-11 09:27:08 -0700 (Mon, 11 Jun 2007) | 5 lines
Added versionchanged flag to all the methods which received
a new optional timeout parameter, and a versionadded flag to
the socket.create_connection function.
........
................
r55914 | guido.van.rossum | 2007-06-11 14:19:50 -0700 (Mon, 11 Jun 2007) | 3 lines
New super() implementation, for PEP 3135 (though the PEP is not yet updated
to this design, and small tweaks may still be made later).
................
r55923 | guido.van.rossum | 2007-06-11 21:15:24 -0700 (Mon, 11 Jun 2007) | 4 lines
I'm guessing this module broke when Neal ripped out the types module --
it used 'list' both as a local variable and as the built-in list type.
Renamed the local variable since that was easier.
................
r55924 | guido.van.rossum | 2007-06-11 21:20:05 -0700 (Mon, 11 Jun 2007) | 5 lines
Change all occurrences of super(<thisclass>, <firstarg>) to super().
Seems to have worked, all the tests still pass.
Exception: test_descr and test_descrtut, which have tons of these
and are there to test the various usages.
................
r55939 | collin.winter | 2007-06-12 13:57:33 -0700 (Tue, 12 Jun 2007) | 1 line
Patch #1735485: remove StandardError from the exception hierarchy.
................
r55954 | neal.norwitz | 2007-06-12 21:56:32 -0700 (Tue, 12 Jun 2007) | 51 lines
Merged revisions 55913-55950 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55926 | marc-andre.lemburg | 2007-06-12 02:09:58 -0700 (Tue, 12 Jun 2007) | 3 lines
Apply patch #1734945 to support TurboLinux as distribution.
........
r55927 | marc-andre.lemburg | 2007-06-12 02:26:49 -0700 (Tue, 12 Jun 2007) | 3 lines
Add patch #1726668: Windows Vista support.
........
r55929 | thomas.heller | 2007-06-12 08:36:22 -0700 (Tue, 12 Jun 2007) | 1 line
Checkout, but do not yet try to build, exernal sources.
........
r55930 | thomas.heller | 2007-06-12 09:08:27 -0700 (Tue, 12 Jun 2007) | 6 lines
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
Set the /XP64 /RETAIL build enviroment in the makefile when building
ReleaseAMD64.
........
r55931 | thomas.heller | 2007-06-12 09:23:19 -0700 (Tue, 12 Jun 2007) | 5 lines
Revert this change, since it breaks the win32 build:
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
........
r55934 | thomas.heller | 2007-06-12 10:28:31 -0700 (Tue, 12 Jun 2007) | 3 lines
Specify the bufferoverflowU.lib to the makefile on the command line
(for ReleaseAMD64 builds).
........
r55937 | thomas.heller | 2007-06-12 12:02:59 -0700 (Tue, 12 Jun 2007) | 3 lines
Add bufferoverflowU.lib to PCBuild\_bsddb.vcproj.
Build sqlite3.dll and bsddb.
........
r55938 | thomas.heller | 2007-06-12 12:56:12 -0700 (Tue, 12 Jun 2007) | 2 lines
Don't rebuild Berkeley DB if not needed (this was committed by accident).
........
r55948 | martin.v.loewis | 2007-06-12 20:42:19 -0700 (Tue, 12 Jun 2007) | 3 lines
Provide PY_LLONG_MAX on all systems having long long.
Will backport to 2.5.
........
................
r55959 | guido.van.rossum | 2007-06-13 09:22:41 -0700 (Wed, 13 Jun 2007) | 2 lines
Fix a compilation warning.
................
2007-06-14 02:07:49 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_bin(PyObject *module, PyObject *number)
|
|
|
|
/*[clinic end generated code: output=b6fc4ad5e649f4f7 input=53f8a0264bacaf90]*/
|
Merged revisions 55817-55961 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55837 | guido.van.rossum | 2007-06-08 16:04:42 -0700 (Fri, 08 Jun 2007) | 2 lines
PEP 3119 -- the abc module.
................
r55838 | guido.van.rossum | 2007-06-08 17:38:55 -0700 (Fri, 08 Jun 2007) | 2 lines
Implement part of PEP 3119 -- One Trick Ponies.
................
r55847 | guido.van.rossum | 2007-06-09 08:28:06 -0700 (Sat, 09 Jun 2007) | 2 lines
Different way to do one trick ponies, allowing registration (per PEP strawman).
................
r55849 | guido.van.rossum | 2007-06-09 18:06:38 -0700 (Sat, 09 Jun 2007) | 3 lines
Make sure that the magic looking for __hash__ (etc.) doesn't apply to
real subclasses of Hashable.
................
r55852 | guido.van.rossum | 2007-06-10 08:29:51 -0700 (Sun, 10 Jun 2007) | 2 lines
Add some more examples, e.g. generators and dict views.
................
r55853 | guido.van.rossum | 2007-06-10 08:31:59 -0700 (Sun, 10 Jun 2007) | 2 lines
keys() and items() *are* containers -- just values() isn't.
................
r55864 | georg.brandl | 2007-06-10 15:29:40 -0700 (Sun, 10 Jun 2007) | 2 lines
PEP 3127: new octal literals, binary literals.
................
r55865 | georg.brandl | 2007-06-10 15:31:37 -0700 (Sun, 10 Jun 2007) | 2 lines
Some octal literal fixes in Tools.
................
r55866 | georg.brandl | 2007-06-10 15:37:43 -0700 (Sun, 10 Jun 2007) | 2 lines
Tokenizer changes for PEP 3127.
................
r55867 | georg.brandl | 2007-06-10 15:37:55 -0700 (Sun, 10 Jun 2007) | 2 lines
Some docs for PEP 3127.
................
r55868 | georg.brandl | 2007-06-10 15:44:39 -0700 (Sun, 10 Jun 2007) | 2 lines
Missed a place in intobject.c. Is that used anymore anyway?
................
r55871 | neal.norwitz | 2007-06-10 18:31:49 -0700 (Sun, 10 Jun 2007) | 182 lines
Merged revisions 55729-55868 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55731 | neal.norwitz | 2007-06-01 00:29:12 -0700 (Fri, 01 Jun 2007) | 7 lines
SF 1668596/1720897: distutils now copies data files
even if package_dir is empty.
This needs to be backported. I'm too tired tonight. It would be great
if someone backports this if the buildbots are ok with it. Otherwise,
I will try to get to it tomorrow.
........
r55732 | georg.brandl | 2007-06-01 04:33:33 -0700 (Fri, 01 Jun 2007) | 2 lines
Bug #1722484: remove docstrings again when running with -OO.
........
r55735 | georg.brandl | 2007-06-01 12:20:27 -0700 (Fri, 01 Jun 2007) | 2 lines
Fix wrong issue number.
........
r55739 | brett.cannon | 2007-06-01 20:02:29 -0700 (Fri, 01 Jun 2007) | 3 lines
Have configure raise an error when building on AtheOS. Code specific to AtheOS
will be removed in Python 2.7.
........
r55746 | neal.norwitz | 2007-06-02 11:33:53 -0700 (Sat, 02 Jun 2007) | 1 line
Update expected birthday of 2.6
........
r55751 | neal.norwitz | 2007-06-03 13:32:50 -0700 (Sun, 03 Jun 2007) | 10 lines
Backout the original 'fix' to 1721309 which had no effect.
Different versions of Berkeley DB handle this differently.
The comments and bug report should have the details. Memory is allocated
in 4.4 (and presumably earlier), but not in 4.5. Thus
4.5 has the free error, but not earlier versions.
Mostly update comments, plus make the free conditional.
This fix was already applied to the 2.5 branch.
........
r55752 | brett.cannon | 2007-06-03 16:13:41 -0700 (Sun, 03 Jun 2007) | 6 lines
Make _strptime.TimeRE().pattern() use ``\s+`` for matching whitespace instead
of ``\s*``. This prevents patterns from "stealing" bits from other patterns in
order to make a match work.
Closes bug #1730389. Will be backported.
........
r55766 | hyeshik.chang | 2007-06-05 11:16:52 -0700 (Tue, 05 Jun 2007) | 4 lines
Fix build on FreeBSD. Bluetooth HCI API in FreeBSD is quite different
from Linux's. Just fix the build for now but the code doesn't
support the complete capability of HCI on FreeBSD yet.
........
r55770 | hyeshik.chang | 2007-06-05 11:58:51 -0700 (Tue, 05 Jun 2007) | 4 lines
Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
reads a file that ends with incomplete sequence and sizehint argument
for .read() is specified.
........
r55775 | hyeshik.chang | 2007-06-05 12:28:15 -0700 (Tue, 05 Jun 2007) | 2 lines
Fix for Windows: close a temporary file before trying to delete it.
........
r55783 | guido.van.rossum | 2007-06-05 14:24:47 -0700 (Tue, 05 Jun 2007) | 2 lines
Patch by Tim Delany (missing DECREF). SF #1731330.
........
r55785 | collin.winter | 2007-06-05 17:17:35 -0700 (Tue, 05 Jun 2007) | 3 lines
Patch #1731049: make threading.py use a proper "raise" when checking internal state, rather than assert statements (which get stripped out by -O).
........
r55786 | facundo.batista | 2007-06-06 08:13:37 -0700 (Wed, 06 Jun 2007) | 4 lines
FTP.ntransfercmd method now uses create_connection when passive,
using the timeout received in connection time.
........
r55792 | facundo.batista | 2007-06-06 10:15:23 -0700 (Wed, 06 Jun 2007) | 7 lines
Added an optional timeout parameter to function urllib2.urlopen,
with tests in test_urllib2net.py (must have network resource
enabled to execute them). Also modified test_urllib2.py because
testing mock classes must take it into acount. Docs are also
updated.
........
r55793 | thomas.heller | 2007-06-06 13:19:19 -0700 (Wed, 06 Jun 2007) | 1 line
Build _ctypes and _ctypes_test in the ReleaseAMD64 configuration.
........
r55802 | georg.brandl | 2007-06-07 06:23:24 -0700 (Thu, 07 Jun 2007) | 3 lines
Disallow function calls like foo(None=1).
Backport from py3k rev. 55708 by Guido.
........
r55804 | georg.brandl | 2007-06-07 06:30:24 -0700 (Thu, 07 Jun 2007) | 2 lines
Make reindent.py executable.
........
r55805 | georg.brandl | 2007-06-07 06:34:10 -0700 (Thu, 07 Jun 2007) | 2 lines
Patch #1667860: Fix UnboundLocalError in urllib2.
........
r55821 | kristjan.jonsson | 2007-06-07 16:53:49 -0700 (Thu, 07 Jun 2007) | 1 line
Fixing changes to getbuildinfo.c that broke linux builds
........
r55828 | thomas.heller | 2007-06-08 09:10:27 -0700 (Fri, 08 Jun 2007) | 1 line
Make this test work with older Python releases where struct has no 't' format character.
........
r55829 | martin.v.loewis | 2007-06-08 10:29:20 -0700 (Fri, 08 Jun 2007) | 3 lines
Bug #1733488: Fix compilation of bufferobject.c on AIX.
Will backport to 2.5.
........
r55831 | thomas.heller | 2007-06-08 11:20:09 -0700 (Fri, 08 Jun 2007) | 2 lines
[ 1715718 ] x64 clean compile patch for _ctypes, by Kristj?n Valur
with small modifications.
........
r55832 | thomas.heller | 2007-06-08 12:01:06 -0700 (Fri, 08 Jun 2007) | 1 line
Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.
........
r55833 | thomas.heller | 2007-06-08 12:08:31 -0700 (Fri, 08 Jun 2007) | 2 lines
Fix wrong documentation, and correct the punktuation.
Closes [1700455].
........
r55834 | thomas.heller | 2007-06-08 12:14:23 -0700 (Fri, 08 Jun 2007) | 1 line
Fix warnings by using proper function prototype.
........
r55839 | neal.norwitz | 2007-06-08 20:36:34 -0700 (Fri, 08 Jun 2007) | 7 lines
Prevent expandtabs() on string and unicode objects from causing a segfault when
a large width is passed on 32-bit platforms. Found by Google.
It would be good for people to review this especially carefully and verify
I don't have an off by one error and there is no other way to cause overflow.
........
r55841 | neal.norwitz | 2007-06-08 21:48:22 -0700 (Fri, 08 Jun 2007) | 1 line
Use macro version of GET_SIZE to avoid Coverity warning (#150) about a possible error.
........
r55842 | martin.v.loewis | 2007-06-09 00:42:52 -0700 (Sat, 09 Jun 2007) | 3 lines
Patch #1733960: Allow T_LONGLONG to accept ints.
Will backport to 2.5.
........
r55843 | martin.v.loewis | 2007-06-09 00:58:05 -0700 (Sat, 09 Jun 2007) | 2 lines
Fix Windows build.
........
r55845 | martin.v.loewis | 2007-06-09 03:10:26 -0700 (Sat, 09 Jun 2007) | 2 lines
Provide LLONG_MAX for S390.
........
r55854 | thomas.heller | 2007-06-10 08:59:17 -0700 (Sun, 10 Jun 2007) | 4 lines
First version of build scripts for Windows/AMD64 (no external
components are built yet, and 'kill_python' is disabled).
........
r55855 | thomas.heller | 2007-06-10 10:55:51 -0700 (Sun, 10 Jun 2007) | 3 lines
For now, disable the _bsddb, _sqlite3, _ssl, _testcapi, _tkinter
modules in the ReleaseAMD64 configuration because they do not compile.
........
r55856 | thomas.heller | 2007-06-10 11:27:54 -0700 (Sun, 10 Jun 2007) | 1 line
Need to set the environment variables, otherwise devenv.com is not found.
........
r55860 | thomas.heller | 2007-06-10 14:01:17 -0700 (Sun, 10 Jun 2007) | 1 line
Revert commit 55855.
........
................
r55880 | neal.norwitz | 2007-06-10 22:07:36 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix the refleak counter on test_collections. The ABC metaclass creates
a registry which must be cleared on each run. Otherwise, there *seem*
to be refleaks when there really aren't any. (The class is held within
the registry even though it's no longer needed.)
................
r55884 | neal.norwitz | 2007-06-10 22:46:33 -0700 (Sun, 10 Jun 2007) | 1 line
These tests have been removed, so they are no longer needed here
................
r55886 | georg.brandl | 2007-06-11 00:26:37 -0700 (Mon, 11 Jun 2007) | 3 lines
Optimize access to True and False in the compiler (if True)
and the peepholer (LOAD_NAME True).
................
r55905 | georg.brandl | 2007-06-11 10:02:26 -0700 (Mon, 11 Jun 2007) | 5 lines
Remove __oct__ and __hex__ and use __index__ for converting
non-ints before formatting in a base.
Add a bin() builtin.
................
r55906 | georg.brandl | 2007-06-11 10:04:44 -0700 (Mon, 11 Jun 2007) | 2 lines
int(x, 0) does not "guess".
................
r55907 | georg.brandl | 2007-06-11 10:05:47 -0700 (Mon, 11 Jun 2007) | 2 lines
Add a comment to explain that nb_oct and nb_hex are nonfunctional.
................
r55908 | guido.van.rossum | 2007-06-11 10:49:18 -0700 (Mon, 11 Jun 2007) | 2 lines
Get rid of unused imports and comment.
................
r55910 | guido.van.rossum | 2007-06-11 13:05:17 -0700 (Mon, 11 Jun 2007) | 2 lines
_Abstract.__new__ now requires either no arguments or __init__ overridden.
................
r55911 | guido.van.rossum | 2007-06-11 13:07:49 -0700 (Mon, 11 Jun 2007) | 7 lines
Move the collections ABCs to a separate file, _abcoll.py, in order to avoid
needing to import _collections.so during the bootstrap (this will become
apparent in the next submit of os.py).
Add (plain and mutable) ABCs for Set, Mapping, Sequence.
................
r55912 | guido.van.rossum | 2007-06-11 13:09:31 -0700 (Mon, 11 Jun 2007) | 2 lines
Rewrite the _Environ class to use the new collections ABCs.
................
r55913 | guido.van.rossum | 2007-06-11 13:59:45 -0700 (Mon, 11 Jun 2007) | 72 lines
Merged revisions 55869-55912 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55869 | neal.norwitz | 2007-06-10 17:42:11 -0700 (Sun, 10 Jun 2007) | 1 line
Add Atul Varma for patch # 1667860
........
r55870 | neal.norwitz | 2007-06-10 18:22:03 -0700 (Sun, 10 Jun 2007) | 1 line
Ignore valgrind problems on Ubuntu from ld
........
r55872 | neal.norwitz | 2007-06-10 18:48:46 -0700 (Sun, 10 Jun 2007) | 2 lines
Ignore config.status.lineno which seems new (new autoconf?)
........
r55873 | neal.norwitz | 2007-06-10 19:14:39 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent these tests from running on Win64 since they don\'t apply there either
........
r55874 | neal.norwitz | 2007-06-10 19:16:10 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix a bug when there was a newline in the string expandtabs was called on.
This also catches another condition that can overflow.
Will backport.
........
r55879 | neal.norwitz | 2007-06-10 21:52:37 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent hang if the port cannot be opened.
........
r55881 | neal.norwitz | 2007-06-10 22:28:45 -0700 (Sun, 10 Jun 2007) | 4 lines
Add all of the distuils modules that don't seem to have explicit tests. :-(
Move an import in mworkscompiler so that this module can be imported on
any platform. Hopefully this works on all platforms.
........
r55882 | neal.norwitz | 2007-06-10 22:35:10 -0700 (Sun, 10 Jun 2007) | 4 lines
SF #1734732, lower case the module names per PEP 8.
Will backport.
........
r55885 | neal.norwitz | 2007-06-10 23:16:48 -0700 (Sun, 10 Jun 2007) | 4 lines
Not sure why this only fails sometimes on Unix machines. Better
to disable it and only import msvccompiler on Windows since that's
the only place it can work anyways.
........
r55887 | neal.norwitz | 2007-06-11 00:29:43 -0700 (Mon, 11 Jun 2007) | 4 lines
Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
Will backport
........
r55889 | neal.norwitz | 2007-06-11 00:36:24 -0700 (Mon, 11 Jun 2007) | 1 line
Reflow long line
........
r55896 | thomas.heller | 2007-06-11 08:58:33 -0700 (Mon, 11 Jun 2007) | 3 lines
Use "O&" in calls to PyArg_Parse when we need a 'void*' instead of "k"
or "K" codes.
........
r55901 | facundo.batista | 2007-06-11 09:27:08 -0700 (Mon, 11 Jun 2007) | 5 lines
Added versionchanged flag to all the methods which received
a new optional timeout parameter, and a versionadded flag to
the socket.create_connection function.
........
................
r55914 | guido.van.rossum | 2007-06-11 14:19:50 -0700 (Mon, 11 Jun 2007) | 3 lines
New super() implementation, for PEP 3135 (though the PEP is not yet updated
to this design, and small tweaks may still be made later).
................
r55923 | guido.van.rossum | 2007-06-11 21:15:24 -0700 (Mon, 11 Jun 2007) | 4 lines
I'm guessing this module broke when Neal ripped out the types module --
it used 'list' both as a local variable and as the built-in list type.
Renamed the local variable since that was easier.
................
r55924 | guido.van.rossum | 2007-06-11 21:20:05 -0700 (Mon, 11 Jun 2007) | 5 lines
Change all occurrences of super(<thisclass>, <firstarg>) to super().
Seems to have worked, all the tests still pass.
Exception: test_descr and test_descrtut, which have tons of these
and are there to test the various usages.
................
r55939 | collin.winter | 2007-06-12 13:57:33 -0700 (Tue, 12 Jun 2007) | 1 line
Patch #1735485: remove StandardError from the exception hierarchy.
................
r55954 | neal.norwitz | 2007-06-12 21:56:32 -0700 (Tue, 12 Jun 2007) | 51 lines
Merged revisions 55913-55950 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55926 | marc-andre.lemburg | 2007-06-12 02:09:58 -0700 (Tue, 12 Jun 2007) | 3 lines
Apply patch #1734945 to support TurboLinux as distribution.
........
r55927 | marc-andre.lemburg | 2007-06-12 02:26:49 -0700 (Tue, 12 Jun 2007) | 3 lines
Add patch #1726668: Windows Vista support.
........
r55929 | thomas.heller | 2007-06-12 08:36:22 -0700 (Tue, 12 Jun 2007) | 1 line
Checkout, but do not yet try to build, exernal sources.
........
r55930 | thomas.heller | 2007-06-12 09:08:27 -0700 (Tue, 12 Jun 2007) | 6 lines
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
Set the /XP64 /RETAIL build enviroment in the makefile when building
ReleaseAMD64.
........
r55931 | thomas.heller | 2007-06-12 09:23:19 -0700 (Tue, 12 Jun 2007) | 5 lines
Revert this change, since it breaks the win32 build:
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
........
r55934 | thomas.heller | 2007-06-12 10:28:31 -0700 (Tue, 12 Jun 2007) | 3 lines
Specify the bufferoverflowU.lib to the makefile on the command line
(for ReleaseAMD64 builds).
........
r55937 | thomas.heller | 2007-06-12 12:02:59 -0700 (Tue, 12 Jun 2007) | 3 lines
Add bufferoverflowU.lib to PCBuild\_bsddb.vcproj.
Build sqlite3.dll and bsddb.
........
r55938 | thomas.heller | 2007-06-12 12:56:12 -0700 (Tue, 12 Jun 2007) | 2 lines
Don't rebuild Berkeley DB if not needed (this was committed by accident).
........
r55948 | martin.v.loewis | 2007-06-12 20:42:19 -0700 (Tue, 12 Jun 2007) | 3 lines
Provide PY_LLONG_MAX on all systems having long long.
Will backport to 2.5.
........
................
r55959 | guido.van.rossum | 2007-06-13 09:22:41 -0700 (Wed, 13 Jun 2007) | 2 lines
Fix a compilation warning.
................
2007-06-14 02:07:49 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyNumber_ToBase(number, 2);
|
Merged revisions 55817-55961 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
r55837 | guido.van.rossum | 2007-06-08 16:04:42 -0700 (Fri, 08 Jun 2007) | 2 lines
PEP 3119 -- the abc module.
................
r55838 | guido.van.rossum | 2007-06-08 17:38:55 -0700 (Fri, 08 Jun 2007) | 2 lines
Implement part of PEP 3119 -- One Trick Ponies.
................
r55847 | guido.van.rossum | 2007-06-09 08:28:06 -0700 (Sat, 09 Jun 2007) | 2 lines
Different way to do one trick ponies, allowing registration (per PEP strawman).
................
r55849 | guido.van.rossum | 2007-06-09 18:06:38 -0700 (Sat, 09 Jun 2007) | 3 lines
Make sure that the magic looking for __hash__ (etc.) doesn't apply to
real subclasses of Hashable.
................
r55852 | guido.van.rossum | 2007-06-10 08:29:51 -0700 (Sun, 10 Jun 2007) | 2 lines
Add some more examples, e.g. generators and dict views.
................
r55853 | guido.van.rossum | 2007-06-10 08:31:59 -0700 (Sun, 10 Jun 2007) | 2 lines
keys() and items() *are* containers -- just values() isn't.
................
r55864 | georg.brandl | 2007-06-10 15:29:40 -0700 (Sun, 10 Jun 2007) | 2 lines
PEP 3127: new octal literals, binary literals.
................
r55865 | georg.brandl | 2007-06-10 15:31:37 -0700 (Sun, 10 Jun 2007) | 2 lines
Some octal literal fixes in Tools.
................
r55866 | georg.brandl | 2007-06-10 15:37:43 -0700 (Sun, 10 Jun 2007) | 2 lines
Tokenizer changes for PEP 3127.
................
r55867 | georg.brandl | 2007-06-10 15:37:55 -0700 (Sun, 10 Jun 2007) | 2 lines
Some docs for PEP 3127.
................
r55868 | georg.brandl | 2007-06-10 15:44:39 -0700 (Sun, 10 Jun 2007) | 2 lines
Missed a place in intobject.c. Is that used anymore anyway?
................
r55871 | neal.norwitz | 2007-06-10 18:31:49 -0700 (Sun, 10 Jun 2007) | 182 lines
Merged revisions 55729-55868 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55731 | neal.norwitz | 2007-06-01 00:29:12 -0700 (Fri, 01 Jun 2007) | 7 lines
SF 1668596/1720897: distutils now copies data files
even if package_dir is empty.
This needs to be backported. I'm too tired tonight. It would be great
if someone backports this if the buildbots are ok with it. Otherwise,
I will try to get to it tomorrow.
........
r55732 | georg.brandl | 2007-06-01 04:33:33 -0700 (Fri, 01 Jun 2007) | 2 lines
Bug #1722484: remove docstrings again when running with -OO.
........
r55735 | georg.brandl | 2007-06-01 12:20:27 -0700 (Fri, 01 Jun 2007) | 2 lines
Fix wrong issue number.
........
r55739 | brett.cannon | 2007-06-01 20:02:29 -0700 (Fri, 01 Jun 2007) | 3 lines
Have configure raise an error when building on AtheOS. Code specific to AtheOS
will be removed in Python 2.7.
........
r55746 | neal.norwitz | 2007-06-02 11:33:53 -0700 (Sat, 02 Jun 2007) | 1 line
Update expected birthday of 2.6
........
r55751 | neal.norwitz | 2007-06-03 13:32:50 -0700 (Sun, 03 Jun 2007) | 10 lines
Backout the original 'fix' to 1721309 which had no effect.
Different versions of Berkeley DB handle this differently.
The comments and bug report should have the details. Memory is allocated
in 4.4 (and presumably earlier), but not in 4.5. Thus
4.5 has the free error, but not earlier versions.
Mostly update comments, plus make the free conditional.
This fix was already applied to the 2.5 branch.
........
r55752 | brett.cannon | 2007-06-03 16:13:41 -0700 (Sun, 03 Jun 2007) | 6 lines
Make _strptime.TimeRE().pattern() use ``\s+`` for matching whitespace instead
of ``\s*``. This prevents patterns from "stealing" bits from other patterns in
order to make a match work.
Closes bug #1730389. Will be backported.
........
r55766 | hyeshik.chang | 2007-06-05 11:16:52 -0700 (Tue, 05 Jun 2007) | 4 lines
Fix build on FreeBSD. Bluetooth HCI API in FreeBSD is quite different
from Linux's. Just fix the build for now but the code doesn't
support the complete capability of HCI on FreeBSD yet.
........
r55770 | hyeshik.chang | 2007-06-05 11:58:51 -0700 (Tue, 05 Jun 2007) | 4 lines
Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
reads a file that ends with incomplete sequence and sizehint argument
for .read() is specified.
........
r55775 | hyeshik.chang | 2007-06-05 12:28:15 -0700 (Tue, 05 Jun 2007) | 2 lines
Fix for Windows: close a temporary file before trying to delete it.
........
r55783 | guido.van.rossum | 2007-06-05 14:24:47 -0700 (Tue, 05 Jun 2007) | 2 lines
Patch by Tim Delany (missing DECREF). SF #1731330.
........
r55785 | collin.winter | 2007-06-05 17:17:35 -0700 (Tue, 05 Jun 2007) | 3 lines
Patch #1731049: make threading.py use a proper "raise" when checking internal state, rather than assert statements (which get stripped out by -O).
........
r55786 | facundo.batista | 2007-06-06 08:13:37 -0700 (Wed, 06 Jun 2007) | 4 lines
FTP.ntransfercmd method now uses create_connection when passive,
using the timeout received in connection time.
........
r55792 | facundo.batista | 2007-06-06 10:15:23 -0700 (Wed, 06 Jun 2007) | 7 lines
Added an optional timeout parameter to function urllib2.urlopen,
with tests in test_urllib2net.py (must have network resource
enabled to execute them). Also modified test_urllib2.py because
testing mock classes must take it into acount. Docs are also
updated.
........
r55793 | thomas.heller | 2007-06-06 13:19:19 -0700 (Wed, 06 Jun 2007) | 1 line
Build _ctypes and _ctypes_test in the ReleaseAMD64 configuration.
........
r55802 | georg.brandl | 2007-06-07 06:23:24 -0700 (Thu, 07 Jun 2007) | 3 lines
Disallow function calls like foo(None=1).
Backport from py3k rev. 55708 by Guido.
........
r55804 | georg.brandl | 2007-06-07 06:30:24 -0700 (Thu, 07 Jun 2007) | 2 lines
Make reindent.py executable.
........
r55805 | georg.brandl | 2007-06-07 06:34:10 -0700 (Thu, 07 Jun 2007) | 2 lines
Patch #1667860: Fix UnboundLocalError in urllib2.
........
r55821 | kristjan.jonsson | 2007-06-07 16:53:49 -0700 (Thu, 07 Jun 2007) | 1 line
Fixing changes to getbuildinfo.c that broke linux builds
........
r55828 | thomas.heller | 2007-06-08 09:10:27 -0700 (Fri, 08 Jun 2007) | 1 line
Make this test work with older Python releases where struct has no 't' format character.
........
r55829 | martin.v.loewis | 2007-06-08 10:29:20 -0700 (Fri, 08 Jun 2007) | 3 lines
Bug #1733488: Fix compilation of bufferobject.c on AIX.
Will backport to 2.5.
........
r55831 | thomas.heller | 2007-06-08 11:20:09 -0700 (Fri, 08 Jun 2007) | 2 lines
[ 1715718 ] x64 clean compile patch for _ctypes, by Kristj?n Valur
with small modifications.
........
r55832 | thomas.heller | 2007-06-08 12:01:06 -0700 (Fri, 08 Jun 2007) | 1 line
Fix gcc warnings intruduced by passing Py_ssize_t to PyErr_Format calls.
........
r55833 | thomas.heller | 2007-06-08 12:08:31 -0700 (Fri, 08 Jun 2007) | 2 lines
Fix wrong documentation, and correct the punktuation.
Closes [1700455].
........
r55834 | thomas.heller | 2007-06-08 12:14:23 -0700 (Fri, 08 Jun 2007) | 1 line
Fix warnings by using proper function prototype.
........
r55839 | neal.norwitz | 2007-06-08 20:36:34 -0700 (Fri, 08 Jun 2007) | 7 lines
Prevent expandtabs() on string and unicode objects from causing a segfault when
a large width is passed on 32-bit platforms. Found by Google.
It would be good for people to review this especially carefully and verify
I don't have an off by one error and there is no other way to cause overflow.
........
r55841 | neal.norwitz | 2007-06-08 21:48:22 -0700 (Fri, 08 Jun 2007) | 1 line
Use macro version of GET_SIZE to avoid Coverity warning (#150) about a possible error.
........
r55842 | martin.v.loewis | 2007-06-09 00:42:52 -0700 (Sat, 09 Jun 2007) | 3 lines
Patch #1733960: Allow T_LONGLONG to accept ints.
Will backport to 2.5.
........
r55843 | martin.v.loewis | 2007-06-09 00:58:05 -0700 (Sat, 09 Jun 2007) | 2 lines
Fix Windows build.
........
r55845 | martin.v.loewis | 2007-06-09 03:10:26 -0700 (Sat, 09 Jun 2007) | 2 lines
Provide LLONG_MAX for S390.
........
r55854 | thomas.heller | 2007-06-10 08:59:17 -0700 (Sun, 10 Jun 2007) | 4 lines
First version of build scripts for Windows/AMD64 (no external
components are built yet, and 'kill_python' is disabled).
........
r55855 | thomas.heller | 2007-06-10 10:55:51 -0700 (Sun, 10 Jun 2007) | 3 lines
For now, disable the _bsddb, _sqlite3, _ssl, _testcapi, _tkinter
modules in the ReleaseAMD64 configuration because they do not compile.
........
r55856 | thomas.heller | 2007-06-10 11:27:54 -0700 (Sun, 10 Jun 2007) | 1 line
Need to set the environment variables, otherwise devenv.com is not found.
........
r55860 | thomas.heller | 2007-06-10 14:01:17 -0700 (Sun, 10 Jun 2007) | 1 line
Revert commit 55855.
........
................
r55880 | neal.norwitz | 2007-06-10 22:07:36 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix the refleak counter on test_collections. The ABC metaclass creates
a registry which must be cleared on each run. Otherwise, there *seem*
to be refleaks when there really aren't any. (The class is held within
the registry even though it's no longer needed.)
................
r55884 | neal.norwitz | 2007-06-10 22:46:33 -0700 (Sun, 10 Jun 2007) | 1 line
These tests have been removed, so they are no longer needed here
................
r55886 | georg.brandl | 2007-06-11 00:26:37 -0700 (Mon, 11 Jun 2007) | 3 lines
Optimize access to True and False in the compiler (if True)
and the peepholer (LOAD_NAME True).
................
r55905 | georg.brandl | 2007-06-11 10:02:26 -0700 (Mon, 11 Jun 2007) | 5 lines
Remove __oct__ and __hex__ and use __index__ for converting
non-ints before formatting in a base.
Add a bin() builtin.
................
r55906 | georg.brandl | 2007-06-11 10:04:44 -0700 (Mon, 11 Jun 2007) | 2 lines
int(x, 0) does not "guess".
................
r55907 | georg.brandl | 2007-06-11 10:05:47 -0700 (Mon, 11 Jun 2007) | 2 lines
Add a comment to explain that nb_oct and nb_hex are nonfunctional.
................
r55908 | guido.van.rossum | 2007-06-11 10:49:18 -0700 (Mon, 11 Jun 2007) | 2 lines
Get rid of unused imports and comment.
................
r55910 | guido.van.rossum | 2007-06-11 13:05:17 -0700 (Mon, 11 Jun 2007) | 2 lines
_Abstract.__new__ now requires either no arguments or __init__ overridden.
................
r55911 | guido.van.rossum | 2007-06-11 13:07:49 -0700 (Mon, 11 Jun 2007) | 7 lines
Move the collections ABCs to a separate file, _abcoll.py, in order to avoid
needing to import _collections.so during the bootstrap (this will become
apparent in the next submit of os.py).
Add (plain and mutable) ABCs for Set, Mapping, Sequence.
................
r55912 | guido.van.rossum | 2007-06-11 13:09:31 -0700 (Mon, 11 Jun 2007) | 2 lines
Rewrite the _Environ class to use the new collections ABCs.
................
r55913 | guido.van.rossum | 2007-06-11 13:59:45 -0700 (Mon, 11 Jun 2007) | 72 lines
Merged revisions 55869-55912 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55869 | neal.norwitz | 2007-06-10 17:42:11 -0700 (Sun, 10 Jun 2007) | 1 line
Add Atul Varma for patch # 1667860
........
r55870 | neal.norwitz | 2007-06-10 18:22:03 -0700 (Sun, 10 Jun 2007) | 1 line
Ignore valgrind problems on Ubuntu from ld
........
r55872 | neal.norwitz | 2007-06-10 18:48:46 -0700 (Sun, 10 Jun 2007) | 2 lines
Ignore config.status.lineno which seems new (new autoconf?)
........
r55873 | neal.norwitz | 2007-06-10 19:14:39 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent these tests from running on Win64 since they don\'t apply there either
........
r55874 | neal.norwitz | 2007-06-10 19:16:10 -0700 (Sun, 10 Jun 2007) | 5 lines
Fix a bug when there was a newline in the string expandtabs was called on.
This also catches another condition that can overflow.
Will backport.
........
r55879 | neal.norwitz | 2007-06-10 21:52:37 -0700 (Sun, 10 Jun 2007) | 1 line
Prevent hang if the port cannot be opened.
........
r55881 | neal.norwitz | 2007-06-10 22:28:45 -0700 (Sun, 10 Jun 2007) | 4 lines
Add all of the distuils modules that don't seem to have explicit tests. :-(
Move an import in mworkscompiler so that this module can be imported on
any platform. Hopefully this works on all platforms.
........
r55882 | neal.norwitz | 2007-06-10 22:35:10 -0700 (Sun, 10 Jun 2007) | 4 lines
SF #1734732, lower case the module names per PEP 8.
Will backport.
........
r55885 | neal.norwitz | 2007-06-10 23:16:48 -0700 (Sun, 10 Jun 2007) | 4 lines
Not sure why this only fails sometimes on Unix machines. Better
to disable it and only import msvccompiler on Windows since that's
the only place it can work anyways.
........
r55887 | neal.norwitz | 2007-06-11 00:29:43 -0700 (Mon, 11 Jun 2007) | 4 lines
Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
Will backport
........
r55889 | neal.norwitz | 2007-06-11 00:36:24 -0700 (Mon, 11 Jun 2007) | 1 line
Reflow long line
........
r55896 | thomas.heller | 2007-06-11 08:58:33 -0700 (Mon, 11 Jun 2007) | 3 lines
Use "O&" in calls to PyArg_Parse when we need a 'void*' instead of "k"
or "K" codes.
........
r55901 | facundo.batista | 2007-06-11 09:27:08 -0700 (Mon, 11 Jun 2007) | 5 lines
Added versionchanged flag to all the methods which received
a new optional timeout parameter, and a versionadded flag to
the socket.create_connection function.
........
................
r55914 | guido.van.rossum | 2007-06-11 14:19:50 -0700 (Mon, 11 Jun 2007) | 3 lines
New super() implementation, for PEP 3135 (though the PEP is not yet updated
to this design, and small tweaks may still be made later).
................
r55923 | guido.van.rossum | 2007-06-11 21:15:24 -0700 (Mon, 11 Jun 2007) | 4 lines
I'm guessing this module broke when Neal ripped out the types module --
it used 'list' both as a local variable and as the built-in list type.
Renamed the local variable since that was easier.
................
r55924 | guido.van.rossum | 2007-06-11 21:20:05 -0700 (Mon, 11 Jun 2007) | 5 lines
Change all occurrences of super(<thisclass>, <firstarg>) to super().
Seems to have worked, all the tests still pass.
Exception: test_descr and test_descrtut, which have tons of these
and are there to test the various usages.
................
r55939 | collin.winter | 2007-06-12 13:57:33 -0700 (Tue, 12 Jun 2007) | 1 line
Patch #1735485: remove StandardError from the exception hierarchy.
................
r55954 | neal.norwitz | 2007-06-12 21:56:32 -0700 (Tue, 12 Jun 2007) | 51 lines
Merged revisions 55913-55950 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r55926 | marc-andre.lemburg | 2007-06-12 02:09:58 -0700 (Tue, 12 Jun 2007) | 3 lines
Apply patch #1734945 to support TurboLinux as distribution.
........
r55927 | marc-andre.lemburg | 2007-06-12 02:26:49 -0700 (Tue, 12 Jun 2007) | 3 lines
Add patch #1726668: Windows Vista support.
........
r55929 | thomas.heller | 2007-06-12 08:36:22 -0700 (Tue, 12 Jun 2007) | 1 line
Checkout, but do not yet try to build, exernal sources.
........
r55930 | thomas.heller | 2007-06-12 09:08:27 -0700 (Tue, 12 Jun 2007) | 6 lines
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
Set the /XP64 /RETAIL build enviroment in the makefile when building
ReleaseAMD64.
........
r55931 | thomas.heller | 2007-06-12 09:23:19 -0700 (Tue, 12 Jun 2007) | 5 lines
Revert this change, since it breaks the win32 build:
Add bufferoverflowU.lib to the libraries needed by _ssl (is this the
right thing to do?).
........
r55934 | thomas.heller | 2007-06-12 10:28:31 -0700 (Tue, 12 Jun 2007) | 3 lines
Specify the bufferoverflowU.lib to the makefile on the command line
(for ReleaseAMD64 builds).
........
r55937 | thomas.heller | 2007-06-12 12:02:59 -0700 (Tue, 12 Jun 2007) | 3 lines
Add bufferoverflowU.lib to PCBuild\_bsddb.vcproj.
Build sqlite3.dll and bsddb.
........
r55938 | thomas.heller | 2007-06-12 12:56:12 -0700 (Tue, 12 Jun 2007) | 2 lines
Don't rebuild Berkeley DB if not needed (this was committed by accident).
........
r55948 | martin.v.loewis | 2007-06-12 20:42:19 -0700 (Tue, 12 Jun 2007) | 3 lines
Provide PY_LLONG_MAX on all systems having long long.
Will backport to 2.5.
........
................
r55959 | guido.van.rossum | 2007-06-13 09:22:41 -0700 (Wed, 13 Jun 2007) | 2 lines
Fix a compilation warning.
................
2007-06-14 02:07:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
callable as builtin_callable
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return whether the object is callable (i.e., some kind of function).
|
|
|
|
|
|
|
|
Note that classes are callable, as are instances of classes with a
|
|
|
|
__call__() method.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
2010-11-28 06:00:11 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_callable(PyObject *module, PyObject *obj)
|
|
|
|
/*[clinic end generated code: output=2b095d59d934cb7e input=1423bab99cc41f58]*/
|
2010-11-28 06:00:11 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyBool_FromLong((long)PyCallable_Check(obj));
|
2010-11-28 06:00:11 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2008-03-13 08:19:26 +08:00
|
|
|
typedef struct {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_HEAD
|
|
|
|
PyObject *func;
|
|
|
|
PyObject *it;
|
2008-03-13 08:19:26 +08:00
|
|
|
} filterobject;
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2008-03-13 08:19:26 +08:00
|
|
|
filter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
1993-10-27 01:58:25 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *func, *seq;
|
|
|
|
PyObject *it;
|
|
|
|
filterobject *lz;
|
|
|
|
|
|
|
|
if (type == &PyFilter_Type && !_PyArg_NoKeywords("filter()", kwds))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (!PyArg_UnpackTuple(args, "filter", 2, 2, &func, &seq))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
/* Get iterator. */
|
|
|
|
it = PyObject_GetIter(seq);
|
|
|
|
if (it == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
/* create filterobject structure */
|
|
|
|
lz = (filterobject *)type->tp_alloc(type, 0);
|
|
|
|
if (lz == NULL) {
|
|
|
|
Py_DECREF(it);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Py_INCREF(func);
|
|
|
|
lz->func = func;
|
|
|
|
lz->it = it;
|
|
|
|
|
|
|
|
return (PyObject *)lz;
|
2008-03-13 08:19:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
filter_dealloc(filterobject *lz)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_GC_UnTrack(lz);
|
|
|
|
Py_XDECREF(lz->func);
|
|
|
|
Py_XDECREF(lz->it);
|
|
|
|
Py_TYPE(lz)->tp_free(lz);
|
2008-03-13 08:19:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
filter_traverse(filterobject *lz, visitproc visit, void *arg)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_VISIT(lz->it);
|
|
|
|
Py_VISIT(lz->func);
|
|
|
|
return 0;
|
2008-03-13 08:19:26 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
filter_next(filterobject *lz)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *item;
|
|
|
|
PyObject *it = lz->it;
|
|
|
|
long ok;
|
|
|
|
PyObject *(*iternext)(PyObject *);
|
2015-10-09 13:34:08 +08:00
|
|
|
int checktrue = lz->func == Py_None || lz->func == (PyObject *)&PyBool_Type;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
iternext = *Py_TYPE(it)->tp_iternext;
|
|
|
|
for (;;) {
|
|
|
|
item = iternext(it);
|
|
|
|
if (item == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
2015-10-09 13:34:08 +08:00
|
|
|
if (checktrue) {
|
2010-05-09 23:52:27 +08:00
|
|
|
ok = PyObject_IsTrue(item);
|
|
|
|
} else {
|
|
|
|
PyObject *good;
|
2015-10-09 13:34:08 +08:00
|
|
|
good = PyObject_CallFunctionObjArgs(lz->func, item, NULL);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (good == NULL) {
|
|
|
|
Py_DECREF(item);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
ok = PyObject_IsTrue(good);
|
|
|
|
Py_DECREF(good);
|
|
|
|
}
|
2012-08-16 05:18:25 +08:00
|
|
|
if (ok > 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return item;
|
|
|
|
Py_DECREF(item);
|
2012-08-16 05:18:25 +08:00
|
|
|
if (ok < 0)
|
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
1993-10-27 01:58:25 +08:00
|
|
|
}
|
|
|
|
|
2012-04-03 18:49:41 +08:00
|
|
|
static PyObject *
|
|
|
|
filter_reduce(filterobject *lz)
|
|
|
|
{
|
|
|
|
return Py_BuildValue("O(OO)", Py_TYPE(lz), lz->func, lz->it);
|
|
|
|
}
|
|
|
|
|
|
|
|
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
|
|
|
|
|
|
|
|
static PyMethodDef filter_methods[] = {
|
|
|
|
{"__reduce__", (PyCFunction)filter_reduce, METH_NOARGS, reduce_doc},
|
|
|
|
{NULL, NULL} /* sentinel */
|
|
|
|
};
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(filter_doc,
|
2008-05-16 21:27:32 +08:00
|
|
|
"filter(function or None, iterable) --> filter object\n\
|
Merged revisions 56125-56153 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
........
r56127 | georg.brandl | 2007-06-30 09:32:49 +0200 (Sat, 30 Jun 2007) | 2 lines
Fix a place where floor division would be in order.
........
r56135 | guido.van.rossum | 2007-07-01 06:13:54 +0200 (Sun, 01 Jul 2007) | 28 lines
Make map() and filter() identical to itertools.imap() and .ifilter(),
respectively.
I fixed two bootstrap issues, due to the dynamic import of itertools:
1. Starting python requires that map() and filter() are not used until
site.py has added build/lib.<arch> to sys.path.
2. Building python requires that setup.py and distutils and everything
they use is free of map() and filter() calls.
Beyond this, I only fixed the tests in test_builtin.py.
Others, please help fixing the remaining tests that are now broken!
The fixes are usually simple:
a. map(None, X) -> list(X)
b. map(F, X) -> list(map(F, X))
c. map(lambda x: F(x), X) -> [F(x) for x in X]
d. filter(F, X) -> list(filter(F, X))
e. filter(lambda x: P(x), X) -> [x for x in X if P(x)]
Someone, please also contribute a fixer for 2to3 to do this.
It can leave map()/filter() calls alone that are already
inside a list() or sorted() call or for-loop.
Only in rare cases have I seen code that depends on map() of lists
of different lengths going to the end of the longest, or on filter()
of a string or tuple returning an object of the same type; these
will need more thought to fix.
........
r56136 | guido.van.rossum | 2007-07-01 06:22:01 +0200 (Sun, 01 Jul 2007) | 3 lines
Make it so that test_decimal fails instead of hangs, to help automated
test runners.
........
r56139 | georg.brandl | 2007-07-01 18:20:58 +0200 (Sun, 01 Jul 2007) | 2 lines
Fix a few test cases after the map->imap change.
........
r56142 | neal.norwitz | 2007-07-02 06:38:12 +0200 (Mon, 02 Jul 2007) | 1 line
Get a bunch more tests passing after converting map/filter to return iterators.
........
r56147 | guido.van.rossum | 2007-07-02 15:32:02 +0200 (Mon, 02 Jul 2007) | 4 lines
Fix the remaining failing unit tests (at least on OSX).
Also tweaked urllib2 so it doesn't raise socket.gaierror when
all network interfaces are turned off.
........
2007-07-03 16:25:58 +08:00
|
|
|
\n\
|
2008-05-16 21:27:32 +08:00
|
|
|
Return an iterator yielding those items of iterable for which function(item)\n\
|
2008-03-13 08:19:26 +08:00
|
|
|
is true. If function is None, return the items that are true.");
|
|
|
|
|
|
|
|
PyTypeObject PyFilter_Type = {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
|
|
|
"filter", /* tp_name */
|
|
|
|
sizeof(filterobject), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
|
|
|
/* methods */
|
|
|
|
(destructor)filter_dealloc, /* tp_dealloc */
|
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
|
|
|
0, /* tp_reserved */
|
|
|
|
0, /* tp_repr */
|
|
|
|
0, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
0, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
0, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
|
|
|
|
Py_TPFLAGS_BASETYPE, /* tp_flags */
|
|
|
|
filter_doc, /* tp_doc */
|
|
|
|
(traverseproc)filter_traverse, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
|
|
|
0, /* tp_richcompare */
|
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
PyObject_SelfIter, /* tp_iter */
|
|
|
|
(iternextfunc)filter_next, /* tp_iternext */
|
2012-04-03 18:49:41 +08:00
|
|
|
filter_methods, /* tp_methods */
|
2010-05-09 23:52:27 +08:00
|
|
|
0, /* tp_members */
|
|
|
|
0, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
PyType_GenericAlloc, /* tp_alloc */
|
|
|
|
filter_new, /* tp_new */
|
|
|
|
PyObject_GC_Del, /* tp_free */
|
2008-03-13 08:19:26 +08:00
|
|
|
};
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
format as builtin_format
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
value: object
|
2014-08-17 12:01:19 +08:00
|
|
|
format_spec: unicode(c_default="NULL") = ''
|
|
|
|
/
|
|
|
|
|
|
|
|
Return value.__format__(format_spec)
|
|
|
|
|
|
|
|
format_spec defaults to the empty string
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec)
|
|
|
|
/*[clinic end generated code: output=2f40bdfa4954b077 input=6325e751a1b29b86]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
2008-02-18 03:48:00 +08:00
|
|
|
return PyObject_Format(value, format_spec);
|
2007-08-25 10:26:07 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
chr as builtin_chr
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
i: int
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_chr_impl(PyObject *module, int i)
|
|
|
|
/*[clinic end generated code: output=c733afcd200afcb7 input=3f604ef45a70750d]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
return PyUnicode_FromOrdinal(i);
|
|
|
|
}
|
2000-03-11 07:00:52 +08:00
|
|
|
|
|
|
|
|
2015-02-03 07:21:08 +08:00
|
|
|
static const char *
|
2015-11-07 10:32:21 +08:00
|
|
|
source_as_string(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags *cf, PyObject **cmd_copy)
|
2007-05-04 08:41:39 +08:00
|
|
|
{
|
2015-02-03 07:21:08 +08:00
|
|
|
const char *str;
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_ssize_t size;
|
2015-11-07 10:32:21 +08:00
|
|
|
Py_buffer view;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2015-11-07 10:32:21 +08:00
|
|
|
*cmd_copy = NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
if (PyUnicode_Check(cmd)) {
|
|
|
|
cf->cf_flags |= PyCF_IGNORE_COOKIE;
|
2011-09-28 13:41:54 +08:00
|
|
|
str = PyUnicode_AsUTF8AndSize(cmd, &size);
|
|
|
|
if (str == NULL)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
2015-11-07 10:32:21 +08:00
|
|
|
else if (PyBytes_Check(cmd)) {
|
|
|
|
str = PyBytes_AS_STRING(cmd);
|
|
|
|
size = PyBytes_GET_SIZE(cmd);
|
|
|
|
}
|
|
|
|
else if (PyByteArray_Check(cmd)) {
|
|
|
|
str = PyByteArray_AS_STRING(cmd);
|
|
|
|
size = PyByteArray_GET_SIZE(cmd);
|
|
|
|
}
|
|
|
|
else if (PyObject_GetBuffer(cmd, &view, PyBUF_SIMPLE) == 0) {
|
|
|
|
/* Copy to NUL-terminated buffer. */
|
|
|
|
*cmd_copy = PyBytes_FromStringAndSize(
|
|
|
|
(const char *)view.buf, view.len);
|
|
|
|
PyBuffer_Release(&view);
|
|
|
|
if (*cmd_copy == NULL) {
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
str = PyBytes_AS_STRING(*cmd_copy);
|
|
|
|
size = PyBytes_GET_SIZE(*cmd_copy);
|
2015-02-03 07:21:08 +08:00
|
|
|
}
|
|
|
|
else {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"%s() arg 1 must be a %s object",
|
|
|
|
funcname, what);
|
|
|
|
return NULL;
|
|
|
|
}
|
2011-09-28 13:41:54 +08:00
|
|
|
|
2015-02-03 07:25:42 +08:00
|
|
|
if (strlen(str) != (size_t)size) {
|
2014-09-07 01:07:17 +08:00
|
|
|
PyErr_SetString(PyExc_ValueError,
|
2010-05-09 23:52:27 +08:00
|
|
|
"source code string cannot contain null bytes");
|
2015-11-07 10:32:21 +08:00
|
|
|
Py_CLEAR(*cmd_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
return str;
|
2007-05-04 08:41:39 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
compile as builtin_compile
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
source: object
|
2014-08-17 12:01:19 +08:00
|
|
|
filename: object(converter="PyUnicode_FSDecoder")
|
2015-05-30 16:09:35 +08:00
|
|
|
mode: str
|
|
|
|
flags: int = 0
|
2015-05-30 16:30:39 +08:00
|
|
|
dont_inherit: int(c_default="0") = False
|
2015-05-30 16:09:35 +08:00
|
|
|
optimize: int = -1
|
2014-08-17 12:01:19 +08:00
|
|
|
|
|
|
|
Compile source into a code object that can be executed by exec() or eval().
|
|
|
|
|
|
|
|
The source code may represent a Python module, statement or expression.
|
|
|
|
The filename will be used for run-time error messages.
|
|
|
|
The mode must be 'exec' to compile a module, 'single' to compile a
|
|
|
|
single (interactive) statement, or 'eval' to compile an expression.
|
|
|
|
The flags argument, if present, controls which future statements influence
|
|
|
|
the compilation of the code.
|
2015-05-30 16:30:39 +08:00
|
|
|
The dont_inherit argument, if true, stops the compilation inheriting
|
2014-08-17 12:01:19 +08:00
|
|
|
the effects of any future statements in effect in the code calling
|
2015-05-30 16:30:39 +08:00
|
|
|
compile; if absent or false these statements do influence the compilation,
|
2014-08-17 12:01:19 +08:00
|
|
|
in addition to any features explicitly specified.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
|
|
|
|
const char *mode, int flags, int dont_inherit,
|
|
|
|
int optimize)
|
|
|
|
/*[clinic end generated code: output=1fa176e33452bb63 input=9d53e8cfb3c86414]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
2015-11-07 10:56:11 +08:00
|
|
|
PyObject *source_copy;
|
2015-02-03 07:25:42 +08:00
|
|
|
const char *str;
|
2014-08-17 12:01:19 +08:00
|
|
|
int compile_mode = -1;
|
2010-05-09 23:52:27 +08:00
|
|
|
int is_ast;
|
|
|
|
PyCompilerFlags cf;
|
|
|
|
int start[] = {Py_file_input, Py_eval_input, Py_single_input};
|
2010-10-16 21:14:10 +08:00
|
|
|
PyObject *result;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
cf.cf_flags = flags | PyCF_SOURCE_IS_UTF8;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
if (flags &
|
2010-05-09 23:52:27 +08:00
|
|
|
~(PyCF_MASK | PyCF_MASK_OBSOLETE | PyCF_DONT_IMPLY_DEDENT | PyCF_ONLY_AST))
|
|
|
|
{
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"compile(): unrecognised flags");
|
2010-10-16 21:14:10 +08:00
|
|
|
goto error;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
/* XXX Warn if (supplied_flags & PyCF_MASK_OBSOLETE) != 0? */
|
|
|
|
|
2010-12-04 18:26:46 +08:00
|
|
|
if (optimize < -1 || optimize > 2) {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
|
|
|
"compile(): invalid optimize value");
|
|
|
|
goto error;
|
|
|
|
}
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
if (!dont_inherit) {
|
|
|
|
PyEval_MergeCompilerFlags(&cf);
|
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
if (strcmp(mode, "exec") == 0)
|
|
|
|
compile_mode = 0;
|
|
|
|
else if (strcmp(mode, "eval") == 0)
|
|
|
|
compile_mode = 1;
|
|
|
|
else if (strcmp(mode, "single") == 0)
|
|
|
|
compile_mode = 2;
|
2010-05-09 23:52:27 +08:00
|
|
|
else {
|
|
|
|
PyErr_SetString(PyExc_ValueError,
|
2014-08-17 12:01:19 +08:00
|
|
|
"compile() mode must be 'exec', 'eval' or 'single'");
|
2010-10-16 21:14:10 +08:00
|
|
|
goto error;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
is_ast = PyAST_Check(source);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (is_ast == -1)
|
2010-10-16 21:14:10 +08:00
|
|
|
goto error;
|
2010-05-09 23:52:27 +08:00
|
|
|
if (is_ast) {
|
2014-08-17 12:01:19 +08:00
|
|
|
if (flags & PyCF_ONLY_AST) {
|
|
|
|
Py_INCREF(source);
|
|
|
|
result = source;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
PyArena *arena;
|
|
|
|
mod_ty mod;
|
|
|
|
|
|
|
|
arena = PyArena_New();
|
2012-08-20 23:19:50 +08:00
|
|
|
if (arena == NULL)
|
|
|
|
goto error;
|
2014-08-17 12:01:19 +08:00
|
|
|
mod = PyAST_obj2mod(source, arena, compile_mode);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (mod == NULL) {
|
|
|
|
PyArena_Free(arena);
|
2010-10-16 21:14:10 +08:00
|
|
|
goto error;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2011-08-10 05:15:04 +08:00
|
|
|
if (!PyAST_Validate(mod)) {
|
|
|
|
PyArena_Free(arena);
|
|
|
|
goto error;
|
|
|
|
}
|
2013-08-27 04:28:21 +08:00
|
|
|
result = (PyObject*)PyAST_CompileObject(mod, filename,
|
|
|
|
&cf, optimize, arena);
|
2010-05-09 23:52:27 +08:00
|
|
|
PyArena_Free(arena);
|
|
|
|
}
|
2010-10-16 21:14:10 +08:00
|
|
|
goto finally;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
|
2015-11-07 10:56:11 +08:00
|
|
|
str = source_as_string(source, "compile", "string, bytes or AST", &cf, &source_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (str == NULL)
|
2010-10-16 21:14:10 +08:00
|
|
|
goto error;
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
result = Py_CompileStringObject(str, filename, start[compile_mode], &cf, optimize);
|
2015-11-07 10:56:11 +08:00
|
|
|
Py_XDECREF(source_copy);
|
2010-10-16 21:14:10 +08:00
|
|
|
goto finally;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2010-10-16 21:14:10 +08:00
|
|
|
error:
|
|
|
|
result = NULL;
|
|
|
|
finally:
|
2013-08-27 04:28:21 +08:00
|
|
|
Py_DECREF(filename);
|
2010-10-16 21:14:10 +08:00
|
|
|
return result;
|
1993-03-31 01:46:03 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2000-07-23 02:47:25 +08:00
|
|
|
builtin_dir(PyObject *self, PyObject *args)
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *arg = NULL;
|
1995-01-03 03:04:15 +08:00
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
if (!PyArg_UnpackTuple(args, "dir", 0, 1, &arg))
|
|
|
|
return NULL;
|
|
|
|
return PyObject_Dir(arg);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(dir_doc,
|
2001-09-03 13:47:38 +08:00
|
|
|
"dir([object]) -> list of strings\n"
|
|
|
|
"\n"
|
2007-03-11 06:13:27 +08:00
|
|
|
"If called without an argument, return the names in the current scope.\n"
|
|
|
|
"Else, return an alphabetized list of names comprising (some of) the attributes\n"
|
|
|
|
"of the given object, and of attributes reachable from it.\n"
|
|
|
|
"If the object supplies a method named __dir__, it will be used; otherwise\n"
|
|
|
|
"the default dir() logic is used and returns:\n"
|
|
|
|
" for a module object: the module's attributes.\n"
|
|
|
|
" for a class object: its attributes, and recursively the attributes\n"
|
|
|
|
" of its bases.\n"
|
Merged revisions 53952-54987 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r53954 | jeremy.hylton | 2007-02-26 10:41:18 -0800 (Mon, 26 Feb 2007) | 10 lines
Do not copy free variables to locals in class namespaces.
Fixes bug 1569356, but at the cost of a minor incompatibility in
locals(). Add test that verifies that the class namespace is not
polluted. Also clarify the behavior in the library docs.
Along the way, cleaned up the dict_to_map and map_to_dict
implementations and added some comments that explain what they do.
........
r53955 | jeremy.hylton | 2007-02-26 11:00:20 -0800 (Mon, 26 Feb 2007) | 2 lines
Fix assertion.
........
r53969 | neal.norwitz | 2007-02-26 14:41:45 -0800 (Mon, 26 Feb 2007) | 3 lines
When printing an unraisable error, don't print exceptions. before the name.
This duplicates the behavior whening normally printing exceptions.
........
r53970 | andrew.kuchling | 2007-02-26 15:02:47 -0800 (Mon, 26 Feb 2007) | 1 line
Markup fix
........
r53975 | neal.norwitz | 2007-02-26 15:48:27 -0800 (Mon, 26 Feb 2007) | 3 lines
SF #1669182, 2.5 was already fixed. Just assert in 2.6 since string exceptions
are gone.
........
r53976 | andrew.kuchling | 2007-02-26 15:54:17 -0800 (Mon, 26 Feb 2007) | 1 line
Add some items
........
r53981 | jeremy.hylton | 2007-02-26 17:01:59 -0800 (Mon, 26 Feb 2007) | 4 lines
Fix long-standing bug in name mangling for package imports
Reported by Mike Verdone.
........
r53993 | jeremy.hylton | 2007-02-27 08:00:06 -0800 (Tue, 27 Feb 2007) | 2 lines
tabify
........
r53994 | jeremy.hylton | 2007-02-27 08:13:23 -0800 (Tue, 27 Feb 2007) | 5 lines
tabify
Note that ast.c still has a mix of tabs and spaces, because it
attempts to use four-space indents for more of the new code.
........
r53996 | jeremy.hylton | 2007-02-27 09:24:48 -0800 (Tue, 27 Feb 2007) | 2 lines
whitespace normalization
........
r53997 | jeremy.hylton | 2007-02-27 10:29:45 -0800 (Tue, 27 Feb 2007) | 24 lines
Add checking for a number of metaclass error conditions.
We add some new rules that are required for preserving internal
invariants of types.
1. If type (or a subclass of type) appears in bases, it must appear
before any non-type bases. If a non-type base (like a regular
new-style class) occurred first, it could trick type into
allocating the new class an __dict__ which must be impossible.
2. There are several checks that are made of bases when creating a
type. Those checks are now repeated when assigning to __bases__.
We also add the restriction that assignment to __bases__ may not
change the metaclass of the type.
Add new tests for these cases and for a few other oddball errors that
were no previously tested. Remove a crasher test that was fixed.
Also some internal refactoring: Extract the code to find the most
derived metaclass of a type and its bases. It is now needed in two
places. Rewrite the TypeError checks in test_descr to use doctest.
The tests now clearly show what exception they expect to see.
........
r53998 | jeremy.hylton | 2007-02-27 10:33:31 -0800 (Tue, 27 Feb 2007) | 2 lines
Add news about changes to metaclasses and __bases__ error checking.
........
r54016 | armin.rigo | 2007-02-28 01:25:29 -0800 (Wed, 28 Feb 2007) | 3 lines
Modify the segfaulting example to show why r53997 is not a solution to
it.
........
r54022 | brett.cannon | 2007-02-28 10:15:00 -0800 (Wed, 28 Feb 2007) | 2 lines
Add a test for instantiating SyntaxError with no arguments.
........
r54026 | raymond.hettinger | 2007-02-28 10:27:41 -0800 (Wed, 28 Feb 2007) | 1 line
Docstring nit.
........
r54033 | raymond.hettinger | 2007-02-28 10:37:52 -0800 (Wed, 28 Feb 2007) | 1 line
Prepare collections module for pure python code entries.
........
r54053 | raymond.hettinger | 2007-02-28 22:16:43 -0800 (Wed, 28 Feb 2007) | 1 line
Add collections.NamedTuple
........
r54054 | neal.norwitz | 2007-02-28 23:04:41 -0800 (Wed, 28 Feb 2007) | 1 line
Add Pat and Eric for work on PEP 3101 in the sandbox
........
r54061 | andrew.kuchling | 2007-03-01 06:36:12 -0800 (Thu, 01 Mar 2007) | 1 line
Add NamedTuple
........
r54080 | georg.brandl | 2007-03-02 06:37:12 -0800 (Fri, 02 Mar 2007) | 2 lines
Bug #1628895: some better tries to find HTML documentation in pydoc.
........
r54086 | raymond.hettinger | 2007-03-02 11:20:46 -0800 (Fri, 02 Mar 2007) | 1 line
Fix embarrassing typo and fix constantification of None
........
r54088 | georg.brandl | 2007-03-02 12:30:14 -0800 (Fri, 02 Mar 2007) | 2 lines
Bugs #1668032, #1668036, #1669304: clarify behavior of PyMem_Realloc and _Resize.
........
r54114 | georg.brandl | 2007-03-04 09:18:54 -0800 (Sun, 04 Mar 2007) | 2 lines
Fix a bug in test_dict and test_userdict, found at the PyPy sprint.
........
r54124 | skip.montanaro | 2007-03-04 12:52:28 -0800 (Sun, 04 Mar 2007) | 2 lines
Teach setup.py how to find Berkeley DB on Macs using MacPorts.
........
r54125 | skip.montanaro | 2007-03-04 12:54:12 -0800 (Sun, 04 Mar 2007) | 1 line
note MacPorts/BerkDB change in setup.py
........
r54136 | neal.norwitz | 2007-03-04 23:52:01 -0800 (Sun, 04 Mar 2007) | 1 line
Added Pete for 3101 too
........
r54138 | facundo.batista | 2007-03-05 08:31:54 -0800 (Mon, 05 Mar 2007) | 1 line
Minor corrections to docs, and an explanation comentary
........
r54139 | georg.brandl | 2007-03-05 14:28:08 -0800 (Mon, 05 Mar 2007) | 3 lines
Patch #1674228: when assigning a slice (old-style), check for the
sq_ass_slice instead of the sq_slice slot.
........
r54149 | georg.brandl | 2007-03-06 01:33:01 -0800 (Tue, 06 Mar 2007) | 3 lines
Nit: a struct field is set to GenericAlloc, not GenericAlloc().
........
r54150 | georg.brandl | 2007-03-06 02:02:47 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1671450: add a section about subclassing builtin types to the
"extending and embedding" tutorial.
........
r54152 | martin.v.loewis | 2007-03-06 02:41:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1121142: Implement ZipFile.open.
........
r54154 | georg.brandl | 2007-03-06 03:51:14 -0800 (Tue, 06 Mar 2007) | 2 lines
A test case for the fix in #1674228.
........
r54156 | georg.brandl | 2007-03-06 03:52:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1672481: fix bug in idlelib.MultiCall.
........
r54159 | georg.brandl | 2007-03-06 04:17:50 -0800 (Tue, 06 Mar 2007) | 1 line
Bug #1674503: close the file opened by execfile() in an error condition.
........
r54160 | georg.brandl | 2007-03-06 05:32:52 -0800 (Tue, 06 Mar 2007) | 3 lines
Fix another reincarnation of bug #1576657 in defaultdict.
........
r54162 | georg.brandl | 2007-03-06 05:35:00 -0800 (Tue, 06 Mar 2007) | 2 lines
A test case for the defaultdict KeyError bug.
........
r54164 | georg.brandl | 2007-03-06 05:37:45 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1663234: you can now run doctest on test files and modules
using "python -m doctest [-v] filename ...".
........
r54165 | martin.v.loewis | 2007-03-06 06:43:00 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #912410: Replace HTML entity references for attribute values
in HTMLParser.
........
r54166 | skip.montanaro | 2007-03-06 07:41:38 -0800 (Tue, 06 Mar 2007) | 1 line
patch 1673619 - identify extension modules which cannot be built
........
r54167 | guido.van.rossum | 2007-03-06 07:50:01 -0800 (Tue, 06 Mar 2007) | 5 lines
Patch #1646728: datetime.fromtimestamp fails with negative
fractional times. With unittest.
Somebody please backport to 2.5.
........
r54169 | georg.brandl | 2007-03-06 09:49:14 -0800 (Tue, 06 Mar 2007) | 2 lines
Fix cmp vs. key argument for list.sort.
........
r54170 | georg.brandl | 2007-03-06 10:21:32 -0800 (Tue, 06 Mar 2007) | 2 lines
Small nit, found by Neal.
........
r54171 | georg.brandl | 2007-03-06 10:29:58 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1602128: clarify that richcmp methods can return NotImplemented
and should return True or False otherwise.
........
r54173 | georg.brandl | 2007-03-06 10:41:12 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1638879: don't accept strings with embedded NUL bytes in long().
........
r54175 | georg.brandl | 2007-03-06 10:47:31 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #1673121: update README wrt. OSX default shell.
........
r54177 | georg.brandl | 2007-03-06 10:59:11 -0800 (Tue, 06 Mar 2007) | 3 lines
Patch #1654417: make operator.{get,set,del}slice use the full range
of Py_ssize_t.
........
r54180 | walter.doerwald | 2007-03-06 12:38:57 -0800 (Tue, 06 Mar 2007) | 4 lines
Patch for bug #1633621: if curses.resizeterm() or
curses.resize_term() is called, update _curses.LINES,
_curses.COLS, curses.LINES and curses.COLS.
........
r54182 | walter.doerwald | 2007-03-06 13:15:24 -0800 (Tue, 06 Mar 2007) | 2 lines
Document change to curses.
........
r54188 | georg.brandl | 2007-03-06 16:34:46 -0800 (Tue, 06 Mar 2007) | 5 lines
Variant of patch #697613: don't exit the interpreter on a SystemExit
exception if the -i command line option or PYTHONINSPECT environment
variable is given, but break into the interactive interpreter just like
on other exceptions or normal program exit.
(backport)
........
r54189 | georg.brandl | 2007-03-06 16:40:28 -0800 (Tue, 06 Mar 2007) | 4 lines
Patch #703779: unset __file__ in __main__ after running a file. This
makes the filenames the warning module prints much more sensible when
a PYTHONSTARTUP file is used.
........
r54192 | george.yoshida | 2007-03-06 20:21:18 -0800 (Tue, 06 Mar 2007) | 2 lines
add versionadded info
........
r54195 | georg.brandl | 2007-03-06 23:39:06 -0800 (Tue, 06 Mar 2007) | 2 lines
Patch #812285: allow multiple auth schemes in AbstractBasicAuthHandler.
........
r54197 | georg.brandl | 2007-03-07 00:31:51 -0800 (Wed, 07 Mar 2007) | 3 lines
Patch #1001604: glob.glob() now returns unicode filenames if it was
given a unicode argument and os.listdir() returns unicode filenames.
........
r54199 | georg.brandl | 2007-03-07 01:09:40 -0800 (Wed, 07 Mar 2007) | 3 lines
Patches #1550273, #1550272: fix a few bugs in unittest and add a
comprehensive test suite for the module.
........
r54201 | georg.brandl | 2007-03-07 01:21:06 -0800 (Wed, 07 Mar 2007) | 3 lines
Patch #787789: allow to pass custom TestRunner instances to unittest's
main() function.
........
r54202 | georg.brandl | 2007-03-07 01:34:45 -0800 (Wed, 07 Mar 2007) | 2 lines
Patch #1669331: clarify shutil.copyfileobj() behavior wrt. file position.
........
r54204 | martin.v.loewis | 2007-03-07 03:04:33 -0800 (Wed, 07 Mar 2007) | 2 lines
Bug #1115886: os.path.splitext('.cshrc') gives now ('.cshrc', '').
........
r54206 | georg.brandl | 2007-03-07 03:37:42 -0800 (Wed, 07 Mar 2007) | 2 lines
Patch #1675471: convert test_pty to unittest.
........
r54207 | georg.brandl | 2007-03-07 03:54:49 -0800 (Wed, 07 Mar 2007) | 4 lines
Add some sanity checks to unittest.TestSuite's addTest(s) methods.
Fixes #878275.
........
r54209 | guido.van.rossum | 2007-03-07 07:16:29 -0800 (Wed, 07 Mar 2007) | 3 lines
Windows doesn't support negative timestamps. Skip the tests involving them
if os.name == "nt".
........
r54219 | martin.v.loewis | 2007-03-08 05:42:43 -0800 (Thu, 08 Mar 2007) | 2 lines
Add missing ) in parenthical remark.
........
r54220 | georg.brandl | 2007-03-08 09:49:06 -0800 (Thu, 08 Mar 2007) | 2 lines
Fix #1676656: \em is different from \emph...
........
r54222 | georg.brandl | 2007-03-08 10:37:31 -0800 (Thu, 08 Mar 2007) | 2 lines
Add a NEWS entry for rev. 54207,8.
........
r54225 | raymond.hettinger | 2007-03-08 11:24:27 -0800 (Thu, 08 Mar 2007) | 1 line
SF 1676321: empty() returned wrong result
........
r54227 | collin.winter | 2007-03-08 11:58:14 -0800 (Thu, 08 Mar 2007) | 1 line
Backported r54226 from p3yk: Move test_unittest, test_doctest and test_doctest2 higher up in the testing order.
........
r54230 | raymond.hettinger | 2007-03-08 13:33:47 -0800 (Thu, 08 Mar 2007) | 1 line
SF #1637850: make_table in difflib did not work with unicode
........
r54232 | collin.winter | 2007-03-08 14:16:25 -0800 (Thu, 08 Mar 2007) | 1 line
Patch #1668482: don't use '-' in mkstemp
........
r54233 | brett.cannon | 2007-03-08 15:58:11 -0800 (Thu, 08 Mar 2007) | 10 lines
Introduce test.test_support.TransientResource. It's a context manager to
surround calls to resources that may or may not be available. Specifying the
expected exception and attributes to be raised if the resource is not available
prevents overly broad catching of exceptions.
This is meant to help suppress spurious failures by raising
test.test_support.ResourceDenied if the exception matches. It would probably
be good to go through the various network tests and surround the calls to catch
connection timeouts (as done with test_socket_ssl in this commit).
........
r54234 | collin.winter | 2007-03-08 19:15:56 -0800 (Thu, 08 Mar 2007) | 1 line
Patch #1481079: Support of HTTP_REFERER in CGIHTTPServer.py
........
r54235 | collin.winter | 2007-03-08 19:26:32 -0800 (Thu, 08 Mar 2007) | 1 line
Add NEWS item for patch #1481079 (r54234).
........
r54237 | neal.norwitz | 2007-03-08 21:59:01 -0800 (Thu, 08 Mar 2007) | 1 line
Fix SF #1676971, Complex OverflowError has a typo
........
r54239 | georg.brandl | 2007-03-09 04:58:41 -0800 (Fri, 09 Mar 2007) | 2 lines
Typo.
........
r54240 | martin.v.loewis | 2007-03-09 07:35:55 -0800 (Fri, 09 Mar 2007) | 2 lines
Patch #957003: Implement smtplib.LMTP.
........
r54243 | collin.winter | 2007-03-09 10:09:10 -0800 (Fri, 09 Mar 2007) | 2 lines
Bug #1629566: clarify the docs on the return values of parsedate() and parsedate_tz() in email.utils and rfc822.
........
r54244 | thomas.heller | 2007-03-09 11:21:28 -0800 (Fri, 09 Mar 2007) | 3 lines
Fix bug #1646630: ctypes.string_at(buf, 0) and ctypes.wstring_at(buf, 0)
returned string up to the first NUL character.
........
r54245 | martin.v.loewis | 2007-03-09 11:36:01 -0800 (Fri, 09 Mar 2007) | 2 lines
Add Ziga Seilnacht.
........
r54247 | collin.winter | 2007-03-09 12:33:07 -0800 (Fri, 09 Mar 2007) | 2 lines
Patch #1491866: change the complex() constructor to allow parthensized forms. This means complex(repr(x)) now works instead of raising a ValueError.
........
r54248 | thomas.heller | 2007-03-09 12:39:22 -0800 (Fri, 09 Mar 2007) | 7 lines
Bug #1651235: When a tuple was passed to a ctypes function call,
Python would crash instead of raising an error.
The crash was caused by a section of code that should have been
removed long ago, at that time ctypes had other ways to pass
parameters to function calls.
........
r54250 | collin.winter | 2007-03-09 15:30:39 -0800 (Fri, 09 Mar 2007) | 1 line
Hashing simplification pointed out by Thomas Wouters.
........
r54252 | collin.winter | 2007-03-09 18:23:40 -0800 (Fri, 09 Mar 2007) | 5 lines
* Unlink test files before and after each test; hopefully this will cut down on recent buildbot failures in test_islink.
* Drop safe_remove() in favor of test_support.unlink().
* Fix the indentation of test_samefile so that it runs.
........
r54253 | collin.winter | 2007-03-09 18:51:26 -0800 (Fri, 09 Mar 2007) | 3 lines
Bug #1531963: Make SocketServer.TCPServer's server_address always be equal to calling getsockname() on the server's socket.
Will backport.
........
r54254 | neal.norwitz | 2007-03-09 19:19:18 -0800 (Fri, 09 Mar 2007) | 4 lines
Simplify a little by handling the TCP case first.
Update to use predominant style of spaces around = in args list
and print to stderr if debugging.
........
r54256 | collin.winter | 2007-03-09 19:35:34 -0800 (Fri, 09 Mar 2007) | 1 line
Add proper attribution for a bug fix.
........
r54257 | georg.brandl | 2007-03-09 23:38:14 -0800 (Fri, 09 Mar 2007) | 2 lines
Typos.
........
r54260 | collin.winter | 2007-03-10 06:33:32 -0800 (Sat, 10 Mar 2007) | 1 line
Convert an assert to a raise so it works even in the presence of -O.
........
r54262 | collin.winter | 2007-03-10 06:41:48 -0800 (Sat, 10 Mar 2007) | 2 lines
Patch #1599845: Add an option to disable the implicit calls to server_bind() and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer and DocXMLRPCServer.
........
r54268 | georg.brandl | 2007-03-11 00:28:46 -0800 (Sun, 11 Mar 2007) | 2 lines
Add missing "return" statements in exception handler.
........
r54270 | ziga.seilnacht | 2007-03-11 08:54:54 -0700 (Sun, 11 Mar 2007) | 3 lines
Patch #1675981: remove unreachable code from type.__new__() method.
__dict__ and __weakref__ are removed from the slots tuple earlier
in the code, in the loop that mangles slot names. Will backport.
........
r54271 | collin.winter | 2007-03-11 09:00:20 -0700 (Sun, 11 Mar 2007) | 3 lines
Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap the IndexError caused by passing in an invalid breakpoint number.
Will backport.
........
r54274 | vinay.sajip | 2007-03-11 11:32:07 -0700 (Sun, 11 Mar 2007) | 1 line
Fix resource leak reported in SF #1516995.
........
r54278 | collin.winter | 2007-03-11 18:55:54 -0700 (Sun, 11 Mar 2007) | 4 lines
Patch #1678662: ftp.python.org does not exist. So the testcode in urllib.py must use a more
stable FTP.
Will backport.
........
r54280 | barry.warsaw | 2007-03-11 20:20:01 -0700 (Sun, 11 Mar 2007) | 8 lines
Tokio Kikuchi's fix for SF bug #1629369; folding whitespace allowed in the
display name of an email address, e.g.
Foo
\tBar <foo@example.com>
Test case added by Barry.
........
r54282 | skip.montanaro | 2007-03-11 20:30:50 -0700 (Sun, 11 Mar 2007) | 4 lines
Sane humans would call these invalid tests, but Andrew McNamara pointed out
that given the inputs in these tests Excel does indeed produce the output
these tests expect. Document that for future confused folks.
........
r54283 | martin.v.loewis | 2007-03-12 03:50:39 -0700 (Mon, 12 Mar 2007) | 2 lines
Bug #1675511: Use -Kpic instead of -xcode=pic32 on Solaris/x86.
........
r54285 | martin.v.loewis | 2007-03-12 04:01:10 -0700 (Mon, 12 Mar 2007) | 2 lines
Patch #1677862: Require a space or tab after import in .pth files.
........
r54287 | georg.brandl | 2007-03-12 06:17:36 -0700 (Mon, 12 Mar 2007) | 8 lines
Backport from Py3k branch:
Patch #1591665: implement the __dir__() special function lookup in PyObject_Dir.
Had to change a few bits of the patch because classobjs and __methods__ are still
in Py2.6.
........
r54288 | georg.brandl | 2007-03-12 07:30:05 -0700 (Mon, 12 Mar 2007) | 3 lines
Bug #1678647: write a newline after printing an exception in any
case, even when converting the value to a string failed.
........
r54290 | collin.winter | 2007-03-12 08:57:19 -0700 (Mon, 12 Mar 2007) | 1 line
Patch #1678088: convert test_operations to use unittest, fold the result into test_dict.
........
r54291 | collin.winter | 2007-03-12 09:11:39 -0700 (Mon, 12 Mar 2007) | 3 lines
Bug #742342: make Python stop segfaulting on infinitely-recursive reload()s. Fixed by patch #922167.
Will backport.
........
r54292 | georg.brandl | 2007-03-12 09:15:09 -0700 (Mon, 12 Mar 2007) | 2 lines
Typo fix.
........
r54295 | collin.winter | 2007-03-12 10:24:07 -0700 (Mon, 12 Mar 2007) | 1 line
Patch #1670993: Refactor test_threadedtempfile.py to use unittest.
........
r54296 | tim.peters | 2007-03-12 11:07:52 -0700 (Mon, 12 Mar 2007) | 2 lines
Whitespace normalization.
........
r54297 | tim.peters | 2007-03-12 11:09:22 -0700 (Mon, 12 Mar 2007) | 2 lines
Set missing svn:eol-style property on text files.
........
r54315 | brett.cannon | 2007-03-12 19:34:09 -0700 (Mon, 12 Mar 2007) | 8 lines
Add test.test_support.transient_internet . Returns a context manager that
nests test.test_support.TransientResource context managers that capture
exceptions raised when the Internet connection is flaky.
Initially using in test_socket_ssl but should probably be expanded to cover any
test that should not raise the captured exceptions if the Internet connection
works.
........
r54316 | brett.cannon | 2007-03-12 20:05:40 -0700 (Mon, 12 Mar 2007) | 2 lines
Fix a typo where the variable name was not updated.
........
r54318 | neal.norwitz | 2007-03-12 21:59:58 -0700 (Mon, 12 Mar 2007) | 1 line
Add Jerry Seutter for a bunch of his recent patches refactoring tests
........
r54319 | neal.norwitz | 2007-03-12 22:07:14 -0700 (Mon, 12 Mar 2007) | 7 lines
Add some other acks for recent checkins:
Brian Leair - 922167
Tomer Filiba - 1591665
Jeremy Jones - 1192590
........
r54321 | neal.norwitz | 2007-03-12 22:31:38 -0700 (Mon, 12 Mar 2007) | 9 lines
Fix some style nits:
* lines too long
* wrong indentation
* space after a function name
* wrong function name in error string
* simplifying some logic
Also add an error check to PyDict_SetItemString.
........
r54322 | georg.brandl | 2007-03-13 00:23:16 -0700 (Tue, 13 Mar 2007) | 2 lines
Typo and grammar fixes.
........
r54323 | georg.brandl | 2007-03-13 00:50:57 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1679379: add documentation for fnmatch.translate().
........
r54325 | georg.brandl | 2007-03-13 00:57:51 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1642844: comments to clarify the complexobject constructor.
........
r54326 | georg.brandl | 2007-03-13 01:14:27 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1668100: urllib2 now correctly raises URLError instead of
OSError if accessing a local file via the file:// protocol fails.
........
r54327 | georg.brandl | 2007-03-13 02:32:11 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1635454: the csv.DictWriter class now includes the offending
field names in its exception message if you try to write a record with
a dictionary containing fields not in the CSV field names list.
........
r54328 | georg.brandl | 2007-03-13 02:41:31 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1555098: use str.join() instead of repeated string
concatenation in robotparser.
........
r54329 | georg.brandl | 2007-03-13 03:06:48 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to
pydoc's help keywords.
........
r54331 | georg.brandl | 2007-03-13 03:19:22 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1569798: fix a bug in distutils when building Python from a
directory within sys.exec_prefix.
........
r54333 | martin.v.loewis | 2007-03-13 03:24:00 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}.
Will backport.
........
r54335 | lars.gustaebel | 2007-03-13 03:47:19 -0700 (Tue, 13 Mar 2007) | 34 lines
This is the implementation of POSIX.1-2001 (pax) format read/write
support.
The TarInfo class now contains all necessary logic to process and
create tar header data which has been moved there from the TarFile
class. The fromtarfile() method was added. The new path and linkpath
properties are aliases for the name and linkname attributes in
correspondence to the pax naming scheme.
The TarFile constructor and classmethods now accept a number of
keyword arguments which could only be set as attributes before (e.g.
dereference, ignore_zeros). The encoding and pax_headers arguments
were added for pax support. There is a new tarinfo keyword argument
that allows using subclassed TarInfo objects in TarFile.
The boolean TarFile.posix attribute is deprecated, because now three
tar formats are supported. Instead, the desired format for writing is
specified using the constants USTAR_FORMAT, GNU_FORMAT and PAX_FORMAT
as the format keyword argument. This change affects TarInfo.tobuf()
as well.
The test suite has been heavily reorganized and partially rewritten.
A new testtar.tar was added that contains sample data in many formats
from 4 different tar programs.
Some bugs and quirks that also have been fixed:
Directory names do no longer have a trailing slash in TarInfo.name or
TarFile.getnames().
Adding the same file twice does not create a hardlink file member.
The TarFile constructor does no longer need a name argument.
The TarFile._mode attribute was renamed to mode and contains either
'r', 'w' or 'a'.
........
r54336 | georg.brandl | 2007-03-13 05:34:25 -0700 (Tue, 13 Mar 2007) | 3 lines
Bug #1622896: fix a rare corner case where the bz2 module raised an
error in spite of a succesful compression.
........
r54338 | lars.gustaebel | 2007-03-13 08:47:07 -0700 (Tue, 13 Mar 2007) | 3 lines
Quick fix for tests that fail on systems with an encoding other
than 'iso8859-1'.
........
r54339 | georg.brandl | 2007-03-13 10:43:32 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1603688: ConfigParser.SafeConfigParser now checks values that
are set for invalid interpolation sequences that would lead to errors
on reading back those values.
........
r54341 | georg.brandl | 2007-03-13 11:15:41 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1581073: add a flag to textwrap that prevents the dropping of
whitespace while wrapping.
........
r54343 | georg.brandl | 2007-03-13 11:24:40 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1605192: list allowed states in error messages for imaplib.
........
r54344 | georg.brandl | 2007-03-13 11:31:49 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1537850: tempfile.NamedTemporaryFile now has a "delete" parameter
which can be set to False to prevent the default delete-on-close
behavior.
........
r54345 | collin.winter | 2007-03-13 11:53:04 -0700 (Tue, 13 Mar 2007) | 9 lines
Add acks for recent patch checkins:
Arvin Schnell - 1668482
S?\195?\169bastien Martini - 1481079
Heiko Wundram - 1491866
Damon Kohler - 1545011
Peter Parente - 1599845
Bjorn Lindqvist - 1678662
........
r54346 | georg.brandl | 2007-03-13 12:00:36 -0700 (Tue, 13 Mar 2007) | 2 lines
Acks for recent patches.
........
r54347 | georg.brandl | 2007-03-13 12:18:18 -0700 (Tue, 13 Mar 2007) | 3 lines
Fix a tab.
........
r54348 | georg.brandl | 2007-03-13 12:32:21 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1533909: the timeit module now accepts callables in addition to
strings for the code to time and the setup code. Also added two
convenience functions for instantiating a Timer and calling its methods.
........
r54352 | georg.brandl | 2007-03-13 13:02:57 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1530482: add pydoc.render_doc() which returns the documentation
for a thing instead of paging it to stdout, which pydoc.doc() does.
........
r54357 | thomas.heller | 2007-03-13 13:42:52 -0700 (Tue, 13 Mar 2007) | 1 line
Patch #1649190: Adding support for _Bool to ctypes as c_bool, by David Remahl.
........
r54358 | georg.brandl | 2007-03-13 13:46:32 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1444529: the builtin compile() now accepts keyword arguments.
(backport)
........
r54359 | thomas.heller | 2007-03-13 14:01:39 -0700 (Tue, 13 Mar 2007) | 1 line
Add versionadded marker for ctypes.c_bool.
........
r54360 | georg.brandl | 2007-03-13 14:08:15 -0700 (Tue, 13 Mar 2007) | 3 lines
Patch #1393667: pdb now has a "run" command which restarts the debugged
Python program, optionally with different arguments.
........
r54361 | georg.brandl | 2007-03-13 14:32:01 -0700 (Tue, 13 Mar 2007) | 3 lines
Deprecate commands.getstatus().
........
r54362 | georg.brandl | 2007-03-13 14:32:56 -0700 (Tue, 13 Mar 2007) | 2 lines
NEWS entry for getstatus() deprecation.
........
r54363 | georg.brandl | 2007-03-13 14:58:44 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #1429539: pdb now correctly initializes the __main__ module for
the debugged script, which means that imports from __main__ work
correctly now.
........
r54364 | georg.brandl | 2007-03-13 15:07:36 -0700 (Tue, 13 Mar 2007) | 4 lines
Patch #957650: "%var%" environment variable references are now properly
expanded in ntpath.expandvars(), also "~user" home directory references
are recognized and handled on Windows.
........
r54365 | georg.brandl | 2007-03-13 15:16:30 -0700 (Tue, 13 Mar 2007) | 2 lines
Patch #1194449: correctly detect unbound methods in pydoc.
........
r54367 | georg.brandl | 2007-03-13 15:49:43 -0700 (Tue, 13 Mar 2007) | 5 lines
Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters
with ASCII value less than 32. Also, it correctly quotes dots only if
they occur on a single line, as opposed to the previous behavior of
quoting dots if they are the second character of any line.
........
r54368 | collin.winter | 2007-03-13 16:02:15 -0700 (Tue, 13 Mar 2007) | 1 line
Inline PyImport_GetModulesReloading().
........
r54371 | barry.warsaw | 2007-03-13 21:59:50 -0700 (Tue, 13 Mar 2007) | 6 lines
SF bug #1582282; decode_header() incorrectly splits not-conformant RFC
2047-like headers where there is no whitespace between encoded words. This
fix changes the matching regexp to include a trailing lookahead assertion that
the closing ?= must be followed by whitespace, newline, or end-of-string.
This also changes the regexp to add the MULTILINE flag.
........
r54372 | gregory.p.smith | 2007-03-14 00:17:40 -0700 (Wed, 14 Mar 2007) | 2 lines
correct order and names of the less often used keyword parameters.
........
r54373 | gregory.p.smith | 2007-03-14 00:19:50 -0700 (Wed, 14 Mar 2007) | 5 lines
Its time to stop listing (Unix, Windows) when we really mean "everything but Mac OS 9"
now that nobody is likely to use Python on Mac OS 9 and most of the (Mac) platform
items are all OS X special API specific since OS X is unixy enough for these modules
to be available out of the box.
........
r54376 | georg.brandl | 2007-03-14 01:27:52 -0700 (Wed, 14 Mar 2007) | 4 lines
Bug #767111: fix long-standing bug in urllib which caused an
AttributeError instead of an IOError when the server's response didn't
contain a valid HTTP status line.
........
r54378 | ziga.seilnacht | 2007-03-14 05:24:09 -0700 (Wed, 14 Mar 2007) | 4 lines
Patch #1680015: Don't modify __slots__ tuple if it contains an unicode
name. Remove a reference leak that happened if the name could not be
converted to string. Will backport.
........
r54386 | martin.v.loewis | 2007-03-14 13:02:31 -0700 (Wed, 14 Mar 2007) | 3 lines
Patch #1559413: Fix test_cmd_line if sys.executable contains a space.
Will backport.
........
r54389 | brett.cannon | 2007-03-14 14:40:13 -0700 (Wed, 14 Mar 2007) | 3 lines
Note how test_socket_ssl has various exceptions that deal with a flaky Net
connection are silenced.
........
r54390 | brett.cannon | 2007-03-14 14:44:15 -0700 (Wed, 14 Mar 2007) | 2 lines
Raise ResourceDenied in test_urllib2net when the Net connection goes bad.
........
r54391 | neal.norwitz | 2007-03-14 21:41:20 -0700 (Wed, 14 Mar 2007) | 1 line
Wrap a long line and fix a typo (is -> if)
........
r54392 | georg.brandl | 2007-03-15 00:38:14 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1680978: consistently use "alive" instead of "active" in the
thread lib doc.
........
r54394 | georg.brandl | 2007-03-15 00:41:30 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1681153: the wave module now closes a file object it opened if
initialization failed.
........
r54397 | ziga.seilnacht | 2007-03-15 04:44:55 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1462488: prevent a segfault in object_reduce_ex() by splitting
the implementation for __reduce__ and __reduce_ex__ into two separate
functions. Fixes bug #931877. Will backport.
........
r54404 | collin.winter | 2007-03-15 21:11:30 -0700 (Thu, 15 Mar 2007) | 3 lines
Patch #1642547: Fix an error/crash when encountering syntax errors in complex if statements.
Will backport.
........
r54406 | georg.brandl | 2007-03-16 00:55:09 -0700 (Fri, 16 Mar 2007) | 5 lines
Bug #1681228: the webbrowser module now correctly uses the default
GNOME or KDE browser, depending on whether there is a session of one
of those present. Also, it tries the Windows default browser before
trying Mozilla variants.
(backport)
........
r54407 | georg.brandl | 2007-03-16 01:22:40 -0700 (Fri, 16 Mar 2007) | 4 lines
Patch #1273829: os.walk() now has a "followlinks" parameter. If set to
True (which is not the default), it visits symlinks pointing to
directories.
........
r54408 | georg.brandl | 2007-03-16 01:24:21 -0700 (Fri, 16 Mar 2007) | 2 lines
Add \versionadded tag.
........
r54409 | georg.brandl | 2007-03-16 01:33:47 -0700 (Fri, 16 Mar 2007) | 2 lines
RFE #1670167: fix in isinstance() docs.
........
r54412 | ziga.seilnacht | 2007-03-16 04:59:38 -0700 (Fri, 16 Mar 2007) | 3 lines
Patch #1623563: allow __class__ assignment for classes with __slots__.
The old and the new class are still required to have the same slot
names, but the order in which they are specified is not relevant.
........
r54413 | ziga.seilnacht | 2007-03-16 05:11:11 -0700 (Fri, 16 Mar 2007) | 2 lines
Whitespace cleanup. Also remove the empty lines
from the previous check in.
........
r54414 | jeremy.hylton | 2007-03-16 07:49:11 -0700 (Fri, 16 Mar 2007) | 2 lines
Remove warning: funcion declaration isn't a prototype
........
r54415 | jeremy.hylton | 2007-03-16 08:59:47 -0700 (Fri, 16 Mar 2007) | 11 lines
Clean up formatting of this file.
The file should now follow PEP 7, except that it uses 4 space indents
(in the style of Py3k). This particular code would be really hard to
read with the regular tab idents.
Other changes:
- reflow long lines
- change multi-line conditionals to have test at end of line
........
r54417 | collin.winter | 2007-03-16 14:13:35 -0700 (Fri, 16 Mar 2007) | 1 line
Patch #1676994: Refactor test_popen2 to use unittest.
........
r54418 | collin.winter | 2007-03-16 14:15:35 -0700 (Fri, 16 Mar 2007) | 1 line
Remove test/output/test_popen2 (missed in r54417).
........
r54419 | collin.winter | 2007-03-16 15:16:08 -0700 (Fri, 16 Mar 2007) | 1 line
Patch 1339796: add a relpath() function to os.path.
........
r54421 | georg.brandl | 2007-03-17 09:08:45 -0700 (Sat, 17 Mar 2007) | 5 lines
Patch #1675423: PyComplex_AsCComplex() now tries to convert an object
to complex using its __complex__() method before falling back to the
__float__() method. Therefore, the functions in the cmath module now
can operate on objects that define a __complex__() method.
(backport)
........
r54423 | gregory.p.smith | 2007-03-17 15:33:35 -0700 (Sat, 17 Mar 2007) | 2 lines
move note to the correct section
........
r54426 | georg.brandl | 2007-03-18 01:25:00 -0700 (Sun, 18 Mar 2007) | 2 lines
Patch #1682878: the new socket methods are recv_into and recvfrom_into, not *_buf.
........
r54432 | georg.brandl | 2007-03-18 11:28:25 -0700 (Sun, 18 Mar 2007) | 2 lines
Patch #1678339: test case for bug in difflib.
........
r54439 | collin.winter | 2007-03-19 11:52:08 -0700 (Mon, 19 Mar 2007) | 1 line
Patch #1630118: add a SpooledTemporaryFile class to tempfile.
........
r54441 | georg.brandl | 2007-03-19 12:02:48 -0700 (Mon, 19 Mar 2007) | 2 lines
Patch #1683328: fixes and enhancements for "unparse" demo.
........
r54456 | neal.norwitz | 2007-03-19 22:07:28 -0700 (Mon, 19 Mar 2007) | 1 line
Add some doc that was left out from some change to platform.py
........
r54457 | neal.norwitz | 2007-03-19 22:08:23 -0700 (Mon, 19 Mar 2007) | 1 line
Add a comment about 3k migration
........
r54458 | neal.norwitz | 2007-03-19 22:21:21 -0700 (Mon, 19 Mar 2007) | 1 line
Get rid of deprecation warning when testing commands.getstatus()
........
r54459 | neal.norwitz | 2007-03-19 22:23:09 -0700 (Mon, 19 Mar 2007) | 4 lines
Try backing out 54407 to see if it corrects the problems on the Windows
buildbots. This rev was backported, so we will need to keep both branches
in sync, pending the outcome of the test after this checkin.
........
r54460 | neal.norwitz | 2007-03-19 23:13:25 -0700 (Mon, 19 Mar 2007) | 1 line
Try to make this test more resistant to dropping from previous runs (ie, files that may exist but cause the test to fail). Should be backported (assuming it works :-)
........
r54461 | neal.norwitz | 2007-03-19 23:16:26 -0700 (Mon, 19 Mar 2007) | 1 line
Try to make this test more resistant to dropping from previous runs (ie, files that may exist but cause the test to fail). Should be backported (assuming it works :-)
........
r54462 | neal.norwitz | 2007-03-19 23:53:17 -0700 (Mon, 19 Mar 2007) | 5 lines
Try to be a little more resilient to errors. This might help the test
pass, but my guess is that it won't. I'm guessing that some other
test is leaving this file open which means it can't be removed
under Windows AFAIK.
........
r54463 | neal.norwitz | 2007-03-20 01:14:57 -0700 (Tue, 20 Mar 2007) | 8 lines
Try to get test_urllib to pass on Windows by closing the file.
I'm guessing that's the problem. h.getfile() must be called *after*
h.getreply() and the fp can be None.
I'm not entirely convinced this is the best fix (or even correct).
The buildbots will tell us if things improve or not. I don't
know if this needs to be backported (assuming it actually works).
........
r54465 | raymond.hettinger | 2007-03-20 14:27:24 -0700 (Tue, 20 Mar 2007) | 1 line
Extend work on rev 52962 and 53829 eliminating redundant PyObject_Hash() calls and fixing set/dict interoperability.
........
r54468 | georg.brandl | 2007-03-20 16:05:14 -0700 (Tue, 20 Mar 2007) | 2 lines
Fix for glob.py if filesystem encoding is None.
........
r54479 | neal.norwitz | 2007-03-20 23:39:48 -0700 (Tue, 20 Mar 2007) | 1 line
Remove unused file spotted by Paul Hankin
........
r54480 | georg.brandl | 2007-03-21 02:00:39 -0700 (Wed, 21 Mar 2007) | 3 lines
Patch #1682205: a TypeError while unpacking an iterable is no longer
masked by a generic one with the message "unpack non-sequence".
........
r54482 | georg.brandl | 2007-03-21 02:10:29 -0700 (Wed, 21 Mar 2007) | 2 lines
New test for rev. 54407 which only uses directories under TESTFN.
........
r54483 | georg.brandl | 2007-03-21 02:16:53 -0700 (Wed, 21 Mar 2007) | 2 lines
Patch #1684834: document some utility C API functions.
........
r54485 | georg.brandl | 2007-03-21 04:51:25 -0700 (Wed, 21 Mar 2007) | 2 lines
Fix #1684254: split BROWSER contents with shlex to avoid displaying 'URL'.
........
r54487 | andrew.kuchling | 2007-03-21 07:32:43 -0700 (Wed, 21 Mar 2007) | 1 line
Add comments on maintenance of this file
........
r54489 | andrew.kuchling | 2007-03-21 09:57:32 -0700 (Wed, 21 Mar 2007) | 1 line
Fix sentence, and fix typo in example
........
r54490 | andrew.kuchling | 2007-03-21 09:59:20 -0700 (Wed, 21 Mar 2007) | 1 line
Put code examples at left margin instead of indenting them
........
r54491 | facundo.batista | 2007-03-21 12:41:24 -0700 (Wed, 21 Mar 2007) | 1 line
Minor clarification, saying that blocking means no timeout (from bug #882297)
........
r54492 | ziga.seilnacht | 2007-03-21 13:07:56 -0700 (Wed, 21 Mar 2007) | 2 lines
Bug #1675967: re patterns pickled with older Python versions can
now be unpickled. Will backport.
........
r54495 | raymond.hettinger | 2007-03-21 13:33:57 -0700 (Wed, 21 Mar 2007) | 1 line
Add test and fix for fromkeys() optional argument.
........
r54524 | georg.brandl | 2007-03-22 01:05:45 -0700 (Thu, 22 Mar 2007) | 2 lines
Bug #1685704: use -m switch in timeit docs.
........
r54533 | thomas.heller | 2007-03-22 12:44:31 -0700 (Thu, 22 Mar 2007) | 5 lines
Back out "Patch #1643874: memory leak in ctypes fixed."
The code in this patch leaves no way to give up the ownership of a
BSTR instance.
........
r54538 | thomas.heller | 2007-03-22 13:34:37 -0700 (Thu, 22 Mar 2007) | 2 lines
Explain the purpose of the b_needsfree flag (forward ported from release25-maint).
........
r54539 | guido.van.rossum | 2007-03-22 21:58:42 -0700 (Thu, 22 Mar 2007) | 12 lines
- Bug #1683368: The object.__init__() and object.__new__() methods are
now stricter in rejecting excess arguments. The only time when
either allows excess arguments is when it is not overridden and the
other one is. For backwards compatibility, when both are
overridden, it is a deprecation warning (for now; maybe a Py3k
warning later).
When merging this into 3.0, the warnings should become errors.
Note: without the change to string.py, lots of spurious warnings happen.
What's going on there?
........
r54540 | neal.norwitz | 2007-03-22 22:17:23 -0700 (Thu, 22 Mar 2007) | 1 line
Add Mark Dickinson for SF # 1675423.
........
r54541 | martin.v.loewis | 2007-03-23 03:35:49 -0700 (Fri, 23 Mar 2007) | 3 lines
Patch #1686451: Fix return type for PySequence_{Count,Index,Fast_GET_SIZE}.
Will backport.
........
r54543 | martin.v.loewis | 2007-03-23 06:27:15 -0700 (Fri, 23 Mar 2007) | 3 lines
Bug #978833: Revert r50844, as it broke _socketobject.dup.
Will backport.
........
r54545 | guido.van.rossum | 2007-03-23 11:53:03 -0700 (Fri, 23 Mar 2007) | 8 lines
Add a type.__init__() method that enforces the same signature as
type.__new__(), and then calls object.__init__(cls), just to be anal.
This allows us to restore the code in string.py's _TemplateMetaclass
that called super(...).__init__(name, bases, dct), which I commented
out yesterday since it broke due to the stricter argument checking
added to object.__init__().
........
r54546 | facundo.batista | 2007-03-23 11:54:07 -0700 (Fri, 23 Mar 2007) | 4 lines
Added a 'create_connect()' function to socket.py, which creates a
connection with an optional timeout, and modified httplib.py to
use this function in HTTPConnection. Applies patch 1676823.
........
r54547 | guido.van.rossum | 2007-03-23 12:39:01 -0700 (Fri, 23 Mar 2007) | 2 lines
Add note about type.__init__().
........
r54553 | thomas.heller | 2007-03-23 12:55:27 -0700 (Fri, 23 Mar 2007) | 5 lines
Prevent creation (followed by a segfault) of array types when the size
overflows the valid Py_ssize_t range. Check return values of
PyMem_Malloc.
Will backport to release25-maint.
........
r54555 | facundo.batista | 2007-03-23 13:23:08 -0700 (Fri, 23 Mar 2007) | 6 lines
Surrounded with try/finally to socket's default timeout setting
changes in the tests, so failing one test won't produce strange
results in others. Also relaxed the timeout settings in the test
(where actually the value didn't mean anything).
........
r54556 | collin.winter | 2007-03-23 15:24:39 -0700 (Fri, 23 Mar 2007) | 1 line
Make test_relpath() pass on Windows.
........
r54559 | ziga.seilnacht | 2007-03-24 07:24:26 -0700 (Sat, 24 Mar 2007) | 6 lines
Patch #1489771: update syntax rules in Python Reference Manual.
Python 2.5 added support for explicit relative import statements and
yield expressions, which were missing in the manual.
Also fix grammar productions that used the names from the Grammar file,
markup that broke the generated grammar.txt, and wrap some lines that
broke the pdf output. Will backport.
........
r54565 | georg.brandl | 2007-03-24 15:20:34 -0700 (Sat, 24 Mar 2007) | 2 lines
Remove typo accent.
........
r54566 | georg.brandl | 2007-03-24 15:27:56 -0700 (Sat, 24 Mar 2007) | 2 lines
Revert accidental change.
........
r54567 | brett.cannon | 2007-03-24 18:32:36 -0700 (Sat, 24 Mar 2007) | 3 lines
Change the docs to no longer claim that unittest is preferred over doctest for
regression tests.
........
r54568 | facundo.batista | 2007-03-24 18:53:21 -0700 (Sat, 24 Mar 2007) | 4 lines
Redone the tests, using the infrastructure already present
for threading and socket serving.
........
r54570 | facundo.batista | 2007-03-24 20:20:05 -0700 (Sat, 24 Mar 2007) | 3 lines
Closing the HTTP connection after each test, and listening more.
........
r54572 | georg.brandl | 2007-03-25 11:44:35 -0700 (Sun, 25 Mar 2007) | 2 lines
Markup fix.
........
r54573 | georg.brandl | 2007-03-25 12:04:55 -0700 (Sun, 25 Mar 2007) | 2 lines
Markup fix.
........
r54580 | facundo.batista | 2007-03-26 13:18:31 -0700 (Mon, 26 Mar 2007) | 5 lines
Added an optional timeout to FTP class. Also I started a test_ftplib.py
file to test the ftp lib (right now I included a basic test, the timeout
one, and nothing else).
........
r54581 | georg.brandl | 2007-03-26 13:28:28 -0700 (Mon, 26 Mar 2007) | 2 lines
Some nits.
........
r54582 | facundo.batista | 2007-03-26 13:56:09 -0700 (Mon, 26 Mar 2007) | 4 lines
Forgot to add the file before the previous commit, here go
the ftplib tests.
........
r54585 | facundo.batista | 2007-03-27 11:23:21 -0700 (Tue, 27 Mar 2007) | 5 lines
Added an optional timeout to poplib.POP3. Also created a
test_poplib.py file with a basic test and the timeout
ones. Docs are also updated.
........
r54586 | facundo.batista | 2007-03-27 11:50:29 -0700 (Tue, 27 Mar 2007) | 3 lines
The basic test cases of poplib.py.
........
r54594 | facundo.batista | 2007-03-27 20:45:20 -0700 (Tue, 27 Mar 2007) | 4 lines
Bug 1688393. Adds a control of negative values in
socket.recvfrom, which caused an ugly crash.
........
r54599 | facundo.batista | 2007-03-28 11:25:54 -0700 (Wed, 28 Mar 2007) | 5 lines
Added timeout to smtplib (to SMTP and SMTP_SSL). Also created
the test_smtplib.py file, with a basic test and the timeout
ones. Docs are updated too.
........
r54603 | collin.winter | 2007-03-28 16:34:06 -0700 (Wed, 28 Mar 2007) | 3 lines
Consolidate patches #1690164, 1683397, and 1690169, all of which refactor XML-related test suites. The patches are applied together because they use a common output/xmltests file.
Thanks to Jerry Seutter for all three patches.
........
r54604 | collin.winter | 2007-03-28 19:28:16 -0700 (Wed, 28 Mar 2007) | 1 line
Make test_zipfile clean up its temporary files properly.
........
r54605 | georg.brandl | 2007-03-29 00:41:32 -0700 (Thu, 29 Mar 2007) | 2 lines
These are actually methods.
........
r54606 | georg.brandl | 2007-03-29 05:42:07 -0700 (Thu, 29 Mar 2007) | 4 lines
In Windows' time.clock(), when QueryPerformanceFrequency() fails,
the C lib's clock() is used, but it must be divided by CLOCKS_PER_SEC
as for the POSIX implementation (thanks to #pypy).
........
r54608 | facundo.batista | 2007-03-29 11:22:35 -0700 (Thu, 29 Mar 2007) | 5 lines
Added timout parameter to telnetlib.Telnet. Also created
test_telnetlib.py with a basic test and timeout ones.
Docs are also updated.
........
r54613 | facundo.batista | 2007-03-30 06:00:35 -0700 (Fri, 30 Mar 2007) | 4 lines
Added the posibility to pass the timeout to FTP.connect, not only when
instantiating the class. Docs and tests are updated.
........
r54614 | collin.winter | 2007-03-30 07:01:25 -0700 (Fri, 30 Mar 2007) | 1 line
Bug #1688274: add documentation for C-level class objects.
........
r54615 | marc-andre.lemburg | 2007-03-30 08:01:42 -0700 (Fri, 30 Mar 2007) | 4 lines
Bump the patch level version of distutils since there were a few bug fixes since
the 2.5.0 release.
........
r54617 | georg.brandl | 2007-03-30 08:49:05 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54618 | georg.brandl | 2007-03-30 10:39:39 -0700 (Fri, 30 Mar 2007) | 2 lines
Label name fix.
........
r54619 | georg.brandl | 2007-03-30 10:47:21 -0700 (Fri, 30 Mar 2007) | 2 lines
Duplicate label fix.
........
r54620 | georg.brandl | 2007-03-30 10:48:39 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54623 | andrew.kuchling | 2007-03-30 11:00:15 -0700 (Fri, 30 Mar 2007) | 1 line
Add item. (Oops, accidentally checked this in on my branch)
........
r54624 | georg.brandl | 2007-03-30 12:01:38 -0700 (Fri, 30 Mar 2007) | 2 lines
Duplicate label fix.
........
r54625 | georg.brandl | 2007-03-30 12:14:02 -0700 (Fri, 30 Mar 2007) | 2 lines
Markup fix.
........
r54629 | georg.brandl | 2007-03-31 03:17:31 -0700 (Sat, 31 Mar 2007) | 2 lines
repair string literal.
........
r54630 | georg.brandl | 2007-03-31 04:54:58 -0700 (Sat, 31 Mar 2007) | 2 lines
Markup fix.
........
r54631 | georg.brandl | 2007-03-31 04:58:36 -0700 (Sat, 31 Mar 2007) | 2 lines
Duplicate label fix.
........
r54632 | georg.brandl | 2007-03-31 04:59:54 -0700 (Sat, 31 Mar 2007) | 2 lines
Typo fix.
........
r54633 | neal.norwitz | 2007-03-31 11:54:18 -0700 (Sat, 31 Mar 2007) | 1 line
Fix method names. Will backport.
........
r54634 | georg.brandl | 2007-03-31 11:56:11 -0700 (Sat, 31 Mar 2007) | 4 lines
Bug #1655392: don't add -L/usr/lib/pythonX.Y/config to the LDFLAGS
returned by python-config if Python was built with --enable-shared
because that prevented the shared library from being used.
........
r54637 | collin.winter | 2007-03-31 12:31:34 -0700 (Sat, 31 Mar 2007) | 1 line
Shut up an occaisonal buildbot error due to test files being left around.
........
r54644 | neal.norwitz | 2007-04-01 11:24:22 -0700 (Sun, 01 Apr 2007) | 11 lines
SF #1685563, MSVCCompiler creates redundant and long PATH strings
If MSVCCompiler.initialize() was called multiple times, the path
would get duplicated. On Windows, this is a problem because the
path is limited to 4k. There's no benefit in adding a path multiple
times, so prevent that from occuring. We also normalize the path
before checking for duplicates so things like /a and /a/ won't both
be stored.
Will backport.
........
r54646 | brett.cannon | 2007-04-01 11:47:27 -0700 (Sun, 01 Apr 2007) | 8 lines
time.strptime's caching of its locale object was being recreated when the
locale changed but not used during the function call it was recreated during.
The test in this checkin is untested (OS X does not have the proper locale
support for me to test), although the fix for the bug this deals with
was tested by the OP (#1290505). Once the buildbots verify the test at least
doesn't fail it becomes a backport candidate.
........
r54647 | brett.cannon | 2007-04-01 12:46:19 -0700 (Sun, 01 Apr 2007) | 3 lines
Fix the test for recreating the locale cache object by not worrying about if
one of the test locales cannot be set.
........
r54649 | georg.brandl | 2007-04-01 14:29:15 -0700 (Sun, 01 Apr 2007) | 2 lines
Fix a lot of markup and meta-information glitches.
........
r54650 | georg.brandl | 2007-04-01 14:39:52 -0700 (Sun, 01 Apr 2007) | 2 lines
Another fix.
........
r54651 | georg.brandl | 2007-04-01 15:39:10 -0700 (Sun, 01 Apr 2007) | 2 lines
Lots of explicit class names for method and member descs.
........
r54652 | georg.brandl | 2007-04-01 15:40:12 -0700 (Sun, 01 Apr 2007) | 2 lines
Explicit class names.
........
r54653 | georg.brandl | 2007-04-01 15:47:31 -0700 (Sun, 01 Apr 2007) | 2 lines
Some semantic fixes.
........
r54654 | georg.brandl | 2007-04-01 16:29:10 -0700 (Sun, 01 Apr 2007) | 2 lines
Remove bogus entry.
........
r54655 | georg.brandl | 2007-04-01 16:31:30 -0700 (Sun, 01 Apr 2007) | 2 lines
Fix the class name of strings.
........
r54658 | raymond.hettinger | 2007-04-02 10:29:30 -0700 (Mon, 02 Apr 2007) | 1 line
SF #1693079: Cannot save empty array in shelve
........
r54663 | raymond.hettinger | 2007-04-02 15:54:21 -0700 (Mon, 02 Apr 2007) | 3 lines
Array module's buffer interface can now handle empty arrays.
........
r54664 | guido.van.rossum | 2007-04-02 16:55:37 -0700 (Mon, 02 Apr 2007) | 5 lines
Fix warnings about object.__init__() signature.
Two (test_array and test_descr) were bug IMO; the third (copy_reg)
is a work-around which recognizes that object.__init__() doesn't do
anything.
........
r54666 | raymond.hettinger | 2007-04-02 17:02:11 -0700 (Mon, 02 Apr 2007) | 1 line
SF 1602378 Clarify docstrings for bisect
........
r54668 | raymond.hettinger | 2007-04-02 18:39:43 -0700 (Mon, 02 Apr 2007) | 3 lines
SF #1382213: Tutorial section 9.5.1 ignores MRO for new-style classes
........
r54669 | matthias.klose | 2007-04-02 21:35:59 -0700 (Mon, 02 Apr 2007) | 4 lines
- Fix an off-by-one bug in locale.strxfrm().
patch taken from http://bugs.debian.org/416934.
........
r54671 | georg.brandl | 2007-04-03 00:04:27 -0700 (Tue, 03 Apr 2007) | 9 lines
Fix the strange case of
\begin{methoddesc}[NNTP]{...}
where
\ifx#1\@undefined ended up comparing N and N, therefore executing
the true part of the conditional, blowing up at \@undefined.
........
r54672 | facundo.batista | 2007-04-03 07:05:08 -0700 (Tue, 03 Apr 2007) | 4 lines
Now using unittest for the tests infraestructure. Also split the
tests in those who need the network, and that who doesn't.
........
r54673 | walter.doerwald | 2007-04-03 09:08:10 -0700 (Tue, 03 Apr 2007) | 4 lines
Move the functionality for catching warnings in test_warnings.py into a separate
class to that reusing the functionality in test_structmembers.py doesn't rerun
the tests from test_warnings.py.
........
r54674 | walter.doerwald | 2007-04-03 09:16:24 -0700 (Tue, 03 Apr 2007) | 2 lines
Document that CatchWarningTests is reused by test_structmembers.py.
........
r54675 | walter.doerwald | 2007-04-03 09:53:43 -0700 (Tue, 03 Apr 2007) | 4 lines
Add tests for the filename.
Test that the stacklevel is handled correctly.
........
r54676 | facundo.batista | 2007-04-03 10:29:48 -0700 (Tue, 03 Apr 2007) | 6 lines
Added a SSL server to test_socket_ssl.py to be able to test
locally. Now, it checks if have openssl available and run
those specific tests (it starts openssl at the beggining of
all the tests and then kills it at the end).
........
r54677 | walter.doerwald | 2007-04-03 11:33:29 -0700 (Tue, 03 Apr 2007) | 6 lines
Implement a contextmanager test.test_support.catch_warning that can
be used to catch the last warning issued by the warning framework.
Change test_warnings.py and test_structmembers.py to use this
new contextmanager.
........
r54678 | facundo.batista | 2007-04-03 14:15:34 -0700 (Tue, 03 Apr 2007) | 4 lines
Changed the whole structure of startup and checking if the
server is available. Hope to not get more false alarms.
........
r54681 | facundo.batista | 2007-04-04 07:10:40 -0700 (Wed, 04 Apr 2007) | 4 lines
Fixed the way that the .pem files are looked for, and changed
how to kill the process in win32 to use the _handle attribute.
........
r54682 | guido.van.rossum | 2007-04-04 10:43:02 -0700 (Wed, 04 Apr 2007) | 4 lines
Fix a race condition in this test -- instead of assuming that it will take
the test server thread at most 0.5 seconds to get ready, use an event
variable.
........
r54683 | collin.winter | 2007-04-04 11:14:17 -0700 (Wed, 04 Apr 2007) | 1 line
Clean up imports.
........
r54684 | collin.winter | 2007-04-04 11:16:24 -0700 (Wed, 04 Apr 2007) | 1 line
Stop using test_support.verify().
........
r54685 | martin.v.loewis | 2007-04-04 11:30:36 -0700 (Wed, 04 Apr 2007) | 2 lines
Bug #1686475: Support stat'ing open files on Windows again.
Will backport to 2.5.
........
r54687 | collin.winter | 2007-04-04 11:33:40 -0700 (Wed, 04 Apr 2007) | 1 line
Make test_getopt use unittest.
........
r54688 | collin.winter | 2007-04-04 11:36:30 -0700 (Wed, 04 Apr 2007) | 1 line
Make test_softspace use unittest.
........
r54689 | ziga.seilnacht | 2007-04-04 11:38:47 -0700 (Wed, 04 Apr 2007) | 2 lines
Fix WalkTests.test_traversal() on Windows. The cleanup in
MakedirTests.setUp() can now be removed.
........
r54695 | raymond.hettinger | 2007-04-05 11:00:03 -0700 (Thu, 05 Apr 2007) | 3 lines
Bug #1563759: struct.unpack doens't support buffer protocol objects
........
r54697 | collin.winter | 2007-04-05 13:05:07 -0700 (Thu, 05 Apr 2007) | 1 line
Convert test_long_future to use unittest.
........
r54698 | collin.winter | 2007-04-05 13:08:56 -0700 (Thu, 05 Apr 2007) | 1 line
Convert test_normalization to use unittest.
........
r54699 | andrew.kuchling | 2007-04-05 18:11:58 -0700 (Thu, 05 Apr 2007) | 1 line
Some grammar fixes
........
r54704 | collin.winter | 2007-04-06 12:27:40 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_stringprep to use unittest.
........
r54705 | collin.winter | 2007-04-06 12:32:32 -0700 (Fri, 06 Apr 2007) | 1 line
Import cleanup in test_crypt.
........
r54706 | collin.winter | 2007-04-06 13:00:05 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_gc to use unittest.
........
r54707 | collin.winter | 2007-04-06 13:03:11 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_module to use unittest.
........
r54711 | collin.winter | 2007-04-06 21:40:43 -0700 (Fri, 06 Apr 2007) | 1 line
Convert test_fileinput to use unittest.
........
r54712 | brett.cannon | 2007-04-07 21:29:32 -0700 (Sat, 07 Apr 2007) | 5 lines
Doc that file.next() has undefined behaviour when called on a file opened with
'w'. Closes bug #1569057.
To be backported once 2.5 branch is unfrozen.
........
r54726 | vinay.sajip | 2007-04-09 09:16:10 -0700 (Mon, 09 Apr 2007) | 1 line
Added optional timeout to SocketHandler.makeSocket (SF #1695948)
........
r54727 | ziga.seilnacht | 2007-04-09 12:10:29 -0700 (Mon, 09 Apr 2007) | 3 lines
Patch #1695862: remove old test directory that causes test_urllib failures
on Windows buildbots. The change is a one time fix and will be removed
after a successful buildbot run.
........
r54729 | facundo.batista | 2007-04-09 20:00:37 -0700 (Mon, 09 Apr 2007) | 3 lines
Minor fix to the tests pass ok even with -O.
........
r54730 | collin.winter | 2007-04-09 21:44:49 -0700 (Mon, 09 Apr 2007) | 1 line
Typo fix.
........
r54732 | facundo.batista | 2007-04-10 05:58:45 -0700 (Tue, 10 Apr 2007) | 5 lines
General clean-up. Lot of margin corrections, comments, some typos.
Exceptions now are raised in the new style. And a mockup class is
now also new style. Thanks Santiago Pereson.
........
r54741 | georg.brandl | 2007-04-10 14:39:38 -0700 (Tue, 10 Apr 2007) | 2 lines
Repair a duplicate label and some obsolete uses of \setindexsubitem.
........
r54746 | andrew.kuchling | 2007-04-11 06:39:00 -0700 (Wed, 11 Apr 2007) | 1 line
Add window.chgat() method, submitted via e-mail by Fabian Kreutz
........
r54747 | andrew.kuchling | 2007-04-11 06:42:25 -0700 (Wed, 11 Apr 2007) | 1 line
Point readers at the patch submission instructions
........
r54748 | andrew.kuchling | 2007-04-11 06:47:13 -0700 (Wed, 11 Apr 2007) | 1 line
Describe undocumented third argument to touchline()
........
r54757 | georg.brandl | 2007-04-11 10:16:24 -0700 (Wed, 11 Apr 2007) | 3 lines
Add some missing NULL checks which trigger crashes on low-memory conditions.
Found by Victor Stinner. Will backport when 2.5 branch is unfrozen.
........
r54760 | raymond.hettinger | 2007-04-11 11:40:58 -0700 (Wed, 11 Apr 2007) | 1 line
SF 1191699: Make slices picklable
........
r54762 | georg.brandl | 2007-04-11 12:25:11 -0700 (Wed, 11 Apr 2007) | 2 lines
Exceptions are no longer old-style instances. Fix accordingly.
........
r54763 | georg.brandl | 2007-04-11 16:28:44 -0700 (Wed, 11 Apr 2007) | 2 lines
Repair missing spaces after \UNIX.
........
r54772 | raymond.hettinger | 2007-04-11 21:10:00 -0700 (Wed, 11 Apr 2007) | 1 line
SF 1193128: Let str.translate(None) be an identity transformation
........
r54784 | georg.brandl | 2007-04-12 00:01:19 -0700 (Thu, 12 Apr 2007) | 2 lines
Patch #1698951: clarify deprecation message in rexec and Bastion
........
r54785 | ziga.seilnacht | 2007-04-12 01:46:51 -0700 (Thu, 12 Apr 2007) | 2 lines
Patch #1695862: remove the cleanup code, now that Windows buildbots are green
again.
........
r54786 | walter.doerwald | 2007-04-12 03:35:00 -0700 (Thu, 12 Apr 2007) | 3 lines
Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the
first chunk fed to the decoder started with a BOM, but was longer than 3 bytes.
........
r54807 | barry.warsaw | 2007-04-13 11:47:14 -0700 (Fri, 13 Apr 2007) | 8 lines
Port r54805 from python25-maint branch:
Add code to read from master_fd in the parent, breaking when we get an OSError
(EIO can occur on Linux) or there's no more data to read. Without this,
test_pty.py can hang on the waitpid() because the child is blocking on the
stdout write. This will definitely happen on Mac OS X and could potentially
happen on other platforms. See the comment for details.
........
r54812 | kristjan.jonsson | 2007-04-13 15:07:33 -0700 (Fri, 13 Apr 2007) | 1 line
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127
........
r54814 | kristjan.jonsson | 2007-04-13 15:20:13 -0700 (Fri, 13 Apr 2007) | 1 line
Fix potential crash in path manipulation on windows
........
r54816 | trent.mick | 2007-04-13 16:22:05 -0700 (Fri, 13 Apr 2007) | 4 lines
Add the necessary dependency for the Windows VC6 build to ensure 'pythoncore'
is built before '_ctypes' is attempted.
Will backport to 2.5 once it is unfrozen for 2.5.1.
........
r54825 | neal.norwitz | 2007-04-13 22:25:50 -0700 (Fri, 13 Apr 2007) | 3 lines
When __slots__ are set to a unicode string, make it work the same as
setting a plain string, ie don't expand to single letter identifiers.
........
r54841 | neal.norwitz | 2007-04-16 00:37:55 -0700 (Mon, 16 Apr 2007) | 1 line
SF #1701207, Fix bogus assertion (and test it!)
........
r54844 | collin.winter | 2007-04-16 15:10:32 -0700 (Mon, 16 Apr 2007) | 1 line
Check the availability of the urlfetch resource earlier than before.
........
r54849 | martin.v.loewis | 2007-04-16 22:02:01 -0700 (Mon, 16 Apr 2007) | 2 lines
Add Travis Oliphant.
........
r54873 | brett.cannon | 2007-04-18 20:44:17 -0700 (Wed, 18 Apr 2007) | 2 lines
Silence a compiler warning about incompatible pointer types.
........
r54874 | neal.norwitz | 2007-04-18 22:52:37 -0700 (Wed, 18 Apr 2007) | 2 lines
SF #1703270, add missing declaration in readline.c to avoid compiler warning.
........
r54875 | armin.rigo | 2007-04-19 07:44:48 -0700 (Thu, 19 Apr 2007) | 8 lines
Revert r53997 as per
http://mail.python.org/pipermail/python-dev/2007-March/071796.html .
I've kept a couple of still-valid extra tests in test_descr, but didn't
bother to sort through the new comments and refactorings added in r53997
to see if some of them could be kept. If so, they could go in a
follow-up check-in.
........
r54876 | armin.rigo | 2007-04-19 07:56:48 -0700 (Thu, 19 Apr 2007) | 2 lines
Fix a usage of the dangerous pattern decref - modify field - incref.
........
r54884 | neal.norwitz | 2007-04-19 22:20:38 -0700 (Thu, 19 Apr 2007) | 9 lines
Add an optional address to copy the failure mails to.
Detect a conflict in the only file that should have outstanding changes
when this script is run. This doesn't matter on the trunk, but does
when run on a branch. Trunk always has the date set to today in
boilerplate.tex. Each time a release is cut with a different date,
a conflict occurs. (We could copy a known good version, but then
we would lose changes to this file.)
........
r54918 | georg.brandl | 2007-04-21 13:35:38 -0700 (Sat, 21 Apr 2007) | 3 lines
Bug #1704790: bind name "sys" locally in __del__ method so that it is
not cleared before __del__ is run.
........
r54920 | facundo.batista | 2007-04-21 18:18:56 -0700 (Sat, 21 Apr 2007) | 5 lines
Added tests for other methods of SSL object. Now we cover
all the object methods. This is the final step to close
the #451607 bug.
........
r54927 | facundo.batista | 2007-04-23 10:08:31 -0700 (Mon, 23 Apr 2007) | 5 lines
As specified in RFC 2616, 2xx code indicates that the client's
request was successfully received, understood, and accepted.
Now in these cases no error is raised. Also fixed tests.
........
r54929 | collin.winter | 2007-04-23 20:43:46 -0700 (Mon, 23 Apr 2007) | 1 line
Convert PyUnit -> unittest.
........
r54931 | collin.winter | 2007-04-23 21:09:52 -0700 (Mon, 23 Apr 2007) | 1 line
Remove code that hasn't been called in years.
........
r54932 | neal.norwitz | 2007-04-23 21:53:12 -0700 (Mon, 23 Apr 2007) | 1 line
Fix SF #1703110, Incorrect example for add_password() (use uri, not host)
........
r54934 | georg.brandl | 2007-04-24 03:36:42 -0700 (Tue, 24 Apr 2007) | 2 lines
Some new year updates.
........
r54938 | facundo.batista | 2007-04-24 06:54:38 -0700 (Tue, 24 Apr 2007) | 4 lines
Added a comment about last change in urllib2.py (all 2xx responses
are ok now).
........
r54939 | georg.brandl | 2007-04-24 08:10:09 -0700 (Tue, 24 Apr 2007) | 2 lines
Bug #1705717: error in sys.argv docs.
........
r54941 | georg.brandl | 2007-04-24 08:27:13 -0700 (Tue, 24 Apr 2007) | 4 lines
Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file
(as opposed to the command line) will now write file names ending in
".cpp" too.
........
r54944 | raymond.hettinger | 2007-04-24 15:13:43 -0700 (Tue, 24 Apr 2007) | 1 line
Fix markup
........
r54945 | kristjan.jonsson | 2007-04-24 17:10:50 -0700 (Tue, 24 Apr 2007) | 1 line
Merge change 54909 from release25-maint: Fix several minor issues discovered using code analysis in VisualStudio 2005 Team Edition
........
r54947 | kristjan.jonsson | 2007-04-24 17:17:39 -0700 (Tue, 24 Apr 2007) | 1 line
Make pythoncore compile cleanly with VisualStudio 2005. Used an explicit typecast to get a 64 bit integer, and undefined the Yield macro that conflicts with winbase.h
........
r54948 | kristjan.jonsson | 2007-04-24 17:19:26 -0700 (Tue, 24 Apr 2007) | 1 line
Remove obsolete comment. Importing of .dll files has been discontinued, only .pyd files supported on windows now.
........
r54949 | georg.brandl | 2007-04-24 23:24:59 -0700 (Tue, 24 Apr 2007) | 2 lines
Patch #1698768: updated the "using Python on the Mac" intro.
........
r54951 | georg.brandl | 2007-04-24 23:25:55 -0700 (Tue, 24 Apr 2007) | 2 lines
Markup fix.
........
r54953 | neal.norwitz | 2007-04-24 23:30:05 -0700 (Tue, 24 Apr 2007) | 3 lines
Whitespace normalization. Ugh, we really need to do this more often.
You might want to review this change as it's my first time. Be gentle. :-)
........
r54956 | collin.winter | 2007-04-25 10:29:52 -0700 (Wed, 25 Apr 2007) | 1 line
Standardize on test.test_support.run_unittest() (as opposed to a mix of run_unittest() and run_suite()). Also, add functionality to run_unittest() that admits usage of unittest.TestLoader.loadTestsFromModule().
........
r54957 | collin.winter | 2007-04-25 10:37:35 -0700 (Wed, 25 Apr 2007) | 1 line
Remove functionality from test_datetime.test_main() that does reference count checking; 'regrtest.py -R' is the way to do this kind of testing.
........
r54958 | collin.winter | 2007-04-25 10:57:53 -0700 (Wed, 25 Apr 2007) | 1 line
Change test_support.have_unicode to use True/False instead of 1/0.
........
r54959 | tim.peters | 2007-04-25 11:47:18 -0700 (Wed, 25 Apr 2007) | 2 lines
Whitespace normalization.
........
r54960 | tim.peters | 2007-04-25 11:48:35 -0700 (Wed, 25 Apr 2007) | 2 lines
Set missing svn:eol-style property on text files.
........
r54961 | collin.winter | 2007-04-25 11:54:36 -0700 (Wed, 25 Apr 2007) | 1 line
Import and raise statement cleanup.
........
r54969 | collin.winter | 2007-04-25 13:41:34 -0700 (Wed, 25 Apr 2007) | 1 line
Convert test_ossaudiodev to use unittest.
........
r54974 | collin.winter | 2007-04-25 14:50:25 -0700 (Wed, 25 Apr 2007) | 1 line
Fix an issue related to the unittest conversion.
........
r54979 | fred.drake | 2007-04-25 21:42:19 -0700 (Wed, 25 Apr 2007) | 1 line
fix some markup errors
........
r54982 | kristjan.jonsson | 2007-04-26 02:15:08 -0700 (Thu, 26 Apr 2007) | 1 line
Export function sanitize_the_mode from fileobject.c as _PyFile_SanitizeMode(). Use this function in posixmodule.c when implementing fdopen(). This fixes test_subprocess.py for a VisualStudio 2005 compile.
........
r54983 | kristjan.jonsson | 2007-04-26 06:44:16 -0700 (Thu, 26 Apr 2007) | 1 line
The locale "En" appears not to be valid on windows underi VisualStudio.2005. Added "English" to the test_locale.py to make the testsuite pass for that build
........
r54984 | steve.holden | 2007-04-26 07:23:12 -0700 (Thu, 26 Apr 2007) | 1 line
Minor wording change on slicing aide-memoire.
........
r54985 | kristjan.jonsson | 2007-04-26 08:24:54 -0700 (Thu, 26 Apr 2007) | 1 line
Accomodate 64 bit time_t in the _bsddb module.
........
2007-04-28 03:54:29 +08:00
|
|
|
" for any other object: its attributes, its class's attributes, and\n"
|
2007-03-11 06:13:27 +08:00
|
|
|
" recursively the attributes of its class's base classes.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
divmod as builtin_divmod
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
x: object
|
|
|
|
y: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
2016-04-29 03:39:50 +08:00
|
|
|
Return the tuple (x//y, x%y). Invariant: div*y + mod == x.
|
2014-08-17 12:01:19 +08:00
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y)
|
|
|
|
/*[clinic end generated code: output=b06d8a5f6e0c745e input=175ad9c84ff41a85]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
return PyNumber_Divmod(x, y);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
eval as builtin_eval
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
source: object
|
|
|
|
globals: object = None
|
|
|
|
locals: object = None
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Evaluate the given source in the context of globals and locals.
|
|
|
|
|
|
|
|
The source may be a string representing a Python expression
|
|
|
|
or a code object as returned by compile().
|
|
|
|
The globals must be a dictionary and locals can be any mapping,
|
|
|
|
defaulting to the current globals and locals.
|
|
|
|
If only globals is given, locals defaults to it.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals,
|
2015-04-15 06:07:59 +08:00
|
|
|
PyObject *locals)
|
2016-07-07 22:35:15 +08:00
|
|
|
/*[clinic end generated code: output=0a0824aa70093116 input=11ee718a8640e527]*/
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2015-11-07 10:56:11 +08:00
|
|
|
PyObject *result, *source_copy;
|
2015-02-03 07:21:08 +08:00
|
|
|
const char *str;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyCompilerFlags cf;
|
|
|
|
|
|
|
|
if (locals != Py_None && !PyMapping_Check(locals)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError, "locals must be a mapping");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (globals != Py_None && !PyDict_Check(globals)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError, PyMapping_Check(globals) ?
|
|
|
|
"globals must be a real dict; try eval(expr, {}, mapping)"
|
|
|
|
: "globals must be a dict");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (globals == Py_None) {
|
|
|
|
globals = PyEval_GetGlobals();
|
2013-10-29 08:19:37 +08:00
|
|
|
if (locals == Py_None) {
|
2010-05-09 23:52:27 +08:00
|
|
|
locals = PyEval_GetLocals();
|
2013-10-29 08:19:37 +08:00
|
|
|
if (locals == NULL)
|
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else if (locals == Py_None)
|
|
|
|
locals = globals;
|
|
|
|
|
|
|
|
if (globals == NULL || locals == NULL) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"eval must be given globals and locals "
|
|
|
|
"when called without a frame");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2013-11-07 02:03:11 +08:00
|
|
|
if (_PyDict_GetItemId(globals, &PyId___builtins__) == NULL) {
|
|
|
|
if (_PyDict_SetItemId(globals, &PyId___builtins__,
|
|
|
|
PyEval_GetBuiltins()) != 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
if (PyCode_Check(source)) {
|
|
|
|
if (PyCode_GetNumFree((PyCodeObject *)source) > 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"code object passed to eval() may not contain free variables");
|
|
|
|
return NULL;
|
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyEval_EvalCode(source, globals, locals);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
cf.cf_flags = PyCF_SOURCE_IS_UTF8;
|
2015-11-07 10:56:11 +08:00
|
|
|
str = source_as_string(source, "eval", "string, bytes or code", &cf, &source_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (str == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
while (*str == ' ' || *str == '\t')
|
|
|
|
str++;
|
|
|
|
|
|
|
|
(void)PyEval_MergeCompilerFlags(&cf);
|
|
|
|
result = PyRun_StringFlags(str, Py_eval_input, globals, locals, &cf);
|
2015-11-07 10:56:11 +08:00
|
|
|
Py_XDECREF(source_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
return result;
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
exec as builtin_exec
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
source: object
|
|
|
|
globals: object = None
|
|
|
|
locals: object = None
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Execute the given source in the context of globals and locals.
|
|
|
|
|
|
|
|
The source may be a string representing one or more Python statements
|
|
|
|
or a code object as returned by compile().
|
|
|
|
The globals must be a dictionary and locals can be any mapping,
|
|
|
|
defaulting to the current globals and locals.
|
|
|
|
If only globals is given, locals defaults to it.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
|
2015-04-15 06:07:59 +08:00
|
|
|
PyObject *locals)
|
2016-07-07 22:35:15 +08:00
|
|
|
/*[clinic end generated code: output=3c90efc6ab68ef5d input=01ca3e1c01692829]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
PyObject *v;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
if (globals == Py_None) {
|
|
|
|
globals = PyEval_GetGlobals();
|
|
|
|
if (locals == Py_None) {
|
|
|
|
locals = PyEval_GetLocals();
|
2013-10-29 08:19:37 +08:00
|
|
|
if (locals == NULL)
|
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
if (!globals || !locals) {
|
|
|
|
PyErr_SetString(PyExc_SystemError,
|
|
|
|
"globals and locals cannot be NULL");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (locals == Py_None)
|
|
|
|
locals = globals;
|
|
|
|
|
|
|
|
if (!PyDict_Check(globals)) {
|
2014-08-17 12:01:19 +08:00
|
|
|
PyErr_Format(PyExc_TypeError, "exec() globals must be a dict, not %.100s",
|
2010-05-09 23:52:27 +08:00
|
|
|
globals->ob_type->tp_name);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (!PyMapping_Check(locals)) {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
2014-08-17 12:01:19 +08:00
|
|
|
"locals must be a mapping or None, not %.100s",
|
2010-05-09 23:52:27 +08:00
|
|
|
locals->ob_type->tp_name);
|
|
|
|
return NULL;
|
|
|
|
}
|
2013-11-07 02:03:11 +08:00
|
|
|
if (_PyDict_GetItemId(globals, &PyId___builtins__) == NULL) {
|
|
|
|
if (_PyDict_SetItemId(globals, &PyId___builtins__,
|
|
|
|
PyEval_GetBuiltins()) != 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
if (PyCode_Check(source)) {
|
|
|
|
if (PyCode_GetNumFree((PyCodeObject *)source) > 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"code object passed to exec() may not "
|
|
|
|
"contain free variables");
|
|
|
|
return NULL;
|
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
v = PyEval_EvalCode(source, globals, locals);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else {
|
2015-11-07 10:56:11 +08:00
|
|
|
PyObject *source_copy;
|
2015-02-03 07:21:08 +08:00
|
|
|
const char *str;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyCompilerFlags cf;
|
|
|
|
cf.cf_flags = PyCF_SOURCE_IS_UTF8;
|
2014-08-17 12:01:19 +08:00
|
|
|
str = source_as_string(source, "exec",
|
2015-11-07 10:56:11 +08:00
|
|
|
"string, bytes or code", &cf,
|
|
|
|
&source_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (str == NULL)
|
|
|
|
return NULL;
|
|
|
|
if (PyEval_MergeCompilerFlags(&cf))
|
|
|
|
v = PyRun_StringFlags(str, Py_file_input, globals,
|
|
|
|
locals, &cf);
|
|
|
|
else
|
|
|
|
v = PyRun_String(str, Py_file_input, globals, locals);
|
2015-11-07 10:56:11 +08:00
|
|
|
Py_XDECREF(source_copy);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
if (v == NULL)
|
|
|
|
return NULL;
|
|
|
|
Py_DECREF(v);
|
|
|
|
Py_RETURN_NONE;
|
2006-09-06 14:51:57 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2000-07-23 02:47:25 +08:00
|
|
|
builtin_getattr(PyObject *self, PyObject *args)
|
1992-01-28 00:53:09 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *v, *result, *dflt = NULL;
|
|
|
|
PyObject *name;
|
|
|
|
|
|
|
|
if (!PyArg_UnpackTuple(args, "getattr", 2, 3, &v, &name, &dflt))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (!PyUnicode_Check(name)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"getattr(): attribute name must be string");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
result = PyObject_GetAttr(v, name);
|
|
|
|
if (result == NULL && dflt != NULL &&
|
|
|
|
PyErr_ExceptionMatches(PyExc_AttributeError))
|
|
|
|
{
|
|
|
|
PyErr_Clear();
|
|
|
|
Py_INCREF(dflt);
|
|
|
|
result = dflt;
|
|
|
|
}
|
|
|
|
return result;
|
1993-03-29 18:43:31 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(getattr_doc,
|
1998-06-29 21:38:57 +08:00
|
|
|
"getattr(object, name[, default]) -> value\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
1998-06-29 21:38:57 +08:00
|
|
|
Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.\n\
|
|
|
|
When a default argument is given, it is returned when the attribute doesn't\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
exist; without it, an exception is raised in that case.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
globals as builtin_globals
|
|
|
|
|
|
|
|
Return the dictionary containing the current scope's global variables.
|
|
|
|
|
|
|
|
NOTE: Updates to this dictionary *will* affect name lookups in the current
|
|
|
|
global scope and vice-versa.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_globals_impl(PyObject *module)
|
|
|
|
/*[clinic end generated code: output=e5dd1527067b94d2 input=9327576f92bb48ba]*/
|
1995-07-08 06:43:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *d;
|
1995-07-08 06:43:42 +08:00
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
d = PyEval_GetGlobals();
|
|
|
|
Py_XINCREF(d);
|
|
|
|
return d;
|
1995-07-08 06:43:42 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
hasattr as builtin_hasattr
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
|
|
|
name: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return whether the object has an attribute with the given name.
|
|
|
|
|
|
|
|
This is done by calling getattr(obj, name) and catching AttributeError.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name)
|
|
|
|
/*[clinic end generated code: output=a7aff2090a4151e5 input=0faec9787d979542]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
PyObject *v;
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
if (!PyUnicode_Check(name)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"hasattr(): attribute name must be string");
|
|
|
|
return NULL;
|
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
v = PyObject_GetAttr(obj, name);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (v == NULL) {
|
2010-08-24 11:26:23 +08:00
|
|
|
if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_Clear();
|
2010-08-24 11:26:23 +08:00
|
|
|
Py_RETURN_FALSE;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2010-08-24 11:26:23 +08:00
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
Py_DECREF(v);
|
2010-08-24 11:26:23 +08:00
|
|
|
Py_RETURN_TRUE;
|
1992-01-28 00:53:09 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: gdb's integration with CPython relies on builtin_id having
|
|
|
|
* the *exact* parameter names of "self" and "v", so we ensure we
|
|
|
|
* preserve those name rather than using the AC defaults.
|
|
|
|
*/
|
|
|
|
/*[clinic input]
|
|
|
|
id as builtin_id
|
|
|
|
|
2016-05-05 21:21:35 +08:00
|
|
|
self: self(type="PyModuleDef *")
|
2015-05-30 16:09:35 +08:00
|
|
|
obj as v: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the identity of an object.
|
|
|
|
|
|
|
|
This is guaranteed to be unique among simultaneously existing objects.
|
|
|
|
(CPython uses the object's memory address.)
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-05-05 21:21:35 +08:00
|
|
|
builtin_id(PyModuleDef *self, PyObject *v)
|
|
|
|
/*[clinic end generated code: output=0aa640785f697f65 input=5a534136419631f4]*/
|
1993-03-31 01:46:03 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
return PyLong_FromVoidPtr(v);
|
1993-03-31 01:46:03 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2008-03-13 09:26:19 +08:00
|
|
|
/* map object ************************************************************/
|
|
|
|
|
|
|
|
typedef struct {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_HEAD
|
|
|
|
PyObject *iters;
|
|
|
|
PyObject *func;
|
2008-03-13 09:26:19 +08:00
|
|
|
} mapobject;
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2008-03-13 09:26:19 +08:00
|
|
|
map_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
1993-10-27 01:58:25 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *it, *iters, *func;
|
|
|
|
mapobject *lz;
|
|
|
|
Py_ssize_t numargs, i;
|
|
|
|
|
|
|
|
if (type == &PyMap_Type && !_PyArg_NoKeywords("map()", kwds))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
numargs = PyTuple_Size(args);
|
|
|
|
if (numargs < 2) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"map() must have at least two arguments.");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
iters = PyTuple_New(numargs-1);
|
|
|
|
if (iters == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
for (i=1 ; i<numargs ; i++) {
|
|
|
|
/* Get iterator. */
|
|
|
|
it = PyObject_GetIter(PyTuple_GET_ITEM(args, i));
|
|
|
|
if (it == NULL) {
|
|
|
|
Py_DECREF(iters);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
PyTuple_SET_ITEM(iters, i-1, it);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* create mapobject structure */
|
|
|
|
lz = (mapobject *)type->tp_alloc(type, 0);
|
|
|
|
if (lz == NULL) {
|
|
|
|
Py_DECREF(iters);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
lz->iters = iters;
|
|
|
|
func = PyTuple_GET_ITEM(args, 0);
|
|
|
|
Py_INCREF(func);
|
|
|
|
lz->func = func;
|
|
|
|
|
|
|
|
return (PyObject *)lz;
|
2008-03-13 09:26:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
map_dealloc(mapobject *lz)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_GC_UnTrack(lz);
|
|
|
|
Py_XDECREF(lz->iters);
|
|
|
|
Py_XDECREF(lz->func);
|
|
|
|
Py_TYPE(lz)->tp_free(lz);
|
2008-03-13 09:26:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
map_traverse(mapobject *lz, visitproc visit, void *arg)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_VISIT(lz->iters);
|
|
|
|
Py_VISIT(lz->func);
|
|
|
|
return 0;
|
2008-03-13 09:26:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
map_next(mapobject *lz)
|
|
|
|
{
|
2016-08-24 07:45:13 +08:00
|
|
|
PyObject *small_stack[5];
|
|
|
|
PyObject **stack;
|
|
|
|
Py_ssize_t niters, nargs, i;
|
|
|
|
PyObject *result = NULL;
|
|
|
|
|
|
|
|
niters = PyTuple_GET_SIZE(lz->iters);
|
|
|
|
if (niters <= (Py_ssize_t)Py_ARRAY_LENGTH(small_stack)) {
|
|
|
|
stack = small_stack;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
stack = PyMem_Malloc(niters * sizeof(stack[0]));
|
|
|
|
if (stack == NULL) {
|
|
|
|
PyErr_NoMemory();
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
2016-08-24 06:54:47 +08:00
|
|
|
|
2016-08-24 07:45:13 +08:00
|
|
|
nargs = 0;
|
|
|
|
for (i=0; i < niters; i++) {
|
2015-08-18 15:20:20 +08:00
|
|
|
PyObject *it = PyTuple_GET_ITEM(lz->iters, i);
|
2016-08-24 07:45:13 +08:00
|
|
|
PyObject *val = Py_TYPE(it)->tp_iternext(it);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (val == NULL) {
|
2016-08-24 07:45:13 +08:00
|
|
|
goto exit;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2016-08-24 07:45:13 +08:00
|
|
|
stack[i] = val;
|
|
|
|
nargs++;
|
|
|
|
}
|
|
|
|
|
|
|
|
result = _PyObject_FastCall(lz->func, stack, nargs);
|
|
|
|
|
|
|
|
exit:
|
|
|
|
for (i=0; i < nargs; i++) {
|
|
|
|
Py_DECREF(stack[i]);
|
|
|
|
}
|
|
|
|
if (stack != small_stack) {
|
|
|
|
PyMem_Free(stack);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
return result;
|
1993-10-27 01:58:25 +08:00
|
|
|
}
|
|
|
|
|
2012-04-03 18:49:41 +08:00
|
|
|
static PyObject *
|
|
|
|
map_reduce(mapobject *lz)
|
|
|
|
{
|
|
|
|
Py_ssize_t numargs = PyTuple_GET_SIZE(lz->iters);
|
|
|
|
PyObject *args = PyTuple_New(numargs+1);
|
|
|
|
Py_ssize_t i;
|
|
|
|
if (args == NULL)
|
|
|
|
return NULL;
|
|
|
|
Py_INCREF(lz->func);
|
|
|
|
PyTuple_SET_ITEM(args, 0, lz->func);
|
|
|
|
for (i = 0; i<numargs; i++){
|
|
|
|
PyObject *it = PyTuple_GET_ITEM(lz->iters, i);
|
|
|
|
Py_INCREF(it);
|
|
|
|
PyTuple_SET_ITEM(args, i+1, it);
|
|
|
|
}
|
|
|
|
|
|
|
|
return Py_BuildValue("ON", Py_TYPE(lz), args);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyMethodDef map_methods[] = {
|
|
|
|
{"__reduce__", (PyCFunction)map_reduce, METH_NOARGS, reduce_doc},
|
|
|
|
{NULL, NULL} /* sentinel */
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(map_doc,
|
2008-03-13 09:26:19 +08:00
|
|
|
"map(func, *iterables) --> map object\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
2008-03-13 09:26:19 +08:00
|
|
|
Make an iterator that computes the function using arguments from\n\
|
2010-05-09 23:52:27 +08:00
|
|
|
each of the iterables. Stops when the shortest iterable is exhausted.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2008-03-13 09:26:19 +08:00
|
|
|
PyTypeObject PyMap_Type = {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
|
|
|
"map", /* tp_name */
|
|
|
|
sizeof(mapobject), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
|
|
|
/* methods */
|
|
|
|
(destructor)map_dealloc, /* tp_dealloc */
|
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
|
|
|
0, /* tp_reserved */
|
|
|
|
0, /* tp_repr */
|
|
|
|
0, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
0, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
0, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
|
|
|
|
Py_TPFLAGS_BASETYPE, /* tp_flags */
|
|
|
|
map_doc, /* tp_doc */
|
|
|
|
(traverseproc)map_traverse, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
|
|
|
0, /* tp_richcompare */
|
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
PyObject_SelfIter, /* tp_iter */
|
|
|
|
(iternextfunc)map_next, /* tp_iternext */
|
2012-04-03 18:49:41 +08:00
|
|
|
map_methods, /* tp_methods */
|
2010-05-09 23:52:27 +08:00
|
|
|
0, /* tp_members */
|
|
|
|
0, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
PyType_GenericAlloc, /* tp_alloc */
|
|
|
|
map_new, /* tp_new */
|
|
|
|
PyObject_GC_Del, /* tp_free */
|
2008-03-13 09:26:19 +08:00
|
|
|
};
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
|
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
|
2007-04-21 23:47:16 +08:00
|
|
|
static PyObject *
|
|
|
|
builtin_next(PyObject *self, PyObject *args)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *it, *res;
|
|
|
|
PyObject *def = NULL;
|
|
|
|
|
|
|
|
if (!PyArg_UnpackTuple(args, "next", 1, 2, &it, &def))
|
|
|
|
return NULL;
|
|
|
|
if (!PyIter_Check(it)) {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
2011-11-07 08:37:52 +08:00
|
|
|
"'%.200s' object is not an iterator",
|
2010-05-09 23:52:27 +08:00
|
|
|
it->ob_type->tp_name);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
res = (*it->ob_type->tp_iternext)(it);
|
|
|
|
if (res != NULL) {
|
|
|
|
return res;
|
|
|
|
} else if (def != NULL) {
|
|
|
|
if (PyErr_Occurred()) {
|
|
|
|
if(!PyErr_ExceptionMatches(PyExc_StopIteration))
|
|
|
|
return NULL;
|
|
|
|
PyErr_Clear();
|
|
|
|
}
|
|
|
|
Py_INCREF(def);
|
|
|
|
return def;
|
|
|
|
} else if (PyErr_Occurred()) {
|
|
|
|
return NULL;
|
|
|
|
} else {
|
|
|
|
PyErr_SetNone(PyExc_StopIteration);
|
|
|
|
return NULL;
|
|
|
|
}
|
2007-04-21 23:47:16 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
PyDoc_STRVAR(next_doc,
|
|
|
|
"next(iterator[, default])\n\
|
|
|
|
\n\
|
|
|
|
Return the next item from the iterator. If default is given and the iterator\n\
|
|
|
|
is exhausted, it is returned instead of raising StopIteration.");
|
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
setattr as builtin_setattr
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
|
|
|
name: object
|
|
|
|
value: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Sets the named attribute on the given object to the specified value.
|
|
|
|
|
|
|
|
setattr(x, 'y', v) is equivalent to ``x.y = v''
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name,
|
2015-04-15 06:07:59 +08:00
|
|
|
PyObject *value)
|
2016-07-07 22:35:15 +08:00
|
|
|
/*[clinic end generated code: output=dc2ce1d1add9acb4 input=bd2b7ca6875a1899]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
if (PyObject_SetAttr(obj, name, value) != 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
Py_INCREF(Py_None);
|
|
|
|
return Py_None;
|
1992-01-28 00:53:09 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
delattr as builtin_delattr
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
|
|
|
name: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Deletes the named attribute from the given object.
|
|
|
|
|
|
|
|
delattr(x, 'y') is equivalent to ``del x.y''
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name)
|
|
|
|
/*[clinic end generated code: output=85134bc58dff79fa input=db16685d6b4b9410]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
if (PyObject_SetAttr(obj, name, (PyObject *)NULL) != 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
Py_INCREF(Py_None);
|
|
|
|
return Py_None;
|
1994-08-29 20:53:40 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
hash as builtin_hash
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the hash value for the given object.
|
|
|
|
|
|
|
|
Two objects that compare equal must also have the same hash value, but the
|
|
|
|
reverse is not necessarily true.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_hash(PyObject *module, PyObject *obj)
|
|
|
|
/*[clinic end generated code: output=237668e9d7688db7 input=58c48be822bf9c54]*/
|
1993-03-29 18:43:31 +08:00
|
|
|
{
|
2010-10-18 04:54:53 +08:00
|
|
|
Py_hash_t x;
|
1995-01-03 03:04:15 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
x = PyObject_Hash(obj);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (x == -1)
|
|
|
|
return NULL;
|
2010-10-18 04:54:53 +08:00
|
|
|
return PyLong_FromSsize_t(x);
|
1993-03-29 18:43:31 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
hex as builtin_hex
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
number: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the hexadecimal representation of an integer.
|
|
|
|
|
|
|
|
>>> hex(12648430)
|
|
|
|
'0xc0ffee'
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_hex(PyObject *module, PyObject *number)
|
|
|
|
/*[clinic end generated code: output=e46b612169099408 input=e645aff5fc7d540e]*/
|
1991-10-24 22:54:44 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyNumber_ToBase(number, 16);
|
1991-10-24 22:54:44 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
|
2001-04-21 03:13:02 +08:00
|
|
|
static PyObject *
|
|
|
|
builtin_iter(PyObject *self, PyObject *args)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *v, *w = NULL;
|
|
|
|
|
|
|
|
if (!PyArg_UnpackTuple(args, "iter", 1, 2, &v, &w))
|
|
|
|
return NULL;
|
|
|
|
if (w == NULL)
|
|
|
|
return PyObject_GetIter(v);
|
|
|
|
if (!PyCallable_Check(v)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"iter(v, w): v must be callable");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
return PyCallIter_New(v, w);
|
2001-04-21 03:13:02 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(iter_doc,
|
2008-05-16 21:27:32 +08:00
|
|
|
"iter(iterable) -> iterator\n\
|
2001-04-21 03:13:02 +08:00
|
|
|
iter(callable, sentinel) -> iterator\n\
|
|
|
|
\n\
|
|
|
|
Get an iterator from an object. In the first form, the argument must\n\
|
|
|
|
supply its own iterator, or be a sequence.\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
In the second form, the callable is called until it returns the sentinel.");
|
2001-04-21 03:13:02 +08:00
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
len as builtin_len
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the number of items in a container.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_len(PyObject *module, PyObject *obj)
|
|
|
|
/*[clinic end generated code: output=fa7a270d314dfb6c input=bc55598da9e9c9b5]*/
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_ssize_t res;
|
1995-01-03 03:04:15 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
res = PyObject_Size(obj);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (res < 0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
return PyLong_FromSsize_t(res);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
locals as builtin_locals
|
|
|
|
|
|
|
|
Return a dictionary containing the current scope's local variables.
|
|
|
|
|
|
|
|
NOTE: Whether or not updates to this dictionary will affect name lookups in
|
|
|
|
the local scope and vice-versa is *implementation dependent* and not
|
|
|
|
covered by any backwards compatibility guarantees.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_locals_impl(PyObject *module)
|
|
|
|
/*[clinic end generated code: output=b46c94015ce11448 input=7874018d478d5c4b]*/
|
1995-07-08 06:43:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *d;
|
1995-07-08 06:43:42 +08:00
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
d = PyEval_GetLocals();
|
|
|
|
Py_XINCREF(d);
|
|
|
|
return d;
|
1995-07-08 06:43:42 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2004-12-03 16:30:39 +08:00
|
|
|
min_max(PyObject *args, PyObject *kwds, int op)
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *v, *it, *item, *val, *maxitem, *maxval, *keyfunc=NULL;
|
2013-06-25 13:43:02 +08:00
|
|
|
PyObject *emptytuple, *defaultval = NULL;
|
|
|
|
static char *kwlist[] = {"key", "default", NULL};
|
2010-05-09 23:52:27 +08:00
|
|
|
const char *name = op == Py_LT ? "min" : "max";
|
2013-06-25 13:43:02 +08:00
|
|
|
const int positional = PyTuple_Size(args) > 1;
|
|
|
|
int ret;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2013-06-25 13:43:02 +08:00
|
|
|
if (positional)
|
2010-05-09 23:52:27 +08:00
|
|
|
v = args;
|
2013-10-20 02:03:34 +08:00
|
|
|
else if (!PyArg_UnpackTuple(args, name, 1, 1, &v))
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
|
2013-06-25 13:43:02 +08:00
|
|
|
emptytuple = PyTuple_New(0);
|
|
|
|
if (emptytuple == NULL)
|
|
|
|
return NULL;
|
|
|
|
ret = PyArg_ParseTupleAndKeywords(emptytuple, kwds, "|$OO", kwlist,
|
|
|
|
&keyfunc, &defaultval);
|
|
|
|
Py_DECREF(emptytuple);
|
|
|
|
if (!ret)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (positional && defaultval != NULL) {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"Cannot specify a default for %s() with multiple "
|
|
|
|
"positional arguments", name);
|
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
it = PyObject_GetIter(v);
|
|
|
|
if (it == NULL) {
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
maxitem = NULL; /* the result */
|
|
|
|
maxval = NULL; /* the value associated with the result */
|
|
|
|
while (( item = PyIter_Next(it) )) {
|
|
|
|
/* get the value from the key function */
|
|
|
|
if (keyfunc != NULL) {
|
|
|
|
val = PyObject_CallFunctionObjArgs(keyfunc, item, NULL);
|
|
|
|
if (val == NULL)
|
|
|
|
goto Fail_it_item;
|
|
|
|
}
|
|
|
|
/* no key function; the value is the item */
|
|
|
|
else {
|
|
|
|
val = item;
|
|
|
|
Py_INCREF(val);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* maximum value and item are unset; set them */
|
|
|
|
if (maxval == NULL) {
|
|
|
|
maxitem = item;
|
|
|
|
maxval = val;
|
|
|
|
}
|
|
|
|
/* maximum value and item are set; update them as necessary */
|
|
|
|
else {
|
|
|
|
int cmp = PyObject_RichCompareBool(val, maxval, op);
|
|
|
|
if (cmp < 0)
|
|
|
|
goto Fail_it_item_and_val;
|
|
|
|
else if (cmp > 0) {
|
|
|
|
Py_DECREF(maxval);
|
|
|
|
Py_DECREF(maxitem);
|
|
|
|
maxval = val;
|
|
|
|
maxitem = item;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
Py_DECREF(item);
|
|
|
|
Py_DECREF(val);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (PyErr_Occurred())
|
|
|
|
goto Fail_it;
|
|
|
|
if (maxval == NULL) {
|
|
|
|
assert(maxitem == NULL);
|
2013-06-25 13:43:02 +08:00
|
|
|
if (defaultval != NULL) {
|
|
|
|
Py_INCREF(defaultval);
|
|
|
|
maxitem = defaultval;
|
|
|
|
} else {
|
|
|
|
PyErr_Format(PyExc_ValueError,
|
|
|
|
"%s() arg is an empty sequence", name);
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else
|
|
|
|
Py_DECREF(maxval);
|
|
|
|
Py_DECREF(it);
|
|
|
|
return maxitem;
|
2004-12-03 16:30:39 +08:00
|
|
|
|
|
|
|
Fail_it_item_and_val:
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(val);
|
2004-12-03 16:30:39 +08:00
|
|
|
Fail_it_item:
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(item);
|
2004-12-03 16:30:39 +08:00
|
|
|
Fail_it:
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_XDECREF(maxval);
|
|
|
|
Py_XDECREF(maxitem);
|
|
|
|
Py_DECREF(it);
|
|
|
|
return NULL;
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, waiting for *args support */
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2004-12-03 16:30:39 +08:00
|
|
|
builtin_min(PyObject *self, PyObject *args, PyObject *kwds)
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
return min_max(args, kwds, Py_LT);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(min_doc,
|
2014-05-20 05:20:52 +08:00
|
|
|
"min(iterable, *[, default=obj, key=func]) -> value\n\
|
|
|
|
min(arg1, arg2, *args, *[, key=func]) -> value\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
2014-05-20 05:20:52 +08:00
|
|
|
With a single iterable argument, return its smallest item. The\n\
|
|
|
|
default keyword-only argument specifies an object to return if\n\
|
|
|
|
the provided iterable is empty.\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
With two or more arguments, return the smallest argument.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, waiting for *args support */
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2004-12-03 16:30:39 +08:00
|
|
|
builtin_max(PyObject *self, PyObject *args, PyObject *kwds)
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
return min_max(args, kwds, Py_GT);
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(max_doc,
|
2014-05-20 05:20:52 +08:00
|
|
|
"max(iterable, *[, default=obj, key=func]) -> value\n\
|
|
|
|
max(arg1, arg2, *args, *[, key=func]) -> value\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
2014-05-20 05:20:52 +08:00
|
|
|
With a single iterable argument, return its biggest item. The\n\
|
|
|
|
default keyword-only argument specifies an object to return if\n\
|
|
|
|
the provided iterable is empty.\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
With two or more arguments, return the largest argument.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
oct as builtin_oct
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
number: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the octal representation of an integer.
|
|
|
|
|
|
|
|
>>> oct(342391)
|
|
|
|
'0o1234567'
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_oct(PyObject *module, PyObject *number)
|
|
|
|
/*[clinic end generated code: output=40a34656b6875352 input=ad6b274af4016c72]*/
|
1991-10-24 22:54:44 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyNumber_ToBase(number, 8);
|
1991-10-24 22:54:44 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
ord as builtin_ord
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
c: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the Unicode code point for a one-character string.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_ord(PyObject *module, PyObject *c)
|
|
|
|
/*[clinic end generated code: output=4fa5e87a323bae71 input=3064e5d6203ad012]*/
|
1990-12-20 23:06:42 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
long ord;
|
|
|
|
Py_ssize_t size;
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
if (PyBytes_Check(c)) {
|
|
|
|
size = PyBytes_GET_SIZE(c);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (size == 1) {
|
2014-08-17 12:01:19 +08:00
|
|
|
ord = (long)((unsigned char)*PyBytes_AS_STRING(c));
|
2010-05-09 23:52:27 +08:00
|
|
|
return PyLong_FromLong(ord);
|
|
|
|
}
|
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
else if (PyUnicode_Check(c)) {
|
|
|
|
if (PyUnicode_READY(c) == -1)
|
2011-09-28 13:41:54 +08:00
|
|
|
return NULL;
|
2014-08-17 12:01:19 +08:00
|
|
|
size = PyUnicode_GET_LENGTH(c);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (size == 1) {
|
2014-08-17 12:01:19 +08:00
|
|
|
ord = (long)PyUnicode_READ_CHAR(c, 0);
|
2010-05-09 23:52:27 +08:00
|
|
|
return PyLong_FromLong(ord);
|
|
|
|
}
|
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
else if (PyByteArray_Check(c)) {
|
2010-05-09 23:52:27 +08:00
|
|
|
/* XXX Hopefully this is temporary */
|
2014-08-17 12:01:19 +08:00
|
|
|
size = PyByteArray_GET_SIZE(c);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (size == 1) {
|
2014-08-17 12:01:19 +08:00
|
|
|
ord = (long)((unsigned char)*PyByteArray_AS_STRING(c));
|
2010-05-09 23:52:27 +08:00
|
|
|
return PyLong_FromLong(ord);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"ord() expected string of length 1, but " \
|
2014-08-17 12:01:19 +08:00
|
|
|
"%.200s found", c->ob_type->tp_name);
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"ord() expected a character, "
|
|
|
|
"but string of length %zd found",
|
|
|
|
size);
|
|
|
|
return NULL;
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
pow as builtin_pow
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
x: object
|
|
|
|
y: object
|
|
|
|
z: object = None
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
|
|
|
|
|
|
|
|
Some types, such as ints, are able to use a more efficient algorithm when
|
|
|
|
invoked using the three argument form.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_pow_impl(PyObject *module, PyObject *x, PyObject *y, PyObject *z)
|
|
|
|
/*[clinic end generated code: output=50a14d5d130d404b input=653d57d38d41fc07]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
return PyNumber_Power(x, y, z);
|
|
|
|
}
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2003-04-12 02:43:06 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, waiting for *args support */
|
2006-12-01 06:13:52 +08:00
|
|
|
static PyObject *
|
|
|
|
builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
|
|
|
|
{
|
2012-01-14 02:41:25 +08:00
|
|
|
static char *kwlist[] = {"sep", "end", "file", "flush", 0};
|
2010-05-09 23:52:27 +08:00
|
|
|
static PyObject *dummy_args;
|
2012-01-14 02:41:25 +08:00
|
|
|
PyObject *sep = NULL, *end = NULL, *file = NULL, *flush = NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
int i, err;
|
|
|
|
|
2012-01-12 10:00:16 +08:00
|
|
|
if (dummy_args == NULL && !(dummy_args = PyTuple_New(0)))
|
2012-01-14 02:41:25 +08:00
|
|
|
return NULL;
|
|
|
|
if (!PyArg_ParseTupleAndKeywords(dummy_args, kwds, "|OOOO:print",
|
|
|
|
kwlist, &sep, &end, &file, &flush))
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
if (file == NULL || file == Py_None) {
|
2013-11-08 06:07:29 +08:00
|
|
|
file = _PySys_GetObjectId(&PyId_stdout);
|
2013-07-17 04:26:05 +08:00
|
|
|
if (file == NULL) {
|
|
|
|
PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
/* sys.stdout may be None when FILE* stdout isn't connected */
|
|
|
|
if (file == Py_None)
|
|
|
|
Py_RETURN_NONE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (sep == Py_None) {
|
|
|
|
sep = NULL;
|
|
|
|
}
|
|
|
|
else if (sep && !PyUnicode_Check(sep)) {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"sep must be None or a string, not %.200s",
|
|
|
|
sep->ob_type->tp_name);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (end == Py_None) {
|
|
|
|
end = NULL;
|
|
|
|
}
|
|
|
|
else if (end && !PyUnicode_Check(end)) {
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"end must be None or a string, not %.200s",
|
|
|
|
end->ob_type->tp_name);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i = 0; i < PyTuple_Size(args); i++) {
|
|
|
|
if (i > 0) {
|
|
|
|
if (sep == NULL)
|
|
|
|
err = PyFile_WriteString(" ", file);
|
|
|
|
else
|
|
|
|
err = PyFile_WriteObject(sep, file,
|
|
|
|
Py_PRINT_RAW);
|
|
|
|
if (err)
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
err = PyFile_WriteObject(PyTuple_GetItem(args, i), file,
|
|
|
|
Py_PRINT_RAW);
|
|
|
|
if (err)
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (end == NULL)
|
|
|
|
err = PyFile_WriteString("\n", file);
|
|
|
|
else
|
|
|
|
err = PyFile_WriteObject(end, file, Py_PRINT_RAW);
|
|
|
|
if (err)
|
|
|
|
return NULL;
|
|
|
|
|
2012-01-14 02:41:25 +08:00
|
|
|
if (flush != NULL) {
|
|
|
|
PyObject *tmp;
|
|
|
|
int do_flush = PyObject_IsTrue(flush);
|
|
|
|
if (do_flush == -1)
|
|
|
|
return NULL;
|
|
|
|
else if (do_flush) {
|
2013-11-07 07:01:51 +08:00
|
|
|
tmp = _PyObject_CallMethodId(file, &PyId_flush, "");
|
2012-01-14 02:41:25 +08:00
|
|
|
if (tmp == NULL)
|
|
|
|
return NULL;
|
|
|
|
else
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_RETURN_NONE;
|
2006-12-01 06:13:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
PyDoc_STRVAR(print_doc,
|
2012-08-11 04:53:45 +08:00
|
|
|
"print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n\
|
2006-12-01 06:13:52 +08:00
|
|
|
\n\
|
|
|
|
Prints the values to a stream, or to sys.stdout by default.\n\
|
|
|
|
Optional keyword arguments:\n\
|
2012-08-11 04:53:45 +08:00
|
|
|
file: a file-like object (stream); defaults to the current sys.stdout.\n\
|
|
|
|
sep: string inserted between values, default a space.\n\
|
|
|
|
end: string appended after the last value, default a newline.\n\
|
|
|
|
flush: whether to forcibly flush the stream.");
|
2006-12-01 06:13:52 +08:00
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
input as builtin_input
|
|
|
|
|
|
|
|
prompt: object(c_default="NULL") = None
|
|
|
|
/
|
|
|
|
|
|
|
|
Read a string from standard input. The trailing newline is stripped.
|
|
|
|
|
|
|
|
The prompt string, if given, is printed to standard output without a
|
|
|
|
trailing newline before reading input.
|
|
|
|
|
|
|
|
If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
|
|
|
|
On *nix systems, readline is used if available.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_input_impl(PyObject *module, PyObject *prompt)
|
|
|
|
/*[clinic end generated code: output=83db5a191e7a0d60 input=5e8bb70c2908fe3c]*/
|
2007-02-27 00:59:55 +08:00
|
|
|
{
|
2013-11-08 06:07:29 +08:00
|
|
|
PyObject *fin = _PySys_GetObjectId(&PyId_stdin);
|
|
|
|
PyObject *fout = _PySys_GetObjectId(&PyId_stdout);
|
|
|
|
PyObject *ferr = _PySys_GetObjectId(&PyId_stderr);
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *tmp;
|
|
|
|
long fd;
|
|
|
|
int tty;
|
|
|
|
|
|
|
|
/* Check that stdin/out/err are intact */
|
|
|
|
if (fin == NULL || fin == Py_None) {
|
|
|
|
PyErr_SetString(PyExc_RuntimeError,
|
|
|
|
"input(): lost sys.stdin");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (fout == NULL || fout == Py_None) {
|
|
|
|
PyErr_SetString(PyExc_RuntimeError,
|
|
|
|
"input(): lost sys.stdout");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
if (ferr == NULL || ferr == Py_None) {
|
|
|
|
PyErr_SetString(PyExc_RuntimeError,
|
|
|
|
"input(): lost sys.stderr");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* First of all, flush stderr */
|
2011-10-09 16:38:36 +08:00
|
|
|
tmp = _PyObject_CallMethodId(ferr, &PyId_flush, "");
|
2010-05-09 23:52:27 +08:00
|
|
|
if (tmp == NULL)
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
|
|
|
|
/* We should only use (GNU) readline if Python's sys.stdin and
|
|
|
|
sys.stdout are the same as C's stdin and stdout, because we
|
|
|
|
need to pass it those. */
|
2011-10-09 16:38:36 +08:00
|
|
|
tmp = _PyObject_CallMethodId(fin, &PyId_fileno, "");
|
2010-05-09 23:52:27 +08:00
|
|
|
if (tmp == NULL) {
|
|
|
|
PyErr_Clear();
|
|
|
|
tty = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
fd = PyLong_AsLong(tmp);
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
if (fd < 0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
tty = fd == fileno(stdin) && isatty(fd);
|
|
|
|
}
|
|
|
|
if (tty) {
|
2011-10-09 16:38:36 +08:00
|
|
|
tmp = _PyObject_CallMethodId(fout, &PyId_fileno, "");
|
2015-10-10 09:25:38 +08:00
|
|
|
if (tmp == NULL) {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_Clear();
|
2015-10-10 09:25:38 +08:00
|
|
|
tty = 0;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
else {
|
|
|
|
fd = PyLong_AsLong(tmp);
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
if (fd < 0 && PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
tty = fd == fileno(stdout) && isatty(fd);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* If we're interactive, use (GNU) readline */
|
|
|
|
if (tty) {
|
2011-11-06 07:34:26 +08:00
|
|
|
PyObject *po = NULL;
|
2014-08-17 12:01:19 +08:00
|
|
|
char *promptstr;
|
2011-11-06 07:34:26 +08:00
|
|
|
char *s = NULL;
|
|
|
|
PyObject *stdin_encoding = NULL, *stdin_errors = NULL;
|
|
|
|
PyObject *stdout_encoding = NULL, *stdout_errors = NULL;
|
|
|
|
char *stdin_encoding_str, *stdin_errors_str;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *result;
|
2011-02-23 20:07:37 +08:00
|
|
|
size_t len;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2011-10-11 00:11:30 +08:00
|
|
|
stdin_encoding = _PyObject_GetAttrId(fin, &PyId_encoding);
|
2011-11-06 07:38:45 +08:00
|
|
|
stdin_errors = _PyObject_GetAttrId(fin, &PyId_errors);
|
2011-11-06 07:34:26 +08:00
|
|
|
if (!stdin_encoding || !stdin_errors)
|
2010-05-09 23:52:27 +08:00
|
|
|
/* stdin is a text stream, so it must have an
|
|
|
|
encoding. */
|
2011-11-06 07:34:26 +08:00
|
|
|
goto _readline_errors;
|
2010-05-19 09:06:22 +08:00
|
|
|
stdin_encoding_str = _PyUnicode_AsString(stdin_encoding);
|
2011-11-06 07:34:26 +08:00
|
|
|
stdin_errors_str = _PyUnicode_AsString(stdin_errors);
|
|
|
|
if (!stdin_encoding_str || !stdin_errors_str)
|
|
|
|
goto _readline_errors;
|
2011-10-09 16:38:36 +08:00
|
|
|
tmp = _PyObject_CallMethodId(fout, &PyId_flush, "");
|
2010-05-09 23:52:27 +08:00
|
|
|
if (tmp == NULL)
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
Py_DECREF(tmp);
|
2014-08-17 12:01:19 +08:00
|
|
|
if (prompt != NULL) {
|
2011-11-06 07:34:26 +08:00
|
|
|
/* We have a prompt, encode it as stdout would */
|
|
|
|
char *stdout_encoding_str, *stdout_errors_str;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *stringpo;
|
2011-10-11 00:11:30 +08:00
|
|
|
stdout_encoding = _PyObject_GetAttrId(fout, &PyId_encoding);
|
2011-11-06 07:38:45 +08:00
|
|
|
stdout_errors = _PyObject_GetAttrId(fout, &PyId_errors);
|
2011-11-06 07:34:26 +08:00
|
|
|
if (!stdout_encoding || !stdout_errors)
|
|
|
|
goto _readline_errors;
|
2010-05-19 09:06:22 +08:00
|
|
|
stdout_encoding_str = _PyUnicode_AsString(stdout_encoding);
|
2011-11-06 07:34:26 +08:00
|
|
|
stdout_errors_str = _PyUnicode_AsString(stdout_errors);
|
|
|
|
if (!stdout_encoding_str || !stdout_errors_str)
|
|
|
|
goto _readline_errors;
|
2014-08-17 12:01:19 +08:00
|
|
|
stringpo = PyObject_Str(prompt);
|
2011-11-06 07:34:26 +08:00
|
|
|
if (stringpo == NULL)
|
|
|
|
goto _readline_errors;
|
2010-05-09 23:52:27 +08:00
|
|
|
po = PyUnicode_AsEncodedString(stringpo,
|
2011-11-06 07:34:26 +08:00
|
|
|
stdout_encoding_str, stdout_errors_str);
|
|
|
|
Py_CLEAR(stdout_encoding);
|
|
|
|
Py_CLEAR(stdout_errors);
|
|
|
|
Py_CLEAR(stringpo);
|
|
|
|
if (po == NULL)
|
|
|
|
goto _readline_errors;
|
2016-04-13 20:37:23 +08:00
|
|
|
assert(PyBytes_Check(po));
|
|
|
|
promptstr = PyBytes_AS_STRING(po);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
po = NULL;
|
2014-08-17 12:01:19 +08:00
|
|
|
promptstr = "";
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2014-08-17 12:01:19 +08:00
|
|
|
s = PyOS_Readline(stdin, stdout, promptstr);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (s == NULL) {
|
2013-04-03 20:44:50 +08:00
|
|
|
PyErr_CheckSignals();
|
2010-05-09 23:52:27 +08:00
|
|
|
if (!PyErr_Occurred())
|
|
|
|
PyErr_SetNone(PyExc_KeyboardInterrupt);
|
2011-11-06 07:34:26 +08:00
|
|
|
goto _readline_errors;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
2011-02-23 20:07:37 +08:00
|
|
|
|
|
|
|
len = strlen(s);
|
|
|
|
if (len == 0) {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyErr_SetNone(PyExc_EOFError);
|
|
|
|
result = NULL;
|
|
|
|
}
|
2011-02-23 20:07:37 +08:00
|
|
|
else {
|
2010-05-09 23:52:27 +08:00
|
|
|
if (len > PY_SSIZE_T_MAX) {
|
|
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
|
|
"input: input too long");
|
|
|
|
result = NULL;
|
|
|
|
}
|
|
|
|
else {
|
2011-02-23 20:07:37 +08:00
|
|
|
len--; /* strip trailing '\n' */
|
|
|
|
if (len != 0 && s[len-1] == '\r')
|
|
|
|
len--; /* strip trailing '\r' */
|
2011-11-06 07:34:26 +08:00
|
|
|
result = PyUnicode_Decode(s, len, stdin_encoding_str,
|
|
|
|
stdin_errors_str);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
Py_DECREF(stdin_encoding);
|
2011-11-06 07:34:26 +08:00
|
|
|
Py_DECREF(stdin_errors);
|
|
|
|
Py_XDECREF(po);
|
2010-05-09 23:52:27 +08:00
|
|
|
PyMem_FREE(s);
|
|
|
|
return result;
|
2011-11-06 07:34:26 +08:00
|
|
|
_readline_errors:
|
|
|
|
Py_XDECREF(stdin_encoding);
|
|
|
|
Py_XDECREF(stdout_encoding);
|
|
|
|
Py_XDECREF(stdin_errors);
|
|
|
|
Py_XDECREF(stdout_errors);
|
|
|
|
Py_XDECREF(po);
|
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Fallback if we're not interactive */
|
2014-08-17 12:01:19 +08:00
|
|
|
if (prompt != NULL) {
|
|
|
|
if (PyFile_WriteObject(prompt, fout, Py_PRINT_RAW) != 0)
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
2011-10-09 16:38:36 +08:00
|
|
|
tmp = _PyObject_CallMethodId(fout, &PyId_flush, "");
|
2010-05-09 23:52:27 +08:00
|
|
|
if (tmp == NULL)
|
|
|
|
PyErr_Clear();
|
|
|
|
else
|
|
|
|
Py_DECREF(tmp);
|
|
|
|
return PyFile_GetLine(fin, -1);
|
2007-02-27 00:59:55 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
repr as builtin_repr
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return the canonical string representation of the object.
|
|
|
|
|
|
|
|
For many object types, including most builtins, eval(repr(obj)) == obj.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_repr(PyObject *module, PyObject *obj)
|
|
|
|
/*[clinic end generated code: output=7ed3778c44fd0194 input=1c9e6d66d3e3be04]*/
|
1992-11-26 16:54:07 +08:00
|
|
|
{
|
2014-08-17 12:01:19 +08:00
|
|
|
return PyObject_Repr(obj);
|
1992-11-26 16:54:07 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect
|
|
|
|
* or a semantic change to accept None for "ndigits"
|
|
|
|
*/
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2006-04-21 18:40:58 +08:00
|
|
|
builtin_round(PyObject *self, PyObject *args, PyObject *kwds)
|
1993-02-13 00:29:05 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *ndigits = NULL;
|
|
|
|
static char *kwlist[] = {"number", "ndigits", 0};
|
2013-04-14 05:19:01 +08:00
|
|
|
PyObject *number, *round, *result;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:round",
|
|
|
|
kwlist, &number, &ndigits))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (Py_TYPE(number)->tp_dict == NULL) {
|
|
|
|
if (PyType_Ready(Py_TYPE(number)) < 0)
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2013-04-14 05:19:01 +08:00
|
|
|
round = _PyObject_LookupSpecial(number, &PyId___round__);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (round == NULL) {
|
2013-04-14 05:19:01 +08:00
|
|
|
if (!PyErr_Occurred())
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"type %.100s doesn't define __round__ method",
|
|
|
|
Py_TYPE(number)->tp_name);
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (ndigits == NULL)
|
2013-04-14 05:19:01 +08:00
|
|
|
result = PyObject_CallFunctionObjArgs(round, NULL);
|
2010-05-09 23:52:27 +08:00
|
|
|
else
|
2013-04-14 05:19:01 +08:00
|
|
|
result = PyObject_CallFunctionObjArgs(round, ndigits, NULL);
|
|
|
|
Py_DECREF(round);
|
|
|
|
return result;
|
1993-02-13 00:29:05 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(round_doc,
|
2009-01-29 05:25:58 +08:00
|
|
|
"round(number[, ndigits]) -> number\n\
|
1998-06-27 05:23:49 +08:00
|
|
|
\n\
|
|
|
|
Round a number to a given precision in decimal digits (default 0 digits).\n\
|
2008-07-05 19:29:03 +08:00
|
|
|
This returns an int when called with one argument, otherwise the\n\
|
2008-07-02 04:39:59 +08:00
|
|
|
same type as the number. ndigits may be negative.");
|
2007-08-24 06:07:24 +08:00
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*AC: we need to keep the kwds dict intact to easily call into the
|
|
|
|
* list.sort method, which isn't currently supported in AC. So we just use
|
|
|
|
* the initially generated signature with a custom implementation.
|
|
|
|
*/
|
|
|
|
/* [disabled clinic input]
|
|
|
|
sorted as builtin_sorted
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
iterable as seq: object
|
|
|
|
key as keyfunc: object = None
|
|
|
|
reverse: object = False
|
2014-08-17 12:01:19 +08:00
|
|
|
|
|
|
|
Return a new list containing all items from the iterable in ascending order.
|
|
|
|
|
|
|
|
A custom key function can be supplied to customise the sort order, and the
|
|
|
|
reverse flag can be set to request the result in descending order.
|
|
|
|
[end disabled clinic input]*/
|
|
|
|
|
|
|
|
PyDoc_STRVAR(builtin_sorted__doc__,
|
|
|
|
"sorted($module, iterable, key=None, reverse=False)\n"
|
|
|
|
"--\n"
|
|
|
|
"\n"
|
|
|
|
"Return a new list containing all items from the iterable in ascending order.\n"
|
|
|
|
"\n"
|
|
|
|
"A custom key function can be supplied to customise the sort order, and the\n"
|
|
|
|
"reverse flag can be set to request the result in descending order.");
|
|
|
|
|
|
|
|
#define BUILTIN_SORTED_METHODDEF \
|
|
|
|
{"sorted", (PyCFunction)builtin_sorted, METH_VARARGS|METH_KEYWORDS, builtin_sorted__doc__},
|
|
|
|
|
2003-12-18 04:43:33 +08:00
|
|
|
static PyObject *
|
|
|
|
builtin_sorted(PyObject *self, PyObject *args, PyObject *kwds)
|
|
|
|
{
|
2016-08-23 05:21:55 +08:00
|
|
|
PyObject *newlist, *v, *seq, *keyfunc=NULL, **newargs;
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *callable;
|
|
|
|
static char *kwlist[] = {"iterable", "key", "reverse", 0};
|
|
|
|
int reverse;
|
2016-08-23 05:21:55 +08:00
|
|
|
int nargs;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
/* args 1-3 should match listsort in Objects/listobject.c */
|
|
|
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|Oi:sorted",
|
|
|
|
kwlist, &seq, &keyfunc, &reverse))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
newlist = PySequence_List(seq);
|
|
|
|
if (newlist == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
2011-10-11 00:11:30 +08:00
|
|
|
callable = _PyObject_GetAttrId(newlist, &PyId_sort);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (callable == NULL) {
|
|
|
|
Py_DECREF(newlist);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2016-08-23 05:21:55 +08:00
|
|
|
newargs = &PyTuple_GET_ITEM(args, 1);
|
|
|
|
nargs = PyTuple_GET_SIZE(args) - 1;
|
|
|
|
v = _PyObject_FastCallDict(callable, newargs, nargs, kwds);
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(callable);
|
|
|
|
if (v == NULL) {
|
|
|
|
Py_DECREF(newlist);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Py_DECREF(v);
|
|
|
|
return newlist;
|
2003-12-18 04:43:33 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyObject *
|
2000-07-23 02:47:25 +08:00
|
|
|
builtin_vars(PyObject *self, PyObject *args)
|
1994-08-29 20:52:16 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *v = NULL;
|
|
|
|
PyObject *d;
|
|
|
|
|
|
|
|
if (!PyArg_UnpackTuple(args, "vars", 0, 1, &v))
|
|
|
|
return NULL;
|
|
|
|
if (v == NULL) {
|
|
|
|
d = PyEval_GetLocals();
|
2013-10-29 08:19:37 +08:00
|
|
|
if (d == NULL)
|
|
|
|
return NULL;
|
|
|
|
Py_INCREF(d);
|
2010-05-09 23:52:27 +08:00
|
|
|
}
|
|
|
|
else {
|
2011-10-11 00:11:30 +08:00
|
|
|
d = _PyObject_GetAttrId(v, &PyId___dict__);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (d == NULL) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"vars() argument must have __dict__ attribute");
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return d;
|
1994-08-29 20:52:16 +08:00
|
|
|
}
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(vars_doc,
|
1998-06-27 05:23:49 +08:00
|
|
|
"vars([object]) -> dictionary\n\
|
|
|
|
\n\
|
|
|
|
Without arguments, equivalent to locals().\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
With an argument, equivalent to object.__dict__.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
|
|
|
|
/*[clinic input]
|
|
|
|
sum as builtin_sum
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
iterable: object
|
2014-08-17 12:01:19 +08:00
|
|
|
start: object(c_default="NULL") = 0
|
|
|
|
/
|
|
|
|
|
|
|
|
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
|
|
|
|
|
|
|
|
When the iterable is empty, return the start value.
|
|
|
|
This function is intended specifically for use with numeric values and may
|
|
|
|
reject non-numeric types.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
|
|
|
|
/*[clinic end generated code: output=df758cec7d1d302f input=3b5b7a9d7611c73a]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
PyObject *result = start;
|
|
|
|
PyObject *temp, *item, *iter;
|
2010-05-09 23:52:27 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
iter = PyObject_GetIter(iterable);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (iter == NULL)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (result == NULL) {
|
|
|
|
result = PyLong_FromLong(0);
|
|
|
|
if (result == NULL) {
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
/* reject string values for 'start' parameter */
|
|
|
|
if (PyUnicode_Check(result)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"sum() can't sum strings [use ''.join(seq) instead]");
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
2011-07-30 03:23:47 +08:00
|
|
|
if (PyBytes_Check(result)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
|
|
|
"sum() can't sum bytes [use b''.join(seq) instead]");
|
2011-07-30 11:43:45 +08:00
|
|
|
Py_DECREF(iter);
|
2011-07-30 03:23:47 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
if (PyByteArray_Check(result)) {
|
|
|
|
PyErr_SetString(PyExc_TypeError,
|
2011-07-30 03:24:29 +08:00
|
|
|
"sum() can't sum bytearray [use b''.join(seq) instead]");
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
Py_INCREF(result);
|
|
|
|
}
|
2003-04-22 16:12:33 +08:00
|
|
|
|
Merged revisions 58221-58741 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58221 | georg.brandl | 2007-09-20 10:57:59 -0700 (Thu, 20 Sep 2007) | 2 lines
Patch #1181: add os.environ.clear() method.
........
r58225 | sean.reifschneider | 2007-09-20 23:33:28 -0700 (Thu, 20 Sep 2007) | 3 lines
Issue1704287: "make install" fails unless you do "make" first. Make
oldsharedmods and sharedmods in "libinstall".
........
r58232 | guido.van.rossum | 2007-09-22 13:18:03 -0700 (Sat, 22 Sep 2007) | 4 lines
Patch # 188 by Philip Jenvey.
Make tell() mark CRLF as a newline.
With unit test.
........
r58242 | georg.brandl | 2007-09-24 10:55:47 -0700 (Mon, 24 Sep 2007) | 2 lines
Fix typo and double word.
........
r58245 | georg.brandl | 2007-09-24 10:59:28 -0700 (Mon, 24 Sep 2007) | 2 lines
#1196: document default radix for int().
........
r58247 | georg.brandl | 2007-09-24 11:08:24 -0700 (Mon, 24 Sep 2007) | 2 lines
#1177: accept 2xx responses for https too, not only http.
........
r58249 | andrew.kuchling | 2007-09-24 16:45:51 -0700 (Mon, 24 Sep 2007) | 1 line
Remove stray odd character; grammar fix
........
r58250 | andrew.kuchling | 2007-09-24 16:46:28 -0700 (Mon, 24 Sep 2007) | 1 line
Typo fix
........
r58251 | andrew.kuchling | 2007-09-24 17:09:42 -0700 (Mon, 24 Sep 2007) | 1 line
Add various items
........
r58268 | vinay.sajip | 2007-09-26 22:34:45 -0700 (Wed, 26 Sep 2007) | 1 line
Change to flush and close logic to fix #1760556.
........
r58269 | vinay.sajip | 2007-09-26 22:38:51 -0700 (Wed, 26 Sep 2007) | 1 line
Change to basicConfig() to fix #1021.
........
r58270 | georg.brandl | 2007-09-26 23:26:58 -0700 (Wed, 26 Sep 2007) | 2 lines
#1208: document match object's boolean value.
........
r58271 | vinay.sajip | 2007-09-26 23:56:13 -0700 (Wed, 26 Sep 2007) | 1 line
Minor date change.
........
r58272 | vinay.sajip | 2007-09-27 00:35:10 -0700 (Thu, 27 Sep 2007) | 1 line
Change to LogRecord.__init__() to fix #1206. Note that archaic use of type(x) == types.DictType is because of keeping 1.5.2 compatibility. While this is much less relevant these days, there probably needs to be a separate commit for removing all archaic constructs at the same time.
........
r58288 | brett.cannon | 2007-09-30 12:45:10 -0700 (Sun, 30 Sep 2007) | 9 lines
tuple.__repr__ did not consider a reference loop as it is not possible from
Python code; but it is possible from C. object.__str__ had the issue of not
expecting a type to doing something within it's tp_str implementation that
could trigger an infinite recursion, but it could in C code.. Both found
thanks to BaseException and how it handles its repr.
Closes issue #1686386. Thanks to Thomas Herve for taking an initial stab at
coming up with a solution.
........
r58289 | brett.cannon | 2007-09-30 13:37:19 -0700 (Sun, 30 Sep 2007) | 3 lines
Fix error introduced by r58288; if a tuple is length 0 return its repr and
don't worry about any self-referring tuples.
........
r58294 | facundo.batista | 2007-10-02 10:01:24 -0700 (Tue, 02 Oct 2007) | 11 lines
Made the various is_* operations return booleans. This was discussed
with Cawlishaw by mail, and he basically confirmed that to these is_*
operations, there's no need to return Decimal(0) and Decimal(1) if
the language supports the False and True booleans.
Also added a few tests for the these functions in extra.decTest, since
they are mostly untested (apart from the doctests).
Thanks Mark Dickinson
........
r58295 | facundo.batista | 2007-10-02 11:21:18 -0700 (Tue, 02 Oct 2007) | 4 lines
Added a class to store the digits of log(10), so that they can be made
available when necessary without recomputing. Thanks Mark Dickinson
........
r58299 | mark.summerfield | 2007-10-03 01:53:21 -0700 (Wed, 03 Oct 2007) | 4 lines
Added note in footnote about string comparisons about
unicodedata.normalize().
........
r58304 | raymond.hettinger | 2007-10-03 14:18:11 -0700 (Wed, 03 Oct 2007) | 1 line
enumerate() is no longer bounded to using sequences shorter than LONG_MAX. The possibility of overflow was sending some newsgroup posters into a tizzy.
........
r58305 | raymond.hettinger | 2007-10-03 17:20:27 -0700 (Wed, 03 Oct 2007) | 1 line
itertools.count() no longer limited to sys.maxint.
........
r58306 | kurt.kaiser | 2007-10-03 18:49:54 -0700 (Wed, 03 Oct 2007) | 3 lines
Assume that the user knows when he wants to end the line; don't insert
something he didn't select or complete.
........
r58307 | kurt.kaiser | 2007-10-03 19:07:50 -0700 (Wed, 03 Oct 2007) | 2 lines
Remove unused theme that was causing a fault in p3k.
........
r58308 | kurt.kaiser | 2007-10-03 19:09:17 -0700 (Wed, 03 Oct 2007) | 2 lines
Clean up EditorWindow close.
........
r58309 | kurt.kaiser | 2007-10-03 19:53:07 -0700 (Wed, 03 Oct 2007) | 7 lines
textView cleanup. Patch 1718043 Tal Einat.
M idlelib/EditorWindow.py
M idlelib/aboutDialog.py
M idlelib/textView.py
M idlelib/NEWS.txt
........
r58310 | kurt.kaiser | 2007-10-03 20:11:12 -0700 (Wed, 03 Oct 2007) | 3 lines
configDialog cleanup. Patch 1730217 Tal Einat.
........
r58311 | neal.norwitz | 2007-10-03 23:00:48 -0700 (Wed, 03 Oct 2007) | 4 lines
Coverity #151: Remove deadcode.
All this code already exists above starting at line 653.
........
r58325 | fred.drake | 2007-10-04 19:46:12 -0700 (Thu, 04 Oct 2007) | 1 line
wrap lines to <80 characters before fixing errors
........
r58326 | raymond.hettinger | 2007-10-04 19:47:07 -0700 (Thu, 04 Oct 2007) | 6 lines
Add __asdict__() to NamedTuple and refine the docs.
Add maxlen support to deque() and fixup docs.
Partially fix __reduce__(). The None as a third arg was no longer supported.
Still needs work on __reduce__() to handle recursive inputs.
........
r58327 | fred.drake | 2007-10-04 19:48:32 -0700 (Thu, 04 Oct 2007) | 3 lines
move descriptions of ac_(in|out)_buffer_size to the right place
http://bugs.python.org/issue1053
........
r58329 | neal.norwitz | 2007-10-04 20:39:17 -0700 (Thu, 04 Oct 2007) | 3 lines
dict could be NULL, so we need to XDECREF.
Fix a compiler warning about passing a PyTypeObject* instead of PyObject*.
........
r58330 | neal.norwitz | 2007-10-04 20:41:19 -0700 (Thu, 04 Oct 2007) | 2 lines
Fix Coverity #158: Check the correct variable.
........
r58332 | neal.norwitz | 2007-10-04 22:01:38 -0700 (Thu, 04 Oct 2007) | 7 lines
Fix Coverity #159.
This code was broken if save() returned a negative number since i contained
a boolean value and then we compared i < 0 which should never be true.
Will backport (assuming it's necessary)
........
r58334 | neal.norwitz | 2007-10-04 22:29:17 -0700 (Thu, 04 Oct 2007) | 1 line
Add a note about fixing some more warnings found by Coverity.
........
r58338 | raymond.hettinger | 2007-10-05 12:07:31 -0700 (Fri, 05 Oct 2007) | 1 line
Restore BEGIN/END THREADS macros which were squashed in the previous checkin
........
r58343 | gregory.p.smith | 2007-10-06 00:48:10 -0700 (Sat, 06 Oct 2007) | 3 lines
Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
ubuntu buildbots.
........
r58344 | gregory.p.smith | 2007-10-06 00:51:59 -0700 (Sat, 06 Oct 2007) | 2 lines
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
........
r58348 | gregory.p.smith | 2007-10-06 08:47:37 -0700 (Sat, 06 Oct 2007) | 3 lines
Use the host the author likely meant in the first place. pop.gmail.com is
reliable. gmail.org is someones personal domain.
........
r58351 | neal.norwitz | 2007-10-06 12:16:28 -0700 (Sat, 06 Oct 2007) | 3 lines
Ensure that this test will pass even if another test left an unwritable TESTFN.
Also use the safe unlink in test_support instead of rolling our own here.
........
r58368 | georg.brandl | 2007-10-08 00:50:24 -0700 (Mon, 08 Oct 2007) | 3 lines
#1123: fix the docs for the str.split(None, sep) case.
Also expand a few other methods' docs, which had more info in the deprecated string module docs.
........
r58369 | georg.brandl | 2007-10-08 01:06:05 -0700 (Mon, 08 Oct 2007) | 2 lines
Update docstring of sched, also remove an unused assignment.
........
r58370 | raymond.hettinger | 2007-10-08 02:14:28 -0700 (Mon, 08 Oct 2007) | 5 lines
Add comments to NamedTuple code.
Let the field spec be either a string or a non-string sequence (suggested by Martin Blais with use cases).
Improve the error message in the case of a SyntaxError (caused by a duplicate field name).
........
r58371 | raymond.hettinger | 2007-10-08 02:56:29 -0700 (Mon, 08 Oct 2007) | 1 line
Missed a line in the docs
........
r58372 | raymond.hettinger | 2007-10-08 03:11:51 -0700 (Mon, 08 Oct 2007) | 1 line
Better variable names
........
r58376 | georg.brandl | 2007-10-08 07:12:47 -0700 (Mon, 08 Oct 2007) | 3 lines
#1199: docs for tp_as_{number,sequence,mapping}, by Amaury Forgeot d'Arc.
No need to merge this to py3k!
........
r58380 | raymond.hettinger | 2007-10-08 14:26:58 -0700 (Mon, 08 Oct 2007) | 1 line
Eliminate camelcase function name
........
r58381 | andrew.kuchling | 2007-10-08 16:23:03 -0700 (Mon, 08 Oct 2007) | 1 line
Eliminate camelcase function name
........
r58382 | raymond.hettinger | 2007-10-08 18:36:23 -0700 (Mon, 08 Oct 2007) | 1 line
Make the error messages more specific
........
r58384 | gregory.p.smith | 2007-10-08 23:02:21 -0700 (Mon, 08 Oct 2007) | 10 lines
Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
object available as bsddb.db.api. This is based on the patch submitted
by Duncan Grisby here:
http://sourceforge.net/tracker/index.php?func=detail&aid=1551895&group_id=13900&atid=313900
See this thread for additional info:
http://sourceforge.net/mailarchive/forum.php?thread_name=E1GAVDK-0002rk-Iw%40apasphere.com&forum_name=pybsddb-users
It also cleans up the code a little by removing some ifdef/endifs for
python prior to 2.1 and for unsupported Berkeley DB <= 3.2.
........
r58385 | gregory.p.smith | 2007-10-08 23:50:43 -0700 (Mon, 08 Oct 2007) | 5 lines
Fix a double free when positioning a database cursor to a non-existant
string key (and probably a few other situations with string keys).
This was reported with a patch as pybsddb sourceforge bug 1708868 by
jjjhhhlll at gmail.
........
r58386 | gregory.p.smith | 2007-10-09 00:19:11 -0700 (Tue, 09 Oct 2007) | 3 lines
Use the highest cPickle protocol in bsddb.dbshelve. This comes from
sourceforge pybsddb patch 1551443 by w_barnes.
........
r58394 | gregory.p.smith | 2007-10-09 11:26:02 -0700 (Tue, 09 Oct 2007) | 2 lines
remove another sleepycat reference
........
r58396 | kurt.kaiser | 2007-10-09 12:31:30 -0700 (Tue, 09 Oct 2007) | 3 lines
Allow interrupt only when executing user code in subprocess
Patch 1225 Tal Einat modified from IDLE-Spoon.
........
r58399 | brett.cannon | 2007-10-09 17:07:50 -0700 (Tue, 09 Oct 2007) | 5 lines
Remove file-level typedefs that were inconsistently used throughout the file.
Just move over to the public API names.
Closes issue1238.
........
r58401 | raymond.hettinger | 2007-10-09 17:26:46 -0700 (Tue, 09 Oct 2007) | 1 line
Accept Jim Jewett's api suggestion to use None instead of -1 to indicate unbounded deques.
........
r58403 | kurt.kaiser | 2007-10-09 17:55:40 -0700 (Tue, 09 Oct 2007) | 2 lines
Allow cursor color change w/o restart. Patch 1725576 Tal Einat.
........
r58404 | kurt.kaiser | 2007-10-09 18:06:47 -0700 (Tue, 09 Oct 2007) | 2 lines
show paste if > 80 columns. Patch 1659326 Tal Einat.
........
r58415 | thomas.heller | 2007-10-11 12:51:32 -0700 (Thu, 11 Oct 2007) | 5 lines
On OS X, use os.uname() instead of gestalt.sysv(...) to get the
operating system version. This allows to use ctypes when Python
was configured with --disable-toolbox-glue.
........
r58419 | neal.norwitz | 2007-10-11 20:01:01 -0700 (Thu, 11 Oct 2007) | 1 line
Get rid of warning about not being able to create an existing directory.
........
r58420 | neal.norwitz | 2007-10-11 20:01:30 -0700 (Thu, 11 Oct 2007) | 1 line
Get rid of warnings on a bunch of platforms by using a proper prototype.
........
r58421 | neal.norwitz | 2007-10-11 20:01:54 -0700 (Thu, 11 Oct 2007) | 4 lines
Get rid of compiler warning about retval being used (returned) without
being initialized. (gcc warning and Coverity 202)
........
r58422 | neal.norwitz | 2007-10-11 20:03:23 -0700 (Thu, 11 Oct 2007) | 1 line
Fix Coverity 168: Close the file before returning (exiting).
........
r58423 | neal.norwitz | 2007-10-11 20:04:18 -0700 (Thu, 11 Oct 2007) | 4 lines
Fix Coverity 180: Don't overallocate. We don't need structs, but pointers.
Also fix a memory leak.
........
r58424 | neal.norwitz | 2007-10-11 20:05:19 -0700 (Thu, 11 Oct 2007) | 5 lines
Fix Coverity 185-186: If the passed in FILE is NULL, uninitialized memory
would be accessed.
Will backport.
........
r58425 | neal.norwitz | 2007-10-11 20:52:34 -0700 (Thu, 11 Oct 2007) | 1 line
Get this module to compile with bsddb versions prior to 4.3
........
r58430 | martin.v.loewis | 2007-10-12 01:56:52 -0700 (Fri, 12 Oct 2007) | 3 lines
Bug #1216: Restore support for Visual Studio 2002.
Will backport to 2.5.
........
r58433 | raymond.hettinger | 2007-10-12 10:53:11 -0700 (Fri, 12 Oct 2007) | 1 line
Fix test of count.__repr__() to ignore the 'L' if the count is a long
........
r58434 | gregory.p.smith | 2007-10-12 11:44:06 -0700 (Fri, 12 Oct 2007) | 4 lines
Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append
was useless due to inverted logic. Also adds a test case for RECNO dbs
to test_dbshelve.
........
r58445 | georg.brandl | 2007-10-13 06:20:03 -0700 (Sat, 13 Oct 2007) | 2 lines
Fix email example.
........
r58450 | gregory.p.smith | 2007-10-13 16:02:05 -0700 (Sat, 13 Oct 2007) | 2 lines
Fix an uncollectable reference leak in bsddb.db.DBShelf.append
........
r58453 | neal.norwitz | 2007-10-13 17:18:40 -0700 (Sat, 13 Oct 2007) | 8 lines
Let the O/S supply a port if none of the default ports can be used.
This should make the tests more robust at the expense of allowing
tests to be sloppier by not requiring them to cleanup after themselves.
(It will legitamitely help when running two test suites simultaneously
or if another process is already using one of the predefined ports.)
Also simplifies (slightLy) the exception handling elsewhere.
........
r58459 | neal.norwitz | 2007-10-14 11:30:21 -0700 (Sun, 14 Oct 2007) | 2 lines
Don't raise a string exception, they don't work anymore.
........
r58460 | neal.norwitz | 2007-10-14 11:40:37 -0700 (Sun, 14 Oct 2007) | 1 line
Use unittest for assertions
........
r58468 | armin.rigo | 2007-10-15 00:48:35 -0700 (Mon, 15 Oct 2007) | 2 lines
test_bigbits was not testing what it seemed to.
........
r58471 | guido.van.rossum | 2007-10-15 08:54:11 -0700 (Mon, 15 Oct 2007) | 3 lines
Change a PyErr_Print() into a PyErr_Clear(),
per discussion in issue 1031213.
........
r58500 | raymond.hettinger | 2007-10-16 12:18:30 -0700 (Tue, 16 Oct 2007) | 1 line
Improve error messages
........
r58506 | raymond.hettinger | 2007-10-16 14:28:32 -0700 (Tue, 16 Oct 2007) | 1 line
More docs, error messages, and tests
........
r58507 | andrew.kuchling | 2007-10-16 15:58:03 -0700 (Tue, 16 Oct 2007) | 1 line
Add items
........
r58508 | brett.cannon | 2007-10-16 16:24:06 -0700 (Tue, 16 Oct 2007) | 3 lines
Remove ``:const:`` notation on None in parameter list. Since the markup is not
rendered for parameters it just showed up as ``:const:`None` `` in the output.
........
r58509 | brett.cannon | 2007-10-16 16:26:45 -0700 (Tue, 16 Oct 2007) | 3 lines
Re-order some functions whose parameters differ between PyObject and const char
* so that they are next to each other.
........
r58522 | armin.rigo | 2007-10-17 11:46:37 -0700 (Wed, 17 Oct 2007) | 5 lines
Fix the overflow checking of list_repeat.
Introduce overflow checking into list_inplace_repeat.
Backport candidate, possibly.
........
r58530 | facundo.batista | 2007-10-17 20:16:03 -0700 (Wed, 17 Oct 2007) | 7 lines
Issue #1580738. When HTTPConnection reads the whole stream with read(),
it closes itself. When the stream is read in several calls to read(n),
it should behave in the same way if HTTPConnection knows where the end
of the stream is (through self.length). Added a test case for this
behaviour.
........
r58531 | facundo.batista | 2007-10-17 20:44:48 -0700 (Wed, 17 Oct 2007) | 3 lines
Issue 1289, just a typo.
........
r58532 | gregory.p.smith | 2007-10-18 00:56:54 -0700 (Thu, 18 Oct 2007) | 4 lines
cleanup test_dbtables to use mkdtemp. cleanup dbtables to pass txn as a
keyword argument whenever possible to avoid bugs and confusion. (dbtables.py
line 447 self.db.get using txn as a non-keyword was an actual bug due to this)
........
r58533 | gregory.p.smith | 2007-10-18 01:34:20 -0700 (Thu, 18 Oct 2007) | 4 lines
Fix a weird bug in dbtables: if it chose a random rowid string that contained
NULL bytes it would cause the database all sorts of problems in the future
leading to very strange random failures and corrupt dbtables.bsdTableDb dbs.
........
r58534 | gregory.p.smith | 2007-10-18 09:32:02 -0700 (Thu, 18 Oct 2007) | 3 lines
A cleaner fix than the one committed last night. Generate random rowids that
do not contain null bytes.
........
r58537 | gregory.p.smith | 2007-10-18 10:17:57 -0700 (Thu, 18 Oct 2007) | 2 lines
mention bsddb fixes.
........
r58538 | raymond.hettinger | 2007-10-18 14:13:06 -0700 (Thu, 18 Oct 2007) | 1 line
Remove useless warning
........
r58539 | gregory.p.smith | 2007-10-19 00:31:20 -0700 (Fri, 19 Oct 2007) | 2 lines
squelch the warning that this test is supposed to trigger.
........
r58542 | georg.brandl | 2007-10-19 05:32:39 -0700 (Fri, 19 Oct 2007) | 2 lines
Clarify wording for apply().
........
r58544 | mark.summerfield | 2007-10-19 05:48:17 -0700 (Fri, 19 Oct 2007) | 3 lines
Added a cross-ref to each other.
........
r58545 | georg.brandl | 2007-10-19 10:38:49 -0700 (Fri, 19 Oct 2007) | 2 lines
#1284: "S" means "seen", not unread.
........
r58548 | thomas.heller | 2007-10-19 11:11:41 -0700 (Fri, 19 Oct 2007) | 4 lines
Fix ctypes on 32-bit systems when Python is configured --with-system-ffi.
See also https://bugs.launchpad.net/bugs/72505.
Ported from release25-maint branch.
........
r58550 | facundo.batista | 2007-10-19 12:25:57 -0700 (Fri, 19 Oct 2007) | 8 lines
The constructor from tuple was way too permissive: it allowed bad
coefficient numbers, floats in the sign, and other details that
generated directly the wrong number in the best case, or triggered
misfunctionality in the alorithms.
Test cases added for these issues. Thanks Mark Dickinson.
........
r58559 | georg.brandl | 2007-10-20 06:22:53 -0700 (Sat, 20 Oct 2007) | 2 lines
Fix code being interpreted as a target.
........
r58561 | georg.brandl | 2007-10-20 06:36:24 -0700 (Sat, 20 Oct 2007) | 2 lines
Document new "cmdoption" directive.
........
r58562 | georg.brandl | 2007-10-20 08:21:22 -0700 (Sat, 20 Oct 2007) | 2 lines
Make a path more Unix-standardy.
........
r58564 | georg.brandl | 2007-10-20 10:51:39 -0700 (Sat, 20 Oct 2007) | 2 lines
Document new directive "envvar".
........
r58567 | georg.brandl | 2007-10-20 11:08:14 -0700 (Sat, 20 Oct 2007) | 6 lines
* Add new toplevel chapter, "Using Python." (how to install,
configure and setup python on different platforms -- at least
in theory.)
* Move the Python on Mac docs in that chapter.
* Add a new chapter about the command line invocation, by stargaming.
........
r58568 | georg.brandl | 2007-10-20 11:33:20 -0700 (Sat, 20 Oct 2007) | 2 lines
Change title, for now.
........
r58569 | georg.brandl | 2007-10-20 11:39:25 -0700 (Sat, 20 Oct 2007) | 2 lines
Add entry to ACKS.
........
r58570 | georg.brandl | 2007-10-20 12:05:45 -0700 (Sat, 20 Oct 2007) | 2 lines
Clarify -E docs.
........
r58571 | georg.brandl | 2007-10-20 12:08:36 -0700 (Sat, 20 Oct 2007) | 2 lines
Even more clarification.
........
r58572 | andrew.kuchling | 2007-10-20 12:25:37 -0700 (Sat, 20 Oct 2007) | 1 line
Fix protocol name
........
r58573 | andrew.kuchling | 2007-10-20 12:35:18 -0700 (Sat, 20 Oct 2007) | 1 line
Various items
........
r58574 | andrew.kuchling | 2007-10-20 12:39:35 -0700 (Sat, 20 Oct 2007) | 1 line
Use correct header line
........
r58576 | armin.rigo | 2007-10-21 02:14:15 -0700 (Sun, 21 Oct 2007) | 3 lines
Add a crasher for the long-standing issue with closing a file
while another thread uses it.
........
r58577 | georg.brandl | 2007-10-21 03:01:56 -0700 (Sun, 21 Oct 2007) | 2 lines
Remove duplicate crasher.
........
r58578 | georg.brandl | 2007-10-21 03:24:20 -0700 (Sun, 21 Oct 2007) | 2 lines
Unify "byte code" to "bytecode". Also sprinkle :term: markup for it.
........
r58579 | georg.brandl | 2007-10-21 03:32:54 -0700 (Sun, 21 Oct 2007) | 2 lines
Add markup to new function descriptions.
........
r58580 | georg.brandl | 2007-10-21 03:45:46 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for descriptors.
........
r58581 | georg.brandl | 2007-10-21 03:46:24 -0700 (Sun, 21 Oct 2007) | 2 lines
Unify "file-descriptor" to "file descriptor".
........
r58582 | georg.brandl | 2007-10-21 03:52:38 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term: for generators.
........
r58583 | georg.brandl | 2007-10-21 05:10:28 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for iterator.
........
r58584 | georg.brandl | 2007-10-21 05:15:05 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for "new-style class".
........
r58588 | neal.norwitz | 2007-10-21 21:47:54 -0700 (Sun, 21 Oct 2007) | 1 line
Add Chris Monson so he can edit PEPs.
........
r58594 | guido.van.rossum | 2007-10-22 09:27:19 -0700 (Mon, 22 Oct 2007) | 4 lines
Issue #1307, patch by Derek Shockey.
When "MAIL" is received without args, an exception happens instead of
sending a 501 syntax error response.
........
r58598 | travis.oliphant | 2007-10-22 19:40:56 -0700 (Mon, 22 Oct 2007) | 1 line
Add phuang patch from Issue 708374 which adds offset parameter to mmap module.
........
r58601 | neal.norwitz | 2007-10-22 22:44:27 -0700 (Mon, 22 Oct 2007) | 2 lines
Bug #1313, fix typo (wrong variable name) in example.
........
r58609 | georg.brandl | 2007-10-23 11:21:35 -0700 (Tue, 23 Oct 2007) | 2 lines
Update Pygments version from externals.
........
r58618 | guido.van.rossum | 2007-10-23 12:25:41 -0700 (Tue, 23 Oct 2007) | 3 lines
Issue 1307 by Derek Shockey, fox the same bug for RCPT.
Neal: please backport!
........
r58620 | raymond.hettinger | 2007-10-23 13:37:41 -0700 (Tue, 23 Oct 2007) | 1 line
Shorter name for namedtuple()
........
r58621 | andrew.kuchling | 2007-10-23 13:55:47 -0700 (Tue, 23 Oct 2007) | 1 line
Update name
........
r58622 | raymond.hettinger | 2007-10-23 14:23:07 -0700 (Tue, 23 Oct 2007) | 1 line
Fixup news entry
........
r58623 | raymond.hettinger | 2007-10-23 18:28:33 -0700 (Tue, 23 Oct 2007) | 1 line
Optimize sum() for integer and float inputs.
........
r58624 | raymond.hettinger | 2007-10-23 19:05:51 -0700 (Tue, 23 Oct 2007) | 1 line
Fixup error return and add support for intermixed ints and floats/
........
r58628 | vinay.sajip | 2007-10-24 03:47:06 -0700 (Wed, 24 Oct 2007) | 1 line
Bug #1321: Fixed logic error in TimedRotatingFileHandler.__init__()
........
r58641 | facundo.batista | 2007-10-24 12:11:08 -0700 (Wed, 24 Oct 2007) | 4 lines
Issue 1290. CharacterData.__repr__ was constructing a string
in response that keeped having a non-ascii character.
........
r58643 | thomas.heller | 2007-10-24 12:50:45 -0700 (Wed, 24 Oct 2007) | 1 line
Added unittest for calling a function with paramflags (backport from py3k branch).
........
r58645 | matthias.klose | 2007-10-24 13:00:44 -0700 (Wed, 24 Oct 2007) | 2 lines
- Build using system ffi library on arm*-linux*.
........
r58651 | georg.brandl | 2007-10-24 14:40:38 -0700 (Wed, 24 Oct 2007) | 2 lines
Bug #1287: make os.environ.pop() work as expected.
........
r58652 | raymond.hettinger | 2007-10-24 19:26:58 -0700 (Wed, 24 Oct 2007) | 1 line
Missing DECREFs
........
r58653 | matthias.klose | 2007-10-24 23:37:24 -0700 (Wed, 24 Oct 2007) | 2 lines
- Build using system ffi library on arm*-linux*, pass --with-system-ffi to CONFIG_ARGS
........
r58655 | thomas.heller | 2007-10-25 12:47:32 -0700 (Thu, 25 Oct 2007) | 2 lines
ffi_type_longdouble may be already #defined.
See issue 1324.
........
r58656 | kurt.kaiser | 2007-10-25 15:43:45 -0700 (Thu, 25 Oct 2007) | 3 lines
Correct an ancient bug in an unused path by removing that path: register() is
now idempotent.
........
r58660 | kurt.kaiser | 2007-10-25 17:10:09 -0700 (Thu, 25 Oct 2007) | 4 lines
1. Add comments to provide top-level documentation.
2. Refactor to use more descriptive names.
3. Enhance tests in main().
........
r58675 | georg.brandl | 2007-10-26 11:30:41 -0700 (Fri, 26 Oct 2007) | 2 lines
Fix new pop() method on os.environ on ignorecase-platforms.
........
r58696 | neal.norwitz | 2007-10-27 15:32:21 -0700 (Sat, 27 Oct 2007) | 1 line
Update URL for Pygments. 0.8.1 is no longer available
........
r58697 | hyeshik.chang | 2007-10-28 04:19:02 -0700 (Sun, 28 Oct 2007) | 3 lines
- Add support for FreeBSD 8 which is recently forked from FreeBSD 7.
- Regenerate IN module for most recent maintenance tree of FreeBSD 6 and 7.
........
r58698 | hyeshik.chang | 2007-10-28 05:38:09 -0700 (Sun, 28 Oct 2007) | 2 lines
Enable platform-specific tweaks for FreeBSD 8 (exactly same to FreeBSD 7's yet)
........
r58700 | kurt.kaiser | 2007-10-28 12:03:59 -0700 (Sun, 28 Oct 2007) | 2 lines
Add confirmation dialog before printing. Patch 1717170 Tal Einat.
........
r58706 | guido.van.rossum | 2007-10-29 13:52:45 -0700 (Mon, 29 Oct 2007) | 3 lines
Patch 1353 by Jacob Winther.
Add mp4 mapping to mimetypes.py.
........
r58709 | guido.van.rossum | 2007-10-29 15:15:05 -0700 (Mon, 29 Oct 2007) | 6 lines
Backport fixes for the code that decodes octal escapes (and for PyString
also hex escapes) -- this was reaching beyond the end of the input string
buffer, even though it is not supposed to be \0-terminated.
This has no visible effect but is clearly the correct thing to do.
(In 3.0 it had a visible effect after removing ob_sstate from PyString.)
........
r58710 | kurt.kaiser | 2007-10-29 19:38:54 -0700 (Mon, 29 Oct 2007) | 7 lines
check in Tal Einat's update to tabpage.py
Patch 1612746
M configDialog.py
M NEWS.txt
AM tabbedpages.py
........
r58715 | georg.brandl | 2007-10-30 10:51:18 -0700 (Tue, 30 Oct 2007) | 2 lines
Use correct markup.
........
r58716 | georg.brandl | 2007-10-30 10:57:12 -0700 (Tue, 30 Oct 2007) | 2 lines
Make example about hiding None return values at the prompt clearer.
........
r58728 | neal.norwitz | 2007-10-30 23:33:20 -0700 (Tue, 30 Oct 2007) | 1 line
Fix some compiler warnings for signed comparisons on Unix and Windows.
........
r58731 | martin.v.loewis | 2007-10-31 10:19:33 -0700 (Wed, 31 Oct 2007) | 2 lines
Adding Christian Heimes.
........
r58737 | raymond.hettinger | 2007-10-31 14:57:58 -0700 (Wed, 31 Oct 2007) | 1 line
Clarify the reasons why pickle is almost always better than marshal
........
r58739 | raymond.hettinger | 2007-10-31 15:15:49 -0700 (Wed, 31 Oct 2007) | 1 line
Sets are marshalable.
........
2007-11-02 03:42:39 +08:00
|
|
|
#ifndef SLOW_SUM
|
2010-05-09 23:52:27 +08:00
|
|
|
/* Fast addition by keeping temporary sums in C instead of new Python objects.
|
|
|
|
Assumes all inputs are the same type. If the assumption fails, default
|
|
|
|
to the more general routine.
|
|
|
|
*/
|
|
|
|
if (PyLong_CheckExact(result)) {
|
|
|
|
int overflow;
|
|
|
|
long i_result = PyLong_AsLongAndOverflow(result, &overflow);
|
|
|
|
/* If this already overflowed, don't even enter the loop. */
|
|
|
|
if (overflow == 0) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
result = NULL;
|
|
|
|
}
|
|
|
|
while(result == NULL) {
|
|
|
|
item = PyIter_Next(iter);
|
|
|
|
if (item == NULL) {
|
|
|
|
Py_DECREF(iter);
|
|
|
|
if (PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
return PyLong_FromLong(i_result);
|
|
|
|
}
|
|
|
|
if (PyLong_CheckExact(item)) {
|
|
|
|
long b = PyLong_AsLongAndOverflow(item, &overflow);
|
|
|
|
long x = i_result + b;
|
|
|
|
if (overflow == 0 && ((x^i_result) >= 0 || (x^b) >= 0)) {
|
|
|
|
i_result = x;
|
|
|
|
Py_DECREF(item);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* Either overflowed or is not an int. Restore real objects and process normally */
|
|
|
|
result = PyLong_FromLong(i_result);
|
2013-07-27 04:49:26 +08:00
|
|
|
if (result == NULL) {
|
|
|
|
Py_DECREF(item);
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
temp = PyNumber_Add(result, item);
|
|
|
|
Py_DECREF(result);
|
|
|
|
Py_DECREF(item);
|
|
|
|
result = temp;
|
|
|
|
if (result == NULL) {
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (PyFloat_CheckExact(result)) {
|
|
|
|
double f_result = PyFloat_AS_DOUBLE(result);
|
|
|
|
Py_DECREF(result);
|
|
|
|
result = NULL;
|
|
|
|
while(result == NULL) {
|
|
|
|
item = PyIter_Next(iter);
|
|
|
|
if (item == NULL) {
|
|
|
|
Py_DECREF(iter);
|
|
|
|
if (PyErr_Occurred())
|
|
|
|
return NULL;
|
|
|
|
return PyFloat_FromDouble(f_result);
|
|
|
|
}
|
|
|
|
if (PyFloat_CheckExact(item)) {
|
|
|
|
PyFPE_START_PROTECT("add", Py_DECREF(item); Py_DECREF(iter); return 0)
|
|
|
|
f_result += PyFloat_AS_DOUBLE(item);
|
|
|
|
PyFPE_END_PROTECT(f_result)
|
|
|
|
Py_DECREF(item);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if (PyLong_CheckExact(item)) {
|
|
|
|
long value;
|
|
|
|
int overflow;
|
|
|
|
value = PyLong_AsLongAndOverflow(item, &overflow);
|
|
|
|
if (!overflow) {
|
|
|
|
PyFPE_START_PROTECT("add", Py_DECREF(item); Py_DECREF(iter); return 0)
|
|
|
|
f_result += (double)value;
|
|
|
|
PyFPE_END_PROTECT(f_result)
|
|
|
|
Py_DECREF(item);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
result = PyFloat_FromDouble(f_result);
|
|
|
|
temp = PyNumber_Add(result, item);
|
|
|
|
Py_DECREF(result);
|
|
|
|
Py_DECREF(item);
|
|
|
|
result = temp;
|
|
|
|
if (result == NULL) {
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
Merged revisions 58221-58741 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58221 | georg.brandl | 2007-09-20 10:57:59 -0700 (Thu, 20 Sep 2007) | 2 lines
Patch #1181: add os.environ.clear() method.
........
r58225 | sean.reifschneider | 2007-09-20 23:33:28 -0700 (Thu, 20 Sep 2007) | 3 lines
Issue1704287: "make install" fails unless you do "make" first. Make
oldsharedmods and sharedmods in "libinstall".
........
r58232 | guido.van.rossum | 2007-09-22 13:18:03 -0700 (Sat, 22 Sep 2007) | 4 lines
Patch # 188 by Philip Jenvey.
Make tell() mark CRLF as a newline.
With unit test.
........
r58242 | georg.brandl | 2007-09-24 10:55:47 -0700 (Mon, 24 Sep 2007) | 2 lines
Fix typo and double word.
........
r58245 | georg.brandl | 2007-09-24 10:59:28 -0700 (Mon, 24 Sep 2007) | 2 lines
#1196: document default radix for int().
........
r58247 | georg.brandl | 2007-09-24 11:08:24 -0700 (Mon, 24 Sep 2007) | 2 lines
#1177: accept 2xx responses for https too, not only http.
........
r58249 | andrew.kuchling | 2007-09-24 16:45:51 -0700 (Mon, 24 Sep 2007) | 1 line
Remove stray odd character; grammar fix
........
r58250 | andrew.kuchling | 2007-09-24 16:46:28 -0700 (Mon, 24 Sep 2007) | 1 line
Typo fix
........
r58251 | andrew.kuchling | 2007-09-24 17:09:42 -0700 (Mon, 24 Sep 2007) | 1 line
Add various items
........
r58268 | vinay.sajip | 2007-09-26 22:34:45 -0700 (Wed, 26 Sep 2007) | 1 line
Change to flush and close logic to fix #1760556.
........
r58269 | vinay.sajip | 2007-09-26 22:38:51 -0700 (Wed, 26 Sep 2007) | 1 line
Change to basicConfig() to fix #1021.
........
r58270 | georg.brandl | 2007-09-26 23:26:58 -0700 (Wed, 26 Sep 2007) | 2 lines
#1208: document match object's boolean value.
........
r58271 | vinay.sajip | 2007-09-26 23:56:13 -0700 (Wed, 26 Sep 2007) | 1 line
Minor date change.
........
r58272 | vinay.sajip | 2007-09-27 00:35:10 -0700 (Thu, 27 Sep 2007) | 1 line
Change to LogRecord.__init__() to fix #1206. Note that archaic use of type(x) == types.DictType is because of keeping 1.5.2 compatibility. While this is much less relevant these days, there probably needs to be a separate commit for removing all archaic constructs at the same time.
........
r58288 | brett.cannon | 2007-09-30 12:45:10 -0700 (Sun, 30 Sep 2007) | 9 lines
tuple.__repr__ did not consider a reference loop as it is not possible from
Python code; but it is possible from C. object.__str__ had the issue of not
expecting a type to doing something within it's tp_str implementation that
could trigger an infinite recursion, but it could in C code.. Both found
thanks to BaseException and how it handles its repr.
Closes issue #1686386. Thanks to Thomas Herve for taking an initial stab at
coming up with a solution.
........
r58289 | brett.cannon | 2007-09-30 13:37:19 -0700 (Sun, 30 Sep 2007) | 3 lines
Fix error introduced by r58288; if a tuple is length 0 return its repr and
don't worry about any self-referring tuples.
........
r58294 | facundo.batista | 2007-10-02 10:01:24 -0700 (Tue, 02 Oct 2007) | 11 lines
Made the various is_* operations return booleans. This was discussed
with Cawlishaw by mail, and he basically confirmed that to these is_*
operations, there's no need to return Decimal(0) and Decimal(1) if
the language supports the False and True booleans.
Also added a few tests for the these functions in extra.decTest, since
they are mostly untested (apart from the doctests).
Thanks Mark Dickinson
........
r58295 | facundo.batista | 2007-10-02 11:21:18 -0700 (Tue, 02 Oct 2007) | 4 lines
Added a class to store the digits of log(10), so that they can be made
available when necessary without recomputing. Thanks Mark Dickinson
........
r58299 | mark.summerfield | 2007-10-03 01:53:21 -0700 (Wed, 03 Oct 2007) | 4 lines
Added note in footnote about string comparisons about
unicodedata.normalize().
........
r58304 | raymond.hettinger | 2007-10-03 14:18:11 -0700 (Wed, 03 Oct 2007) | 1 line
enumerate() is no longer bounded to using sequences shorter than LONG_MAX. The possibility of overflow was sending some newsgroup posters into a tizzy.
........
r58305 | raymond.hettinger | 2007-10-03 17:20:27 -0700 (Wed, 03 Oct 2007) | 1 line
itertools.count() no longer limited to sys.maxint.
........
r58306 | kurt.kaiser | 2007-10-03 18:49:54 -0700 (Wed, 03 Oct 2007) | 3 lines
Assume that the user knows when he wants to end the line; don't insert
something he didn't select or complete.
........
r58307 | kurt.kaiser | 2007-10-03 19:07:50 -0700 (Wed, 03 Oct 2007) | 2 lines
Remove unused theme that was causing a fault in p3k.
........
r58308 | kurt.kaiser | 2007-10-03 19:09:17 -0700 (Wed, 03 Oct 2007) | 2 lines
Clean up EditorWindow close.
........
r58309 | kurt.kaiser | 2007-10-03 19:53:07 -0700 (Wed, 03 Oct 2007) | 7 lines
textView cleanup. Patch 1718043 Tal Einat.
M idlelib/EditorWindow.py
M idlelib/aboutDialog.py
M idlelib/textView.py
M idlelib/NEWS.txt
........
r58310 | kurt.kaiser | 2007-10-03 20:11:12 -0700 (Wed, 03 Oct 2007) | 3 lines
configDialog cleanup. Patch 1730217 Tal Einat.
........
r58311 | neal.norwitz | 2007-10-03 23:00:48 -0700 (Wed, 03 Oct 2007) | 4 lines
Coverity #151: Remove deadcode.
All this code already exists above starting at line 653.
........
r58325 | fred.drake | 2007-10-04 19:46:12 -0700 (Thu, 04 Oct 2007) | 1 line
wrap lines to <80 characters before fixing errors
........
r58326 | raymond.hettinger | 2007-10-04 19:47:07 -0700 (Thu, 04 Oct 2007) | 6 lines
Add __asdict__() to NamedTuple and refine the docs.
Add maxlen support to deque() and fixup docs.
Partially fix __reduce__(). The None as a third arg was no longer supported.
Still needs work on __reduce__() to handle recursive inputs.
........
r58327 | fred.drake | 2007-10-04 19:48:32 -0700 (Thu, 04 Oct 2007) | 3 lines
move descriptions of ac_(in|out)_buffer_size to the right place
http://bugs.python.org/issue1053
........
r58329 | neal.norwitz | 2007-10-04 20:39:17 -0700 (Thu, 04 Oct 2007) | 3 lines
dict could be NULL, so we need to XDECREF.
Fix a compiler warning about passing a PyTypeObject* instead of PyObject*.
........
r58330 | neal.norwitz | 2007-10-04 20:41:19 -0700 (Thu, 04 Oct 2007) | 2 lines
Fix Coverity #158: Check the correct variable.
........
r58332 | neal.norwitz | 2007-10-04 22:01:38 -0700 (Thu, 04 Oct 2007) | 7 lines
Fix Coverity #159.
This code was broken if save() returned a negative number since i contained
a boolean value and then we compared i < 0 which should never be true.
Will backport (assuming it's necessary)
........
r58334 | neal.norwitz | 2007-10-04 22:29:17 -0700 (Thu, 04 Oct 2007) | 1 line
Add a note about fixing some more warnings found by Coverity.
........
r58338 | raymond.hettinger | 2007-10-05 12:07:31 -0700 (Fri, 05 Oct 2007) | 1 line
Restore BEGIN/END THREADS macros which were squashed in the previous checkin
........
r58343 | gregory.p.smith | 2007-10-06 00:48:10 -0700 (Sat, 06 Oct 2007) | 3 lines
Stab in the dark attempt to fix the test_bsddb3 failure on sparc and S-390
ubuntu buildbots.
........
r58344 | gregory.p.smith | 2007-10-06 00:51:59 -0700 (Sat, 06 Oct 2007) | 2 lines
Allows BerkeleyDB 4.6.x >= 4.6.21 for the bsddb module.
........
r58348 | gregory.p.smith | 2007-10-06 08:47:37 -0700 (Sat, 06 Oct 2007) | 3 lines
Use the host the author likely meant in the first place. pop.gmail.com is
reliable. gmail.org is someones personal domain.
........
r58351 | neal.norwitz | 2007-10-06 12:16:28 -0700 (Sat, 06 Oct 2007) | 3 lines
Ensure that this test will pass even if another test left an unwritable TESTFN.
Also use the safe unlink in test_support instead of rolling our own here.
........
r58368 | georg.brandl | 2007-10-08 00:50:24 -0700 (Mon, 08 Oct 2007) | 3 lines
#1123: fix the docs for the str.split(None, sep) case.
Also expand a few other methods' docs, which had more info in the deprecated string module docs.
........
r58369 | georg.brandl | 2007-10-08 01:06:05 -0700 (Mon, 08 Oct 2007) | 2 lines
Update docstring of sched, also remove an unused assignment.
........
r58370 | raymond.hettinger | 2007-10-08 02:14:28 -0700 (Mon, 08 Oct 2007) | 5 lines
Add comments to NamedTuple code.
Let the field spec be either a string or a non-string sequence (suggested by Martin Blais with use cases).
Improve the error message in the case of a SyntaxError (caused by a duplicate field name).
........
r58371 | raymond.hettinger | 2007-10-08 02:56:29 -0700 (Mon, 08 Oct 2007) | 1 line
Missed a line in the docs
........
r58372 | raymond.hettinger | 2007-10-08 03:11:51 -0700 (Mon, 08 Oct 2007) | 1 line
Better variable names
........
r58376 | georg.brandl | 2007-10-08 07:12:47 -0700 (Mon, 08 Oct 2007) | 3 lines
#1199: docs for tp_as_{number,sequence,mapping}, by Amaury Forgeot d'Arc.
No need to merge this to py3k!
........
r58380 | raymond.hettinger | 2007-10-08 14:26:58 -0700 (Mon, 08 Oct 2007) | 1 line
Eliminate camelcase function name
........
r58381 | andrew.kuchling | 2007-10-08 16:23:03 -0700 (Mon, 08 Oct 2007) | 1 line
Eliminate camelcase function name
........
r58382 | raymond.hettinger | 2007-10-08 18:36:23 -0700 (Mon, 08 Oct 2007) | 1 line
Make the error messages more specific
........
r58384 | gregory.p.smith | 2007-10-08 23:02:21 -0700 (Mon, 08 Oct 2007) | 10 lines
Splits Modules/_bsddb.c up into bsddb.h and _bsddb.c and adds a C API
object available as bsddb.db.api. This is based on the patch submitted
by Duncan Grisby here:
http://sourceforge.net/tracker/index.php?func=detail&aid=1551895&group_id=13900&atid=313900
See this thread for additional info:
http://sourceforge.net/mailarchive/forum.php?thread_name=E1GAVDK-0002rk-Iw%40apasphere.com&forum_name=pybsddb-users
It also cleans up the code a little by removing some ifdef/endifs for
python prior to 2.1 and for unsupported Berkeley DB <= 3.2.
........
r58385 | gregory.p.smith | 2007-10-08 23:50:43 -0700 (Mon, 08 Oct 2007) | 5 lines
Fix a double free when positioning a database cursor to a non-existant
string key (and probably a few other situations with string keys).
This was reported with a patch as pybsddb sourceforge bug 1708868 by
jjjhhhlll at gmail.
........
r58386 | gregory.p.smith | 2007-10-09 00:19:11 -0700 (Tue, 09 Oct 2007) | 3 lines
Use the highest cPickle protocol in bsddb.dbshelve. This comes from
sourceforge pybsddb patch 1551443 by w_barnes.
........
r58394 | gregory.p.smith | 2007-10-09 11:26:02 -0700 (Tue, 09 Oct 2007) | 2 lines
remove another sleepycat reference
........
r58396 | kurt.kaiser | 2007-10-09 12:31:30 -0700 (Tue, 09 Oct 2007) | 3 lines
Allow interrupt only when executing user code in subprocess
Patch 1225 Tal Einat modified from IDLE-Spoon.
........
r58399 | brett.cannon | 2007-10-09 17:07:50 -0700 (Tue, 09 Oct 2007) | 5 lines
Remove file-level typedefs that were inconsistently used throughout the file.
Just move over to the public API names.
Closes issue1238.
........
r58401 | raymond.hettinger | 2007-10-09 17:26:46 -0700 (Tue, 09 Oct 2007) | 1 line
Accept Jim Jewett's api suggestion to use None instead of -1 to indicate unbounded deques.
........
r58403 | kurt.kaiser | 2007-10-09 17:55:40 -0700 (Tue, 09 Oct 2007) | 2 lines
Allow cursor color change w/o restart. Patch 1725576 Tal Einat.
........
r58404 | kurt.kaiser | 2007-10-09 18:06:47 -0700 (Tue, 09 Oct 2007) | 2 lines
show paste if > 80 columns. Patch 1659326 Tal Einat.
........
r58415 | thomas.heller | 2007-10-11 12:51:32 -0700 (Thu, 11 Oct 2007) | 5 lines
On OS X, use os.uname() instead of gestalt.sysv(...) to get the
operating system version. This allows to use ctypes when Python
was configured with --disable-toolbox-glue.
........
r58419 | neal.norwitz | 2007-10-11 20:01:01 -0700 (Thu, 11 Oct 2007) | 1 line
Get rid of warning about not being able to create an existing directory.
........
r58420 | neal.norwitz | 2007-10-11 20:01:30 -0700 (Thu, 11 Oct 2007) | 1 line
Get rid of warnings on a bunch of platforms by using a proper prototype.
........
r58421 | neal.norwitz | 2007-10-11 20:01:54 -0700 (Thu, 11 Oct 2007) | 4 lines
Get rid of compiler warning about retval being used (returned) without
being initialized. (gcc warning and Coverity 202)
........
r58422 | neal.norwitz | 2007-10-11 20:03:23 -0700 (Thu, 11 Oct 2007) | 1 line
Fix Coverity 168: Close the file before returning (exiting).
........
r58423 | neal.norwitz | 2007-10-11 20:04:18 -0700 (Thu, 11 Oct 2007) | 4 lines
Fix Coverity 180: Don't overallocate. We don't need structs, but pointers.
Also fix a memory leak.
........
r58424 | neal.norwitz | 2007-10-11 20:05:19 -0700 (Thu, 11 Oct 2007) | 5 lines
Fix Coverity 185-186: If the passed in FILE is NULL, uninitialized memory
would be accessed.
Will backport.
........
r58425 | neal.norwitz | 2007-10-11 20:52:34 -0700 (Thu, 11 Oct 2007) | 1 line
Get this module to compile with bsddb versions prior to 4.3
........
r58430 | martin.v.loewis | 2007-10-12 01:56:52 -0700 (Fri, 12 Oct 2007) | 3 lines
Bug #1216: Restore support for Visual Studio 2002.
Will backport to 2.5.
........
r58433 | raymond.hettinger | 2007-10-12 10:53:11 -0700 (Fri, 12 Oct 2007) | 1 line
Fix test of count.__repr__() to ignore the 'L' if the count is a long
........
r58434 | gregory.p.smith | 2007-10-12 11:44:06 -0700 (Fri, 12 Oct 2007) | 4 lines
Fixes http://bugs.python.org/issue1233 - bsddb.dbshelve.DBShelf.append
was useless due to inverted logic. Also adds a test case for RECNO dbs
to test_dbshelve.
........
r58445 | georg.brandl | 2007-10-13 06:20:03 -0700 (Sat, 13 Oct 2007) | 2 lines
Fix email example.
........
r58450 | gregory.p.smith | 2007-10-13 16:02:05 -0700 (Sat, 13 Oct 2007) | 2 lines
Fix an uncollectable reference leak in bsddb.db.DBShelf.append
........
r58453 | neal.norwitz | 2007-10-13 17:18:40 -0700 (Sat, 13 Oct 2007) | 8 lines
Let the O/S supply a port if none of the default ports can be used.
This should make the tests more robust at the expense of allowing
tests to be sloppier by not requiring them to cleanup after themselves.
(It will legitamitely help when running two test suites simultaneously
or if another process is already using one of the predefined ports.)
Also simplifies (slightLy) the exception handling elsewhere.
........
r58459 | neal.norwitz | 2007-10-14 11:30:21 -0700 (Sun, 14 Oct 2007) | 2 lines
Don't raise a string exception, they don't work anymore.
........
r58460 | neal.norwitz | 2007-10-14 11:40:37 -0700 (Sun, 14 Oct 2007) | 1 line
Use unittest for assertions
........
r58468 | armin.rigo | 2007-10-15 00:48:35 -0700 (Mon, 15 Oct 2007) | 2 lines
test_bigbits was not testing what it seemed to.
........
r58471 | guido.van.rossum | 2007-10-15 08:54:11 -0700 (Mon, 15 Oct 2007) | 3 lines
Change a PyErr_Print() into a PyErr_Clear(),
per discussion in issue 1031213.
........
r58500 | raymond.hettinger | 2007-10-16 12:18:30 -0700 (Tue, 16 Oct 2007) | 1 line
Improve error messages
........
r58506 | raymond.hettinger | 2007-10-16 14:28:32 -0700 (Tue, 16 Oct 2007) | 1 line
More docs, error messages, and tests
........
r58507 | andrew.kuchling | 2007-10-16 15:58:03 -0700 (Tue, 16 Oct 2007) | 1 line
Add items
........
r58508 | brett.cannon | 2007-10-16 16:24:06 -0700 (Tue, 16 Oct 2007) | 3 lines
Remove ``:const:`` notation on None in parameter list. Since the markup is not
rendered for parameters it just showed up as ``:const:`None` `` in the output.
........
r58509 | brett.cannon | 2007-10-16 16:26:45 -0700 (Tue, 16 Oct 2007) | 3 lines
Re-order some functions whose parameters differ between PyObject and const char
* so that they are next to each other.
........
r58522 | armin.rigo | 2007-10-17 11:46:37 -0700 (Wed, 17 Oct 2007) | 5 lines
Fix the overflow checking of list_repeat.
Introduce overflow checking into list_inplace_repeat.
Backport candidate, possibly.
........
r58530 | facundo.batista | 2007-10-17 20:16:03 -0700 (Wed, 17 Oct 2007) | 7 lines
Issue #1580738. When HTTPConnection reads the whole stream with read(),
it closes itself. When the stream is read in several calls to read(n),
it should behave in the same way if HTTPConnection knows where the end
of the stream is (through self.length). Added a test case for this
behaviour.
........
r58531 | facundo.batista | 2007-10-17 20:44:48 -0700 (Wed, 17 Oct 2007) | 3 lines
Issue 1289, just a typo.
........
r58532 | gregory.p.smith | 2007-10-18 00:56:54 -0700 (Thu, 18 Oct 2007) | 4 lines
cleanup test_dbtables to use mkdtemp. cleanup dbtables to pass txn as a
keyword argument whenever possible to avoid bugs and confusion. (dbtables.py
line 447 self.db.get using txn as a non-keyword was an actual bug due to this)
........
r58533 | gregory.p.smith | 2007-10-18 01:34:20 -0700 (Thu, 18 Oct 2007) | 4 lines
Fix a weird bug in dbtables: if it chose a random rowid string that contained
NULL bytes it would cause the database all sorts of problems in the future
leading to very strange random failures and corrupt dbtables.bsdTableDb dbs.
........
r58534 | gregory.p.smith | 2007-10-18 09:32:02 -0700 (Thu, 18 Oct 2007) | 3 lines
A cleaner fix than the one committed last night. Generate random rowids that
do not contain null bytes.
........
r58537 | gregory.p.smith | 2007-10-18 10:17:57 -0700 (Thu, 18 Oct 2007) | 2 lines
mention bsddb fixes.
........
r58538 | raymond.hettinger | 2007-10-18 14:13:06 -0700 (Thu, 18 Oct 2007) | 1 line
Remove useless warning
........
r58539 | gregory.p.smith | 2007-10-19 00:31:20 -0700 (Fri, 19 Oct 2007) | 2 lines
squelch the warning that this test is supposed to trigger.
........
r58542 | georg.brandl | 2007-10-19 05:32:39 -0700 (Fri, 19 Oct 2007) | 2 lines
Clarify wording for apply().
........
r58544 | mark.summerfield | 2007-10-19 05:48:17 -0700 (Fri, 19 Oct 2007) | 3 lines
Added a cross-ref to each other.
........
r58545 | georg.brandl | 2007-10-19 10:38:49 -0700 (Fri, 19 Oct 2007) | 2 lines
#1284: "S" means "seen", not unread.
........
r58548 | thomas.heller | 2007-10-19 11:11:41 -0700 (Fri, 19 Oct 2007) | 4 lines
Fix ctypes on 32-bit systems when Python is configured --with-system-ffi.
See also https://bugs.launchpad.net/bugs/72505.
Ported from release25-maint branch.
........
r58550 | facundo.batista | 2007-10-19 12:25:57 -0700 (Fri, 19 Oct 2007) | 8 lines
The constructor from tuple was way too permissive: it allowed bad
coefficient numbers, floats in the sign, and other details that
generated directly the wrong number in the best case, or triggered
misfunctionality in the alorithms.
Test cases added for these issues. Thanks Mark Dickinson.
........
r58559 | georg.brandl | 2007-10-20 06:22:53 -0700 (Sat, 20 Oct 2007) | 2 lines
Fix code being interpreted as a target.
........
r58561 | georg.brandl | 2007-10-20 06:36:24 -0700 (Sat, 20 Oct 2007) | 2 lines
Document new "cmdoption" directive.
........
r58562 | georg.brandl | 2007-10-20 08:21:22 -0700 (Sat, 20 Oct 2007) | 2 lines
Make a path more Unix-standardy.
........
r58564 | georg.brandl | 2007-10-20 10:51:39 -0700 (Sat, 20 Oct 2007) | 2 lines
Document new directive "envvar".
........
r58567 | georg.brandl | 2007-10-20 11:08:14 -0700 (Sat, 20 Oct 2007) | 6 lines
* Add new toplevel chapter, "Using Python." (how to install,
configure and setup python on different platforms -- at least
in theory.)
* Move the Python on Mac docs in that chapter.
* Add a new chapter about the command line invocation, by stargaming.
........
r58568 | georg.brandl | 2007-10-20 11:33:20 -0700 (Sat, 20 Oct 2007) | 2 lines
Change title, for now.
........
r58569 | georg.brandl | 2007-10-20 11:39:25 -0700 (Sat, 20 Oct 2007) | 2 lines
Add entry to ACKS.
........
r58570 | georg.brandl | 2007-10-20 12:05:45 -0700 (Sat, 20 Oct 2007) | 2 lines
Clarify -E docs.
........
r58571 | georg.brandl | 2007-10-20 12:08:36 -0700 (Sat, 20 Oct 2007) | 2 lines
Even more clarification.
........
r58572 | andrew.kuchling | 2007-10-20 12:25:37 -0700 (Sat, 20 Oct 2007) | 1 line
Fix protocol name
........
r58573 | andrew.kuchling | 2007-10-20 12:35:18 -0700 (Sat, 20 Oct 2007) | 1 line
Various items
........
r58574 | andrew.kuchling | 2007-10-20 12:39:35 -0700 (Sat, 20 Oct 2007) | 1 line
Use correct header line
........
r58576 | armin.rigo | 2007-10-21 02:14:15 -0700 (Sun, 21 Oct 2007) | 3 lines
Add a crasher for the long-standing issue with closing a file
while another thread uses it.
........
r58577 | georg.brandl | 2007-10-21 03:01:56 -0700 (Sun, 21 Oct 2007) | 2 lines
Remove duplicate crasher.
........
r58578 | georg.brandl | 2007-10-21 03:24:20 -0700 (Sun, 21 Oct 2007) | 2 lines
Unify "byte code" to "bytecode". Also sprinkle :term: markup for it.
........
r58579 | georg.brandl | 2007-10-21 03:32:54 -0700 (Sun, 21 Oct 2007) | 2 lines
Add markup to new function descriptions.
........
r58580 | georg.brandl | 2007-10-21 03:45:46 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for descriptors.
........
r58581 | georg.brandl | 2007-10-21 03:46:24 -0700 (Sun, 21 Oct 2007) | 2 lines
Unify "file-descriptor" to "file descriptor".
........
r58582 | georg.brandl | 2007-10-21 03:52:38 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term: for generators.
........
r58583 | georg.brandl | 2007-10-21 05:10:28 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for iterator.
........
r58584 | georg.brandl | 2007-10-21 05:15:05 -0700 (Sun, 21 Oct 2007) | 2 lines
Add :term:s for "new-style class".
........
r58588 | neal.norwitz | 2007-10-21 21:47:54 -0700 (Sun, 21 Oct 2007) | 1 line
Add Chris Monson so he can edit PEPs.
........
r58594 | guido.van.rossum | 2007-10-22 09:27:19 -0700 (Mon, 22 Oct 2007) | 4 lines
Issue #1307, patch by Derek Shockey.
When "MAIL" is received without args, an exception happens instead of
sending a 501 syntax error response.
........
r58598 | travis.oliphant | 2007-10-22 19:40:56 -0700 (Mon, 22 Oct 2007) | 1 line
Add phuang patch from Issue 708374 which adds offset parameter to mmap module.
........
r58601 | neal.norwitz | 2007-10-22 22:44:27 -0700 (Mon, 22 Oct 2007) | 2 lines
Bug #1313, fix typo (wrong variable name) in example.
........
r58609 | georg.brandl | 2007-10-23 11:21:35 -0700 (Tue, 23 Oct 2007) | 2 lines
Update Pygments version from externals.
........
r58618 | guido.van.rossum | 2007-10-23 12:25:41 -0700 (Tue, 23 Oct 2007) | 3 lines
Issue 1307 by Derek Shockey, fox the same bug for RCPT.
Neal: please backport!
........
r58620 | raymond.hettinger | 2007-10-23 13:37:41 -0700 (Tue, 23 Oct 2007) | 1 line
Shorter name for namedtuple()
........
r58621 | andrew.kuchling | 2007-10-23 13:55:47 -0700 (Tue, 23 Oct 2007) | 1 line
Update name
........
r58622 | raymond.hettinger | 2007-10-23 14:23:07 -0700 (Tue, 23 Oct 2007) | 1 line
Fixup news entry
........
r58623 | raymond.hettinger | 2007-10-23 18:28:33 -0700 (Tue, 23 Oct 2007) | 1 line
Optimize sum() for integer and float inputs.
........
r58624 | raymond.hettinger | 2007-10-23 19:05:51 -0700 (Tue, 23 Oct 2007) | 1 line
Fixup error return and add support for intermixed ints and floats/
........
r58628 | vinay.sajip | 2007-10-24 03:47:06 -0700 (Wed, 24 Oct 2007) | 1 line
Bug #1321: Fixed logic error in TimedRotatingFileHandler.__init__()
........
r58641 | facundo.batista | 2007-10-24 12:11:08 -0700 (Wed, 24 Oct 2007) | 4 lines
Issue 1290. CharacterData.__repr__ was constructing a string
in response that keeped having a non-ascii character.
........
r58643 | thomas.heller | 2007-10-24 12:50:45 -0700 (Wed, 24 Oct 2007) | 1 line
Added unittest for calling a function with paramflags (backport from py3k branch).
........
r58645 | matthias.klose | 2007-10-24 13:00:44 -0700 (Wed, 24 Oct 2007) | 2 lines
- Build using system ffi library on arm*-linux*.
........
r58651 | georg.brandl | 2007-10-24 14:40:38 -0700 (Wed, 24 Oct 2007) | 2 lines
Bug #1287: make os.environ.pop() work as expected.
........
r58652 | raymond.hettinger | 2007-10-24 19:26:58 -0700 (Wed, 24 Oct 2007) | 1 line
Missing DECREFs
........
r58653 | matthias.klose | 2007-10-24 23:37:24 -0700 (Wed, 24 Oct 2007) | 2 lines
- Build using system ffi library on arm*-linux*, pass --with-system-ffi to CONFIG_ARGS
........
r58655 | thomas.heller | 2007-10-25 12:47:32 -0700 (Thu, 25 Oct 2007) | 2 lines
ffi_type_longdouble may be already #defined.
See issue 1324.
........
r58656 | kurt.kaiser | 2007-10-25 15:43:45 -0700 (Thu, 25 Oct 2007) | 3 lines
Correct an ancient bug in an unused path by removing that path: register() is
now idempotent.
........
r58660 | kurt.kaiser | 2007-10-25 17:10:09 -0700 (Thu, 25 Oct 2007) | 4 lines
1. Add comments to provide top-level documentation.
2. Refactor to use more descriptive names.
3. Enhance tests in main().
........
r58675 | georg.brandl | 2007-10-26 11:30:41 -0700 (Fri, 26 Oct 2007) | 2 lines
Fix new pop() method on os.environ on ignorecase-platforms.
........
r58696 | neal.norwitz | 2007-10-27 15:32:21 -0700 (Sat, 27 Oct 2007) | 1 line
Update URL for Pygments. 0.8.1 is no longer available
........
r58697 | hyeshik.chang | 2007-10-28 04:19:02 -0700 (Sun, 28 Oct 2007) | 3 lines
- Add support for FreeBSD 8 which is recently forked from FreeBSD 7.
- Regenerate IN module for most recent maintenance tree of FreeBSD 6 and 7.
........
r58698 | hyeshik.chang | 2007-10-28 05:38:09 -0700 (Sun, 28 Oct 2007) | 2 lines
Enable platform-specific tweaks for FreeBSD 8 (exactly same to FreeBSD 7's yet)
........
r58700 | kurt.kaiser | 2007-10-28 12:03:59 -0700 (Sun, 28 Oct 2007) | 2 lines
Add confirmation dialog before printing. Patch 1717170 Tal Einat.
........
r58706 | guido.van.rossum | 2007-10-29 13:52:45 -0700 (Mon, 29 Oct 2007) | 3 lines
Patch 1353 by Jacob Winther.
Add mp4 mapping to mimetypes.py.
........
r58709 | guido.van.rossum | 2007-10-29 15:15:05 -0700 (Mon, 29 Oct 2007) | 6 lines
Backport fixes for the code that decodes octal escapes (and for PyString
also hex escapes) -- this was reaching beyond the end of the input string
buffer, even though it is not supposed to be \0-terminated.
This has no visible effect but is clearly the correct thing to do.
(In 3.0 it had a visible effect after removing ob_sstate from PyString.)
........
r58710 | kurt.kaiser | 2007-10-29 19:38:54 -0700 (Mon, 29 Oct 2007) | 7 lines
check in Tal Einat's update to tabpage.py
Patch 1612746
M configDialog.py
M NEWS.txt
AM tabbedpages.py
........
r58715 | georg.brandl | 2007-10-30 10:51:18 -0700 (Tue, 30 Oct 2007) | 2 lines
Use correct markup.
........
r58716 | georg.brandl | 2007-10-30 10:57:12 -0700 (Tue, 30 Oct 2007) | 2 lines
Make example about hiding None return values at the prompt clearer.
........
r58728 | neal.norwitz | 2007-10-30 23:33:20 -0700 (Tue, 30 Oct 2007) | 1 line
Fix some compiler warnings for signed comparisons on Unix and Windows.
........
r58731 | martin.v.loewis | 2007-10-31 10:19:33 -0700 (Wed, 31 Oct 2007) | 2 lines
Adding Christian Heimes.
........
r58737 | raymond.hettinger | 2007-10-31 14:57:58 -0700 (Wed, 31 Oct 2007) | 1 line
Clarify the reasons why pickle is almost always better than marshal
........
r58739 | raymond.hettinger | 2007-10-31 15:15:49 -0700 (Wed, 31 Oct 2007) | 1 line
Sets are marshalable.
........
2007-11-02 03:42:39 +08:00
|
|
|
#endif
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
for(;;) {
|
|
|
|
item = PyIter_Next(iter);
|
|
|
|
if (item == NULL) {
|
|
|
|
/* error, or end-of-sequence */
|
|
|
|
if (PyErr_Occurred()) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
result = NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
/* It's tempting to use PyNumber_InPlaceAdd instead of
|
|
|
|
PyNumber_Add here, to avoid quadratic running time
|
|
|
|
when doing 'sum(list_of_lists, [])'. However, this
|
|
|
|
would produce a change in behaviour: a snippet like
|
|
|
|
|
|
|
|
empty = []
|
|
|
|
sum([[x] for x in range(10)], empty)
|
|
|
|
|
|
|
|
would change the value of empty. */
|
|
|
|
temp = PyNumber_Add(result, item);
|
|
|
|
Py_DECREF(result);
|
|
|
|
Py_DECREF(item);
|
|
|
|
result = temp;
|
|
|
|
if (result == NULL)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
Py_DECREF(iter);
|
|
|
|
return result;
|
2003-04-22 16:12:33 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
isinstance as builtin_isinstance
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
obj: object
|
|
|
|
class_or_tuple: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return whether an object is an instance of a class or of a subclass thereof.
|
|
|
|
|
|
|
|
A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to
|
|
|
|
check against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)
|
|
|
|
or ...`` etc.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_isinstance_impl(PyObject *module, PyObject *obj,
|
2015-04-15 06:07:59 +08:00
|
|
|
PyObject *class_or_tuple)
|
2016-07-07 22:35:15 +08:00
|
|
|
/*[clinic end generated code: output=6faf01472c13b003 input=ffa743db1daf7549]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
int retval;
|
1999-06-17 01:28:37 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
retval = PyObject_IsInstance(obj, class_or_tuple);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (retval < 0)
|
|
|
|
return NULL;
|
|
|
|
return PyBool_FromLong(retval);
|
1997-08-23 05:14:38 +08:00
|
|
|
}
|
|
|
|
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2014-08-17 12:01:19 +08:00
|
|
|
/*[clinic input]
|
|
|
|
issubclass as builtin_issubclass
|
|
|
|
|
2015-05-30 16:09:35 +08:00
|
|
|
cls: object
|
|
|
|
class_or_tuple: object
|
2014-08-17 12:01:19 +08:00
|
|
|
/
|
|
|
|
|
|
|
|
Return whether 'cls' is a derived from another class or is the same class.
|
|
|
|
|
|
|
|
A tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to
|
|
|
|
check against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)
|
|
|
|
or ...`` etc.
|
|
|
|
[clinic start generated code]*/
|
|
|
|
|
|
|
|
static PyObject *
|
2016-07-07 22:35:15 +08:00
|
|
|
builtin_issubclass_impl(PyObject *module, PyObject *cls,
|
2015-04-15 06:07:59 +08:00
|
|
|
PyObject *class_or_tuple)
|
2016-07-07 22:35:15 +08:00
|
|
|
/*[clinic end generated code: output=358412410cd7a250 input=af5f35e9ceaddaf6]*/
|
2014-08-17 12:01:19 +08:00
|
|
|
{
|
|
|
|
int retval;
|
|
|
|
|
|
|
|
retval = PyObject_IsSubclass(cls, class_or_tuple);
|
2010-05-09 23:52:27 +08:00
|
|
|
if (retval < 0)
|
|
|
|
return NULL;
|
|
|
|
return PyBool_FromLong(retval);
|
1997-08-23 05:14:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2008-03-13 10:09:15 +08:00
|
|
|
typedef struct {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_HEAD
|
|
|
|
Py_ssize_t tuplesize;
|
|
|
|
PyObject *ittuple; /* tuple of iterators */
|
|
|
|
PyObject *result;
|
2008-03-13 10:09:15 +08:00
|
|
|
} zipobject;
|
|
|
|
|
|
|
|
static PyObject *
|
|
|
|
zip_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
2000-08-03 23:45:29 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
zipobject *lz;
|
|
|
|
Py_ssize_t i;
|
|
|
|
PyObject *ittuple; /* tuple of iterators */
|
|
|
|
PyObject *result;
|
|
|
|
Py_ssize_t tuplesize = PySequence_Length(args);
|
|
|
|
|
|
|
|
if (type == &PyZip_Type && !_PyArg_NoKeywords("zip()", kwds))
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
/* args must be a tuple */
|
|
|
|
assert(PyTuple_Check(args));
|
|
|
|
|
|
|
|
/* obtain iterators */
|
|
|
|
ittuple = PyTuple_New(tuplesize);
|
|
|
|
if (ittuple == NULL)
|
|
|
|
return NULL;
|
|
|
|
for (i=0; i < tuplesize; ++i) {
|
|
|
|
PyObject *item = PyTuple_GET_ITEM(args, i);
|
|
|
|
PyObject *it = PyObject_GetIter(item);
|
|
|
|
if (it == NULL) {
|
|
|
|
if (PyErr_ExceptionMatches(PyExc_TypeError))
|
|
|
|
PyErr_Format(PyExc_TypeError,
|
|
|
|
"zip argument #%zd must support iteration",
|
|
|
|
i+1);
|
|
|
|
Py_DECREF(ittuple);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
PyTuple_SET_ITEM(ittuple, i, it);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* create a result holder */
|
|
|
|
result = PyTuple_New(tuplesize);
|
|
|
|
if (result == NULL) {
|
|
|
|
Py_DECREF(ittuple);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
for (i=0 ; i < tuplesize ; i++) {
|
|
|
|
Py_INCREF(Py_None);
|
|
|
|
PyTuple_SET_ITEM(result, i, Py_None);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* create zipobject structure */
|
|
|
|
lz = (zipobject *)type->tp_alloc(type, 0);
|
|
|
|
if (lz == NULL) {
|
|
|
|
Py_DECREF(ittuple);
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
lz->ittuple = ittuple;
|
|
|
|
lz->tuplesize = tuplesize;
|
|
|
|
lz->result = result;
|
|
|
|
|
|
|
|
return (PyObject *)lz;
|
2008-03-13 10:09:15 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
zip_dealloc(zipobject *lz)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject_GC_UnTrack(lz);
|
|
|
|
Py_XDECREF(lz->ittuple);
|
|
|
|
Py_XDECREF(lz->result);
|
|
|
|
Py_TYPE(lz)->tp_free(lz);
|
2008-03-13 10:09:15 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
zip_traverse(zipobject *lz, visitproc visit, void *arg)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_VISIT(lz->ittuple);
|
|
|
|
Py_VISIT(lz->result);
|
|
|
|
return 0;
|
2000-08-03 23:45:29 +08:00
|
|
|
}
|
|
|
|
|
2008-03-13 10:09:15 +08:00
|
|
|
static PyObject *
|
|
|
|
zip_next(zipobject *lz)
|
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
Py_ssize_t i;
|
|
|
|
Py_ssize_t tuplesize = lz->tuplesize;
|
|
|
|
PyObject *result = lz->result;
|
|
|
|
PyObject *it;
|
|
|
|
PyObject *item;
|
|
|
|
PyObject *olditem;
|
|
|
|
|
|
|
|
if (tuplesize == 0)
|
|
|
|
return NULL;
|
|
|
|
if (Py_REFCNT(result) == 1) {
|
|
|
|
Py_INCREF(result);
|
|
|
|
for (i=0 ; i < tuplesize ; i++) {
|
|
|
|
it = PyTuple_GET_ITEM(lz->ittuple, i);
|
|
|
|
item = (*Py_TYPE(it)->tp_iternext)(it);
|
2013-04-07 03:52:34 +08:00
|
|
|
if (item == NULL) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
olditem = PyTuple_GET_ITEM(result, i);
|
|
|
|
PyTuple_SET_ITEM(result, i, item);
|
|
|
|
Py_DECREF(olditem);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
result = PyTuple_New(tuplesize);
|
|
|
|
if (result == NULL)
|
2013-04-07 03:52:34 +08:00
|
|
|
return NULL;
|
2010-05-09 23:52:27 +08:00
|
|
|
for (i=0 ; i < tuplesize ; i++) {
|
|
|
|
it = PyTuple_GET_ITEM(lz->ittuple, i);
|
|
|
|
item = (*Py_TYPE(it)->tp_iternext)(it);
|
2013-04-07 03:52:34 +08:00
|
|
|
if (item == NULL) {
|
|
|
|
Py_DECREF(result);
|
|
|
|
return NULL;
|
|
|
|
}
|
2010-05-09 23:52:27 +08:00
|
|
|
PyTuple_SET_ITEM(result, i, item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result;
|
2008-03-13 10:09:15 +08:00
|
|
|
}
|
2000-08-03 23:45:29 +08:00
|
|
|
|
2012-04-03 18:49:41 +08:00
|
|
|
static PyObject *
|
|
|
|
zip_reduce(zipobject *lz)
|
|
|
|
{
|
|
|
|
/* Just recreate the zip with the internal iterator tuple */
|
|
|
|
return Py_BuildValue("OO", Py_TYPE(lz), lz->ittuple);
|
|
|
|
}
|
|
|
|
|
|
|
|
static PyMethodDef zip_methods[] = {
|
|
|
|
{"__reduce__", (PyCFunction)zip_reduce, METH_NOARGS, reduce_doc},
|
|
|
|
{NULL, NULL} /* sentinel */
|
|
|
|
};
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(zip_doc,
|
2008-03-13 10:09:15 +08:00
|
|
|
"zip(iter1 [,iter2 [...]]) --> zip object\n\
|
2000-08-03 23:45:29 +08:00
|
|
|
\n\
|
2008-03-13 10:09:15 +08:00
|
|
|
Return a zip object whose .__next__() method returns a tuple where\n\
|
|
|
|
the i-th element comes from the i-th iterable argument. The .__next__()\n\
|
|
|
|
method continues until the shortest iterable in the argument sequence\n\
|
2008-12-05 02:28:38 +08:00
|
|
|
is exhausted and then it raises StopIteration.");
|
2008-03-13 10:09:15 +08:00
|
|
|
|
|
|
|
PyTypeObject PyZip_Type = {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
|
|
|
"zip", /* tp_name */
|
|
|
|
sizeof(zipobject), /* tp_basicsize */
|
|
|
|
0, /* tp_itemsize */
|
|
|
|
/* methods */
|
|
|
|
(destructor)zip_dealloc, /* tp_dealloc */
|
|
|
|
0, /* tp_print */
|
|
|
|
0, /* tp_getattr */
|
|
|
|
0, /* tp_setattr */
|
|
|
|
0, /* tp_reserved */
|
|
|
|
0, /* tp_repr */
|
|
|
|
0, /* tp_as_number */
|
|
|
|
0, /* tp_as_sequence */
|
|
|
|
0, /* tp_as_mapping */
|
|
|
|
0, /* tp_hash */
|
|
|
|
0, /* tp_call */
|
|
|
|
0, /* tp_str */
|
|
|
|
PyObject_GenericGetAttr, /* tp_getattro */
|
|
|
|
0, /* tp_setattro */
|
|
|
|
0, /* tp_as_buffer */
|
|
|
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
|
|
|
|
Py_TPFLAGS_BASETYPE, /* tp_flags */
|
|
|
|
zip_doc, /* tp_doc */
|
|
|
|
(traverseproc)zip_traverse, /* tp_traverse */
|
|
|
|
0, /* tp_clear */
|
|
|
|
0, /* tp_richcompare */
|
|
|
|
0, /* tp_weaklistoffset */
|
|
|
|
PyObject_SelfIter, /* tp_iter */
|
|
|
|
(iternextfunc)zip_next, /* tp_iternext */
|
2012-04-03 18:49:41 +08:00
|
|
|
zip_methods, /* tp_methods */
|
2010-05-09 23:52:27 +08:00
|
|
|
0, /* tp_members */
|
|
|
|
0, /* tp_getset */
|
|
|
|
0, /* tp_base */
|
|
|
|
0, /* tp_dict */
|
|
|
|
0, /* tp_descr_get */
|
|
|
|
0, /* tp_descr_set */
|
|
|
|
0, /* tp_dictoffset */
|
|
|
|
0, /* tp_init */
|
|
|
|
PyType_GenericAlloc, /* tp_alloc */
|
|
|
|
zip_new, /* tp_new */
|
|
|
|
PyObject_GC_Del, /* tp_free */
|
2008-03-13 10:09:15 +08:00
|
|
|
};
|
2000-08-03 23:45:29 +08:00
|
|
|
|
|
|
|
|
1997-04-30 04:08:16 +08:00
|
|
|
static PyMethodDef builtin_methods[] = {
|
2010-05-09 23:52:27 +08:00
|
|
|
{"__build_class__", (PyCFunction)builtin___build_class__,
|
|
|
|
METH_VARARGS | METH_KEYWORDS, build_class_doc},
|
|
|
|
{"__import__", (PyCFunction)builtin___import__, METH_VARARGS | METH_KEYWORDS, import_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_ABS_METHODDEF
|
|
|
|
BUILTIN_ALL_METHODDEF
|
|
|
|
BUILTIN_ANY_METHODDEF
|
|
|
|
BUILTIN_ASCII_METHODDEF
|
|
|
|
BUILTIN_BIN_METHODDEF
|
|
|
|
BUILTIN_CALLABLE_METHODDEF
|
|
|
|
BUILTIN_CHR_METHODDEF
|
|
|
|
BUILTIN_COMPILE_METHODDEF
|
|
|
|
BUILTIN_DELATTR_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"dir", builtin_dir, METH_VARARGS, dir_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_DIVMOD_METHODDEF
|
|
|
|
BUILTIN_EVAL_METHODDEF
|
|
|
|
BUILTIN_EXEC_METHODDEF
|
|
|
|
BUILTIN_FORMAT_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"getattr", builtin_getattr, METH_VARARGS, getattr_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_GLOBALS_METHODDEF
|
|
|
|
BUILTIN_HASATTR_METHODDEF
|
|
|
|
BUILTIN_HASH_METHODDEF
|
|
|
|
BUILTIN_HEX_METHODDEF
|
|
|
|
BUILTIN_ID_METHODDEF
|
|
|
|
BUILTIN_INPUT_METHODDEF
|
|
|
|
BUILTIN_ISINSTANCE_METHODDEF
|
|
|
|
BUILTIN_ISSUBCLASS_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"iter", builtin_iter, METH_VARARGS, iter_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_LEN_METHODDEF
|
|
|
|
BUILTIN_LOCALS_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"max", (PyCFunction)builtin_max, METH_VARARGS | METH_KEYWORDS, max_doc},
|
|
|
|
{"min", (PyCFunction)builtin_min, METH_VARARGS | METH_KEYWORDS, min_doc},
|
|
|
|
{"next", (PyCFunction)builtin_next, METH_VARARGS, next_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_OCT_METHODDEF
|
|
|
|
BUILTIN_ORD_METHODDEF
|
|
|
|
BUILTIN_POW_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"print", (PyCFunction)builtin_print, METH_VARARGS | METH_KEYWORDS, print_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_REPR_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"round", (PyCFunction)builtin_round, METH_VARARGS | METH_KEYWORDS, round_doc},
|
2014-08-17 12:01:19 +08:00
|
|
|
BUILTIN_SETATTR_METHODDEF
|
|
|
|
BUILTIN_SORTED_METHODDEF
|
|
|
|
BUILTIN_SUM_METHODDEF
|
2010-05-09 23:52:27 +08:00
|
|
|
{"vars", builtin_vars, METH_VARARGS, vars_doc},
|
|
|
|
{NULL, NULL},
|
1990-12-20 23:06:42 +08:00
|
|
|
};
|
|
|
|
|
2002-06-14 04:33:02 +08:00
|
|
|
PyDoc_STRVAR(builtin_doc,
|
1998-06-27 05:23:49 +08:00
|
|
|
"Built-in functions, exceptions, and other objects.\n\
|
|
|
|
\n\
|
2002-06-14 04:33:02 +08:00
|
|
|
Noteworthy: None is the `nil' object; Ellipsis represents `...' in slices.");
|
1998-06-27 05:23:49 +08:00
|
|
|
|
2008-06-11 13:26:20 +08:00
|
|
|
static struct PyModuleDef builtinsmodule = {
|
2010-05-09 23:52:27 +08:00
|
|
|
PyModuleDef_HEAD_INIT,
|
|
|
|
"builtins",
|
|
|
|
builtin_doc,
|
|
|
|
-1, /* multiple "initialization" just copies the module dict. */
|
|
|
|
builtin_methods,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
NULL,
|
|
|
|
NULL
|
2008-06-11 13:26:20 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
1997-08-02 11:10:38 +08:00
|
|
|
PyObject *
|
2000-07-23 02:47:25 +08:00
|
|
|
_PyBuiltin_Init(void)
|
1997-08-02 11:10:38 +08:00
|
|
|
{
|
2010-05-09 23:52:27 +08:00
|
|
|
PyObject *mod, *dict, *debug;
|
2012-10-31 11:41:54 +08:00
|
|
|
|
|
|
|
if (PyType_Ready(&PyFilter_Type) < 0 ||
|
|
|
|
PyType_Ready(&PyMap_Type) < 0 ||
|
|
|
|
PyType_Ready(&PyZip_Type) < 0)
|
|
|
|
return NULL;
|
|
|
|
|
2010-05-09 23:52:27 +08:00
|
|
|
mod = PyModule_Create(&builtinsmodule);
|
|
|
|
if (mod == NULL)
|
|
|
|
return NULL;
|
|
|
|
dict = PyModule_GetDict(mod);
|
2001-09-14 05:37:17 +08:00
|
|
|
|
2003-03-24 01:52:28 +08:00
|
|
|
#ifdef Py_TRACE_REFS
|
2010-05-09 23:52:27 +08:00
|
|
|
/* "builtins" exposes a number of statically allocated objects
|
|
|
|
* that, before this code was added in 2.3, never showed up in
|
|
|
|
* the list of "all objects" maintained by Py_TRACE_REFS. As a
|
|
|
|
* result, programs leaking references to None and False (etc)
|
|
|
|
* couldn't be diagnosed by examining sys.getobjects(0).
|
|
|
|
*/
|
2003-03-24 01:52:28 +08:00
|
|
|
#define ADD_TO_ALL(OBJECT) _Py_AddToAllObjects((PyObject *)(OBJECT), 0)
|
|
|
|
#else
|
|
|
|
#define ADD_TO_ALL(OBJECT) (void)0
|
|
|
|
#endif
|
|
|
|
|
2001-09-14 05:37:17 +08:00
|
|
|
#define SETBUILTIN(NAME, OBJECT) \
|
2010-05-09 23:52:27 +08:00
|
|
|
if (PyDict_SetItemString(dict, NAME, (PyObject *)OBJECT) < 0) \
|
|
|
|
return NULL; \
|
|
|
|
ADD_TO_ALL(OBJECT)
|
|
|
|
|
|
|
|
SETBUILTIN("None", Py_None);
|
|
|
|
SETBUILTIN("Ellipsis", Py_Ellipsis);
|
|
|
|
SETBUILTIN("NotImplemented", Py_NotImplemented);
|
|
|
|
SETBUILTIN("False", Py_False);
|
|
|
|
SETBUILTIN("True", Py_True);
|
|
|
|
SETBUILTIN("bool", &PyBool_Type);
|
|
|
|
SETBUILTIN("memoryview", &PyMemoryView_Type);
|
|
|
|
SETBUILTIN("bytearray", &PyByteArray_Type);
|
|
|
|
SETBUILTIN("bytes", &PyBytes_Type);
|
|
|
|
SETBUILTIN("classmethod", &PyClassMethod_Type);
|
|
|
|
SETBUILTIN("complex", &PyComplex_Type);
|
|
|
|
SETBUILTIN("dict", &PyDict_Type);
|
|
|
|
SETBUILTIN("enumerate", &PyEnum_Type);
|
|
|
|
SETBUILTIN("filter", &PyFilter_Type);
|
|
|
|
SETBUILTIN("float", &PyFloat_Type);
|
|
|
|
SETBUILTIN("frozenset", &PyFrozenSet_Type);
|
|
|
|
SETBUILTIN("property", &PyProperty_Type);
|
|
|
|
SETBUILTIN("int", &PyLong_Type);
|
|
|
|
SETBUILTIN("list", &PyList_Type);
|
|
|
|
SETBUILTIN("map", &PyMap_Type);
|
|
|
|
SETBUILTIN("object", &PyBaseObject_Type);
|
|
|
|
SETBUILTIN("range", &PyRange_Type);
|
|
|
|
SETBUILTIN("reversed", &PyReversed_Type);
|
|
|
|
SETBUILTIN("set", &PySet_Type);
|
|
|
|
SETBUILTIN("slice", &PySlice_Type);
|
|
|
|
SETBUILTIN("staticmethod", &PyStaticMethod_Type);
|
|
|
|
SETBUILTIN("str", &PyUnicode_Type);
|
|
|
|
SETBUILTIN("super", &PySuper_Type);
|
|
|
|
SETBUILTIN("tuple", &PyTuple_Type);
|
|
|
|
SETBUILTIN("type", &PyType_Type);
|
|
|
|
SETBUILTIN("zip", &PyZip_Type);
|
|
|
|
debug = PyBool_FromLong(Py_OptimizeFlag == 0);
|
|
|
|
if (PyDict_SetItemString(dict, "__debug__", debug) < 0) {
|
2016-06-18 14:44:03 +08:00
|
|
|
Py_DECREF(debug);
|
2010-05-09 23:52:27 +08:00
|
|
|
return NULL;
|
|
|
|
}
|
2016-06-18 14:44:03 +08:00
|
|
|
Py_DECREF(debug);
|
2010-05-09 23:52:27 +08:00
|
|
|
|
|
|
|
return mod;
|
2003-03-24 01:52:28 +08:00
|
|
|
#undef ADD_TO_ALL
|
2001-09-14 05:37:17 +08:00
|
|
|
#undef SETBUILTIN
|
1990-12-20 23:06:42 +08:00
|
|
|
}
|