Skip to content
Streamlit — The fastest way to build custom ML tools
TypeScript Python CSS Makefile Shell JavaScript Other
Branch: develop
Clone or download

Latest commit

4 authors Version 0.61.0 (#1512)
* Enable WebSocket compression (#1506)

Fixes #463

From a lines-of-code perspective, this is a trivial change; Tornado supports WebSocket compression out of the box, and this PR just flips the switch to enable it.

(This obviously adds a bit of memory and CPU overhead to each WebSocket connection.)

* Fix DeckGL View State (#1481)

* Merge server and client view state changes

* Version 0.61.0

* Update terminal welcome + telemetry messages (#1510)

* Up resource class used for Python 3.8 tests in CircleCI (#1520)

* Up resource class used for Python 3.8 tests in CircleCI

* Ooops resource classs change should have be to the "cypress" flow

* Update notices.

* Fix mypy in CircleCI (#1519)

Our `mypy` task has been failing in CircleCI.

The issue is that `pipenv` is failing to deterministically resolve dependency versions, and is frequently resolving our `tornado=>=5.0, <6.0` dependency to Tornado 6 (because of other transitive dependencies on Tornado).

The solution is to use the `--sequential` flag in our `pipenv install` build step. From the pipenv docs:

> Installation is intended to be as deterministic as possible — use the --sequential flag to increase this, if experiencing issues.

So: pipenv installation is intended to be as deterministic as possible, but it's also possible to "increase its determinism" with a flag! (I think this is...madness.)

This PR *also* cleans up and documents a few things that I found confusing while tracking this down (with @jrhone's help!):

- The `mypy` cache is now stored in the project directory (and gitignored), rather than in `/tmp`
- We expire our CircleCI virtualenv cache key every day; I documented why we do this.
- Added docs to the "Create virtualenv" CircleCI build step.
- Removed the protobuf-caching step from the CircleCI jobs, because it's not actually doing anything.
- Updated the mypy ini to target Python 3.8, and fixed a new mypy warning.

* Make credentials prompt align to 80-char max, and do some tiny cleanups.

* Lint

* Changelog

* Remove "mapbox token" breaking change notice from changelog, since I dropped that PR for this launch

Co-authored-by: Tim Conkling <tconkling@gmail.com>
Co-authored-by: Jonathan Rhone <rhone.j@gmail.com>
Co-authored-by: karrie <karrie@streamlit.io>
Latest commit f5fc0b4 Jun 4, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Fix mypy in CircleCI (#1519) Jun 3, 2020
.dependabot dependabot config (#1376) Apr 22, 2020
.github Add Randy to CODEOWNERS May 5, 2020
docs Version 0.61.0 (#1512) Jun 4, 2020
e2e Showing an error when it's not localhost and has no mapbox token (#1295) May 27, 2020
e2e_flaky Moving st_in_cache_warning from flaky to stable (#1267) Mar 27, 2020
examples Version 0.60.0 (#1460) May 18, 2020
frontend Version 0.61.0 (#1512) Jun 4, 2020
lib Version 0.61.0 (#1512) Jun 4, 2020
proto/streamlit/proto Update date_input to accept a range for a ranged datepicker (#1483) May 21, 2020
scripts Update 3.5 references to 3.6 (#1444) May 15, 2020
.dockerignore Docker file to mirror CircleCI for Cypress tests (#39) Sep 9, 2019
.editorconfig [editorconfig] Make all indents 2 spaces, and only Python 4 spaces Oct 29, 2018
.gitignore Fix mypy in CircleCI (#1519) Jun 3, 2020
.readthedocs.yml Configuring ReadtheDocs (#1435) May 13, 2020
CODE_OF_CONDUCT.md Version 0.47.2 (#212) Oct 3, 2019
CONTRIBUTING.md Update CONTRIBUTING.md Dec 3, 2019
LICENSE Add Apache license and update all license headers (#1265) Aug 23, 2019
Makefile Fix mypy in CircleCI (#1519) Jun 3, 2020
NOTICES Version 0.61.0 (#1512) Jun 4, 2020
README.md Update README (#1493) May 26, 2020

README.md

Welcome to Streamlit 👋

Documentation Status

The fastest way to build data apps.

Streamlit lets you create apps for your machine learning projects with deceptively simple Python scripts. It supports hot-reloading, so your app updates live as you edit and save your file. No need to mess with HTTP requests, HTML, JavaScript, etc. All you need is your favorite editor and a browser. Take a look at Streamlit in action:

Example of live coding a dashboard in Streamlit|635x380

Check out our launch blog post!!

Installation

pip install streamlit
streamlit hello

We also have suggestions for installing Streamlit in a virtual environment in Windows, Mac, and Linux.

Example

Streamlit lets you build interactive apps ridiculously easily:

import streamlit as st

x = st.slider('Select a value')
st.write(x, 'squared is', x * x)

A Bigger Example

Despite its simplicity Streamlit lets you build incredibly rich and powerful tools. This demo project lets you browse the entire Udacity self-driving-car dataset and run inference in real time using the YOLO object detection net.

Making-of Animation

The complete demo is implemented in less than 300 lines of Python. In fact, the app contains only 23 Streamlit calls which illustrates all the major building blocks of Streamlit. You can try it right now with:

pip install --upgrade streamlit opencv-python
streamlit run https://raw.githubusercontent.com/streamlit/demo-self-driving/master/app.py

More Information

Streamlit for Teams

Streamlit for Teams is our enterprise edition, with single-click deploy, authentication, web editing, versioning, and more. Please contact us if you would like to learn more.

License

Streamlit is completely free and open source and licensed under the Apache 2.0 license.

You can’t perform that action at this time.