�
Ϫ�f� � � � d Z dZddlmZ ddlmZ ddlmZmZ ddl m
Z
mZ ddlm
Z
mZ G d� d e� Zd
ededed
efd�Z ddeded
e
fd�Z ddeded
e
fd�Zy)z*
Utility implementations of L{IResource}.
)� errorPage�notFound� forbidden� )�cast)�http)�IRenderable�IRequest)� IResource�Resource)�
renderElement�tagsc �X � � e Zd ZdZdedededdf� fd�Zdedefd �Z d
e
dedefd�Z� xZ
S )�
_ErrorPagea!
L{_ErrorPage} is a resource that responds to all requests with a particular
(parameterized) HTTP status code and an HTML body containing some
descriptive text. This is useful for rendering simple error pages.
@see: L{twisted.web.pages.errorPage}
@ivar _code: An integer HTTP status code which will be used for the
response.
@ivar _brief: A short string which will be included in the response body as
the page title.
@ivar _detail: A longer string which will be included in the response body.
�code�brief�detail�returnNc �L �� t �| � � || _ || _ || _ y )N)�super�__init__�_code�_brief�_detail)�selfr r r � __class__s ��3/usr/lib/python3/dist-packages/twisted/web/pages.pyr z_ErrorPage.__init__( s# �� �
������
� ���"��� �requestc �� � |j | j � |j dd� t |t t
t
j t
j t
j | j � d| j � �� � t
j t
j | j � t
j | j � � � � � S )z�
Respond to all requests with the given HTTP status code and an HTML
document containing the explanatory strings.
s content-types text/html; charset=utf-8z - )�setResponseCoder � setHeaderr r r r
�html�head�titler �body�h1�pr )r r s r �renderz_ErrorPage.render. s� � �
����
�
�+����/�+F�G���
��� � ��I�I�d�j�j�D�J�J�<�s�4�;�;�-�)H�I�J��I�I�d�g�g�d�k�k�2�D�F�F�4�<�<�4H�I��
�
�
r �pathc � � | S )z�
Handle all requests for which L{_ErrorPage} lacks a child by returning
this error page.
@param path: A path segment.
@param request: HTTP request
� )r r) r s r �getChildz_ErrorPage.getChildC s � � �r )�__name__�
__module__�__qualname__�__doc__�int�strr r �objectr( �bytesr r, �
__classcell__)r s @r r r sV �� �� #�S� #�� #�c� #�d� #�
�h�
�6�
�* �U� �X� �(� r r r r r r c � � t | ||� S )az
Build a resource that responds to all requests with a particular HTTP
status code and an HTML body containing some descriptive text. This is
useful for rendering simple error pages.
The resource dynamically handles all paths below it. Use
L{IResource.putChild()} to override a specific path.
@param code: An integer HTTP status code which will be used for the
response.
@param brief: A short string which will be included in the response
body as the page title.
@param detail: A longer string which will be included in the
response body.
@returns: An L{IResource}
)r )r r r s r r r O s � �( �d�E�6�*�*r �messagec �8 � t t j | |� S )a
Generate an L{IResource} with a 404 Not Found status code.
@see: L{twisted.web.pages.errorPage}
@param brief: A short string displayed as the page title.
@param brief: A longer string displayed in the page body.
@returns: An L{IResource}
)r r � NOT_FOUND�r r7 s r r r f s � � �d�n�n�e�W�5�5r c �8 � t t j | |� S )a
Generate an L{IResource} with a 403 Forbidden status code.
@see: L{twisted.web.pages.errorPage}
@param brief: A short string displayed as the page title.
@param brief: A longer string displayed in the page body.
@returns: An L{IResource}
)r r � FORBIDDENr: s r r r x s � � �d�n�n�e�W�5�5r N)zNo Such Resourcez%Sorry. No luck finding that resource.)zForbidden ResourcezSorry, resource is forbidden.)r0 �__all__�typingr �twisted.webr �twisted.web.iwebr r �twisted.web.resourcer
r �twisted.web.templater r
r r1 r2 r r r r+ r r �<module>rC s� ��
��� � � 2� 4� 4�5�� 5�p+�C� +�� +�S� +�Z� +�0 $�:�6��6�
�6� �6�& |