eL iO&ddlZddlZddlmZddlmZddlmZddlmZ ddl m Z dd l m Z dd lmZdd lmZmZd Zd ej(vZGddeZy)N) JSONMixin)Layer) deck_to_html)settings)View) ViewState)BaseMapProvider)DARKget_from_map_identifiercJ ddlm}|y#ttf$rYywxYw)Nr DeckGLWidgetTF)widgetr ImportErrorNotImplementedErrorrs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pydeck/bindings/deck.pyhas_jupyter_extrars*) , -s ""z google.colabc eZdZdeddgededdddd dddejjdf d Z e d Z dd e fd Z dZdZ ddZdZy)DeckNMapViewT)type controllerrr)latitude longitudezoom100%c .g|_t|tr|jj|n |xsg|_||_||_|xsi}| |_| |_| rt| jnd|_ ||_ trddl m} | |_t j"|j_t j$|j_||j_||j_||j_| |j_ |j-|d}t|t.r3| t0j2j4k(sJ|||_| |_yt9|| |_| |_y)a This is the renderer and configuration for a deck.gl visualization, similar to the `Deck `_ class from deck.gl. Pass `Deck` a Mapbox API token to display a basemap; see the notes below. Parameters ---------- layers : pydeck.Layer or list of pydeck.Layer, default None List of :class:`pydeck.bindings.layer.Layer` layers to render. views : list of pydeck.View, default ``[pydeck.View(type="MapView", controller=True)]`` List of :class:`pydeck.bindings.view.View` objects to render. api_keys : dict, default None Dictionary of geospatial API service providers, where the keys are ``mapbox``, ``google_maps``, or ``carto`` and the values are the API key. Defaults to None if not set. Any of the environment variables ``MAPBOX_API_KEY``, ``GOOGLE_MAPS_API_KEY``, and ``CARTO_API_KEY`` can be set instead of hardcoding the key here. map_provider : str, default 'carto' If multiple API keys are set (e.g., both Mapbox and Google Maps), inform pydeck which basemap provider to prefer. Values can be ``carto``, ``mapbox`` or ``google_maps`` map_style : str or dict, default 'dark' One of 'light', 'dark', 'road', 'satellite', 'dark_no_labels', and 'light_no_labels', a URI for a basemap style, which varies by provider, or a dict that follows the Mapbox style `specification `. The default is Carto's Dark Matter map. For Mapbox examples, see Mapbox's `gallery `. If not using a basemap, set ``map_provider=None``. initial_view_state : pydeck.ViewState, default ``pydeck.ViewState(latitude=0, longitude=0, zoom=1)`` Initial camera angle relative to the map, defaults to a fully zoomed out 0, 0-centered map To compute a viewport from data, see :func:`pydeck.data_utils.viewport_helpers.compute_view` height : int, default 500 Height of Jupyter notebook cell, in pixels. width : int` or string, default '100%' Width of visualization, in pixels (if a number) or as a CSS value string. tooltip : bool or dict of {str: str}, default True If ``True``/``False``, toggles a default tooltip on visualization hover. Layers must have ``pickable=True`` set in order to display a tooltip. For more advanced usage, the user can pass a dict to configure more custom tooltip features. Further documentation is `here `_. .. _Deck: https://deck.gl/docs/api-reference/core/deck .. _gallery: https://www.mapbox.com/gallery/ NrrzQThe map_provider parameter must be 'mapbox' when map_style is provided as a dict.)layers isinstancerappendviewsinitial_view_state descriptioneffectsstrlower map_provider_tooltiprrr deck_widgetpydeck_settingscustom_libraries configurationheightwidthtooltip _set_api_keysdictr MAPBOXvalue map_styler parameters)selfr!r$r7api_keysr%r1r0r2r&r'r*r8rcustom_map_style_errors r__init__z Deck.__init__sSp fe $ KK  v & ,BDK "4>r& 9EC -3354   -+~D 0?0P0PD   --<-J-JD   *&,D   #%*D   "'.D   $,8D   ) 8$!t i &?#9#9#?#?? WAW W?&DN%5Y MDN$c\|jjsy|jjSN)r, selected_datar9s rr@zDeck.selected_data|s&-----r=r:cD|D]}|xr t|tD]}|jd}|jd}|j|jxst j |}t |||tskt |j||y)zQSets API key for base map provider for both HTML embedding and the Jupyter widget_key_API_KEYN) r r6namegetosgetenvsetattrrr,)r9r:kprovider attr_nameprovider_env_var attr_values rr3zDeck._set_api_keyss %A $/!$ %' AH#>>*$/I"*--9 !hnn5TCS9TJ D)Z 0 "(()Z@  Ar=c&|jdS)z2Display current Deck object for a Jupyter notebookTnotebook_display)to_htmlrAs rshowz Deck.shows||T|22r=ctd)aUpdate a deck.gl map to reflect the current configuration For example, if you've modified data passed to Layer and rendered the map using `.show()`, you can call `update` to change the data on the map. Intended for use in a Jupyter environment. zAJupyter-specific features not currently supported in pydeck v0.9.)rrAs rupdatez Deck.updates," O  r=c |j} t| f|j|j||||||jt j t j||d |} | S)aWrite a file and loads it to an iframe, if in a Jupyter environment; otherwise, write a file and optionally open it in a web browser Parameters ---------- filename : str, default None Name of the file. open_browser : bool, default False Whether a browser window will open or not after write. notebook_display : bool, default None Display the HTML output in an iframe if True. Set to True automatically if rendering in Jupyter. iframe_width : str or int, default '100%' Width of Jupyter notebook iframe in pixels, if rendered in a Jupyter environment. iframe_height : int, default 500 Height of Jupyter notebook iframe in pixels, if rendered in Jupyter or Colab. as_string : bool, default False Returns HTML as a string, if True and ``filename`` is None. css_background_color : str, default None Background color for visualization, specified as a string in any format accepted for CSS colors. Returns ------- str Returns absolute path of the file ) mapbox_keygoogle_maps_keyfilename open_browserrQ iframe_height iframe_widthr2r.r/ as_stringoffline)to_jsonrrWrXr+r-r.r/) r9rYrZrQr\r[r]r^kwargs deck_jsonfs rrRz Deck.to_htmlsqHLLN    00%-'%MM,==)77   r=c@|jd}t|ddS)NTrPdata)rRgetattr)r9htmls r _repr_html_zDeck._repr_html_s#||T|2tVR((r=r?)NFNrrFF)__name__ __module__ __qualname__r r r r CARTOr6r<propertyr@r4r3rSrUrRrhr=rrrst45$a11E$**00^%@.. Ad A3 85n)r=r)rGsys json_toolsrlayerrio.htmlrrr-viewr view_stater base_map_providerr map_stylesr r rmodulesin_google_colabrrnr=rrysF !"2!.5!CKK/R)9R)r=