�
}�;e̷ � � � d Z eZg d�ZddlmZ ddlmZ ddlm Z m
Z
ddlmZm
Z
mZmZmZ dd lZej( d d
k\ reZeZneZeZddlmZ ddlmZ dd
lm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' e(� Z) G d� d� Z* G d� d� Z+ G d� de+� Z G d� de� Z, G d� de� Z- G d� de� Z. G d� de+� Z/ G d� d e� Z0 G d!� d"e� Z1 G d#� d$e1� Z2 G d%� d&e� Z3y # e$ r ddlmZmZmZ ddlm
Z
mZ Y ��w xY w)'z)Common support for web service resources.)�
Collection�CollectionWithKeyBasedLookup�Entry�NamedOperation�Resource�ServiceRoot� )�Message)�BytesIO)�dumps�loads)�parse_qs�unquote� urlencode�urljoin�urlparse)r r r
)r r N� )r )�__version__)�Browser�RestfulHttp)�DatetimeJSONEncoder)� HTTPError)�URIc �$ � e Zd ZdZd� Zdd�Zd� Zy)�HeaderDictionarya� A dictionary that bridges httplib2's and wadllib's expectations.
httplib2 expects all header dictionary access to give lowercase
header names. wadllib expects to access the header exactly as it's
specified in the WADL file, which means the official HTTP header name.
This class transforms keys to lowercase before doing a lookup on
the underlying dictionary. That way wadllib can pass in the
official header name and httplib2 will get the lowercased name.
c � � || _ y �N)�wrapped_dictionary)�selfr s �=/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py�__init__zHeaderDictionary.__init__K s
� �"4��� Nc �T � | j j |j � � S �z2Retrieve a value, converting the key to lowercase.)r �get�lower)r �key�defaults r r$ zHeaderDictionary.getN s � ��&�&�*�*�3�9�9�;�7�7r! c �X � | j |t � }|t u rt |� �|S r# )r$ �missing�KeyError)r r& |