R/oV� � @ s� d d l m Z d d l m Z d d l m Z d d d d d d d g Z Gd d � d e d e � � Z d d � Z d d � Z d d � Z d S)� )�absolute_import)� namedtuple� )�LocationParseError�scheme�auth�host�port�path�query�fragmentc s� e Z d Z d Z f Z d d d d d d d � f d d � Z e d d � � Z e d d � � Z e d d � � Z e d d � � Z d d � Z � S)�Urlzg Datastructure for representing an HTTP URL. Used as a return value for :func:`parse_url`. Nc sK | r | j d � r d | } t t | � j | | | | | | | | � S)N�/)� startswith�superr �__new__)�clsr r r r r r r )� __class__� �/url.pyr s !zUrl.__new__c C s | j S)z@For backwards-compatibility with urlparse. We're nice like that.)r )�selfr r r �hostname s zUrl.hostnamec C s3 | j p d } | j d k r/ | d | j 7} | S)z)Absolute path including the query string.r N�?)r r )r Zurir r r �request_uri s zUrl.request_uric C s$ | j r d | j | j f S| j S)z(Network location including host and portz%s:%d)r r )r r r r �netloc'