Your IP : 216.73.216.213


Current Path : /opt/alt/python33/lib64/python3.3/Tools/scripts/__pycache__/
Upload File :
Current File : //opt/alt/python33/lib64/python3.3/Tools/scripts/__pycache__/find_recursionlimit.cpython-33.pyo

�
��f�c@s�dZddlZddlZGdd�d�Zdd�ZGdd�d�Zd	d
�ZGdd�d�Zd
d�ZGdd�d�Z	dd�Z
Gdd�d�Zdd�Zdd�Z
idd�Zdd�Zdd�Zedkr�d Zx�eed�eed�eed
�eed�eed�eed�eed�eed�ed!e�ed"ZqndS(#uAFind the maximum recursion limit that prevents interpreter termination.

This script finds the maximum safe recursion limit on a particular
platform.  If you need to change the recursion limit on your system,
this script will tell you a safe upper bound.  To use the new limit,
call sys.setrecursionlimit().

This module implements several ways to create infinite recursion in
Python.  Different implementations end up pushing different numbers of
C stack frames, depending on how many calls through Python's abstract
C API occur.

After each round of tests, it prints a message:
"Limit of NNNN is fine".

The highest printed value of "NNNN" is therefore the highest potentially
safe limit for your system (which depends on the OS, architecture, but also
the compilation flags). Please note that it is practically impossible to
test all possible recursion paths in the interpreter, so the results of
this test should not be trusted blindly -- although they give a good hint
of which values are reasonable.

NOTE: When the C stack space allocated by your system is exceeded due
to excessive recursion, exact behaviour depends on the platform, although
the interpreter will always fail in a likely brutal way: either a
segmentation fault, a MemoryError, or just a silent abort.

NB: A program that does not use __methods__ can set a higher limit.
iNcBs |EeZdZdd�ZdS(uRecursiveBlowup1cCs|j�dS(N(u__init__(uself((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu__init__$suRecursiveBlowup1.__init__N(u__name__u
__module__u__qualname__u__init__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyuRecursiveBlowup1#suRecursiveBlowup1cCst�S(N(uRecursiveBlowup1(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu	test_init'su	test_initcBs |EeZdZdd�ZdS(uRecursiveBlowup2cCs
t|�S(N(urepr(uself((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu__repr__+suRecursiveBlowup2.__repr__N(u__name__u
__module__u__qualname__u__repr__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyuRecursiveBlowup2*suRecursiveBlowup2cCs
tt��S(N(urepruRecursiveBlowup2(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu	test_repr.su	test_reprcBs |EeZdZdd�ZdS(uRecursiveBlowup4cCs||S(N((uselfux((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu__add__2suRecursiveBlowup4.__add__N(u__name__u
__module__u__qualname__u__add__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyuRecursiveBlowup41suRecursiveBlowup4cCst�t�S(N(uRecursiveBlowup4(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_add5sutest_addcBs |EeZdZdd�ZdS(uRecursiveBlowup5cCs
t||�S(N(ugetattr(uselfuattr((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu__getattr__9suRecursiveBlowup5.__getattr__N(u__name__u
__module__u__qualname__u__getattr__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyuRecursiveBlowup58suRecursiveBlowup5cCs
t�jS(N(uRecursiveBlowup5uattr(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_getattr<sutest_getattrcBs |EeZdZdd�ZdS(uRecursiveBlowup6cCs||d||dS(Nii((uselfuitem((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu__getitem__@suRecursiveBlowup6.__getitem__N(u__name__u
__module__u__qualname__u__getitem__(u
__locals__((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyuRecursiveBlowup6?suRecursiveBlowup6cCst�dS(Ni(uRecursiveBlowup6(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_getitemCsutest_getitemcCst�S(N(utest_recurse(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_recurseFsutest_recursecCs�ddl}yddl}Wn tk
r>td�dSYnXd\}}x�tj�D]�}y||}wXWnBtk
r�x-td�D]}||g}i||6}q�WYnX|j	|j
�dd�j|�|||<qXWdS(Niucannot import _pickle, skipped!iduprotocoli(NNi����(uiou_pickleuImportErroruprintuNoneu	itertoolsucountuKeyErrorurangeuPickleruBytesIOudump(u_cacheuiou_pickleukulunui((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_cpickleIs"

	

"utest_cpicklecCs"tddtj�dd�dS(Nu()i
u<single>usingle(ucompileusysugetrecursionlimit(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyutest_compiler_recursion\sutest_compiler_recursioncCs~tj|�|jd�r3t|dd��n
t|�t�|}y|�Wnttfk
roYnXtd�dS(Nutest_iuYikes!(usysusetrecursionlimitu
startswithuprintuglobalsuRuntimeErroruAttributeError(unutest_func_nameu	test_func((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyucheck_limitbs


ucheck_limitu__main__i�uLimit of %d is fineid(u__doc__usysu	itertoolsuRecursiveBlowup1u	test_inituRecursiveBlowup2u	test_repruRecursiveBlowup4utest_adduRecursiveBlowup5utest_getattruRecursiveBlowup6utest_getitemutest_recurseutest_cpickleutest_compiler_recursionucheck_limitu__name__ulimituprint(((uF/opt/alt/python33/lib64/python3.3/Tools/scripts/find_recursionlimit.pyu<module>s: