
    -e                       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 ddlmZmZ ddlZerddl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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)nan)TYPE_CHECKING	TypedDict)NDArray   )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NDArray[np.float64]latslonsN)__name__
__module____qualname____annotations__     :lib/python3.11/site-packages/bokeh/sampledata/us_states.pyr   r   R   s<         IIIKKKr   r   returndict[State, StateData]c            
        i } t          j        t          d                    5 }t          j        |d          }t          |           t          j        |dd          }|D ]K}|\  }}}}}	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+          ||t-          j        |          t-          j        |          
          | |<   M	 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>l   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>m   s-    %V%V%V83uSzz5::&>%V%V%Vr   )r   r   r   r   N)gzipopenr	   codecs
iterdecodenextcsvreaderet
fromstring	enumeratefindallappendr   
isinstancetextr   r#   listzipextendr   nparray)r   fdecodedr2   rowr   r   codegeometry_xmlr   r   ipolycoordsr*   r)   s                     r   
_read_datarI   X   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   FF<<G G )r   r   )"__doc__
__future__r   logging	getLoggerr   logr.   r1   r,   xml.etree.ElementTreeetreeElementTreer3   mathr   typingr   r   numpyr=   numpy.typingr   util.sampledatar	   typing_extensionsr
   __all__r   r   r   r   rI   r   r   r   r   <module>rY      se    0 # " " " " " g!!  



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