streamlit-nightly 1.33.1.dev20240414__py2.py3-none-any.whl → 1.33.1.dev20240415__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,8 @@ from __future__ import annotations
17
17
  from typing import TYPE_CHECKING, cast
18
18
 
19
19
  from streamlit.proto.Empty_pb2 import Empty as EmptyProto
20
+ from streamlit.proto.Skeleton_pb2 import Skeleton as SkeletonProto
21
+ from streamlit.runtime.metrics_util import gather_metrics
20
22
 
21
23
  if TYPE_CHECKING:
22
24
  from streamlit.delta_generator import DeltaGenerator
@@ -71,6 +73,31 @@ class EmptyMixin:
71
73
  empty_proto = EmptyProto()
72
74
  return self.dg._enqueue("empty", empty_proto)
73
75
 
76
+ @gather_metrics("_skeleton")
77
+ def _skeleton(self, *, height: int | None = None) -> DeltaGenerator:
78
+ """Insert a single-element container which displays a "skeleton" placeholder.
79
+
80
+ Inserts a container into your app that can be used to hold a single element.
81
+ This allows you to, for example, remove elements at any point, or replace
82
+ several elements at once (using a child multi-element container).
83
+
84
+ To insert/replace/clear an element on the returned container, you can
85
+ use "with" notation or just call methods directly on the returned object.
86
+ See some of the examples below.
87
+
88
+ This is an internal method and should not be used directly.
89
+
90
+ Parameters
91
+ ----------
92
+ height: int or None
93
+ Desired height of the skeleton expressed in pixels. If None, a
94
+ default height is used.
95
+ """
96
+ skeleton_proto = SkeletonProto()
97
+ if height:
98
+ skeleton_proto.height = height
99
+ return self.dg._enqueue("skeleton", skeleton_proto)
100
+
74
101
  @property
75
102
  def dg(self) -> DeltaGenerator:
76
103
  """Get our DeltaGenerator."""
@@ -212,8 +212,7 @@ class Element(google.protobuf.message.Message):
212
212
  @property
213
213
  def selectbox(self) -> streamlit.proto.Selectbox_pb2.Selectbox: ...
214
214
  @property
215
- def skeleton(self) -> streamlit.proto.Skeleton_pb2.Skeleton:
216
- """Internal-only."""
215
+ def skeleton(self) -> streamlit.proto.Skeleton_pb2.Skeleton: ...
217
216
  @property
218
217
  def slider(self) -> streamlit.proto.Slider_pb2.Slider: ...
219
218
  @property
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1estreamlit/proto/Skeleton.proto\"\n\n\x08SkeletonB-\n\x1c\x63om.snowflake.apps.streamlitB\rSkeletonProtob\x06proto3')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1estreamlit/proto/Skeleton.proto\"y\n\x08Skeleton\x12&\n\x05style\x18\x01 \x01(\x0e\x32\x17.Skeleton.SkeletonStyle\x12\x13\n\x06height\x18\x02 \x01(\x05H\x00\x88\x01\x01\"%\n\rSkeletonStyle\x12\x0b\n\x07\x45LEMENT\x10\x00\x12\x07\n\x03\x41PP\x10\x01\x42\t\n\x07_heightB-\n\x1c\x63om.snowflake.apps.streamlitB\rSkeletonProtob\x06proto3')
17
17
 
18
18
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
19
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'streamlit.proto.Skeleton_pb2', globals())
@@ -22,5 +22,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
22
22
  DESCRIPTOR._options = None
23
23
  DESCRIPTOR._serialized_options = b'\n\034com.snowflake.apps.streamlitB\rSkeletonProto'
24
24
  _SKELETON._serialized_start=34
25
- _SKELETON._serialized_end=44
25
+ _SKELETON._serialized_end=155
26
+ _SKELETON_SKELETONSTYLE._serialized_start=107
27
+ _SKELETON_SKELETONSTYLE._serialized_end=144
26
28
  # @@protoc_insertion_point(module_scope)
