�
Ϫ�f� � �� � d Z ddlmZ ddlmZmZmZ ddl m
Z dj e
dd� D � cg c] } e| � j d� �� c} � Zd � Z G d
� d� Zyc c} w )
z(
L{URLPath}, a representation of a URL.
� )�cast)�quote�unquote�
urlunsplit)�URL� � � �asciic �2 �� d| z �t �fd��fd�� S )a
Attriute declaration to preserve mutability on L{URLPath}.
@param name: a public attribute name
@type name: native L{str}
@return: a descriptor which retrieves the private version of the attribute
on get and calls rerealize on set.
�_c � �� t | �� S �N)�getattr)�self�privateNames ��8/usr/lib/python3/dist-packages/twisted/python/urlpath.py�<lambda>z"_rereconstituter.<locals>.<lambda> s �� �W�T�;�/� r c � �� t | �t |t � r|n|j d� � xs | j � S )N�charmap)�setattr�
isinstance�bytes�encode�
_reconstitute)r �valuer s �r r z"_rereconstituter.<locals>.<lambda> s@ �� ����#�E�5�1��u�|�|�I�7N�
�
$�
�!�!�#�
r )�property)�namer s @r �_rereconstituterr s# �� � ��*�K��/�
�
�
r c � � e Zd ZdZ dd�Zd� Z ed� Z ed� Z ed� Z ed� Z
ed� Zed � � Z
dd
�Zed� � Zed� � Zed
� � Zd� Zdd�Zdd�Zdd�Zdd�Zd� Zdefd�Zdefd�Zy)�URLPatha�
A representation of a URL.
@ivar scheme: The scheme of the URL (e.g. 'http').
@type scheme: L{bytes}
@ivar netloc: The network location ("host").
@type netloc: L{bytes}
@ivar path: The path on the network location.
@type path: L{bytes}
@ivar query: The query argument (the portion after ? in the URL).
@type query: L{bytes}
@ivar fragment: The page fragment (the portion after # in the URL).
@type fragment: L{bytes}
c �z � |xs d| _ || _ |xs d| _ || _ || _ | j � y )Ns http� /)�_scheme�_netloc�_path�_query� _fragmentr )r �scheme�netloc�path�query�fragments r �__init__zURLPath.__init__= s< |