3
���hJH � @ sb d Z ddlZddlmZ ddlZddlmZmZmZ ddl Z ddl
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZ ddlZddl m!Z! ddl"m#Z#m$Z$ dd l%m&Z& dd
l'm(Z( e$� Z)e*ee e �Z+e+j,d� e�r
ddlm-Z- e.d
�dd�Z/e!e e!e d�dd�Z0dd
�dd�Z1e!e e!e d�dd�Z2dd� Z3e!e.d�dd�Z4d6e!ee5 ee5 ee5 eee5ef d�dd�Z6e5e5d�d d!�Z7d"d#d$d%d&�Z8eee5ee5e5f f eee5 ee5e5f f d'�d(d)�Z9e!ee5 ee5 d*�d+d,�Z:d7e5eee5ee5ef f e.e.d/�d0d1�Z;G d2d3� d3ej<e�Z=G d4d5� d5ej>�Z?dS )8zCommon IO api utilities� N)�abc)�BufferedIOBase�BytesIO� RawIOBase)�IO�
TYPE_CHECKING�Any�AnyStr�Dict�List�Mapping�Optional�Tuple�Type�Union)�urljoin�urlparse�uses_netloc�uses_params�
uses_relative)�FilePathOrBuffer)�_get_lzma_file�_import_lzma)�import_optional_dependency)�is_file_like� )�IOBase)�returnc C s t | t�sdS t| �jtkS )z�
Check to see if a URL has a valid protocol.
Parameters
----------
url : str or unicode
Returns
-------
isurl : bool
If `url` has a valid protocol return True otherwise False.
F)�
isinstance�str� parse_url�scheme�_VALID_URLS)�url� r$ �2/tmp/pip-build-5_djhm0z/pandas/pandas/io/common.py�is_url1 s
r& |