ó
 m[c        
   @` s¢  d  Z  d d l m Z m Z m Z m Z d d l Z d d l m Z d d l	 Z	 d d l
 Z
 d d l m Z d Z d Z d Z d	 Z d
 Z e	 j j d ƒ Z d e
 j k rÇ e Z e j e d e ƒ nYd e
 j k rò e Z e j e d e ƒ n.d
 e
 j k re Z e j e d e ƒ nd	 e
 j k rHe Z e j e d e ƒ nØ e d d k r±e d k rze j e d e ƒ n" e d k rœe j e d e ƒ n  e j e d ƒ Z no e d d k re d k rãe j e d e ƒ n" e d k re j e d e ƒ n  e j e d ƒ Z n d Z d „  Z d „  Z e e e g k rNe ƒ  ne e e e g k rme ƒ  nã e d k r;e d d k r¿e e f e e f e e f e e f e e f g Z n3 e e f e e f e e f e e f e e f g Z x[ e D]/ \ Z Z y e ƒ  Wn e k
 r&qùn XPqùWe d ƒ ‚ n e  d j! e ƒ ƒ ‚ e d e d f d e d f d e d f d e d f ƒ Z" t# ƒ  r˜d n d Z$ d S(   u!  
Qt binding and backend selector.

The selection logic is as follows:
- if any of PyQt5, PySide2, PyQt4 or PySide have already been imported
  (checked in that order), use it;
- otherwise, if the QT_API environment variable (used by Enthought) is
  set, use it to determine which binding to use (but do not change the
  backend based on it; i.e. if the Qt4Agg backend is requested but QT_API
  is set to "pyqt5", then actually use Qt4 with the binding specified by
  ``rcParams["backend.qt4"]``;
- otherwise, use whatever the rcParams indicate.
i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   LooseVersion(   t   rcParamsu   PyQt5u   PySide2u   PyQt4v2u   PySideu   PyQt4u   QT_APIu   backend.qt5u   backend.qt4u   backendu   Qt5Aggu   pyqt5u   pyside2u   Qt4Aggu   pyqt4u   pysidec           C` s®   t  t k rX d d l m a m a m a t j a t j t _	 t j
 t _ t j t _ n= t  t k r‰ d d l m a m a m a m a n t d ƒ ‚ t j j a d „  a d  S(   Ni    (   t   QtCoret   QtGuit	   QtWidgets(   R   R   R   t   __version__u.   Unexpected value for the 'backend.qt5' rcparamc           S` s   t  S(   N(   t   True(    (    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyt   is_pyqt5P   s    (   t   QT_APIt   QT_API_PYQT5t   PyQt5R   R   R   t   PYQT_VERSION_STRR	   t
   pyqtSignalt   Signalt   pyqtSlott   Slott   pyqtPropertyt   Propertyt   QT_API_PYSIDE2t   PySide2t
   ValueErrort   QFileDialogt   getSaveFileNamet   _getSaveFileNameR   (    (    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyt   _setup_pyqt5A   s    	%c          C` s¸   d „  }  t  t k r% |  d d ƒ n€ t  t k r} d d l m a m a m a m } | d k  rn t d ƒ ‚ n  t j	 j
 a n( t  t k r™ |  d d ƒ n t d	 ƒ ‚ t a d
 „  a d  S(   Nc         S` sì   d d d d d d d g } y d d  l  } Wn t k
 r> n: Xx6 | D]. } y | j | |  ƒ WqF t k
 rs qF XqF Wd d	 l m a m a t j a t t	 d
 ƒ k  r¸ t d ƒ ‚ n  t j
 t _ t j t _ t j t _ t j j a d  S(   Nu   QDateu	   QDateTimeu   QStringu   QTextStreamu   QTimeu   QUrlu   QVarianti    (   R   R   u   4.6u   PyQt<4.6 is not supported(   t   sipt   ImportErrort   setapiR   t   PyQt4R   R   R   R	   R   R   R   R   R   R   R   R   t   getSaveFileNameAndFilterR   (   t   apit	   _sip_apisR   t   _sip_api(    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyt   _setup_pyqt4_internalW   s&    	R"   i   i    (   R   R   R	   t   __version_info__i   i   u   PySide<1.0.3 is not supportedu.   Unexpected value for the 'backend.qt4' rcparamc           S` s   t  S(   N(   t   False(    (    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyR   ‚   s    (   i   i    i   (   R   t   QT_API_PYQTv2t   QT_API_PYSIDEt   PySideR   R   R	   R&   R   R   R   R   t   QT_API_PYQTR   R   R   (   R%   R&   (    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyt   _setup_pyqt4T   s    	"u   Failed to import any qt bindingu   Unexpected QT_API: {}t   pyqti   t   pysidet   pyqt5i   t   pyside2(%   t   __doc__t
   __future__R    R   R   R   t   sixt   distutils.versionR   t   ost   syst
   matplotlibR   R   R   R(   R)   R+   t   environt   gett
   QT_API_ENVt   modulesR   t   dictt   __setitem__t   __getitem__t   NoneR   R,   t   _candidatest   _setupR   t   AssertionErrort   formatt   ETSR   t   QT_RC_MAJOR_VERSION(    (    (    s<   lib/python2.7/site-packages/matplotlib/backends/qt_compat.pyt   <module>   s„   "		2

								