a
    na                     @  sn   d Z ddlmZ ddlZeeZddlZddlZddl	Z	ddl
m  mZ ddlmZ dZdd Ze ZdS )	a   Geometry data for US States.

This module contains one dict: ``data``.

The data is indexed by the two letter state code (e.g., 'CA', 'TX') and has the
following structure:

.. code-block:: python

    In [4]: data["OR"]
    Out[4]:
    {
        'name': 'Oregon',
        'region': 'Northwest',
        'lats': [46.29443, ..., 46.26068],
        'lons': [-124.03622, ..., -124.15935]
    }

    )annotationsN   )package_path)datac                  C  s  t d} i }ttd}t|d}t| tj|ddd}|D ]}|\}}}}	}
t	
|	}g }g }t|dD ]f\}}|dkr||  ||  d	d
 |j D }ttdd |D  \}}|| || qv||||d||< qDW d   n1 s0    Y  |S )z

    ZNaNz"US_Regions_State_Boundaries.csv.gzzutf-8,")Z	delimiterZ	quotecharz).//outerBoundaryIs/LinearRing/coordinatesr   c                 s  s    | ]}| d dd V  qdS )r   Nr   )split).0c r   9lib/python3.9/site-packages/bokeh/sampledata/us_states.py	<genexpr>Y       z_read_data.<locals>.<genexpr>c                 S  s    g | ]\}}t |t |fqS r   )float)r	   lonlatr   r   r   
<listcomp>Z   r   z_read_data.<locals>.<listcomp>)nameregionlatslonsN)r   gzipopenr   codecs
iterdecodenextcsvreaderetZ
fromstring	enumeratefindallappendtextr   listzipextend)nanr   fZdecodedr   rowr   r   codeZgeometryZdummyZxmlr   r   iZpolyZcoordsr   r   r   r   r   
_read_dataD   s6    




,r+   )__doc__Z
__future__r   ZloggingZ	getLogger__name__logr   r   r   Zxml.etree.ElementTreeZetreeZElementTreer   Zutil.sampledatar   __all__r+   r   r   r   r   r   <module>   s   
'