U
    g?                     @   s   d dl Z d dlmZmZ d dlZd dlmZ e dZdd Z	ej
dddd	Zej
ddd
Zdd Zdeeeeeej f dddZdS )    N)OptionalTuple)fieldsclic                   C   s   t t jddd d S )NzgWARNING: passphrase is empty. If you intended to use an unencrypted private key, use --no-pass instead.T)Zbold)clickZechostyle r   r   5/tmp/pip-unpacked-wheel-owvgwkas/pyhanko/cli/utils.py_warn_empty_passphrase   s    r
   TF)existsreadabledir_okay)writabler   c                 C   sT   z,t | }|st|dkr$|d W S |W S W n" tk
rN   td|  Y nX d S )Nr      z=Sig field parameter PAGE should be a nonzero integer, not %s.)int
ValueErrorr   ClickException)pagepage_ixr   r   r	   _index_page   s    

r   )specrequire_full_specreturnc           
      C   s   z|  d\}}}W n0 tk
rD   |r4tdn| d f Y S Y nX t|}ztt| d\}}}}	W n tk
r   tdY nX |tj||||||	fdfS )N/z;Sig field spec should be of the form PAGE/X1,Y1,X2,Y2/NAME.,z9Sig field parameters X1,Y1,X2,Y2 should be four integers.)Zsig_field_nameZon_pagebox)	splitr   r   r   r   mapr   r   SigFieldSpec)
r   r   r   r   namer   x1y1Zx2y2r   r   r	   parse_field_location_spec,   s(    
  
r#   )T)loggingtypingr   r   r   Zpyhanko.signr   	getLoggerloggerr
   PathZreadable_fileZwritable_filer   strboolr   r#   r   r   r   r	   <module>   s   

  