ó
mÜJ]c           @` sÁ   d  Z  d d l m Z m Z m Z m Z d d l Z e j e ƒ Z	 d d l
 m Z d d l Z d d l m Z i d d 6d d	 6Z d Z d e f d „  ƒ  YZ d d „ Z d d e d „ Z d S(   uD    Utility functions for helping with operations involving browsers.

i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   abspathi   (   t   settingsu   tabi   u   windowu   DummyWebBrowseru   get_browser_controlleru   viewt   DummyWebBrowserc           B` s   e  Z d  Z d e d „ Z RS(   u(    A "no-op" web-browser controller.

    i    c         C` s   d S(   u0    Receive standard arguments and take no action. N(    (   t   selft   urlt   newt	   autoraise(    (    s1   lib/python2.7/site-packages/bokeh/util/browser.pyt   open4   s    (   t   __name__t
   __module__t   __doc__t   TrueR   (    (    (    s1   lib/python2.7/site-packages/bokeh/util/browser.pyR   0   s   c         C` sO   t  j |  ƒ }  |  d k	 rE |  d k r3 t ƒ  } qK t j |  ƒ } n t } | S(   uV   Return a browser controller.

    Args:
        browser (str or None) : browser name, or ``None`` (default: ``None``)
            If passed the string ``'none'``, a dummy web browser controller
            is returned

            Otherwise, use the value to select an appropriate controller using
            the ``webbrowser`` standard library module. In the value is
            ``None`` then a system default is used.

    .. note::
        If the environment variable ``BOKEH_BROWSER`` is set, it will take
        precedence.

    Returns:
        controller : a web browser controller

    u   noneN(   R   t   browsert   NoneR   t
   webbrowsert   get(   R   t
   controller(    (    s1   lib/python2.7/site-packages/bokeh/util/browser.pyt   get_browser_controller8   s    u   samec         C` s¿   y# i d d 6d d 6d d 6| } Wn! t  k
 rF t d | ƒ ‚ n X|  j d ƒ r_ |  } n d	 t |  ƒ } y) t | ƒ } | j | d
 | d | ƒWn  t t f k
 r´ ‚  n n Xd S(   u   Open a browser to view the specified location.

        Args:
            location (str) : Location to open
                If location does not begin with "http:" it is assumed
                to be a file path on the local filesystem.
            browser (str or None) : what browser to use (default: None)
                If ``None``, use the system default browser.
            new (str) : How to open the location. Valid values are:

                ``'same'`` - open in the current tab

                ``'tab'`` - open a new tab in the current window

                ``'window'`` - open in a new window
            autoraise (bool) : Whether to automatically raise the location
                in a new browser window (default: True)

        Returns:
            None

        i    u   samei   u   windowi   u   tabuT   invalid 'new' value passed to view: %r, valid values are: 'same', 'window', or 'tab'u   httpu   file://R	   R
   N(   t   KeyErrort   RuntimeErrort
   startswithR   R   R   t
   SystemExitt   KeyboardInterrupt(   t   locationR   R	   R
   R   R   (    (    s1   lib/python2.7/site-packages/bokeh/util/browser.pyt   viewX   s    #	(   u   DummyWebBrowseru   get_browser_controlleru   view(   R   t
   __future__R    R   R   R   t   loggingt	   getLoggerR   t   logt   os.pathR   R   R   t	   NEW_PARAMt   __all__t   objectR   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/bokeh/util/browser.pyt   <module>	   s   "   