
    ը	f                     h   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d Z
d Zd Zd Zd	 Zed
k(  r ej                   ej"                  d         Zed    red    dk(  r ej&                  d        e j(                  j+                  e j(                  j-                  e            Ze j(                  j1                  e      d   Z e
e j(                  j5                  ed            \  ZZZej=                  d      r0 ej>                  e      j@                  Z!ed    dv re!dz  Z!ne!dz  Z!ndZ! eee        ee        eee!        ee j(                  j5                  ed      ee!       ed    dk(  r-e j(                  jE                  e      r e jF                  e        ej&                  d        yy)    N)core)task)CalledModuleErrorc                 .   d x}x}}t        | d      }|$t        j                  dj                  |              |j	                         }|D ]  }|j                  d      r|j                  d      j                  dd      d   j                         j                  dd      \  }}|t        j                  |<   ||dk(  rt        |      }||d	k(  rt        |      }||d
k(  s|} |j                          ||t        j                  d       |||fS )NrUnable to open file '{0}'#
   r   =GRASS_RENDER_WIDTHGRASS_RENDER_HEIGHTGRASS_LEGEND_FILEzUnknown monitor size)opengrassfatalformat	readlines
startswithrstripsplitstriposenvironintclose)	env_filewidthheightlegfilefdlineslinekvs	            (/usr/lib/grass83/etc/d.mon/render_cmd.pyread_env_filer'      s   ##E#FW	h	B	z/66x@ALLNE 
??3{{4 &&sA.q1779??QG1

1=Q"66FE>a#88VF?q$77G
 HHJ}*+&'!!    c                    t         j                  j                         }|r||d<   	 t        j                  | d   fd|i| d    y # t
        $ r/}t        j                  dj                  |      d       Y d }~y d }~ww xY w)NGRASS_RENDER_FILEr   envr   zUnable to render: {0})r   r   copyr   run_commandr   debugr   )cmdmapfiler+   es       r&   renderr2   &   sr    
**//
C#* :#a&4c4SV4 :+2215q99:s   A 	A>%A99A>c                    |d   dv ry |d   dk(  rdnd}t        | |      }|$t        j                  dj                  |              |dk(  rt	        j
                  dd       }|r |j                  dj                  |             |r |j                  d	j                  |             |j                  d
j                  t        j                  |                   |j                  d       n|j                  d       |j                          y )Nr   )zd.colorlistzd.fontz
d.fontlistzd.framezd.infod.monz
d.out.filezd.redrawz	d.to.rastzd.what.rastzd.what.vectzd.whered.erasewar   GRASS_RENDER_FRAMEz# GRASS_RENDER_FRAME={0}
z# GRASS_RENDER_FILE={0}
 r
    )r   r   r   r   r   getenvwritejoingtaskcmdtuple_to_listr   )cmd_filer/   r0   moder!   frames         r&   update_cmd_filerC   2   s    
1v   	a&I%33D	h	B	z/66x@As{		.5HH188?@HH077@A
%00567

HHJr(   c                    t        j                         }t        |d   |d   z
        }t        |d   |d   z
        }||z  |d<   || z  |d<   t        t	        ||d   z              |d<   t        t	        ||d   z              |d<   |d   |d   z  |d	<   g d
}d}|D ]  \  }}||d||   dz  } |t
        j                  d<   y )Nr1   r6   nsnsresewresrowscolscells)
)proj
projection)zonerN   )northrE   )southrF   )eastr1   )westr6   )rJ   rJ   )rI   rI   )z	e-w resolrH   )z	n-s resolrG   r:   z: ;GRASS_REGION)r   regionabsr   roundr   r   )	r   r   rU   mapwidth	mapheightkwdatagrass_regionwkeyrkeys	            r&   adjust_regionr^   V   s    \\^F6#;,-HF3K&+-.I&(F7O&F7Oy6'?:;<F6Nx&/9:;F6NVnvf~5F7OF L 9
dT6$<889 ".BJJ~r(   c                    d }| d   dk(  rXd| d   vrQd| d   vs| d   d   dk(  r?t         j                  j                         rt         j                  j	                  d       d}|rt        j                  t              j                  d	z   }t        |d
      }	 t         j                  j                         }|sn|j	                  |       3|j                          || d   |<   y y )Nr   zd.texttextr   input-zJ
Please enter text instructions. Enter EOF (ctrl-d) on last line to quit.
dirz.txtr6   )sysstdinisattystderrr<   tempfileNamedTemporaryFilepathnamer   readliner   )r/   opttmpfiler!   r#   s        r&   
read_stdinrp   w   s    
C 	A(#a& CF"c!fWo&<99JJ> 
--$7<<vE'399%%'DHHTN	 
 	
As r(   __main__r   r4   r+   wxrc   )z
d.barscalezd.legendzd.northarrowzd.legend.vectz.pngz.ppmr/   r5   )$r   re   ri   grass.scriptr   r   r   r>   grass.exceptionsr   r'   r2   rC   r^   rp   __name__cmdstring_to_tupleargvr/   exitrk   dirnameabspath__file__r   monr=   r   r   r    r   rj   rl   r0   existsremove r(   r&   <module>r      s   	 
  & & ."4: H.B6 z
"%
"
"388A;
/Cq6SVw&77??277??845D
''--
b
!C*277<<e+DEE67
~~d-(--$7<<q6PPvGvGeV$sO
3BGGLLu-sG<
1vrww~~g6		'CHHQK3 r(   