File: //usr/lib/python3/dist-packages/certbot/_internal/display/__pycache__/obj.cpython-311.pyc
�
E��c�W � � � d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm
Z
dd
lmZ ddlm
Z
ddlmZ dd
lmZ ddlmZ ddlmZ ej e� � ZdZ dZ dZ G d� d� � Z e� � Z e
d� � Z G d� d� � Z G d� d� � Zdeeef fd�Z deeef ddfd�Z!dS )zFThis modules define the actual display implementations used in Certbot� N)�Any)�Iterable)�List)�Optional)�TextIO)�Tuple)�TypeVar)�Union)�errors)� constants)� completer)�util)�os�ok�cancelzO- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c � � e Zd Zdd�ZdS )�_DisplayService�returnNc � � d | _ d S �N��display)�selfs �?/usr/lib/python3/dist-packages/certbot/_internal/display/obj.py�__init__z_DisplayService.__init__) s
� �LP����� )r N)�__name__�
__module__�__qualname__r � r r r r ( s. � � � � � �Q� Q� Q� Q� Q� Qr r �Tc �p � � e Zd ZdZdededdf� fd�Z d'd ed
ededededdfd
�Z d(d ede e
eeef e
e f dee dee dee dee
dee dededeee
f fd�Z d)d edee dee dededeeef fd�Z d*d edededee dee dededefd�Z d)d ede
e dee
e dee dededeee
e f fd�Zdedee dee dedee f
d�Zdedefd �Z d)d edee dee dededeeef fd!�Zd"ee ee
f de
e de
e fd#�Zd ede e
eeef e
e f ddfd$�Zd%e
deee
f fd&�Z� xZS )+�FileDisplayzFile-based display.�outfile�force_interactiver Nc �r �� t � � � � � || _ || _ d| _ d S )NF)�superr r$ r% �skipped_interaction)r r$ r% � __class__s �r r zFileDisplay.__init__6 s6 �� �
�����������!2���#(�� � � r TF�message�pause�wrap�decoratec �� � |rt j |� � }t � d|� � | j � |rdnddz |rdndz � t j t |�� � � � | j �
� � |rG| � |� � rt j d� � d S t � d� � d S d S )
a Displays a notification and waits for user acceptance.
:param str message: Message to display
:param bool pause: Whether or not the program should pause for the
user's confirmation
:param bool wrap: Whether or not the application should wrap text
:param bool force_interactive: True if it's safe to prompt the user
because it won't cause any workflow regressions
:param bool decorate: Whether to surround the message with a
decorated frame
�Notifying user: %s�{line}{frame}{line}� �{msg}{line}�
{frame}{line}��line�frame�msgzPress Enter to Continuez!Not pausing for user confirmationN)
r �
wrap_lines�logger�debugr$ �write�formatr �linesep�
SIDE_FRAME�flush�
_can_interact�input_with_timeout)r r* r+ r, r% r- s r �notificationzFileDisplay.notification<