U
    g$
                     @   s   d dl Z d dlZd dlmZ d dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ G dd	 d	e jZd
ZedddZedd ZdZdS )    N)contextmanager)logger)	LogConfigStdLogOutput)misc)LayoutError)SigningErrorc                   @   s   e Zd ZedddZdS )NoStackTraceFormatter)returnc                 C   s   dS )N  )selfeir   r   7/tmp/pip-unpacked-wheel-owvgwkas/pyhanko/cli/runtime.pyformatException   s    z%NoStackTraceFormatter.formatExceptionN)__name__
__module____qualname__strr   r   r   r   r   r	      s   r	   z4%(asctime)s - %(name)s - %(levelname)s - %(message)s)verbosec                 C   s   |   D ]\}}t|}||j t|jtrlttjkrJt	t
j}nt	 }|rbtt}qtt}nt|j}tt}|| || qd S )N)itemslogging	getLoggersetLevellevel
isinstanceoutputr   STDOUTStreamHandlersysstdout	FormatterLOG_FORMAT_STRINGr	   FileHandlersetFormatter
addHandler)Zlog_configsr   moduleZ
log_configZ
cur_loggerhandler	formatterr   r   r   logging_setup   s    




r)   c               
   c   sx  d  } }zd V  W n< t jk
r.    Y n$ tjk
r` } z|}d|j } W 5 d }~X Y n tjk
r } z|}d|j } W 5 d }~X Y n tjk
r } z|}d|j } W 5 d }~X Y n tk
r } z|}d|j } W 5 d }~X Y n^ tk
r& } z|}d|j } W 5 d }~X Y n, t	k
rP } z|}d} W 5 d }~X Y nX |d k	rtt
j| |d t | d S )NzcFailed to read PDF file in strict mode; rerun with --no-strict-syntax to try again.
Error message: zFailed to read PDF file: zFailed to write PDF file: z*Error raised while producing signed file: z/Error raised while producing signature layout: zGeneric processing error.)exc_info)clickZClickExceptionr   ZPdfStrictReadErrormsgZPdfReadErrorZPdfWriteErrorr   r   	Exceptionr   error)r,   	exceptioner   r   r   pyhanko_exception_manager.   s6    

r1   zpyhanko.yml)r   r   
contextlibr   r+   Zpyhanko.cli.utilsr   Zpyhanko.config.loggingr   r   Zpyhanko.pdf_utilsr   Zpyhanko.pdf_utils.layoutr   Zpyhanko.sign.generalr   r!   r	   r"   boolr)   r1   ZDEFAULT_CONFIG_FILEr   r   r   r   <module>   s   
"