o
    pfF                     @   s2   d dl Z d dlmZ d dlmZ G dd dZdS )    N)Config)Tilec                   @   sN   e Zd ZdZdedejfddZdede	fdd	Z
d
ejdede	fddZdS )Kilnz
    The kiln is what actually generates the tiles, using the config to compute SQL,
    and a DB connection to execute it
    config
connectionc                 C   s,   || _ || _d| j_d | j_| jd d S )NTz)SET default_transaction_read_only = true;)_Kiln__config_Kiln__connection
autocommitprepare_thresholdexecute)selfr   r    r   F/home/ertert/spirit/venv/lib/python3.10/site-packages/tilekiln/kiln.py__init__   s
   zKiln.__init__tilereturnc                 C   sV   | j  }d}| j|D ]
}|| ||7 }qW d    |S 1 s$w   Y  |S )N    )r   cursorr   layer_queries_Kiln__render_layer)r   r   cursresultsqlr   r   r   render   s   
zKiln.renderr   r   c                 C   s*   |j |dd |D ]}|d   S td)NT)binaryr   z5No rows in tile query result, should never reach here)r   RuntimeError)r   r   r   recordr   r   r   __render_layer   s   zKiln.__render_layerN)__name__
__module____qualname____doc__r   psycopg
Connectionr   r   bytesr   Cursorstrr   r   r   r   r   r      s
    	r   )r"   tilekiln.configr   tilekiln.tiler   r   r   r   r   r   <module>   s    