
    i                     z   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          Zd	 Zd.dZ ej        de           ej        ddd           ej        dddd           ej        dddd           ej        ddd
dd           ej        ddd d!"           ej        d#dd$d%"           ej        d&edd'(           ej        d)ded*+          d,                                                                                                             Zed-k    r e             dS dS )/zSimple 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                 r    t          ddd| z  z
            }t          j        t          j        |           d S )N
      )streamlevel)maxloggingbasicConfigsysstderr)	verbosity	log_levels     ]/Users/user/workspace/sujinbaek/cqa-test-app/venv/lib/python3.11/site-packages/geomet/tool.pyconfigure_loggingr   )   s8    BR)^+,,Isz;;;;;;    jsonc                    |                      d          rt          j        |           }nK|                      d          rt          j        |           }n!t	          j        t          |                     }|dk    r"t          t	          j        |                    }nX|dk    r i }|dk    r||d<   t          j        |fi |}n2|dk    rt          j	        ||          }t          j        ||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kwdss          r   	translater-   .   s    s (z$	-	.	. (yy''4))	%		>>(D4((4((>>?433DD4@@@Mr   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_valuer2   r5   z--wkbr   zHex-encoded WKB output.)r6   r5   z--wktr   zWKT output.z--precisionz.Decimal precision of JSON and WKT coordinates.)typer2   r5   z--indentz+Indentation level for pretty printed output)r2   r7   r5   c                    ||z
  }t          |           t          j        d          }	 t          j        |                                           }n# t          $ r | g}Y nw xY wt          j        d          }		 |D ]}
|
                                }|	                    d|           t          ||||          }|	                    d|           |	                    |           |	                    d           t          j        d           d
S # t          $ r- |                    d           t          j        d	           Y d
S w xY 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)r0   verbosequietr(   r)   r!   r   loggersrcr:   liner'   r+   s                r   clirN   C   sk   ( %Ii   x((Foe$$..00   g "8,,F 	 	D::<<DLLd++++#	  F LLv...LL   LL   3444s$   &A A! A!9BD 3EE__main__)r   Nr   )__doc__binasciir   r   r   r   r   r>   r9   r   r   r   dictCONTEXT_SETTINGSr   r-   commandargumentoptionintrN   __name__ r   r   <module>rZ      sK  "	 	               



  ! ! ! ! ! ! ! ! ! !44*:;;; < < <
   * D%' ' ' u555k4t2GHHHiT0EFFFhFD!# # #g5,. . .g5 " " "m#rCE E Ej$S@B B B! !B BE E" ". .# # GF IH 65' ' !H zCEEEEE r   