
    dw                        U d Z ddlmZ ddlZ ej        e          ZddlZddlZddl	Z	ddl
mc mZ ddlmZmZ ddlmZ erddlmZ dZeZd	ed
<    G d de          Z e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]
    }

.. bokeh-sampledata-xref:: us_states
    )annotationsN)TYPE_CHECKING	TypedDict   )package_path)	TypeAlias)datar   Statec                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )	StateDatastrnameregionzlist[float]latslonsN)__name__
__module____qualname____annotations__     :lib/python3.11/site-packages/bokeh/sampledata/us_states.pyr   r   K   s<         IIIKKKr   r   NaNreturndict[State, StateData]c            	     J   i } t          j        t          d                    5 }t          j        |d          }t          |           t          j        |dd          }|D ]'}|\  }}}}}	t          j	        |          }
g }g }t          |
                    d                    D ]\  }}|dk    r4|                    t                     |                    t                     t          |j        t                     sJ d |j                                        D             }t%          t'          d	 |D                        \  }}|                    |           |                    |           t+          ||||
          | |<   )	 ddd           n# 1 swxY w Y   | S )z

    z"US_Regions_State_Boundaries.csv.gzzutf-8,")	delimiter	quotecharz).//outerBoundaryIs/LinearRing/coordinatesr   c              3  P   K   | ]!}|                     d           dd         V  "dS )r   Nr   )split).0cs     r   	<genexpr>z_read_data.<locals>.<genexpr>g   s5      FFq!''#,,rr*FFFFFFr   c                P    g | ]#\  }}t          |          t          |          f$S r   )float)r#   lonlats      r   
<listcomp>z_read_data.<locals>.<listcomp>h   s-    %V%V%V83uSzz5::&>%V%V%Vr   )r   r   r   r   N)gzipopenr   codecs
iterdecodenextcsvreaderet
fromstring	enumeratefindallappendnan
isinstancetextr   r"   listzipextendr   )r	   fdecodedr1   rowr   r   codegeometry_xmlr   r   ipolycoordsr)   r(   s                     r   
_read_datarG   S   s    $&D	< DEE	F	F !#Aw//WGscBBB 	 	C.1+FD$!-))C "D "D$S[[1\%]%]^^ ! !4q55KK$$$KK$$$!$)S11111FFDIOO4E4EFFF%V%Vv%V%V%V WXXSC   C    "	  DJJ		              2 Ks   E'FFF)r   r   )__doc__
__future__r   logging	getLoggerr   logr-   r0   r+   xml.etree.ElementTreeetreeElementTreer2   typingr   r   util.sampledatar   typing_extensionsr   __all__r   r
   r   r   r'   r7   rG   r	   r   r   r   <module>rT      s:    0 # " " " " " g!!  



  " " " " " " " " " + + + + + + + + + * * * * * ,++++++          	    eEll   J z||r   