@@ -16,18 +16,54 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  """
19
+ import builtins
19
20
  import google.protobuf.descriptor
21
+ import google.protobuf.internal.enum_type_wrapper
20
22
  import google.protobuf.message
23
+ import sys
24
+ import typing
25
+
26
+ if sys.version_info >= (3, 10):
27
+ import typing as typing_extensions
28
+ else:
29
+ import typing_extensions
21
30
 
22
31
  DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
32
 
24
33
  class Skeleton(google.protobuf.message.Message):
25
- """An internal-only element that displays an app skeleton."""
34
+ """An empty-like element that displays an app skeleton."""
26
35
 
27
36
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
28
37
 
38
+ class _SkeletonStyle:
39
+ ValueType = typing.NewType("ValueType", builtins.int)
40
+ V: typing_extensions.TypeAlias = ValueType
41
+
42
+ class _SkeletonStyleEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Skeleton._SkeletonStyle.ValueType], builtins.type): # noqa: F821
43
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
44
+ ELEMENT: Skeleton._SkeletonStyle.ValueType # 0
45
+ APP: Skeleton._SkeletonStyle.ValueType # 1
46
+ """internal-only, for now"""
47
+
48
+ class SkeletonStyle(_SkeletonStyle, metaclass=_SkeletonStyleEnumTypeWrapper): ...
49
+ ELEMENT: Skeleton.SkeletonStyle.ValueType # 0
50
+ APP: Skeleton.SkeletonStyle.ValueType # 1
51
+ """internal-only, for now"""
52
+
53
+ STYLE_FIELD_NUMBER: builtins.int
54
+ HEIGHT_FIELD_NUMBER: builtins.int
55
+ style: global___Skeleton.SkeletonStyle.ValueType
56
+ """Skeleton visual style"""
57
+ height: builtins.int
58
+ """Height in CSS points"""
29
59
  def __init__(
30
60
  self,
61
+ *,
62
+ style: global___Skeleton.SkeletonStyle.ValueType = ...,
63
+ height: builtins.int | None = ...,
31
64
  ) -> None: ...
65
+ def HasField(self, field_name: typing_extensions.Literal["_height", b"_height", "height", b"height"]) -> builtins.bool: ...
66
+ def ClearField(self, field_name: typing_extensions.Literal["_height", b"_height", "height", b"height", "style", b"style"]) -> None: ...
67
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_height", b"_height"]) -> typing_extensions.Literal["height"] | None: ...
32
68
 
33
69
  global___Skeleton = Skeleton
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "./static/css/main.bf304093.css",
4
- "main.js": "./static/js/main.a41ffabd.js",
4
+ "main.js": "./static/js/main.4a20073e.js",
5
5
  "static/js/9336.2d95d840.chunk.js": "./static/js/9336.2d95d840.chunk.js",
6
6
  "static/js/9330.d29313d4.chunk.js": "./static/js/9330.d29313d4.chunk.js",
7
7
  "static/js/7217.d970c074.chunk.js": "./static/js/7217.d970c074.chunk.js",
@@ -12,7 +12,7 @@
12
12
  "static/js/43.9ae03282.chunk.js": "./static/js/43.9ae03282.chunk.js",
13
13
  "static/js/8427.d30dffe1.chunk.js": "./static/js/8427.d30dffe1.chunk.js",
14
14
  "static/js/7323.2808d029.chunk.js": "./static/js/7323.2808d029.chunk.js",
15
- "static/js/4185.78230b2a.chunk.js": "./static/js/4185.78230b2a.chunk.js",
15
+ "static/js/4185.935c68ec.chunk.js": "./static/js/4185.935c68ec.chunk.js",
16
16
  "static/js/7805.51638fbc.chunk.js": "./static/js/7805.51638fbc.chunk.js",
17
17
  "static/js/4500.b6f348d1.chunk.js": "./static/js/4500.b6f348d1.chunk.js",
18
18
  "static/js/1307.8ea033f1.chunk.js": "./static/js/1307.8ea033f1.chunk.js",
@@ -152,6 +152,6 @@
152
152
  },
153
153
  "entrypoints": [
154
154
  "static/css/main.bf304093.css",
155
- "static/js/main.a41ffabd.js"
155
+ "static/js/main.4a20073e.js"
156
156
  ]
157
157
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><link rel="shortcut icon" href="./favicon.png"/><link rel="preload" href="./static/media/SourceSansPro-Regular.0d69e5ff5e92ac64a0c9.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-SemiBold.abed79cd0df1827e18cf.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-Bold.118dea98980e20a81ced.woff2" as="font" type="font/woff2" crossorigin><title>Streamlit</title><script>window.prerenderReady=!1</script><script defer="defer" src="./static/js/main.a41ffabd.js"></script><link href="./static/css/main.bf304093.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><link rel="shortcut icon" href="./favicon.png"/><link rel="preload" href="./static/media/SourceSansPro-Regular.0d69e5ff5e92ac64a0c9.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-SemiBold.abed79cd0df1827e18cf.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="./static/media/SourceSansPro-Bold.118dea98980e20a81ced.woff2" as="font" type="font/woff2" crossorigin><title>Streamlit</title><script>window.prerenderReady=!1</script><script defer="defer" src="./static/js/main.4a20073e.js"></script><link href="./static/css/main.bf304093.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -0,0 +1 @@
1
+ (self.webpackChunk_streamlit_app=self.webpackChunk_streamlit_app||[]).push([[4185],{72394:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>A});var s=i(66845),o=i(59109),n=i(97365),a=i(62813),r=i.n(a),h=i(3717),c=i(25621),l=i(92627),p=i(43536),d=i(80248),m=i(44948),g=i(12879),u=i(47203),w=i(61355),x=i(82595),b=i(19754),S=i(62622),k=i(63765),y=i(13005),v=i.n(y),j=i(82309),f=i(40864);const T=t=>{let{error:e,width:i,deltaType:s}=t;return e instanceof J?(0,f.jsx)(j.Z,{width:i,name:"No Mapbox token provided",message:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("p",{children:["To use ",(0,f.jsxs)("code",{children:["st.",s]})," or ",(0,f.jsx)("code",{children:"st.map"})," you need to set up a Mapbox access token."]}),(0,f.jsxs)("p",{children:["To get a token, create an account at"," ",(0,f.jsx)("a",{href:"https://mapbox.com",children:"https://mapbox.com"}),". It's free for moderate usage levels!"]}),(0,f.jsxs)("p",{children:["Once you have a token, just set it using the Streamlit config option ",(0,f.jsx)("code",{children:"mapbox.token"})," and don't forget to restart your Streamlit server at this point if it's still running, then reload this tab."]}),(0,f.jsxs)("p",{children:["See"," ",(0,f.jsx)("a",{href:"https://docs.streamlit.io/library/advanced-features/configuration#view-all-configuration-options",children:"our documentation"})," ","for more info on how to set config options."]})]})}):e instanceof Z?(0,f.jsx)(j.Z,{width:i,name:"Error fetching Streamlit Mapbox token",message:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("p",{children:"This app requires an internet connection."}),(0,f.jsx)("p",{children:"Please check your connection and try again."}),(0,f.jsxs)("p",{children:["If you think this is a bug, please file bug report"," ",(0,f.jsx)("a",{href:"https://github.com/streamlit/streamlit/issues/new/choose",children:"here"}),"."]})]})}):(0,f.jsx)(j.Z,{width:i,name:"Error fetching Streamlit Mapbox token",message:e.message})};var V=i(18080),C=i(16295),E=i(72012),F=i(66694);class J extends Error{}class Z extends Error{}const M="https://data.streamlit.io/tokens.json",z="mapbox",O=t=>e=>{class i extends s.PureComponent{constructor(i){super(i),this.context=void 0,this.initMapboxToken=async()=>{try{const t=await V.Z.get(M),{[z]:e}=t.data;if(!e)throw new Error("Missing token ".concat(z));this.setState({mapboxToken:e,isFetching:!1})}catch(t){const e=(0,k.b)(t);throw this.setState({mapboxTokenError:e,isFetching:!1}),new Z("".concat(e.message," (").concat(M,")"))}},this.render=()=>{const{mapboxToken:i,mapboxTokenError:s,isFetching:o}=this.state,{width:n}=this.props;return s?(0,f.jsx)(T,{width:n,error:s,deltaType:t}):o?(0,f.jsx)(E.O,{element:C.Od.create({style:C.Od.SkeletonStyle.ELEMENT})}):(0,f.jsx)(e,{...this.props,mapboxToken:i,width:n})},this.state={isFetching:!0,mapboxToken:void 0,mapboxTokenError:void 0}}componentDidMount(){const t=this.props.element.mapboxToken||this.context.libConfig.mapboxToken;t?this.setState({mapboxToken:t,isFetching:!1}):this.initMapboxToken()}}return i.displayName="withMapboxToken(".concat(e.displayName||e.name,")"),i.contextType=F.E,v()(i,e)};var D=i(1515);const I=(0,D.Z)("div",{target:"e1az0zs51"})((t=>{let{width:e,height:i,theme:s}=t;return{marginTop:s.spacing.sm,position:"relative",height:i,width:e}}),""),P=(0,D.Z)("div",{target:"e1az0zs50"})((t=>{let{theme:e}=t;return{position:"absolute",right:"2.625rem",top:e.spacing.md,zIndex:1,"button:not(:disabled)":{background:e.colors.bgColor,"& + button":{borderTopColor:e.colors.secondaryBg},"& span":{filter:(0,l.Iy)(e)?"":"invert(100%)"}}}}),"");i(79259);const N={classes:{...p,...g,...m,...u}};(0,b.fh)([w.w,x.E]);const _=new d.Z({configuration:N});class L extends s.PureComponent{constructor(){super(...arguments),this.state={viewState:{bearing:0,pitch:0,zoom:11},initialized:!1,initialViewState:{},id:void 0,pydeckJson:void 0,isFullScreen:!1,isLightTheme:(0,l.Iy)(this.props.theme)},this.componentDidMount=()=>{this.setState({initialized:!0})},this.createTooltip=t=>{const{element:e}=this.props;if(!t||!t.object||!e.tooltip)return!1;const i=n.Z.parse(e.tooltip);return i.html?i.html=this.interpolate(t,i.html):i.text=this.interpolate(t,i.text),i},this.interpolate=(t,e)=>{const i=e.match(/{(.*?)}/g);return i&&i.forEach((i=>{const s=i.substring(1,i.length-1);t.object.hasOwnProperty(s)&&(e=e.replace(i,t.object[s]))})),e},this.onViewStateChange=t=>{let{viewState:e}=t;this.setState({viewState:e})}}static getDerivedStateFromProps(t,e){const i=L.getDeckObject(t,e);if(!r()(i.initialViewState,e.initialViewState)){const t=Object.keys(i.initialViewState).reduce(((t,s)=>i.initialViewState[s]===e.initialViewState[s]?t:{...t,[s]:i.initialViewState[s]}),{});return{viewState:{...e.viewState,...t},initialViewState:i.initialViewState}}return null}render(){const t=L.getDeckObject(this.props,this.state),{viewState:e}=this.state;return(0,f.jsx)(I,{className:"stDeckGlJsonChart",width:t.initialViewState.width,height:t.initialViewState.height,"data-testid":"stDeckGlJsonChart",children:(0,f.jsxs)(o.Z,{viewState:e,onViewStateChange:this.onViewStateChange,height:t.initialViewState.height,width:t.initialViewState.width,layers:this.state.initialized?t.layers:[],getTooltip:this.createTooltip,ContextProvider:h.X$.Provider,controller:!0,children:[(0,f.jsx)(h.Z3,{height:t.initialViewState.height,width:t.initialViewState.width,mapStyle:t.mapStyle&&("string"===typeof t.mapStyle?t.mapStyle:t.mapStyle[0]),mapboxApiAccessToken:this.props.element.mapboxToken||this.props.mapboxToken}),(0,f.jsx)(P,{children:(0,f.jsx)(h.Pv,{className:"zoomButton",showCompass:!1})})]})})}}L.getDeckObject=(t,e)=>{var i,s;const{element:o,width:a,height:r,theme:h,isFullScreen:c}=t,p=null!==c&&void 0!==c&&c;var d,m,g;(o.id===e.id&&e.isFullScreen===p&&e.isLightTheme===(0,l.Iy)(h)||(e.pydeckJson=n.Z.parse(o.json),e.id=o.id),null!==(i=e.pydeckJson)&&void 0!==i&&i.mapStyle||(e.pydeckJson.mapStyle="mapbox://styles/mapbox/".concat((0,l.Iy)(h)?"light":"dark","-v9")),c)?Object.assign(null===(d=e.pydeckJson)||void 0===d?void 0:d.initialViewState,{width:a,height:r}):(null!==(m=e.pydeckJson)&&void 0!==m&&null!==(g=m.initialViewState)&&void 0!==g&&g.height||(e.pydeckJson.initialViewState.height=500),o.useContainerWidth&&(e.pydeckJson.initialViewState.width=a));return e.isFullScreen=c,e.isLightTheme=(0,l.Iy)(h),null===(s=e.pydeckJson)||void 0===s||delete s.views,_.convert(e.pydeckJson)};const A=(0,c.b)(O("st.pydeck_chart")((0,S.Z)(L)))},2090:()=>{},72709:()=>{},20035:()=>{},72672:()=>{}}]);