Python sys.getrecursionlimit() Examples
The following are 30
code examples of sys.getrecursionlimit().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sys
, or try the search function
.
Example #1
Source File: test_misc.py From qdb with Apache License 2.0 | 6 votes |
def test_tco_too_many_frames(self): frames = sys.getrecursionlimit() def f(n): if not n: return None return f(n - 1) # Make sure this is actually too many frames. with self.assertRaises(RuntimeError): f(frames) @tco def g(n): if not n: return None return g.tailcall(n - 1) # Show that the tco version can handle the same number of frames. self.assertIsNone(g(frames))
Example #2
Source File: test_sys_settrace.py From ironpython2 with Apache License 2.0 | 6 votes |
def run_test_for_event(self, event): """Tests that an exception raised in response to the given event is handled OK.""" self.raiseOnEvent = event try: for i in xrange(sys.getrecursionlimit() + 1): sys.settrace(self.trace) try: self.f() except ValueError: pass else: self.fail("exception not raised!") except RuntimeError: self.fail("recursion counter not reset") # Test the handling of exceptions raised by each kind of trace event.
Example #3
Source File: test_sys_settrace.py From ironpython3 with Apache License 2.0 | 6 votes |
def run_test_for_event(self, event): """Tests that an exception raised in response to the given event is handled OK.""" self.raiseOnEvent = event try: for i in range(sys.getrecursionlimit() + 1): sys.settrace(self.trace) try: self.f() except ValueError: pass else: self.fail("exception not raised!") except RuntimeError: self.fail("recursion counter not reset") # Test the handling of exceptions raised by each kind of trace event.
Example #4
Source File: test_sys.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_recursionlimit(self): self.assertRaises(TypeError, sys.getrecursionlimit, 42) oldlimit = sys.getrecursionlimit() self.assertRaises(TypeError, sys.setrecursionlimit) self.assertRaises(ValueError, sys.setrecursionlimit, -42) sys.setrecursionlimit(10000) self.assertEqual(sys.getrecursionlimit(), 10000) sys.setrecursionlimit(oldlimit) self.assertRaises(OverflowError, sys.setrecursionlimit, 1 << 31) try: sys.setrecursionlimit((1 << 31) - 5) try: # issue13546: isinstance(e, ValueError) used to fail # when the recursion limit is close to 1<<31 raise ValueError() except ValueError, e: pass finally: sys.setrecursionlimit(oldlimit)
Example #5
Source File: read_write.py From visual_turing_test-tutorial with MIT License | 6 votes |
def pickle_model( path, model, word2index_x, word2index_y, index2word_x, index2word_y): import sys import cPickle as pickle modifier=10 tmp = sys.getrecursionlimit() sys.setrecursionlimit(tmp*modifier) with open(path, 'wb') as f: p_dict = {'model':model, 'word2index_x':word2index_x, 'word2index_y':word2index_y, 'index2word_x':index2word_x, 'index2word_y':index2word_y} pickle.dump(p_dict, f, protocol=2) sys.setrecursionlimit(tmp)
Example #6
Source File: test_compile.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_compiler_recursion_limit(self): # Expected limit is sys.getrecursionlimit() * the scaling factor # in symtable.c (currently 3) # We expect to fail *at* that limit, because we use up some of # the stack depth limit in the test suite code # So we check the expected limit and 75% of that # XXX (ncoghlan): duplicating the scaling factor here is a little # ugly. Perhaps it should be exposed somewhere... fail_depth = sys.getrecursionlimit() * 3 success_depth = int(fail_depth * 0.75) def check_limit(prefix, repeated): expect_ok = prefix + repeated * success_depth self.compile_single(expect_ok) broken = prefix + repeated * fail_depth details = "Compiling ({!r} + {!r} * {})".format( prefix, repeated, fail_depth) with self.assertRaises(RuntimeError, msg=details): self.compile_single(broken) check_limit("a", "()") check_limit("a", ".b") check_limit("a", "[0]") check_limit("a", "*a")
Example #7
Source File: list_tests.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_repr(self): l0 = [] l2 = [0, 1, 2] a0 = self.type2test(l0) a2 = self.type2test(l2) self.assertEqual(str(a0), str(l0)) self.assertEqual(repr(a0), repr(l0)) self.assertEqual(repr(a2), repr(l2)) self.assertEqual(str(a2), "[0, 1, 2]") self.assertEqual(repr(a2), "[0, 1, 2]") a2.append(a2) a2.append(3) self.assertEqual(str(a2), "[0, 1, 2, [...], 3]") self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") l0 = [] for i in range(sys.getrecursionlimit() + 100): l0 = [l0] self.assertRaises(RuntimeError, repr, l0)
Example #8
Source File: test_class.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_isinstance_recursion(self): reclimit = sys.getrecursionlimit() if reclimit == sys.maxint: sys.setrecursionlimit(1001) # Make sure that calling isinstance with a deeply nested tuple for its # argument will raise RuntimeError eventually. def blowstack(fxn, arg, compare_to): tuple_arg = (compare_to,) for cnt in xrange(sys.getrecursionlimit()+5): tuple_arg = (tuple_arg,) fxn(arg, tuple_arg) self.assertRaises(RuntimeError, blowstack, isinstance, '', str) sys.setrecursionlimit(reclimit)
Example #9
Source File: test_sys.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_recursionlimit_recovery(self): if hasattr(sys, 'gettrace') and sys.gettrace(): self.skipTest('fatal error if run with a trace function') # NOTE: this test is slightly fragile in that it depends on the current # recursion count when executing the test being low enough so as to # trigger the recursion recovery detection in the _Py_MakeEndRecCheck # macro (see ceval.h). oldlimit = sys.getrecursionlimit() def f(): f() try: for i in (50, 1000): # Issue #5392: stack overflow after hitting recursion limit twice sys.setrecursionlimit(i) self.assertRaises(RuntimeError, f) self.assertRaises(RuntimeError, f) finally: sys.setrecursionlimit(oldlimit)
Example #10
Source File: test_script.py From learn_python3_spider with MIT License | 6 votes |
def test_getWorkerArguments(self): """ C{_getWorkerArguments} discards options like C{random} as they only matter in the manager, and forwards options like C{recursionlimit} or C{disablegc}. """ self.addCleanup(sys.setrecursionlimit, sys.getrecursionlimit()) if gc.isenabled(): self.addCleanup(gc.enable) self.options.parseOptions(["--recursionlimit", "2000", "--random", "4", "--disablegc"]) args = self.options._getWorkerArguments() self.assertIn("--disablegc", args) args.remove("--disablegc") self.assertEqual(["--recursionlimit", "2000"], args)
Example #11
Source File: test_sys_settrace.py From BinderFilter with MIT License | 6 votes |
def run_test_for_event(self, event): """Tests that an exception raised in response to the given event is handled OK.""" self.raiseOnEvent = event try: for i in xrange(sys.getrecursionlimit() + 1): sys.settrace(self.trace) try: self.f() except ValueError: pass else: self.fail("exception not raised!") except RuntimeError: self.fail("recursion counter not reset") # Test the handling of exceptions raised by each kind of trace event.
Example #12
Source File: test_sys.py From BinderFilter with MIT License | 6 votes |
def test_recursionlimit(self): self.assertRaises(TypeError, sys.getrecursionlimit, 42) oldlimit = sys.getrecursionlimit() self.assertRaises(TypeError, sys.setrecursionlimit) self.assertRaises(ValueError, sys.setrecursionlimit, -42) sys.setrecursionlimit(10000) self.assertEqual(sys.getrecursionlimit(), 10000) sys.setrecursionlimit(oldlimit) self.assertRaises(OverflowError, sys.setrecursionlimit, 1 << 31) try: sys.setrecursionlimit((1 << 31) - 5) try: # issue13546: isinstance(e, ValueError) used to fail # when the recursion limit is close to 1<<31 raise ValueError() except ValueError, e: pass finally: sys.setrecursionlimit(oldlimit)
Example #13
Source File: asizeof.py From pyFileFixity with MIT License | 6 votes |
def _objs_opts(objs, all=None, **opts): '''Return given or 'all' objects and the remaining options. ''' if objs: # given objects t = objs elif all in (False, None): t = () elif all is True: # 'all' objects ... # ... modules first, globals and stack # (may contain duplicate objects) t = tuple(_values(sys.modules)) + ( globals(), stack(sys.getrecursionlimit())[2:]) else: raise ValueError('invalid option: %s=%r' % ('all', all)) return t, opts #PYCHOK OK
Example #14
Source File: test_class.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_isinstance_recursion(self): reclimit = sys.getrecursionlimit() if reclimit == sys.maxsize: sys.setrecursionlimit(1001) # Make sure that calling isinstance with a deeply nested tuple for its # argument will raise RuntimeError eventually. def blowstack(fxn, arg, compare_to): tuple_arg = (compare_to,) for cnt in range(sys.getrecursionlimit()+5): tuple_arg = (tuple_arg,) fxn(arg, tuple_arg) self.assertRaises(RuntimeError, blowstack, isinstance, '', str) sys.setrecursionlimit(reclimit)
Example #15
Source File: test_cmd_manager.py From qdb with Apache License 2.0 | 6 votes |
def test_why_are_you_executing_all_these_commands(self): db = Qdb( uuid='send_stack_test', cmd_manager=self.cmd_manager, host=self.tracer_host, port=self.tracer_port, redirect_output=False, green=True, ) gyield() for n in range(sys.getrecursionlimit()): self.server.session_store.send_to_tracer( uuid=db.uuid, event=fmt_msg('eval', 'None') ) self.server.session_store.send_to_tracer( uuid=db.uuid, event=fmt_msg('continue') ) with gevent.Timeout(1): db.set_trace(stop=True)
Example #16
Source File: dataloader.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def worker_loop(dataset, key_queue, data_queue, batchify_fn): """Worker loop for multiprocessing DataLoader.""" # re-fork a new recordio handler in new process if applicable # for a dataset with transform function, the depth of MXRecordIO is 1 # for a lazy transformer, the depth is 2 # for a user defined transformer, the depth is unknown, try a reasonable depth limit = sys.getrecursionlimit() max_recursion_depth = min(limit - 5, max(10, limit // 2)) _recursive_fork_recordio(dataset, 0, max_recursion_depth) while True: idx, samples = key_queue.get() if idx is None: break batch = batchify_fn([dataset[i] for i in samples]) data_queue.put((idx, batch))
Example #17
Source File: test_sys_settrace.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def run_test_for_event(self, event): """Tests that an exception raised in response to the given event is handled OK.""" self.raiseOnEvent = event try: for i in range(sys.getrecursionlimit() + 1): sys.settrace(self.trace) try: self.f() except ValueError: pass else: self.fail("exception not raised!") except RuntimeError: self.fail("recursion counter not reset") # Test the handling of exceptions raised by each kind of trace event.
Example #18
Source File: test_script.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_getWorkerArguments(self): """ C{_getWorkerArguments} discards options like C{random} as they only matter in the manager, and forwards options like C{recursionlimit} or C{disablegc}. """ self.addCleanup(sys.setrecursionlimit, sys.getrecursionlimit()) if gc.isenabled(): self.addCleanup(gc.enable) self.options.parseOptions(["--recursionlimit", "2000", "--random", "4", "--disablegc"]) args = self.options._getWorkerArguments() self.assertIn("--disablegc", args) args.remove("--disablegc") self.assertEqual(["--recursionlimit", "2000"], args)
Example #19
Source File: list_tests.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_repr(self): l0 = [] l2 = [0, 1, 2] a0 = self.type2test(l0) a2 = self.type2test(l2) self.assertEqual(str(a0), str(l0)) self.assertEqual(repr(a0), repr(l0)) self.assertEqual(repr(a2), repr(l2)) self.assertEqual(str(a2), "[0, 1, 2]") self.assertEqual(repr(a2), "[0, 1, 2]") a2.append(a2) a2.append(3) self.assertEqual(str(a2), "[0, 1, 2, [...], 3]") self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") l0 = [] for i in range(sys.getrecursionlimit() + 100): l0 = [l0] self.assertRaises(RecursionError, repr, l0)
Example #20
Source File: test_compile.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_compiler_recursion_limit(self): # Expected limit is sys.getrecursionlimit() * the scaling factor # in symtable.c (currently 3) # We expect to fail *at* that limit, because we use up some of # the stack depth limit in the test suite code # So we check the expected limit and 75% of that # XXX (ncoghlan): duplicating the scaling factor here is a little # ugly. Perhaps it should be exposed somewhere... fail_depth = sys.getrecursionlimit() * 3 success_depth = int(fail_depth * 0.75) def check_limit(prefix, repeated): expect_ok = prefix + repeated * success_depth self.compile_single(expect_ok) broken = prefix + repeated * fail_depth details = "Compiling ({!r} + {!r} * {})".format( prefix, repeated, fail_depth) with self.assertRaises(RecursionError, msg=details): self.compile_single(broken) check_limit("a", "()") check_limit("a", ".b") check_limit("a", "[0]") check_limit("a", "*a")
Example #21
Source File: list_tests.py From oss-ftp with MIT License | 6 votes |
def test_repr(self): l0 = [] l2 = [0, 1, 2] a0 = self.type2test(l0) a2 = self.type2test(l2) self.assertEqual(str(a0), str(l0)) self.assertEqual(repr(a0), repr(l0)) self.assertEqual(repr(a2), repr(l2)) self.assertEqual(str(a2), "[0, 1, 2]") self.assertEqual(repr(a2), "[0, 1, 2]") a2.append(a2) a2.append(3) self.assertEqual(str(a2), "[0, 1, 2, [...], 3]") self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") l0 = [] for i in xrange(sys.getrecursionlimit() + 100): l0 = [l0] self.assertRaises(RuntimeError, repr, l0)
Example #22
Source File: test_sys.py From oss-ftp with MIT License | 6 votes |
def test_recursionlimit(self): self.assertRaises(TypeError, sys.getrecursionlimit, 42) oldlimit = sys.getrecursionlimit() self.assertRaises(TypeError, sys.setrecursionlimit) self.assertRaises(ValueError, sys.setrecursionlimit, -42) sys.setrecursionlimit(10000) self.assertEqual(sys.getrecursionlimit(), 10000) sys.setrecursionlimit(oldlimit) self.assertRaises(OverflowError, sys.setrecursionlimit, 1 << 31) try: sys.setrecursionlimit((1 << 31) - 5) try: # issue13546: isinstance(e, ValueError) used to fail # when the recursion limit is close to 1<<31 raise ValueError() except ValueError, e: pass finally: sys.setrecursionlimit(oldlimit)
Example #23
Source File: test_sys_settrace.py From oss-ftp with MIT License | 6 votes |
def run_test_for_event(self, event): """Tests that an exception raised in response to the given event is handled OK.""" self.raiseOnEvent = event try: for i in xrange(sys.getrecursionlimit() + 1): sys.settrace(self.trace) try: self.f() except ValueError: pass else: self.fail("exception not raised!") except RuntimeError: self.fail("recursion counter not reset") # Test the handling of exceptions raised by each kind of trace event.
Example #24
Source File: list_tests.py From BinderFilter with MIT License | 6 votes |
def test_repr(self): l0 = [] l2 = [0, 1, 2] a0 = self.type2test(l0) a2 = self.type2test(l2) self.assertEqual(str(a0), str(l0)) self.assertEqual(repr(a0), repr(l0)) self.assertEqual(repr(a2), repr(l2)) self.assertEqual(str(a2), "[0, 1, 2]") self.assertEqual(repr(a2), "[0, 1, 2]") a2.append(a2) a2.append(3) self.assertEqual(str(a2), "[0, 1, 2, [...], 3]") self.assertEqual(repr(a2), "[0, 1, 2, [...], 3]") l0 = [] for i in xrange(sys.getrecursionlimit() + 100): l0 = [l0] self.assertRaises(RuntimeError, repr, l0)
Example #25
Source File: test_sys.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_recursionlimit(self): self.assertRaises(TypeError, sys.getrecursionlimit, 42) oldlimit = sys.getrecursionlimit() self.assertRaises(TypeError, sys.setrecursionlimit) self.assertRaises(ValueError, sys.setrecursionlimit, -42) sys.setrecursionlimit(10000) self.assertEqual(sys.getrecursionlimit(), 10000) sys.setrecursionlimit(oldlimit)
Example #26
Source File: trace_at_recursion_limit.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def f(): print(sys.getrecursionlimit()) f()
Example #27
Source File: test_difflib.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_recursion_limit(self): # Check if the problem described in patch #1413711 exists. limit = sys.getrecursionlimit() old = [(i%2 and "K:%d" or "V:A:%d") % i for i in range(limit*2)] new = [(i%2 and "K:%d" or "V:B:%d") % i for i in range(limit*2)] difflib.SequenceMatcher(None, old, new).get_opcodes()
Example #28
Source File: __init__.py From attention-lvcsr with MIT License | 5 votes |
def change_recursion_limit(limit): """Temporarily changes the recursion limit.""" old_limit = sys.getrecursionlimit() if old_limit < limit: sys.setrecursionlimit(limit) yield sys.setrecursionlimit(old_limit)
Example #29
Source File: test_tls.py From python-mbedtls with MIT License | 5 votes |
def block(callback, *args, **kwargs): counter = 0 while True: with suppress(WantReadError, WantWriteError): return callback(*args, **kwargs) counter += 1 if counter == sys.getrecursionlimit(): raise RuntimeError("maximum recursion depth exceeded.")
Example #30
Source File: test_stats.py From profiling with BSD 3-Clause "New" or "Revised" License | 5 votes |
def deep_stats(depth=sys.getrecursionlimit(), skip_if_no_recursion_error=True): # Define a function with deep recursion. def x0(frames): frames.append(sys._getframe()) locals_ = locals() for x in range(1, depth): code = dedent(''' import sys def x%d(frames): frames.append(sys._getframe()) x%d(frames) ''' % (x, x - 1)) exec_(code, locals_) f = locals_['x%d' % (depth - 1)] frames = [] try: f(frames) except RuntimeError: # Expected. pass else: # Maybe PyPy. if skip_if_no_recursion_error: pytest.skip('Recursion limit not exceeded') # Profile the deepest frame. profiler = TracingProfiler() profiler._profile(frames[-1], 'call', None) spin(0.5) profiler._profile(frames[-1], 'return', None) # Test with the result. stats, __, __ = profiler.result() return stats