
    ch                         S SK r S SKrSSKJrJrJr  SSKJrJ	r	  SSK
J
r  S SKJrJr  S SKJr  S	rS
r1 Skr " S S\5      rg)    N   )is_pandas_dfhas_geo_interfacerecords_from_geo_interface   )	JSONMixincamel_and_lower)settings)ImageFunction)BinaryTransportExceptionz@@typez@@=>   "'`c                       \ rS rSrSS jr\S 5       r\R                  S 5       rS rS r	\S 5       r
\
R                  S	 5       r
S
 rSrg)Layer   Nc                 H   Xl         U=(       d    [        [        R                  " 5       5      U l        U R                  U5      nUR                  5       U l        U(       Ga  UR                  5        GHx  u  pg[        U[        5      (       a2  US   [        ;   a%  US   US   :X  a  UR                  US   S5      XV'   MM  [        U[        5      (       a*  [        R                  " U5      (       a  [        U5      XV'   M  [        U[        5      (       a  [        U-   XV'   M  [        U[        5      (       a  U/ :w  a  [        US   [        5      (       am  Sn[!        U5       HA  u  pU	[#        U5      S-
  :X  a  USR%                  U
5      -  nM-  USR%                  U
5      -  nMC     SR%                  [        U5      XV'   GMN  [        U[&        5      (       d  GMf  UR)                  5       XV'   GM{     U R*                  R-                  U5        SU l        X@l        SU l        X l        g)	a  Configures a deck.gl layer for rendering on a map. Parameters passed
here will be specific to the particular deck.gl layer that you are choosing to use.

Please see the deck.gl
`Layer catalog <https://deck.gl/docs/api-reference/layers>`_
to determine the particular parameters of your layer. You are highly encouraged to look
at the examples in the pydeck documentation.

Parameters
==========

type : str
    Type of layer to render, e.g., `HexagonLayer`
id : str, default None
    Unique name for layer
data : str or list of dict of {str: Any} or pandas.DataFrame, default None
    Either a URL of data to load in or an array of data
use_binary_transport : bool, default None
    Boolean indicating binary data
**kwargs
    Any of the parameters passable to a deck.gl layer.

Examples
========

For example, here is a HexagonLayer which reads data from a URL.

  >>> import pydeck
  >>> # 2014 location of car accidents in the UK
  >>> UK_ACCIDENTS_DATA = ('https://raw.githubusercontent.com/uber-common/'
  >>>                     'deck.gl-data/master/examples/3d-heatmap/heatmap-data.csv')
  >>> # Define a layer to display on a map
  >>> layer = pydeck.Layer(
  >>>     'HexagonLayer',
  >>>     UK_ACCIDENTS_DATA,
  >>>     get_position=['lng', 'lat'],
  >>>     auto_highlight=True,
  >>>     elevation_scale=50,
  >>>     pickable=True,
  >>>     elevation_range=[0, 3000],
  >>>     extruded=True,
  >>>     coverage=1)

Alternately, input can be a pandas.DataFrame:

  >>> import pydeck
  >>> df = pd.read_csv(UK_ACCIDENTS_DATA)
  >>> layer = pydeck.Layer(
  >>>     'HexagonLayer',
  >>>     df,
  >>>     get_position=['lng', 'lat'],
  >>>     auto_highlight=True,
  >>>     elevation_scale=50,
  >>>     pickable=True,
  >>>     elevation_range=[0, 3000],
  >>>     extruded=True,
  >>>     coverage=1)
r    r   z{}z{}, z{}[{}]N)typestruuiduuid4id_add_default_layer_attributescopy_kwargsitems
isinstanceQUOTE_CHARSreplacer   validateFUNCTION_IDENTIFIERlist	enumeratelenformatr   	serialize__dict__update_datause_binary_transport_binary_datadata)selfr   r/   r   r-   kwargskvarray_as_stri
identifiers              hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\pydeck/bindings/layer.py__init__Layer.__init__   s   v 	)DJJL)33F; {{} a%%!A$+*=!A$!B%- !		!A$ 3FI3''ENN1,=,= %aFI3'' 3a 7FI4((Q"WAaD#9N9N#%L)21A
?(DKK
,CCL(FMM*,EEL	 *6
 !)0C\ RFI8,, !FI5 '8 MM  (
$8! 	    c                     U R                   $ N)r,   r0   s    r7   r/   
Layer.dataz   s    zzr:   c                     U R                   (       a  U R                  U5      U l        g[        U5      (       a  UR	                  SS9U l        g[        U5      (       a  [        U5      U l        gXl        g)zMake the data attribute a list no matter the input type, unless
use_binary_transport is specified, which case we circumvent
serializing the data to JSON
records)orientN)r-   _prepare_binary_datar.   r   to_dictr,   r   r   )r0   data_sets     r7   r/   r>   ~   s\     $$ $ 9 9( CD(##!)));DJx((3H=DJ!Jr:   c                 R    U R                   (       d  [        S5      eU R                  $ )Nz6Layer must be flagged with `use_binary_transport=True`)r-   r   r.   r=   s    r7   get_binary_dataLayer.get_binary_data   s#    ((*+cdd   r:   c           	         [        U5      (       d  [        S5      eU R                  nUR                  5        VVs0 s H'  u  p4[	        U5      [
        [        [        4;  d  M%  XC_M)     nnn/ nUR                   Hc  n[        R                  " X   R                  5       5      nU R                  XW   	 UR                  U R                  U[        XW   5      US.5        Me     U$ s  snnf )Nz,Layer data must be a `pandas.DataFrame` type)layer_idcolumn_nameaccessornp_data)r   r   r   r   r   r%   dictsetcolumnsnpstackto_numpyr*   appendr   r	   )	r0   rD   layer_accessorsr2   r3   inverted_accessor_mapbinary_transmissioncolumnrL   s	            r7   rB   Layer._prepare_binary_data   s     H%%*+YZZ,,2A2G2G2I n2I$!TRSW]acgil\mMm2I n &&Fhhx/88:;G3;<&& $#) /0E0M N&	 ' #"# !os   $C##C#c                 "    [        U [        5      $ r<   )getattrTYPE_IDENTIFIERr=   s    r7   r   
Layer.type   s    t_--r:   c                 0    U R                  [        U5        g r<   )__setattr__r[   )r0   	type_names     r7   r   r\      s    )4r:   c                     [         R                  n[        U[        5      (       aC  U R                  U;   a3  [        X R                     [        5      (       a  0 X R                     EUEnU$ r<   )pydeck_settingsdefault_layer_attributesr    rM   r   )r0   r1   
attributess      r7   r   #Layer._add_default_layer_attributes   sW    $==
j$''DII,C
S]^g^gShjnHoHo8
99-88Fr:   )r.   r,   r   r/   r   r   r-   )NNN)__name__
__module____qualname____firstlineno__r8   propertyr/   setterrF   rB   r   r   __static_attributes__ r:   r7   r   r      sp    eN   
[[" "!
#4 . . 
[[5 5r:   r   )r   numpyrP   
data_utilsr   r   r   
json_toolsr   r	   r
   ra   pydeck.typesr   r   pydeck.exceptionsr   r[   r$   r!   r   rl   r:   r7   <module>rr      s=      T T 2 2 ( 6  hI hr:   