File: //opt/alt/python37/lib/python3.7/site-packages/html5lib/__pycache__/_inputstream.cpython-37.pyc
B
63)Z�~ � ! @ s d dl mZmZmZ d dlmZmZ d dlmZm Z d dl
Z
d dlZd dlZddl
mZmZmZmZ ddl
mZ ddlmZ d d lmZ yd d
lmZ W n ek
r� eZY nX edd� eD ��Zed
d� eD ��Zedd� eD ��Zeeddg�B ZdZej�rFed dk�r"e� d�dk�s&t!�e�"edd� e#d� d �Z$n
e�"e�Z$e%dddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4g �Z&e�"d5�Z'i Z(G d6d7� d7e)�Z*d8d9� Z+G d:d;� d;e)�Z,G d<d=� d=e,�Z-G d>d?� d?e.�Z/G d@dA� dAe)�Z0G dBdC� dCe)�Z1dDdE� Z2dS )F� )�absolute_import�division�unicode_literals)� text_type�binary_type)�http_client�urllibN� )�EOF�spaceCharacters�asciiLetters�asciiUppercase)�_ReparseException)�_utils)�StringIO)�BytesIOc C s g | ]}|� d ��qS )�ascii)�encode)�.0�item� r �F/opt/alt/python37/lib/python3.7/site-packages/html5lib/_inputstream.py�
<listcomp> s r c C s g | ]}|� d ��qS )r )r )r r r r r r s c C s g | ]}|� d ��qS )r )r )r r r r r r s � >� <u� [----]����]z"\uD800-\uDFFF"i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i�� i��
i��
i�� i�� i�� i�� i��
i��
i�� i�� i�� i�� i�� i�� z[ -
-/:-@\[-`{-~]c @ sH e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dS )�BufferedStreamz�Buffering for streams that do not have buffering of their own
The buffer is implemented as a list of chunks on the assumption that
joining many strings will be slow since it is O(n**2)
c C s || _ g | _ddg| _d S )Nr r )�stream�buffer�position)�selfr r r r �__init__@ s zBufferedStream.__init__c C s@ d}x(| j d | jd � D ]}|t|�7 }qW || jd 7 }|S )Nr r )r r �len)r! �pos�chunkr r r �tellE s
zBufferedStream.tellc C sX || � � kst�|}d}x0t| j| �|k rH|t| j| �8 }|d7 }qW ||g| _d S )Nr r )�_bufferedBytes�AssertionErrorr# r r )r! r$ �offset�ir r r �seekL s zBufferedStream.seekc C sT | j s| �|�S | jd t| j �krF| jd t| j d �krF| �|�S | �|�S d S )Nr r r )r �_readStreamr r# �_readFromBuffer)r! �bytesr r r �readU s
zBufferedStream.readc C s t dd� | jD ��S )Nc S s g | ]}t |��qS r )r# )r r r r r r _ s z1BufferedStream._bufferedBytes.<locals>.<listcomp>)�sumr )r! r r r r'