
    tf                     F    d dl Z d dlmZ ed        Zd Zd Zd Zd Zd Zy)	    N)contextmanagerc              #      K   | j                  d       	 d | j                          y#  | j                           xY ww)a  Contextify SQLite transactions. Use with auto-commit mode. E.g.:
    conn = sqlite3.connect("my.db", isolation_level=None)

    Parameters
    ----------
    conn : SQLite connection
        SQLite connection

    Yields
    ------
    None
        Nothing
    BEGINN)executecommitrollback)conns    [/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/clodius/cli/utils.pytransactionr      s9       	LL
 		s   A * A =A c                 Z    t        | ||      \  }}t        | |dz   |dz         \  }}||||fS )zbconvert Google-style Mercator tile coordinate to
    (minlat, maxlat, minlng, maxlng) bounding box   )get_lng_lat_from_tile_pos)zoomxyminlngminlatmaxlngmaxlats          r
   get_tile_boxr       s?     /tQ:NFF.tQUAEBNFFFFF++    c                     t         j                  dt         j                  z  |z  d| z  z  z
  }t        |      }|dz  t         j                  z  }dd|z  d| z  z  z   }||fS )zZconvert Google-style Mercator tile coordinate to
    (lng, lat) of top-left corner of tile        f@g     f     v@)mathpigudermannian)r   r   r   lat_radlatlngs         r
   r   r   *   sf    
 ggDGGa1955G7#G
E/DGG
#C 519T	*
*C:r   c                     |t         j                  z  dz  }t        |      }d|z  | dz   z  dz  }d|z  t         j                  |z
  z  dt         j                  z  z  }||fS )z[convert lng/lat to Google-style Mercator tile coordinate (x, y)
    at the given zoom levelr   r   r   )r   r   inv_gudermannian)r!   r    r   r   r   r   s         r
   get_tile_pos_from_lng_latr$   :   sd     DGGme#Gw'G	T	S5[!E)A	T	TWWw&'1tww;7Aq6Mr   c                     dt        j                  t        j                  |             z  t         j                  dz  z
  S Nr   )r   atanexpr   )r   s    r
   r   r   H   s+    tyy!%%!33r   c                     t        j                  t        j                  | t         j                  dz  z   dz              S r&   )r   logtanr   )r   s    r
   r#   r#   L   s+    88DHHa$''A+o2344r   )	r   
contextlibr   r   r   r   r$   r   r#    r   r
   <module>r.      s8     %  4, 45r   