o
    EDi                     @   s,  d Z ddlmZ ddlmZ ddlZddlZddlZddlZddlm	Z	m
Z
mZ eddgdZd	d
 Zd1ddZejdedejddddejdddddejdddddejdddddd ejd!dd"d#d$ejd%dd&d'd$ejd(edd)d*ejd+ded,d-d.d/ Zed0kre  dS dS )2zSimple CLI for converting between WKB/WKT and GeoJSON

Example usage:

  $ echo "POINT (0.9999999 0.9999999)"   > | geomet --wkb -   > | geomet --wkt --precision 7 -
  POINT (0.9999999 0.9999999)

    )a2b_hex)b2a_hexN)utilwkbwktz-hz--help)help_option_namesc                 C   s&   t ddd|   }tjtj|d d S )N
      )streamlevel)maxloggingbasicConfigsysstderr)	verbosity	log_level r   D/var/www/Datamplify/venv/lib/python3.10/site-packages/geomet/tool.pyconfigure_logging)   s   r   jsonc                 C   s   |  drt| }n|  drt| }ntt| }|dkr*tt|}|S |dkrCi }|dkr8||d< tj|fi |}|S |dkrMt	||}tj||dd}|S )	N{)GLMPr   r   r   decimalsT)indent	sort_keys)

startswithr   loadsr   r   r   r   dumpsr   
round_geom)textoutput_formatr   	precisiongeomoutputkwdsr   r   r   	translate.   s$   


r*   z3Convert between WKT or hex-encoded WKB and GeoJSON.)
short_helpcontext_settingsinput-F)defaultrequiredz	--verbosez-vTzIncrease verbosity.)counthelpz--quietz-qzDecrease verbosity.z--jsonr%   zJSON output.)
flag_valuer/   r2   z--wkbr   zHex-encoded WKB output.)r3   r2   z--wktr   zWKT output.z--precisionz.Decimal precision of JSON and WKT coordinates.)typer/   r2   z--indentz+Indentation level for pretty printed output)r/   r4   r2   c                 C   s   || }t | td}z	t|  }W n ty"   | g}Y nw td}	z/|D ]$}
|
 }|	d| t
||||d}|	d| |	| |	d q+td W d
S  tyk   |d td	 Y d
S w )zjConvert text read from the first positional argument, stdin, or
    a file to GeoJSON and write to stdout.geometstdoutz	Input: %r)r%   r   r&   z
Output: %r
r   zFailed. Exception caught   N)r   r   	getLoggerclick	open_file	readlinesIOErrorget_text_streamstripdebugr*   writer   exit	Exception	exception)r-   verbosequietr%   r&   r   r   loggersrcr6   liner$   r(   r   r   r   cliC   s6   




rJ   __main__)r   Nr   )__doc__binasciir   r   r   r   r   r:   r5   r   r   r   dictCONTEXT_SETTINGSr   r*   commandargumentoptionintrJ   __name__r   r   r   r   <module>   sJ   




$
