Format: application/x-python-code
⬇ Download File (10.4 KB)
   1  o
   2  
   3  ��h�-�@sTdZddlmZddlmZddlZe�d�Ze�d�ddl	m
   4  Z
   5  ddlmZdd	l
   6  mZddlZdd
   7  lmZddlmZddlmZmZd
   8  dlmZddlmZdd�Zdd�Ze� d�dd��Z!dd�Z"dddddd�Z#dd�Z$d d!�Z%d"d#�Z&d$d%�Z'd&d'�Z(Gd(d)�d)e)�Z*d*d+�Z+d,d-�Z,ej-�.d.gd/��d0d1��Z/d2d3�Z0d4d5�Z1dS)6zTests for pylab tools module.
   9  �)�
  10  a2b_base64)�BytesION�
  11  matplotlibZAgg)�Figure)�pyplot)�backend_inline)�get_ipython)�InteractiveShell)�_PNG�_JPEG�)�
  12  pylabtools)�
  13  decoratorscCszt��}t�|d�dusJ�t�d�t��}|�ddd�}|�gd��t��t�|d�dd���}d|vs;J�dS)N�svg�all��rr��dzdoctype svg)	�plt�figure�pt�print_figure�close�add_subplot�plot�draw�lower)�fig�axr�r �Xc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/tests/test_pylabtools.py�test_figure_to_svgs
  14  r"c
  15  Csfddlm}t�}|�dd�}z	|�|d�WdSty2}z|jj}t�	d||f�|�d}~ww)z0Skip if PIL can't write JPEGs to BytesIO objectsr)�Image�RGB)�r%�jpegz'PIL can't write JPEG to BytesIO: %s: %sN)
  16  ZPILr#r�new�save�	Exception�	__class__�__name__�pytest�skip)r#�bufZimg�eZenamer r r!�_check_pil_jpeg_bytes-s��r0z	PIL.ImagecCsdt�t��}|�ddd�}|�gd��t��tj|dddid�dd���}|�	t
  17  �s0J�dS)Nrrr&�optimize�2)Z
  18  pil_kwargsr)r0rrrrrrrr�
  19  startswithr)rrr&r r r!�test_figure_to_jpeg:s r4cCs�t��}t�|�dks
  20  J�t�d�t��}|�ddd�}|�gd��t��t�|�\}}|�t	�s6J�d|vs<J�d|vsBJ�dS)Nrrr�width�height)
  21  rrrZ
  22  retina_figurerrrrr3r
  23  )rr�png�mdr r r!�test_retina_figureEs
  24  r9�	image/pngz
  25  image/jpegzapplication/pdfz
  26  image/svg+xml)r7r&�pdf�retinarcCs`t�}t��D]&\}}t�||�|jj��D]\}}||kr&t|vs%J�qt|vs,J�qqdS�N)r�
  27  _fmt_mime_map�itemsr�select_figure_formats�display_formatter�
  28  formattersr)�ip�fmtZactive_mime�mime�fr r r!�test_select_figure_formats_str]s��rGc
  29  Cs�t�}tdd�}tj|dfi|��|jjd}|�t�}|j}|}d|d<d|d<||ks0J�t	�
  30  �}|�ddd�}|�gd	��t	�
  31  �d|_||�}t|t�sTJ�t|�}	|	�t�s_J�dS)
  32  NZtight)Zbbox_inchesr7r:T�base64rDrr)r�dictrr@rArBZlookup_by_typer�keywordsrrrrr�enabled�
  33  isinstance�strrr3r
  34  )
  35  rC�kwargs�	formatterrF�cell�expectedrrr7Z	png_bytesr r r!�!test_select_figure_formats_kwargsgs&
  36  
  37  rRcCsvt�}ddhdgddhfD]+}dd�|D�}t�||�|jj��D]\}}||vr1t|vs0J�q"t|vs7J�q"q
  38  dS)Nr7r)r&r;r<cS�h|]}t|�qSr �r>��.0rDr r r!�	<setcomp>��z1test_select_figure_formats_set.<locals>.<setcomp>)rrr@rArBr?r)rC�fmts�active_mimesrErFr r r!�test_select_figure_formats_set~s���r[cCs�t�}t�t��t�|d�Wd�n1swYt�t��t�|ddh�Wd�n1s6wYt�t��t�|gd��Wd�dS1sTwYdS)NZfoor7)r<r;�bar�bad)rr,�raises�
  39  ValueErrorrr@)rCr r r!�test_select_figure_formats_bad�s��"�r`cCs2i}tj|dd�d|vsJ�|dtksJ�dS)NF)Z
  40  import_allr�np)r�import_pylabra)�nsr r r!�test_import_pylab�srdc@sdeZdZGdd�de�Zdd�Zdd�Zdd�Zd	d
  41  �Zdd�Z	d
  42  d�Z
  43  e�e
  44  ���dd��ZdS)�TestPylabSwitchcs$eZdZ�fdd�Zdd�Z�ZS)zTestPylabSwitch.Shellcsd|jj_t���dS)z:Sets up the command history, and starts regular autosaves.z:memory:N)�configZHistoryManagerZ	hist_file�super�init_history)�self�r*r r!rh�s
  45  z"TestPylabSwitch.Shell.init_historycC�dSr=r )ri�guir r r!�
  46  enable_gui�sz TestPylabSwitch.Shell.enable_gui)r+�
  47  __module__�__qualname__rhrm�
  48  __classcell__r r rjr!�Shell�srqcsrddl��fdd�}�j|_�j|_tdd��_tdd��_tj|_|t_tj	|_
  49  dd�t_	tj|_
  50  dd�t_dS)	Nrcs|�jd<dS)N�backend)�rcParams�rr�rr r!�act_mpl�sz-TestPylabSwitch.setup_method.<locals>.act_mplZQtAggrtc_rkr=r ��a�kwr r r!�<lambda>��z.TestPylabSwitch.setup_method.<locals>.<lambda>c_rkr=r rwr r r!rz�r{)rrs�_saved_rcParams�rcParamsOrig�_saved_rcParamsOrigrIr�activate_matplotlib�_save_amrb�_save_ipr�configure_inline_support�	_save_cis)rirvr rur!�setup_method�s
  51  zTestPylabSwitch.setup_methodcCs4|jt_|jt_|jt_ddl}|j	|_
  52  |j|_dS)Nr)
  53  r�rrr�rbr�rr�rr|rsr~r})rirr r r!�teardown_method�szTestPylabSwitch.teardown_methodcCs�|��}|�d�\}}|dksJ�|jdksJ�|�d�\}}|dus%J�|jdks,J�|�d�\}}|dks9J�|jdks@J�|�d�\}}|dusMJ�|jdksTJ�|��\}}|dks`J�|jdksgJ�dS)N�qt�inline�rq�enable_matplotlibZpylab_gui_select�ri�srlrrr r r!�test_qt�s zTestPylabSwitch.test_qtcCs�|��}|�d�\}}|dusJ�|jdksJ�|�d�\}}|dus%J�|jdks,J�|�d�\}}|dks9J�|jdks@J�dS)Nr�r�r�r�r r r!�test_inline�szTestPylabSwitch.test_inlinecCs�|��}|�d�\}}|dusJ�dh}dd�|D�}t�||�|�d�\}}|dus.J�|jj��D]\}}||vrCt|vsBJ�q4t|vsIJ�q4dS)z<Using '%matplotlib inline' twice should not reset formattersr�Nr7cSrSr rTrUr r r!rW�rXz4TestPylabSwitch.test_inline_twice.<locals>.<setcomp>)rqr�rr@rArBr?r)rirCrlrrrYrZrErFr r r!�test_inline_twice�s�z!TestPylabSwitch.test_inline_twicecCs\|��}|�d�\}}|dksJ�|jdksJ�|�d�\}}|dks%J�|jdks,J�dS)Nr��gtk3r�r�r r r!�test_qt_gtk�szTestPylabSwitch.test_qt_gtkcCs�d}d}tjdk}|��}|�|�|r/t�t��
  54  |�|�Wd�n1s)wYn|�|�|�d|�|rZt�t��|�d|�Wd�dS1sSwYdS|�d|�dS)N�)module://matplotlib_inline.backend_inlinez)module://matplotlib_inline.Backend_inline)r�	rr)r�__version_info__rqr�r,r^�RuntimeErrorZrun_line_magic)riZ
  55  all_lowercaseZsome_uppercaseZmpl3_9_1r�r r r!�'test_backend_module_name_case_sensitives"
  56  
  57  ��
  58  "�z7TestPylabSwitch.test_backend_module_name_case_sensitiveN)r+rnror	rqr�r�r�r�r�r��decZskipifr�_matplotlib_manages_backendsr�r r r r!re�s	
  59  recCsdD]	}|tjvsJ�qdS)N)�aggrr;�ps)rZbackend2gui)�kr r r!�test_no_gui_backendss�r�cCst�}d|_t�|�dSr=)rZcanvasrr)rr r r!�test_figure_no_canvas"sr�z$name, expected_gui, expected_backend))r�r��gtk3agg)�gtk4r��gtk4agg)�headlessNr�)�osxr��macosx)r�r��qtagg)�qt5r��qt5agg)�qt6r�r�)�tkr��tkagg)�wxr��wxagg)r�Nr�)�cairoNr�)r;Nr;)r�Nr�)rNr)�templateNr�)r�r�r�)�	gtk3cairor�r�)r�r�r�)�	gtk4cairor�r�)r�r�r�)�nbaggr�r�)�notebookr�r�)r�r�r�)�qtcairor�r�)r�r�r�)�qt5cairor�r�)r�r�r�)�tkcairor�r�)�webaggr�r�)r�r�r�)�wxcairor�r�cCs�t��}|s)|�d�s|�d�s|dvrt��n|dkr d}n	|dkr)||}}t�|�\}}|sB|r8|��nd}|r@|��nd}||ksHJ�||ksNJ�dS)Nr�r�)r�r�r;r�rr�r�r�r�)rr��endswithr,r-�find_gui_and_backendr)�nameZexpected_gui�expected_backendZmpl_manages_backendsrlrrr r r!�test_backend_builtin(s$+��
  60  
  61  r�cCs:t�d�\}}|dus
  62  J�t��rdnd}||ksJ�dS)Nr�r�)rr�r�)rlrrr�r r r!�test_backend_entry_pointjs��r�cCsFt�t��rtnt��t�d�Wd�dS1swYdS)Nzname-does-not-exist)r,r^rr�r��KeyErrorr�r r r r!�test_backend_unknownus"�r�)2�__doc__�binasciir�iorr,ZimportorskiprZuseZmatplotlib.figurerrrZmatplotlib_inliner�numpyraZIPython.core.getipythonrZIPython.core.interactiveshellr	ZIPython.core.displayr
  63  r�r
  64  rZIPython.testingrr�r"r0Zskip_withoutr4r9r>rGrRr[r`rd�objectrer�r��markZparametrizer�r�r�r r r r!�<module>sR
  65  
  66  
  67  
  68  �
  69  	�
  70  &