- Start of Authentication API
- Better interoperability with Flask
- Views have a layout attribute that is run a build time, which can save time at serve time.
- Apps layout now happens in global state or in layout functions.
- Remove server.py and templates, bundle.js{,.gz} is placed directly in build directory.
- load and subscribe are decorators now, simplifying usage.
- Sidebar now defaults to
False
. - Removed respond function, moved feature to subscribe.
- Minimum node version check.
- v0.10.0 had a bunch of extra junk generated in it.
- Mostly internal changes so that dynamic layout can be supported.
- Dropped Python 3.5 compatibility.
- Added Python 3.7 support. (#233)
- Update random walk so it can be used with multiple users. (#126)
- Views now have a border attribute for specifying a margin around the whole page, defaults to 7 pixels.
- Add multiple components to a cell or span, for example:
app = App() app[0, 0] = button app[0, 0] += button2 Or app = App() app[0, 0] = button, button2
- Moved link component from control to html module
- Bug with rebuilding apps due to caching problems.
- Bug when refreshing apps with date pickers, the stored state wasn't being restored correctly.
- Captions in controllers have been removed, they can be replaced with HTML components.
- Upgraded to webpack 4, users shouldn't see much of a difference other than slightly improved build times.
- Readthedocs wasn't rendering due to type hints, fixed with conda.
- Jupyter integration.
- Basic HTML components: Div and H1-H6.
- Add multiple components into a single span/cell. This can be useful for adding multiple control or html elements into a single cell.
- Drop support for Python 2.
- Moved Markdown widget to HTML components.
- Error if only the gzipped bundle is available.
- Improved widget handling, now use a dict to store components instead of parsing code. Makes it possible to subscribe to events with expressions for the component.
- Cache behaves like dict, e.g.
cache['data'] = [1, 2, 3]
. - Support Ant theme to customize all Ant components, added in the
App
class. - Vertical option for slider. (#204)
- Document run command.
- Document exceptions.
- Removed cache
save
andload
functions in favor of dict functionality.
- Implemented
__getitem__
for the layout enabling for example:app[1, 0:2] = widget
. - Added "on_relayout" event for Plotly widgets.
- Serialize Pandas series objects and Pandas datetime objects.
row_end
andcolumn_end
are now exclusive instead of inclusive.- Simplified the
add
function in favor of the new getitem functionality, which is easier to use and familiar to Python programmers.
- Docstring examples of sizing components.
- More checks to ensure adding components works as expected.
- Bug which incorrectly tracked which parts of the grid were occupied by widgets.
- Removed node and webpack dependencies, the only dependency is yarn.
- Added a run command that simply combines build and serve together.
- Smarter build process that saves time on subsequent builds.
- Handle scheduled tasks when running with debug=True (#185)
- Improve the Docker experience and docs.
- Always use the latest compiled bundle.
- Instead of building the app by running
app.build()
you simply return the App instance. See the quick start guide for an example.
- Expose root
View
attributes asApp
attributes (#175). You can accesscolumns
androws
from theApp
instance like pre v0.5. - Added column and row gap which inserts space between rows and columns.
Accessible through
column_gap
androw_gap
onView
andApp
instances. - Added Gitter chat (#179)
- Many documentation improvements.
- Drop Python 3.4 support following pandas lead.
- Create multiple views to create subpages (#158)
- Cache is now backed by session storage (#160)
- Link component for switching views without a page reload
- Renamed
Layout
class toApp
- Programmatic control of sliders (#155)
- Add message popups and better testing of components (#153)
- Upload widget
- Dockerfile for building apps
- Refactored the data Plotly sends on selection to stop crashes, may break some apps
- Markdown widget (#135)
description
parameter in Layout removed in favor of Markdown widget
- new textbox feature to update text (#128)
- fixed issue preventing controllers from added to layout (#128)
- updated Layout docstring (#125)
- Support changing socket.io path for nginx (#118)
- Pager: to request communication from the client (#122)
- Nouislider
- Random walk example
- pydocstyle suggestions
- isinstance calls use correct arguments
- New more flexible and powerful layout API.
- Now using CSS Grid instead of Flexbox.
- Sidebar is now optional.
- Control widgets can be placed anywhere.
add_visual
is now simplyadd
add_controller
is nowadd_sidebar
- DropDown is renamed to Dropdown
- Upgraded to webpack2 and compressing bundle.js (#59)
- Quick start guide and Nouislider css import path (#103)
- Document the progress indicator functions properly (#101)
- add cache feature (#98)
- pin js packages to make bowtie stable
- add default parameter and choose command to dropdown (#91)
- fix argument counting in python 2 (#89)
min_width
andmin_height
parameters for laying out visual components
- Changed order of arguments to
subscribe
.
- Number input widget.
- Able to subscribe a function to multiple events