L imdZddlmZddlmZddlmZddlmZm Z ddl m Z ddl m Z ddlmZdd lmZdd lmZdd Zed d ddd ddZy)zHandle App logos.) annotations)Literal)url_util) AtomicImage image_to_url) LayoutConfig)StreamlitAPIException) ForwardMsg)gather_metrics)get_script_run_ctxcd|dS)NzThe z passed to st.logo is invalid - See [documentation](https://docs.streamlit.io/develop/api-reference/media/st.logo) for more information on valid types) field_names ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/streamlit/commands/logo.py_invalid_logo_textrs zl. .logomediumN)sizelink icon_imagecLt}|yt} t|tddddd}||j_|r7tj|d r||j_ ntd |d |r- t|tddddd }||j_ dd} | ||j_ |j|y#t $r}ttd |d}~wwxYw#t $r}ttd|d}~wwxYw)a Renders a logo in the upper-left corner of your app and its sidebar. If ``st.logo`` is called multiple times within a page, Streamlit will render the image passed in the last call. For the most consistent results, call ``st.logo`` early in your page script and choose an image that works well in both light and dark mode. Avoid empty margins around your image. If your logo does not work well for both light and dark mode, consider setting the theme and hiding the settings menu from users with the `configuration option `_ ``client.toolbarMode="minimal"``. Parameters ---------- image: Anything supported by st.image (except list) The image to display in the upper-left corner of your app and its sidebar. This can be any of the types supported by |st.image|_ except a list. If ``icon_image`` is also provided, then Streamlit will only display ``image`` in the sidebar. Streamlit scales the image to a max height set by ``size`` and a max width to fit within the sidebar. .. |st.image| replace:: ``st.image`` .. _st.image: https://docs.streamlit.io/develop/api-reference/media/st.image size: "small", "medium", or "large" The size of the image displayed in the upper-left corner of the app and its sidebar. The possible values are as follows: - ``"small"``: 20px max height - ``"medium"`` (default): 24px max height - ``"large"``: 32px max height link : str or None The external URL to open when a user clicks on the logo. The URL must start with "\http://" or "\https://". If ``link`` is ``None`` (default), the logo will not include a hyperlink. icon_image: Anything supported by st.image (except list) or None An optional, typically smaller image to replace ``image`` in the upper-left corner when the sidebar is closed. This can be any of the types supported by ``st.image`` except a list. If ``icon_image`` is ``None`` (default), Streamlit will always display ``image`` in the upper-left corner, regardless of whether the sidebar is open or closed. Otherwise, Streamlit will render ``icon_image`` in the upper-left corner of the app when the sidebar is closed. Streamlit scales the image to a max height set by ``size`` and a max width to fit within the sidebar. If the sidebar is closed, the max width is retained from when it was last open. For best results, pass a wide or horizontal image to ``image`` and a square image to ``icon_image``. Or, pass a square image to ``image`` and leave ``icon_image=None``. Examples -------- A common design practice is to use a wider logo in the sidebar, and a smaller, icon-styled logo in your app's main body. >>> import streamlit as st >>> >>> st.logo( ... LOGO_URL_LARGE, ... link="https://streamlit.io/gallery", ... icon_image=LOGO_URL_SMALL, ... ) Try switching logos around in the following example: >>> import streamlit as st >>> >>> HORIZONTAL_RED = "images/horizontal_red.png" >>> ICON_RED = "images/icon_red.png" >>> HORIZONTAL_BLUE = "images/horizontal_blue.png" >>> ICON_BLUE = "images/icon_blue.png" >>> >>> options = [HORIZONTAL_RED, ICON_RED, HORIZONTAL_BLUE, ICON_BLUE] >>> sidebar_logo = st.selectbox("Sidebar logo", options, 0) >>> main_body_logo = st.selectbox("Main body logo", options, 1) >>> >>> st.logo(sidebar_logo, icon_image=main_body_logo) >>> st.sidebar.markdown("Hi!") .. output:: https://doc-logo.streamlit.app/ height: 300px Ncontent)widthFRGBautor) layout_configclampchannels output_formatimage_idimage)httphttpszInvalid link: z^ - the link param supports external links only and must start with either http:// or https://.z icon-imagerctt|tr|j}gd}||vr|Std|d)N)smallrlargez]The size argument to st.logo must be "small", "medium", or "large". The argument passed was .) isinstancestrlowerr )r image_size valid_sizess r validate_sizezlogo..validate_sizesH dC J6K[(!!#''+fA /  r)rr*returnr*)r r rrrr" Exceptionr rris_urlrrrenqueue) r"rrrctxfwd_msg image_urlexicon_image_urlr.s rrr&s;F  C {lG I &Y7   '  ??4!2 3 $GLL ' '9:   R)*;$% N'5GLL #  &d+GLLKKU I#$6w$?@bHI0 R'(:<(HIr Q Rs/,C,D C=#C88C= D# DD#)rr*r/r*) r"rrz#Literal['small', 'medium', 'large']rz str | NonerzAtomicImage | Noner/None)__doc__ __future__rtypingr streamlitr"streamlit.elements.lib.image_utilsrr#streamlit.elements.lib.layout_utilsrstreamlit.errorsr streamlit.proto.ForwardMsg_pb2r streamlit.runtime.metrics_utilr 7streamlit.runtime.scriptrunner_utils.script_run_contextr rrrrrrCs"H<259V19%) \ \ .\  \ # \  \\r