Staging
v0.8.1
v0.8.1
https://github.com/python/cpython
Revision d7773d92bd11640a8c950d6c36a9cef1cee36f96 authored by bennorth on 26 January 2018, 15:46:01 UTC, committed by Senthil Kumaran on 26 January 2018, 15:46:01 UTC
dictview_repr(): Use a Py_ReprEnter() / Py_ReprLeave() pair to check for recursion, and produce "..." if so. test_recursive_repr(): Check for the string rather than a RecursionError. (Test cannot be any tighter as contents are implementation-dependent.) test_deeply_nested_repr(): Add new test, replacing the original test_recursive_repr(). It checks that a RecursionError is raised in the case of a non-recursive but deeply nested structure. (Very similar to what test_repr_deep() in test/test_dict.py does for a normal dict.) OrderedDictTests: Add new test case, to test behavior on OrderedDict instances containing their own values() or items().
1 parent e76daeb
Tip revision: d7773d92bd11640a8c950d6c36a9cef1cee36f96 authored by bennorth on 26 January 2018, 15:46:01 UTC
bpo-18533: Avoid RecursionError from repr() of recursive dictview (#4823)
bpo-18533: Avoid RecursionError from repr() of recursive dictview (#4823)
Tip revision: d7773d9
_testimportmultiple.c
/*
* C extensions module to test importing multiple modules from one compiled
* file (issue16421). This file defines 3 modules (_testimportmodule,
* foo, bar), only the first one is called the same as the compiled file.
*/
#include<Python.h>
static struct PyModuleDef _testimportmultiple = {
PyModuleDef_HEAD_INIT,
"_testimportmultiple",
"_testimportmultiple doc",
-1,
NULL,
NULL,
NULL,
NULL,
NULL
};
PyMODINIT_FUNC PyInit__testimportmultiple(void)
{
return PyModule_Create(&_testimportmultiple);
}
static struct PyModuleDef _foomodule = {
PyModuleDef_HEAD_INIT,
"_testimportmultiple_foo",
"_testimportmultiple_foo doc",
-1,
NULL,
NULL,
NULL,
NULL,
NULL
};
PyMODINIT_FUNC PyInit__testimportmultiple_foo(void)
{
return PyModule_Create(&_foomodule);
}
static struct PyModuleDef _barmodule = {
PyModuleDef_HEAD_INIT,
"_testimportmultiple_bar",
"_testimportmultiple_bar doc",
-1,
NULL,
NULL,
NULL,
NULL,
NULL
};
PyMODINIT_FUNC PyInit__testimportmultiple_bar(void){
return PyModule_Create(&_barmodule);
}
Computing file changes ...