wL idZdZdZdeiZy)a Handlers for IPythonDirective's @doctest pseudo-decorator. The Sphinx extension that provides support for embedded IPython code provides a pseudo-decorator @doctest, which treats the input/output block as a doctest, raising a RuntimeError during doc generation if the actual output (after running the input) does not match the expected output. An example usage is: .. code-block:: rst .. ipython:: In [1]: x = 1 @doctest In [2]: x + 2 Out[3]: 3 One can also provide arguments to the decorator. The first argument should be the name of a custom handler. The specification of any other arguments is determined by the handler. For example, .. code-block:: rst .. ipython:: @doctest float In [154]: 0.1 + 0.2 Out[154]: 0.3 allows the actual output ``0.30000000000000004`` to match the expected output due to a comparison with `np.allclose`. This module contains handlers for the @doctest pseudo-decorator. Handlers should have the following function signature:: handler(sphinx_shell, args, input_lines, found, submitted) where `sphinx_shell` is the embedded Sphinx shell, `args` contains the list of arguments that follow: '@doctest handler_name', `input_lines` contains a list of the lines relevant to the current doctest, `found` is a string containing the output from the IPython shell, and `submitted` is a string containing the expected output from the IPython shell. Handlers must be registered in the `doctests` dict at the end of this module. cddl}ddlm}m}|jdr|dd}|jdr"|j t |t }|S|jt |}|S) aI Simplistic converter of strings from repr to float NumPy arrays. If the repr representation has ellipsis in it, then this will fail. Parameters ---------- s : str The repr version of a NumPy array. Examples -------- >>> s = "array([ 0.3, inf, nan])" >>> a = str_to_array(s) N)infnanarray[)dtype)numpyrr startswithrevalfloat atleast_1d)snprras g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/IPython/sphinxext/custom_doctests.py str_to_arrayr3se"||H aG||D HHT!WEH * H MM%( # Hc ddl}t|dk(rd}d}n t|d}t|d} t |}t |}|j |} |j |} |j| |  } | |j|| || || z} d } |j} | d }d }nL| jjj}d j| jDcgc]}| |z c}}| rEd }|j ||d j|t|t|| }t|y#t$rdj |}t||wxYw#d } YxYwcc}w)z Doctest which allow the submitted output to vary slightly from the input. Here is how it might appear in an rst file: .. code-block:: rst .. ipython:: @doctest float In [1]: 0.1 + 0.2 Out[1]: 0.3 rNgh㈵>g:0yE>zEBoth `rtol` and `atol` must be specified if either are specified: {0})rtolatolTz Unavailable zdoctest float comparison failure Document source: {0} Raw content: {1} On input line(s): {TAB}{2} we found output: {TAB}{3} instead of the expected: {TAB}{4} )TAB)r lenr IndexErrorformatrisnanallclose directivestatedocumentcurrent_sourcejoincontentrepr RuntimeError) sphinx_shellargs input_linesfound submittedrrre found_isnansubmitted_isnanerrorrr#sourcer(lines r float_doctestr6Us 4yA~ 'a>Da>D 7 + U# hhuo ((9-KK _== R[[ |!4!*O+;!<&*!77 7 C&&I))88))I4E4EFDS4ZFG 6 HHVWdii & 'E25E;rN)__doc__rr6doctestsrrr:s&0d  D@J ] r