Releases#
Version 1.8.2#
This patch release focuses on polishing the user experience, fixing regressions, and improving documentation, particularly around app deployment and Tabulator interactivity. It includes several frontend and CSS tweaks, pyodide compatibility fixes, and two new deployment guides for Anaconda Notebooks and PythonAnywhere. Thanks to @philippjfr, @maximlt, @etihwo, @MarcSkovMadsen, and @Coderambling for their contributions to this release.
β¨ Enhancements#
π Bug Fixes#
Ensure Tabulator does not break if other components donβt correctly initialize (#8212)
Fix Pyodide
jsnullvalue conversion in Bokeh JSON patches (#8217)Fix regression causing column headers not to stretch properly across layout (#8219)
Ensure
config.npm_cdnis respected (#8233)Ensure bundled pyodide resources use correct path separator (#8230)
Ensure pyodide resource bundle is only generated if necessary (#8234)
Ensure pyodide session is registered as loaded (#8235)
π Documentation#
Add how-to guide on deploying Panel apps on Anaconda Notebooks (#8207)
Add how-to guide on deploying Panel apps on PythonAnywhere (#8216)
Update
Plotly.ipynbto reflect current Plotly version and correct doc URLs (#8214, #8203)Add missing Anaconda logo to documentation (#8208)
Add how-to guide on using
uvto distribute Panel apps and dependencies (#8205)
Version 1.8.1#
Many thanks to @ATL2001 (first contribution), @Coderambling, @philippjfr, and @hoxbro for their contributions.
Enhancements#
Add configuration to disable container popup (#8200)
Bug Fixes#
Documentation#
Update indicators_performance.md to fix typo (#8192)
Version 1.8.0#
This release brings a wide range of new features, enhancements, and compatibility improvements. Highlights include support for JSCode in ECharts and Tabulator, reworked WebSocket reconnection, and the ability to bundle resources into WASM apps, and numerous bug fixes to improve stability across components and templates. It also includes compatibility updates for Bokeh 3.8 and several improvements for use in Pyodide, JupyterLite, and authentication-based deployments. Many thanks to our returning contributors @dalthviz and @etihwo, a very warm welcome to our new contributors @c-meier and @flxmr and as usual many thanks to our core team including @maximlt, @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr.
π Features#
β¨ Enhancements#
Improve
.from_param()behavior and error messages (#8047, #8079)Add
--reuse-sessions warmoption to reduce session cold starts (#8087)Enable event dispatch immediately after WebSocket connect (#8101)
Improve error message display in
LiteralInput(#8102)Allow
holdusage from a thread (#8113)Improve uniformity and consistency in
Tabulatorcolumn configuration (#8127)Trigger
param.Eventcorrectly on value change (#8148)Allow registering external
extension_cdnfor JS resources (#8175)Allow overriding the
default_widgetsonHoloViewspane (#8186)
π Bug Fixes#
Ensure
Terminalresizes correctly (#8109)Bundle correct
AceEditorversion (#8111)Remove
bokeh-sampledatadependency from Pyodide builds (#8138)Correct resource handling when resources are symlinked (#8143)
Correct behavior when
FileDownloadresets cursor before reading (#8154)Fix handling of
NaTvalues (#8156)Apply template design after rendering template (#8155)
Prevent
select-allcheckbox from being hidden in Material theme (#8147)Fix handling of exclusive bounds in
Paramwidgets (#8165)Fix layout of
Cardheaders withrowflex mode (#8166)Uncap height of children in scrollable
Columnlayouts (#8167)Fix errors in
EChartswhen chart has already been destroyed (#8168)Fix
Tabulatorfilter behavior with list-based filters (#8169)Allow
Cardto overflow container (#8170)Fix
pyodidemodel syncing (#8174)
β οΈ Deprecations#
π¦ Compatibility & Infrastructure#
Update component versions (#7447)
DeckGLversion from 9.0.20 to 9.1.14EChartsversion from 5.6.0 to 6.0.0KaTeXversion from 0.6.0 to 0.16.22Perspectiveversion from 3.6.1 to 3.8.0Plotlyversion from 3.0.1 to 3.1.0Vegaversion from 5 to 6.1.2 and vega-lite dependency from 5 to 6.3.0Vizzuversion from 0.15 to 0.17.1
Drop support for Bokeh 3.5 and 3.6 (#8116)
Full compatibility with Bokeh 3.8 (#8160)
π Documentation#
Version 1.7.5#
This patch release brings a number of important bug fixes and refinements, including improved modal behavior, Param integration fixes for ESM, and security hardening of authentication templates. Thanks to @harmvanderheijden, @marcskovmadsen, @maximlt, and @philippjfr for their contributions.
Enhancements#
Security#
Fix XSS vulnerabilities in login and OAuth error templates by escaping user-controlled input (#8049)
Bug Fixes#
Fix
value_throttledhandling in Param panes (#8057)Prevent
AutocompleteInputfrom resetting whenrestrict=False(#8056)Fix callback cleanup for
--reuse_sessionsmode (#8052)Reset
param.Eventstate on ESM components (#8054)Allow
Playercomponents to start upon initialization (#8058)Fix modal dialog stacking and focus behavior in VanillaTemplate (#8059, #8060)
Avoid errors in
Tabulatorwhen editing DataFrames withpd.NAvalues (#8068)Add guard for undefined
urlinImportedStyleSheet(#8071)Ensure session token payload is correctly updated when reusing sessions (#8072)
Ensure
--reuse-sessionscaches the--indexapp correctly (#8073)Add debounce logic to
ModelChangedevents in Pyodide to improve performance and prevent redundant updates (#8077)Ensure
Layoutableparams propagate to HoloViews plots (#8078)Fix regression in handling
param.Actionin.from_param()utility (#8079)Ensure
LoadingSpinner.visiblecorrectly hides the component (#8081)Ensure
JSONEditortriggers on re-ordering of nodes (#8086)Fix
JSONEditormenu option to improve usability (#8085)
Documentation#
Maintenance#
Fix gallery deployment automation (#8055)
Version 1.7.4#
This patch release introduces small but impactful security, compatibility, and usability improvements. It enhances OAuth behavior, adds byte support for the PDF pane, and fixes several rendering and import issues across backends and components. Thanks to @ahuang11, @dalthviz, @MarcSkovMadsen, and @philippjfr for their contributions.
Enhancements#
Security#
Bug Fixes#
Version 1.7.3#
This patch release includes several critical stability improvements, JavaScript race condition fixes, and developer experience enhancements. It also introduces small but helpful UI features such as exception copying and better error feedback in CLI and ESM workflows. Many thanks to contributors @etihwo, @bsdz, @Coderambling, @hoxbro, @philippjfr, and @MarcSkovMadsen.
Enhancements#
Add βCopy to Clipboardβ button for exceptions in the UI (#8034)
Enable MathJax rendering if the extension is available (#8004)
Allow setting a custom title for
Tabulatormulti-index columns (#8008)Improve feedback in
panel compileand reactive ESM workflows (#8012, #8010)Ensure exceptions are printed to the command line in development mode (#8022)
Bug Fixes#
Guard against race conditions in
DeckGLduring resize (#8031)Prevent errors when
client_commis undefined in some JS execution contexts (#8030, #8033)Fix dark theme background issue in
MultiChoicewidget (#8014)Avoid rendering Plotly components if container is not yet defined and prevent layout boomeranging (#8021)
Ensure React
useStatecallbacks are registered only once (#8023)Support
Pathobjects in stylesheet definition (#8026)
Version 1.7.2#
This patch release includes a number of important bug fixes, optimizations, and compatibility updates, particularly for React and ESM-based components. It also includes enhancements to the Tabulator table and more robust support for Audio/Video panes. Many thanks to @etihwo for his continued contributions and the maintainer team @hoxbro and @philippjfr.
Enhancements#
Support for passing
bytesandBytesIOobjects toAudioandVideopanes (#7963)Add header tooltips to
Tabulator(#7988)Optimize layout calculations for ESM components (#7989)
Allow nested
ReactComponents to bypass Shadow DOM (#7991)Support
--ico-pathCLI option to support explicit .ico path specification (#7992)Loosen parameter type for
ReactiveExpr.widget_layout(#7964)Automatically unblock Comm on WebSocket re-connect (#7986)
Bug Fixes#
Fix
Tabulatorfast design and fix styling issues (#7956)Keep reference state consistent after Pyodide syncing (#7966)
Ensure correct model is used when determining if a link is set up (#7968)
Do not dispatch events on hold/unhold when the document is uninitialized (#7972)
Ensure theming does not error on
PyComponent(#7975)Prevent stylesheet patch from dispatching during initial load (#7978)
Fix caching issue for ESM render modules (#7990)
Correct initialization behavior of
ReactComponent(#7996)Fix threading race condition when applying consecutive updates to
Paramwidgets (#8003)
Version 1.7.1#
This patch release adds a new option to disable FileDropper previews and fixes a regression when updating Column children in Bokeh<3.7. Additionally it includes a number of documentation improvements. Many thanks to our returning contributors @dalthviz, @emmanuel-ferdman, @MarcSkovMadsen, and @hoxbro
Enhancements#
Bug fixes#
Documentation#
Fix image links in Azure documentation (#7938)
Version 1.7.0#
This minor release is not as jam-packed as previous minor releases but adds a number of quality of life improvements, bug fixes and features along with version and compatibility updates for a number of JS dependencies. Many thanks to some of our more frequent contributors @dalthviz, @etiwho, our new contributor @emmanuel-ferdman and our maintainers @Hoxbro, @MarcSkovMadsen and @philippjfr.
Features#
Add a secondary (right) sidebar to the
FastListTemplate(#7774)Add
Date(Time)Picker.allowInputoption (#7886)Add
Markdown.disable_anchorsoption (#7902)Add
config.cache_pathvariable to configure default location for diskcache (#7903)Support custom cookie path (#7911)
Allow customizing index page titles with
--index-titlesCLI option (#7912)Add
Image.targetoption to configure where to openlink_url(#7924)
Enhancements#
Versions and Compatibility#
Bug fixes#
Deduplicate components before compiling (#7887)
Avoid boomeranging of events after
holdis applied (#7892)Handle .ico image base64 mime-type correctly (#7894)
Ensure
FileDropperheight is not limited (#7898)Ensure correct stylesheet cache is used by theme hooks when component is shared between sessions (#7896)
Reset
BaseTemplate._documentscorrectly on autoreload (#7897)Ensure widget CSS is loaded correctly when server path is prefixed (#7900)
Correct display
Tabulatorwith multi index and multi index column (#7907)Ensure stretch and scale sizing_mode does not cause overflow in container (#7928)
Documentation#
Version 1.6.3#
Date: 2025-04-23
This release introduces a number of performance improvements related to rendering of children in layouts and ESM components, a number of bug fixes and a number of documentation improvements. We are pleased to welcome @malemburg as a new contributor and want to thank @s-alexey, @Coderambling, @etihwo and our core maintainer team including @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements#
Bug fixes#
Fix handling of React based
AnyWidgetComponenttypes (#7820)Cache ESM render modules (#7827)
Check for
Noneinselectfunction forPyComponent(#7837)Fix for
AttributeErrorinauth.py:CodeChallengeOAuth login (#7844)Fix error when
old_objectsis empty in_get_objects()(#7842)Ensure
ReactiveESMrenders elements (#7853)Ensure ESM shared resources are watched properly (#7856)
Fix Material design
Tabulatorheader color (#7855)Ensure current view and selection lookups on
TabulatorhandleNonecase (#7858)Ensure
Modalevents are targeted to correct model (#7860)Ensure
ChatFeedhas inherent height (#7861)Ensure
Markdowncode blocks are always left aligned (#7862)Gracefully handle
EChartsdelayed rendering (#7869)
Documentation#
List version agnostic wheel URLs in WASM standalone docs (#7857)
Correct
ClassSelectorkeyword inbuild_todo.md(#7819)Fix documentation of
--oauth-extra-params(#7865)Fix minor issues in FastAPI docs (#7866)
Clarify OAuth redirect uri (#7868)
Add section in load balancing about Bokeh extensions (#7832)
Version 1.6.2#
Date: 2025-03-28
This release primarily introduces improvements for ESM and React components and refactoring to make it easy to subclass existing components. This is an effort to make it easier to provide alternative implementations for Panel components. Additionally this release includes compatibility for Bokeh 3.7, bug fixes for TextEditor and a variety of other bug fixes. Many thanks to our new contributor @s-alexey, our returning contributors @Coderambling and the core maintainer team including @Hoxbro, @ahuang11 and @philippjfr.
Enhancements#
Allow
model.useStateinReactComponents to reference nested parameter values (#7743)Allow providing shared ESM modules (#7757)
Allow defining root node for
ReactComponent(#7787)Improve pretty printing in
HoloViewspane (#7775)Allow serializing joint dict/Parameterized types on
DataModel(#7789)Improve ListLike and NamedListLike to better match Python list behavior (#7794)
Improve rendering of ReactComponent children (#7802)
Allow overriding Param input widgets (#7813)
Performance#
Bug fixes#
Correctly handle empty source files (#7732)
Add extra guard around
get_ipythoncheck (#7734)Ensure
ReactComponentchildren are sized correctly (#7741)Ensure
ChatStepdoes not toggle from failed to success (#7742)Ensure
Feedand scrollable layout children heights are not fixed (#7747)Declare more
Childparameters on various components (#7749)Do not sync parameters mapped to None on on ESM components (#7750, #7753)
Always include esm.css for ESM components (#7752)
Do not duplicate stylesheets (d133eb9)
Ensure
ChatSteptext does not overflow container (#7770)Refactor
ChatFeedpost hook ensuring it processes correct message (#7722)Ensure hooks are applied to root components with
Fastdesign (#7777)Ensure resource mode is set in notebooks (#7776)
Clear state cookie if OAuth access token expired and canβt be refreshed (#7780)
Fix formatting in
TextEditorwidget (#7739)Use Ace version with no require.js dependency (#7781)
Ensure multiple sequential notifications render (#7790)
Style correct column when frozen
Tabulatorcolumn is an index (#7792)Ensure IconButton tooltip timer is cleared on multiple mouseenter events (#7798)
Ensure pre-processors are applied to ESM children (#7799)
Ensure outputs are laid out correctly after initial render of
EditableTemplate(#7816)Fix regressiong related to providing Path to ESM component stylesheets (#7809)
Compatibility#
Documentation#
Version 1.6.1#
Date: 2025-02-14
This patch release primarily addresses issues running Panel behind a reverse proxy, improves the developer experience of working with custom ESM bundles and adds compatibility for Plotly 6.0. Congratulations to @fabiovincenzi and @pankajp for their first contribution fixing inlining of stylesheets. Next we want to thank our returning contributors @ceball, @Azaya89 and @Coderambling as well as our core developer team including @ahuang11, @Maximlt, @hoxbro and @philippjfr for contributing to this release.
Enhancements#
Bug fixes#
Ensure errors in sync periodic callbacks are logged (#7665)
Reset
visible_rangewhenFeed.objectsare updated (#7673)Ensure ESM bundles correctly resolve component implementations (#7684, #7698)
Fix default avatar in send/stream (#7677)
Ensure index redirects are relative to fix index page behind a reverse proxy (#7704)
Ensure root_url is correctly determined during auth (#7680)
Ensure the modal is on top in EditableTemplate (#7710)
Ensure Tabulator selection is recalculated after filtering (#7712)
Fix custom login endpoints (#7714)
Ensure type checkers can correctly infer extension argument types (#7709)
Ensure custom components and extensions respect resource mode in notebooks (#7701, #7716)
Ensure in process events are cleaned up after they are applied (#7717)
Compatibility#
Docs#
Version 1.6.0#
Date: 2025-01-25
This release adds a number of features including a standalone Modal component, the ability to infer widget parameters from values, and the ability to easily edit a ChatMessage. Additionally it includes a number of enhancements for styling, particularly in dark themes, other enhancements for chat components and a large number of bug fixes. Many thanks for our returning contributor @kdheepak, our new contributors @pgierz, @jonatantreijs and @etihwo, and of course the whole maintainer team including @ahuang11, @MarcSkovMadsen @hoxbro, @maximlt and @philippjfr.
Features#
Enhancements#
Allow
ChatFeed.callback_exceptionto accept a callable and βtracebackβ (alias for verbose) (#7558)Fix Accordion active_header_background in dark theme (#7576)
Increase default max character limit on
ChatAreaInput(#7562)Fix chat message alignment issues (#7563)
Make
Markdownpane line breaking behavior configurable (#7582)Improve styling of chat components in dark theme (#7601, #7602)
Automatically scroll when streaming to
ChatFeedandChatStep(#7608)Add support for remote filesystems on
FileSelector(#7618)Add support for
FigureWidgetevents onPlotlypane (#7654, #7662)
Bug fixes#
Fix Azure Oauth issues (#7587)
Correctly display file not found paths in
panel convert(#7589)Fix
Tabulator.patchwhen table is filtered (#7621)Ensure
esbuildcan be detected on windows duringpanel compile(#7625)Fix various issues styling
Tabulatorwhen it is wider than the viewport (#7626)Fix resource loading when serving Panel app on nested FastAPI endpoint (#7627)
Fix
panel oauth-secretcommand (#7628)Ensure fonts are applied to
NotificationArea(#7633)Handle session context where session is not defined (#7634)
Ensure
CompositeWidgetcan be populated in callback (#7636)Correctly identify skimage and PIL packages when converting to pyodide (#7637)
Ensure we use CDN resources in pyodide (#7638)
Consistently apply sizing_mode to
FileSelectorcomponents (#7640)Ensure tasks are cancelled correctly (#7641)
Ensure
NotificationAreastylesheet loads in panel-preview (#7643)Ensure
NestedSelectupdates whenoptionsare changed (#7649)Ensure
ButtonIcondisplays an icon during click (#7650)
Compatibility and Updates#
Documentation#
Version 1.5.5#
Date: 2024-12-18
This release fixes a regression causing .node_modules to be bundled into our released wheel and introduces a number of bug fixes and enhancements. Many thanks to @mayonnaisecolouredbenz7, @pmeier, @Italirz, @Coderambling and our maintainer team @MarcSkovMadsen, @hoxbro, @ahuang11, @thuydotm, @maximlt and @philippjfr.
Enhancements#
Bug fixes#
Ensure Notifications are cleaned up correctly (#4964)
Ensure
FileDownloadlabel text updates correctly (#7489)Fix
Tabulatoraggregation behavior (#7450)Fix typing for
.servablemethod (#7530)Ensure
NestedSelectrespectsdisabledparameter (#7533)Ensure errors in hooks arenβt masked by fallback to different signature (#7502)
Ensure Notifications are only shown once if scheduled onload (#7504)
Documentation#
Maintenance#
Compatibility#
Version 1.5.4#
Date: 2024-11-12
This release primarily focuses on improving the ESM components including fixes for serialization of parameter values, improvements for compiling bundles, and building custom layouts. Additionally this release includes the new DatetimeSlider, adds a copy button to codeblocks in Markdown panes, improves responsive sizing for Plotly and starts adding better support for Polars. Many thanks and a warm welcome to our new contributor @MP-MaximilianLattka as well as our maintainer team, including @Hoxbro, @thuydotm, @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements#
Add
DatetimeSliderwidget (#7374)Improve Jupyter preview error handling (#7434)
Add copy button to
Markdowncodeblocks (#7451)Various improvements for writing ESM components (#7462)
Log authorization callback errors (#7463)
Support polars in
pn.cache(#7472)Improve and document
holdutility (#7474)Improve how
panel compilecollects bundles (#7477)
Bug fixes#
Fix issues detecting changed property values during serialization (#7432)
Ensure ESM compilation correctly detects file extension (#7446)
Ensure parameter overrides are applied to ESM components (#7452)
Ensure component
Childrenparameter correctly resolves when multiple types are defined (#7454)Fix issues using Jupyter Preview with notifications enabled (#7466)
Ensure
HTML/Markdownstreaming does not freeze during rapid updates (#7480)Ensure
Plotlysizes correctly on initial render (#7483)
Version 1.5.3#
Date: 2024-10-23
This release fixes a number of smaller regressions related to Tabulator row_content, ensures --dev/--autoreload picks up on external modules correctly and resolves OAuth guest endpoints correctly. Additionally it introduces some enhancements and bug fixes for custom components, such as adding support for loading custom components ESM Javascript bundles from the inbuilt endpoint ensuring that the bundle can be cached by the browser. Many thanks and welcome to our new contributors @chryshumble and @haojungc, our returning contributors @TheoMathurin, @aktech and @Coderambling and the core maintainer team @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements#
Bug fixes#
Address issues with
Tabulatorembed_content and optimize row expansion (#7364)Prevent pipeline network plot from linking with other plots (#7372)
Various fixes for custom component compilation (#7381)
Fix OAuth guest endpoint (#7385)
Fix
ReactiveESM._importmaptyping (#7392)Ensure that autoreload records modules to watch before startup (#7399)
Prevent
Tabulatorfrom overlapping whenmax_heightis set (#7403)Do not mutate layout
Childreninplace (#7417)Set
Tabulatornull formatter to empty string (#7421)Ensure Tabulator table content does not overflow (#7425, #7431)
Ensure
cachehandles hashing of classes and instances correctly (#7478)
Compatibility#
Upgraded
Tabulatorversion to 6.3 (#7419)
Documentation#
Version 1.5.2#
Date: 2024-10-03
This release is a small patch release primarily addressing a regression handling selections on multi-indexed data on the Tabulator widget along with a number of documentation improvements. Many thanks to @jrycw along with @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
Bug fixes#
Documentation#
Version 1.5.1#
Date: 2024-09-27
This release primarily focuses on a number of tweaks and enhancements for the documentation and also resolves a number of bugs related to Tabulator rendering and the new FastAPI integration. As always, many thanks to our contributors including our new contributors @dennisjlee and @alexcjohnson, our returning contributors @thuydotm and @jbednar and the core maintainer team @hoxbro, @maximlt, @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements#
Bug fixes#
Fix langchain import in
panel.chat.langchain(#7297)Ensure Tabulator is consistently redrawn after render and resize (#7305)
Filter out empty plotly_selected events (#7312)
Improve parameter validation on
Timepicker(#7308)Ensure
Tabulator.selectionconsistency whenpagination='local'(#7304)Correctly handle ipv6 localhost URI in
Location(#7316)Ensure resource URLs are handled correctly in all server implementations (#7318)
Ensure
Plotlydatetime are correctly converted from timestamp to date string (#7319)
Regressions#
Only postpone
--setupscript until after server startup if--num-procsis greater than 1 (#7289)
Compatibility#
Support for Bokeh 3.6.x releases (#7322)
Documentation#
Fix and improve JupyterLite pyodide distribution (#7286)
Document how to apply gradient styling o
Tabulatorcells (#7291)Clarified wording in best practices docs (#7290)
Minor tweaks for the
FileDropper(#7307)Ensure docs consistently recommend
--devover--autoreload(#7285)Tweaks for Tabulator docs (#7315)
Improve fastapi docs (#7317)
Add note about Tabulator font-size (#7321)
Tweak best practices (#7301)
Fix typo in JPG component docs (#7323)
Version 1.5.0#
Date: 2024-09-13
This release, while technically a minor release hugely expands the scope of what is possible in Panel. In particular the introduction of the new panel.custom module makes it trivially easy to create new JS and React based components using modern tooling, a first-class developer experience and support for compilation and bundling. We are incredibly excited to see which new components you build using this approach. This release also includes native integration with FastAPI, such that you can now run Panel apps natively on an existing FastAPI server. We also introduce a number of new components, improved the developer experience, and squashed a huge number of bugs, particularly for the Tabulator component.
We really appreciate all the work that went into this release from 21 separate contributors. In particular we would like to welcome our new contributors @twobitunicorn, @justinwiley, @dwr-psandhu, @jordansamuels, @gandhis1, @jeffrey-hicks, @kdheepak, @sjdemartini, @alfredocarella and @pmeier. Next we want to recognize our returning contributors @cdeil, @Coderambling, @jrycw and @TBym, and finally the dedicated crew of core contributors which includes @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt, @mattpap, @jbednar and @philippjfr.
Features#
Allow building custom ESM based
JSComponentandReactComponent(#5593)Add
Placeholderpane (#6790)Add
FileDropperwidget (#6826)Add
ChatStepcomponent to show/hide intermediate steps (#6617)Add
TimePickerwidget (#7013)Add
PyComponentbaseclass (#7051)Add native support for running Panel on FastAPI server (#7205)
Enhancements#
Allow callbacks after append and stream (#6805)
Enable directory uploads with
FileInput(#6808)Make
autoreloadrobust to syntax errors and empty apps (#7028)Add support for automatically determining optimal
Tabulator.page_size(#6978)Display value for player (#7060)
Optimize rendering and scrolling behavior of
Feed(#7101)Implement support for multi-index columns in
Tabulator(#7108)Add placeholder while loading to
ChatFeed(#7042)Allow streaming chunks to
HTMLandMarkdownpanes (#7125)Show
Playerinterval value on click (#7064)Expose
Playeroptions to scale and hide buttons (#7065)Add
on_keyupandvalue_inputforCodeEditor(#6919)Detect WebGL support on
BrowserInfo(#6931)Add nested editor to
Tabulator(#7251)Support anchor links in
HTMLandMarkdownpanes (#7258, #7263)
Bug fixes#
Ensure
Gaugeis responsively sized (#7034)Ensure
Tabulatorsortersare correctly synced (#7036)Ensure
Tabulatorselectionis consistent across paginated, sorted and filtered states (#7058)Do not propagate clicks on input elements in
Cardheader (#7057)Ensure
Tabulatorrange selection applies to current view (#7063)Ensure
Tabulator.selectionis updated when indexes change (#7066)Ensure
Tabulatorcan be updated with None value (#7067)Fix issues with PYTHONPATH in Jupyter Preview (#7059)
Ensure
Tabulatorstyling is correctly applied on multi-index (#7075)Fix various scrolling related Tabulator issues (#7076)
Ensure
Tabulatordata is updated after filters are changed (#7074)Allow controlling
DataFramepane header and cell alignment (#7082)Highlight active page in
Tabulatorusing Fast Design (#7085)Ensure follow behavior works when streaming to paginated
Tabulator(#7084)Avoid events boomeranging from frontend (#7093)
Correctly map
Tabulatorexpanded indexes when paginated, filtered and sorted (#7103)Ensure custom
HoloViewsbackends do not error out (#7114)Ensure events are always dispatched sequentially (#7128)
Ensure
'multiselect'Tabulator.header_filteruses βinβ filter function (#7111)Ensure no content warning is not displayed when template is added (#7164)
Make it easy to prompt user for input in
ChatFeed(#7148)Fix
LaTeXpane MathJax rendering (#7188)Ensure OAuth expiry is numeric and can be compared (#7191)
Correctly detect max depth of
NestedSelectif level is empty (#7194)Make
--setup/--autoreload/--warmwork with--num-procs(#6913)Ensure error rendering application does not crash server (#7223)
Refactor
state.notificationsto fix pyodide (#7235)Handle setting None value on
DateRangePicker(#7240)Add header_tooltips parameter to
Tabulator(#7241)Fix issue using
Tabulator.header_filterwith recent Pandas versions (#7242)Fix setting of
Dialbackground (#7261)Fix issues when loading multiple times in a Jupyter(Lab) session (#7269)
Compatibility and Updates#
Documentation#
Deprecation and API Warnings#
Version 1.4.5#
Date: 2024-07-25
This release addresses includes a wide range of bug fixes and some minor enhancements primarily aimed at performance. Many thanks to @CodeRambling as a returning contributor, and the core developer team including @Hoxbro, @MarcSkovMadsen, @maximlt and @philippjfr for contributing to this release.
Enhancements#
Bug fixes#
Clear selection if value change from pagination=remote (#6008, #6968)
Ensure user cookie can be unencoded (#6937)
Do not trigger ScrollButton event unless clicked (#6938)
Do not error on autoreload shutdown (#6940)
Ensure hooks such as plot linking are applied across roots in a template (#6975)
Ensure
Feedmaintains scroll position (#6984)Ensure correct Document is set after liveness session cleanup (#6988)
Fix issue detecting PyScript worker (#6998)
Fix
FileDownloadicon alignment (#6981)Ensure redraw does not error out if
Tabulatoris undefined (#6930)Guard auth against user being removed (#6908)
Documentation#
Version 1.4.4#
Date: 2024-05-31
This release primarily addresses a critical regression in notebook comm channel handling introduced in 1.4.3 and includes a few minor fixes for Tabulator and documentation related issues. Many thanks to @justinwiley for his first contribution to Panel, @twobitunicorn as a returning contributor and the core contributors @maximlt and @philippjfr for their continued work.
Bug fixes#
Fix notebook CommManager extraction of buffers (#6880)
Fix issue when editing timezone-aware datetime column
Tabulator(#6879)Ensure
Tabulatordoes not rebuild children when usingembed_contentwithrow_content(#6881)Ensure
ParamRef,ParamFunctionandParamMethodresolve synchronous generators asynchronously (#6885)Ensure periodic callback cleanup does not error on session warmup (#6886)
Documentation#
Version 1.4.3#
Date: 2024-05-23
This patch release is likely the last in the 1.4.x series. The most important fixes in this release are fixes to ensure keyboard shortcuts do not get triggered inside Panel components for for recent versions of JupyterLab, fixes for OAuth token refreshes, and various documentation fixes. The release also includes a small number of enhancements, including improved UX for the FileSelector. Many thanks to the many contributors to this release including @jrycw, @Coderambling, @cdeil, @twobitunicorn, and the maintainers @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt and @philippjfr.
Enhancements#
Bug fixes#
Ensure reference is resolved when passing options to
from_param(#6762)Ensure token refresh is always scheduled (#6802)
Fix small memory leak when caching
Designmodifiers (#4978)Ensure refreshed tokens can be accessed across processes (#6817)
Ensure binary buffers are correctly extracted in notebook
CommManager(#6818)Make
Tabulatorresize handling more robust (#6821)Fix links in
panel convertindex (#6828)Suppress keyboard shortcuts in notebook output (#6825)
Ensure we donβt error out when
FastDesignProvideris undefined (#6832)Ensure model changes are applied while session is starting (#6835)
Documentation#
Refactor the
hvplot.interactivetutorial utilizingpn.rx(#6700)Update styling after upgrade to latest pydata-sphinx-theme (#6823)
Fix bug in Reset Jupyterlite script (#6834)
Fix gallery deployment URL (#6831)
Add redirects for old documentation pages (#6833)
Remove Google Analytics (#6836)
Various documentation fixes (#6829)
Fix link in gallery index (#6858)
Version 1.4.2#
Date: 2024-04-23
This micro-release fixes a number of smaller regressions and bugs including parsing of notebooks. Many thanks to our new contributor @bkreider, our returning contributors, @jrycw and @ea42gh, and our dedicated team of maintainers including @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements#
Bug fixes#
Fix regression in parsing notebooks served as apps (#6736)
Do not include placeholder in
ChatInterface.serializeand properly replace placeholder for streams (#6734)Remove
Perspective.toggle_configwhich was erroneously reintroduced in 1.4.1 (#6721)Fix dynamically setting
ChatMessagefooter_objects/header_objects(#6705)Allow
Location.syncof DataFrame parameters (#6745)Fix and improve Plotly event handling (#6753)
Fix issue when converting templated apps to Pyodide/PyScript (#6756)
Fix styling of loading indicator in Fast design (#6761)
Ensure
VTKnan, above and below colors are serialized (#6763)Fix issues with
Perspectivetheme and persist config when switching plugins (#6764)Do not restore unmodified parameters in
config.settriggering undesirable side-effects ([#6772 (#6771)Make autoreload module cleanup more robust (#6771)
Ensure that cache
.clear()clears the correct function (#6771)
Documentation#
Version 1.4.1#
Date: 2024-04-05
This micro-release fixes a number of regressions and other bugs introduced in recent releases and further improves the dashboard builder UI. Additionally it includes some tweaks and polish for the new tutorial material. Many thanks to our new contributor @jrycw, our returning contributors @cdeil and @TheoMathurin and our maintainers @ahuang11, @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
Enhancements#
Bug Fixes#
Fix layout persistence issues in dashboard builder (#6602)
Ensure
Perspectiveloads in notebooks and docs (#6626)Allow full reset of dashboard builder layout (#6625)
Fix issues with
VTKcolormap serialization (#6651)Allow
TabulatorHTMLTemplateFormatterto reference multiple columns (#6663)Fix loading spinner in converted app without template (#6665)
Avoid unnecessary rescroll on Column (#6666)
Fix dynamically updating description tooltips (#6676)
Ensure Perspective is fully loaded before attempting render (#6689))
Ensure busy indicators are always reset (#6698)
Styling#
Documentation#
Improve layout builder docs (#6601)
Ensure all docs pages are indexed (#6615)
Document
Flexbox.gapparameter (#6616)Improve custom template documentation (#6618)
Improve Layout Builder Docs (#6619)
Improve PyCharm and Colab notebook documentation (#6599)
Update gallery endpoint in docs (#6645)
Various smaller documentation fixes and improvements (#6682, #6690)
Version 1.4.0#
Date: 2024-03-25
This minor release packs a punch both in terms of features, the number of enhancements and bug fixes and perhaps most importantly the addition of a set of tutorials that aim to get novices up-to-speed. The main new feature is a so called EditableTemplate which allows arranging dashboards using a drag-and-drop interface and also has strong integration with JupyterLab previews to go from a notebook to a deployed app without having to worry about writing layout code. Next, this release includes a number of need widgets (NestedSelect, DateRangePicker, ButtonIcon), layouts (Feed) and panes (Textual, WebP), and overhauls the autoreload feature with faster and more robust support for reloading entire modules. Lastly this release, along with Param 2.1.0, continues to build on the new reactive expression API making it easy to write reactive expressions and pipelines including support for streaming data with generators. We really appreciate all the work that went into this release and especially want to call out @MarcSkovMadsenβs effort in putting together the new tutorial materials. Thereβs more work to do but itβs a huge step forward and weβre excited to hear your feedback. We want to extend a special thanks to our amazing new crop of new contributors including @atisor73, @Osuwaidi, @suryako, @Davide-sd, @doraaki, @mayonnaisecolouredbenz7, @CTPassion, @J01024, @l3ender and @Coderambling. Next we want to recognize our returning contributors @vaniisgh, @cdeil, @limx0m, and @TheoMaturin, and the finally the dedicated crew of core contributors which include @maximelt, @Hoxbro, @MarcSkovMadsen, @ahuang11, @mattpap and @philippjfr.
Features#
Add
EditableTemplateto support dashboard builder UI in Jupyter (#5802)Add
ChatAreaInputas default text input widget forChatInterface(#6379)Add Panel tutorials (#5525, #6208, #6212, #6388, #6425, #6466, #6491)
Add
DateRangePickerwidget (#6027)Add
Feedlayout and use it as layout forChatFeed(#6031, #6296)Add
WebPpane (#6035)Add
ButtonIcon(#6138)Add
Textualpane (#6181)
Enhancements#
Improve
--autoreloadby using watchfiles and selectively reloading packages (#5894, #6459) Load loading indicator from file instead of inlining (#6112)Allow providing additional stylesheets in
card_params(#6242)Add
scrolloptions to permanently toggle on layouts (#6266)Allow choosing position of frozen columns on
Tabulator(#6309)Add help message on
ChatFeed(#6311)Ensure CSS can be applied to every aspect of
ChatMessage(#6346)Add HoloViz logos as
ChatMessageavatars (#6348)Add
gapparameter toFlexBox(#6354)Set default
stepofDatetimeRangeSliderto 1 minute (#6373)Add support for passing objects reference to
FlexBox(#6387)Allow editable sliders to be embedded (#6391)
Add
messageintocss_classestoChatMessagemarkup (#6407)Allow appending objects to the
ChatMessageheader & footer (#6410)Add ability to declare icon label (#6411)
Add title and settings and fix datetime to
Perspective(#6482)Warn user if loading extension in VSCode or Colab without
jupyter_bokeh(#6485)Throttle updates to Boolean indicators (#6481)
Add
ParamRefbaseclass forParamFunctionandParamMethod(#6392)Add ability to Skip
Param<Ref|Function|Method>updates (#6396)Add
Param<Ref|Method|Function>andReactiveExprto panes module (#6432)Set up
param.rxdisplay accessor on import (#6470)Allow using Carto tiles in
DeckGL(#6531)Improve
VTKJSbinary serialization (#6559)Ensure component CSS is pre-loaded if possible, avoiding flicker on load (#6563)
Styling#
Ensure navbar toggle icon is correct color in
BootstrapTemplate(#6111)Change
loadingbackground filters to work better in dark themes (#6112)Improve styling of
FileInputwidget (#6479)Improve Jupyter Preview error handling and error template (#6496)
Add scale animation to icons on hover and click (#6376)
Redesign index pages (#6497)
Improve
Tabulatoreditor text color inFastdesign (#6512)Ensure
BootstrapTemplatehamburger icon is white (#6562)
Compatibility & Version Updates#
Bug fixes#
Add resize handler for
FloatPanel(#6201)Fix serving of global template in notebook (#6210)
Ensure
Tabulatorrenders in collapsedCard(#6223)Fix issues with
VTK,VTKVolumeandVTKJSdue to webgpu renderer (#6244)Ensure
ChatInterfacerespect supplied default user (#6290)Ensure
HTMLand other markup panes can be emptied (#6303)Ensure
ChatMessageinternals correctly respectDesign(#6304)Ensure collapsed
Carddoes not cause stretching (#6305)Ensure notebook preview always uses server resources (#6317)
Remove animation from loading spinner without spin (#6324)
Ensure model is only added/removed from Document once (#6342)
Ensure
loading_indicatorresets when configured with context manager (#6343)Fix modal overflow and resizing issues (#6355)
Ensure that ripple matches notification size (#6360)
Fully re-render
CodeEditoron render calls ensuring it displays correctly (#6361)Ensure
FileDownloadbutton has correct height (#6362)Ensure
HTMLmodel is redrawn ifstylesheetsis emptied (#6365)Allow providing custom template (#6383)
Ensure
Debuggerrenders without error (#6423)Ensure
ChatMessageheaderupdates dynamically (#6441)Ensure pending writes are dispatched in order and only from correct thread (#6443)
Ensure layout reuses model if available (#6446)
Improved exception handler in unlocked message dispatch (#6447)
Fix display of interactive
Matplotlib(#6450)Ensure streaming
ChatMessageonChatInterfaceand mentionserialize(#6452)Ensure
Plotlypane renders and hides correctly inCard(#6468)Fix issues rendering widget components with
Fastdesign (#6474)Fix binary serialization from JS -> Pyodide (#6490)
Avoid overeager garbage collection (#6518)
Fix floating point error in
IntRangeSlider(#6516)Load JS modules from relative path (#6526)
Ensure no events are dispatched before the websocket is open (#6528)
Ensure
Markdownparsing does not choke on partial links (#6535)Fixes to ensure larger
PDFs can be rendered (#6538)Ensure
IPywidgetcomms are only opened once (#6542)Fixes for message handling in Jupyter Preview context (#6547)
Fix unnecessary loading of
ReactiveHTMLresources (#6552)Ensure
Template.raw_csshas higher precedence than default template CSS (#6554)Avoid asyncio event loop startup issues in some contexts (#6555)
Ensure column subset is retained on
Tabulator.style(#6560)Ensure bokeh mathjax bundle when mathjax extension is loaded in notebook (#6564)
Chat Components#
Fix
ChatInterfacestopbutton for synchronous functions (#6312)Include
stylesheetsdownstream, including layouts in ChatMessage (#6405)Ensure ChatInterface supports chat input without
value_inputparameter (#6505)Ensure word breaks to avoid overflow in
ChatMessage(#6187, #6509)Ensure nested disabled state stays disabled on
ChatFeed(#6507)Allow streaming
Noneas the initialChatMessagevalue (#6522)
Documentation#
Add Roadmap to documentation (#5443)
Improve
HoloViewsreference guide (#6065)Improve the user experience for resetting Jupyterlite (#6198)
Add section headers to Chat reference documentation (#6370)
Migrate gallery to new Anaconda DSP instance (#6413)
Improve home page (#6422)
Adding AWS deployment to documentation (#6434)
Update Streamlit comparison (#6467)
Add logging how-to guide (#6511)
Document pygments dependency for code syntax highlighting (#6519)
Add how-to guide on configuring PyCharm (#6525)
Deprecations & Removals#
Remove
Acealias forCodeEditorRemove
ChatBoxwhich has been replaced bypanel.chatcomponentsRemove
HTML.stylewhich is now replaced withHTML.stylesRemove
Trend.titlewhich is now replaced byTrend.nameRemove
Viewable.appwhich is now replaced withpn.io.notebook.show_serverRemove
Viewable.backgroundwhich is now replaced withViewable(styles={'background': ...})Remove
Viewable.pprintwhich is now replaced withprint(Viewable(...))
Version 1.3.8#
Date: 2024-01-24
This patch release fixes an important regression in the 1.3.6 release that resulted in global state to be incorrectly resolved in certain cases. Many thanks to our new contributor @fohrloop and our maintainers @ahuang11
Bug fixes#
Compatibility#
Updates for compatibility with pandas 2.2 (#6259)
Documentation#
Version 1.3.7#
Date: 2024-01-19
This patch release focuses on a number of fixes and minor enhancements for the chat components and various other smaller improvements and fixes including docs improvements. In particular we want to highlight the new Ploomber deployment guide contributed by @neelash23. Next we want to welcome @jz314, @fayssalelmofatiche and @neelasha23 as new contributors and welcome back @SultanOrazbayev as a returning contributor. Lastly we want to thank the core contributor team, including @MarcSkovMadsen, @ahuang11, @maximlt, @Hoxbro and @philippjfr for their continued efforts maintaining Panel.
Enhancements#
Bug fixes#
Fix generator placeholder and optimize updates in Chat components (#6105)
Fix issue with callback future handling on Chat components (#6120)
Fix bug in Chat interfaces related to
pn.state.browser_info(#6122)Allow instantiating empty
Matplotlibpane (#6128)Ensure icon displays inline with text on
FileDownload(#6133)Fix styling of links in
Tabulatorfast theme (#6146)Fix passing of
card_paramsonChatFeed(#6154)Handle
Tabulator.title_formatterif is typedict(#6166)Fix
per_sessioncaching (#6169)Correctly reshape nd-arrays in
Plotlypane (#6174)Handle NaT values on
Perspectivepane (#6176)Do not rerender output if
ReplacementPaneobject identity is unchanged (#6183)Tabulator: fix valuesLookup set up for older list-like editors (#6192)
Fix pyodide loading message styling issues (#6194)
More complete patch for the
TextEditorto support being rendered in the Shadow DOM (#6222)Add guard to
Tabulatorensuring that it does not error when it is not rendered (#6223)Fix race conditions when instantiating Comm in Jupyter causing notifications to break (#6229, #6234)
Handle duplicate attempts at refreshing auth tokens (#6233)
Compatibility & Security#
Upgrade Plotly.js to 2.25.3 to address CVE-2023-46308 (#6230)
Documentation#
Add
DesignandThemeexplanation documentation (#4741)Fix pyodide execution in documentation
Use GoatCounter for website analytics (#6117)
Add Dask How to guide (#4234)
Fix
Materialtemplate notebook .show() call (#6137)Add missing item in docstring (#6167)
Ploomber Cloud deployment documentation (#6182)
Correct duplicate wording (#6188)
Update JupyterLite Altair example to latest API (#6226)
Version 1.3.6#
Date: 2023-12-20
This patch release addresses a major regression in server performance introduced in 1.3.5 along with some additional minor fixes. We want to welcome @nenb as a new contributor and want to thank the maintainers @ahuang11, @maximlt and @philippjfr for their contributions to this release.
Enhancements#
Add explicit size option to ToggleIcon (#6092)
Bug fixes#
Fix execution of OAuth of callback to refresh
access_token(#6084)Fix
ChatReactionIconsalignment and trigger reactions correctly (#6086)Change
Columnscroll_positiondefault value fromNoneto0(#6082)Fix issue with accumulating callbacks on server (#6091)
Ensure
ReactiveExprrenders in pyodide (#6097)Ensure
TooltipIcondescription can be updated (#6099)Fix IPyWidgets rendering in
BootstrapTemplate(#6100)Fix padding and alignment of
FileDownload(#6101)
Version 1.3.5#
Date: 2023-12-18
This micro-release fixes a large number of issues, applies some performance optimizations and resolves some regressions introduced in previous micro-releases. The main regressions that were addressed include rendering of ChatMessage reaction icons, the ability to obtain an OAuth access_token if it is not a valid JWT token, and issues with async callbacks. We are very pleased to welcome new contributors @mitulb, @fazledyn-or, @benbarn313 and @vaniisgh and want to thank them for their contributions. We also want to thank @cdeil for continuing to contribute and the maintainer team including @MarcSkovMadsen, @Hoxbro, @maximlt, @ahuang11, @droumis and @philippjfr for their continued efforts.
Enhancements#
Add support for timestamp timezones for
ChatMessage(#5961)Replace whitelist blacklist with allowlist denylist (#5975)
Allow stopping respond callbacks midway on
ChatInterface(#5962)Add support for
Image.caption(#6003)Improvements for
Fasttemplate styling (#6023)Replace
Playerwidget unicode icons with SVG for more consistency (#6030)Elaborate on
ChatInterfacecallback exception summary (#6046)Add
ToggleIconwidget (#6034)Use minified
Tabulator.js(#6060)Support rendering
GeoDataFrameandGeoSeriesinDataFramepane (#6061)Optimize rendering of
ChatMessage(#6069)Apply smaller optimizations for
ViewableandChatMessage(#6074)Add bottom padding to
MaterialTemplate(#6075)Update mapbox-gl version for
DeckGLpane (#6077)
Bug fixes#
Remove duplicate property definition of
VizzuChart.config(#5947)Remove stray print in
Tabulatorstyler handling (#5944)Fix bug when clearing
pn.cachebefore anything has been cached (#5981)Fix
obj.save()when threading is enabled (#5993)Fix
Matplotlibresponsiveness and improve reference notebook (#5973)Gracefully handle non-decodable
access_token(#5994)Ensure
onloadcallbacks scheduled during or after load are still executed (#6005)Donβt attempt to set Tabulator
text_alignon Bokeh formatters that donβt support it (#6010)Correctly set error page to be rendered on auth failure (#6014)
Fix
ChatInterfacepost callback for default (#5998)Ensure matplotlib backend is set correctly in pyodide worker (#6029)
Synchronously create Document patch message to avoid race conditions (#6028)
Do not inline CSS if it can be loaded from CDN (#6039)
Fix
ChatMessagereactions icon rendering (#6034)Fix issues with
ChatInterfacestop ensuring send button is re-enabled and placeholder removed (#6033)Ensure that
Designdoes not override properties onHoloViewspane (#6051)Ensure async callbacks correctly dispatch events when Websocket is locked (#6052)
Fix
state.add_periodic_callbackwhen callback is async (#6053)Do no update objects inplace unless explicitly requested fixing issues with non-updating components (#6055)
Update sizing of Panel models dynamically (#6054)
Make
panel.chat.langchainimport lazy improving import time (#6056)Change prominence of
TooltipIcon(#6057)
Documentation#
Version 1.3.4#
Date: 2023-11-29
This micro-release primarily addresses two important regressions related to the Tabulator text_align option and OAuth failing if the id_token does not contain the required user information. We are very excited to welcome @TBym to the growing list of contributors and thank the core maintainers @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements#
Bug fixes#
Fix regression when setting
text_alignandHTMLTemplateFormatteronTabulator(#5922)Ensure notifications are correctly destroyed (#5924)
Fix header overflow issues in
FastGridTemplate(#5935)Ensure
Audiomodel respects sizing (#5936)Persist Tabulator selection across pages when
pagination='remote'for all selection modes (#5929)Ensure
Tabulatorstyler subset logic is not lost (#5938)Fix regression in OAuth when
id_tokendoes not contain user key (#5939)Ensure Vega/Altair plot with responsive width/height respects fixed width/height value when set (#5940)
Ensure
BrowserInfois imported by default (#5942)
Documentation#
Version 1.3.2#
Date: 2023-11-22
This micro-release focuses on a number of performance improvements, speeding up the initial rendering of simple apps by 2x in many cases. In addition it includes a number of smaller enhancements for various widgets, better support for async and threading and a number of bug fixes related to authentication, the Tabulator widget and a few other items. We are very pleased to welcome @isumitjha and @fohria as new contributors and want to thank our core team including @maximlt, @Hoxbro, @MarcSkovMadsen, @ahuang11 and @philippjfr for their continuing contributions.
Performance#
Enhancements#
Use the compiled version of Pyodide by default (#5808)
Add support for
AutocompleteInput.search_strategyparameter (#5832)Use
stdlib_module_nameswhen determining pyodide dependencies (#5818)Add
Tabulator.sortableparameter (#5827)Add delay for tooltip to show up for buttons (#5860)
Add
serializemethod onChatMessageandChatFeed(#5764)Allow running onload and defer_load tasks on threads (#5865)
Allow Image panes for
ChatMessage.avatar(#5870)Allow async callbacks on
FileDownload(#5878)Allow running scheduled tasks on threads (#5879)
Bug fixes#
Fix Google OAuth default scopes (#5823)
Fix logic for cleaning up OAuth user (#5824)
Set
text_aligncorrectly ifTabulatoris given Bokehformatter(#5866)Fix
FileDownloadembed=Truestyle forFastdesign (#5875)Enable
Tabulatorselection across pages withpagination="remote"andselectable="checkbox"(#5889)Fix rendering of
VTKcolorbar (#5902)Ensure HoloViews
DynamicMapupdates when widget dimension has unit (#5904)Add space between
MaterialTemplateapp and site title separator (#5905)Consistently handle errors during authentication (#5909)
Compatibility#
Documentation#
Enhance
extensionandconfigdocs (#5790)Document setting a multiselect header filter on
Tabulator(#5825)Add missing
GridSpecdocs (#5840)Fix for getting_started widgets example (#5859)
Add more references to Panel Chat Examples (#5881)
Document
Tabulatorfontawesome css (#5892)Fix broken link to panel tagged items in holoviz blog (#5903)
MenuButton docs improvements (#5907)
Version 1.3.1#
Date: 2023-10-31
This micro-release primarily ships a variety of bug and regression fixes focusing on auth, the chat components, and WASM (i.e. PyScript and Pyodide) support. It also adds an enhancement to the auth components that now makes it possible to let users access applications as a guest. Many thanks to our new contributors @art3xa, @polivbr and @tupui as well as our core development team including @MarcSkovMadsen, @maximlt, @ahuang11 and @philippjfr.
Enhancements#
Add support for authenticating as guest using OAuth and basic auth components (#5743)
Bug fixes#
Ensure
ColorMapwidget correctly handles shared layout and display parameters (#5732)Fix accessing refreshed
access_token(#5734)Ensure
Markdowncode blocks always wrap (#5738)Fix returning
state.user_infoif noid_tokenis present in cookies (#5747)Fix
Widget.from_paramtype annotation (#5754)Fix auto send for
ChatInterfacewithTextAreaInput(#5762)Add support for iframe
srcdoconLocation(#5774)Ensure
Tabulator.styleapplies correctly with changing data (#5757)Ensure
panel convertcan correctly detecttransformers_jsimport (#5772)Adjust
ReactiveHTMLcss resources for relative paths (#5779)Ensure invalid query parameters warn instead of erroring (#5781)
Apply pyscript CSS by default without the splashscreen (#5784)
Ensure components which require DOM element to be attached can be rendered in
Card(#5786)
Documentation#
Version 1.3.0#
Date: 2023-10-23
This minor release packs many exciting new features, specifically a new panel.chat subpackage containing components with powerful capabilities for interacting with LLM whether local or remote. Secondly this release adds compatibility with Param 2.0 bringing powerful new features including the ability to leverage reactive expressions using the rx wrapper and deeper support for reactively linking parameters, expressions and bound functions on Panel components. Lastly we overhauled the OAuth implementations adding support for code authorization and password based OAuth grant workflows and automatically refreshing the access_token when it expires. Beyond that this release includes many enhancements and numerous bug fixes. Special thanks to our first time contributors @aktech and @monodera and returning contributors @cdeil, @pierrotsmnrd and @TheoMartin. We also want to highlight the contribution of our new core contributor @ahuang11 for developing the chat components and recognize @MarcSkovMadsen and @philippjfr for their efforts on testing and improving these new components. Finally we thank the entire core team @Hoxbro, @MarcSkovMadsen, @maximlt, @ahuang11 and @philippjfr for their continued efforts.
Feature#
Enhancement#
Add unit to widget in
HoloViewspane if provided (#5535)Allow registering global
on_session_destroyedcallback (#5585)Implement
auto_growonTextAreaInput(#5592)Add ability to redirect users from authorization callback (#5594)
Add support for
Pathobject inFileDownload(#5607)Add authorization_code and password based OAuth login handlers (#5547)
Add format to
EditableFloatSliderandEditableIntSlider(#5631)Add support for decorating async functions with
pn.io.cache(#5649)Map
param.BytestoFileInputwidget (#5665)
Bug fixes#
Fixes for
Columninvisiblescroll_buttontaking space (#5532)Guard undefined values from being set on
BrowserInfo(#5588)Fix thumbnails and use Panel design on index page (#5595)
Fix regressions in
TextEditorcaused by migration to shadow DOM (#5609)Sync
locationstate from request (#5581)Fix
Selectwidget label offset in Material Design (#5639)Override token contents when reusing sessions (#5640)
Fix patching a table with a
DataFramewith a custom index (#5645)Set
FloatPanelstatus correctly on initialization (#5651)Fix patching table with
pd.Timestampvalues (#5650)Ensure
notificationsandbrowser_infoare loaded whenHoloViewsis loaded (#5657)Gracefully handle resolution of invalid paths in
_stylesheets(#5666)Handle patching tables with
NaTvalues (#5675)
Compatibility#
Add support for Python 3.12 and drop Python 3.8 support
Upgrade to Param 2.0 as minimum required version
Compatibility with Bokeh 3.3.0
Documentation#
Version 1.2.3#
Date: 2023-09-18
This micro-release primarily fixes some critical regressions that were introduced in the 1.2.2 release, along with some other minor bug fixes. Many thanks for our users for reporting these issues so quickly and @monodera, @ndmlny-qs, @ahuang11, @mattpap, @Hoxbro and @philippjfr for their contributions to the release.
Enhancements#
Bug fixes#
Fix regression introduced in 1.2.2 causing issues with periodic callbacks and
--autoreload(#5490)Fix regression introduced in 1.2.2 causing issues with authorization callbacks (#5504)
Fix regression introduced in 1.2.2 related to logout redirects (#5484)
Fix extracting
panel convertrequirements from requirements.txt (#5509)Ensure visibility is applied correctly for all components when initialized as False (#5508)
Fix rendering of backticks in
ReactiveHTML(#5512)Ensure Quill
TextEditorcorrectly detects selections and renders HTML (#5511)Fix
Markdownrendering with the MyST parser (#5497)Fix OAuth login endpoint when
--prefixis set (#5492)
Documentation#
Update outdated
DateRangeSlider.stepdocumentation (#5510)
Version 1.2.2#
Date: 2023-08-31
This micro-release is likely the last in the 1.2.x series with a large number of bug fixes and a few enhancements to existing components. The enhancements include the ability to control the scroll position on a Column, improvements for authentication and authorization, the ability to add click event handlers to Perspective and a few other items. In terms of bug fixes this release also includes fixes for authentication, some improvements when rendering Tabulator avoiding various race conditions in its rendering pipeline, and fixes for Perspective, Echarts, DeckGL and a few other components. We are very grateful for a large number of community contributions to this release and welcome and congratulate new contributors @s22chan, @RaulPL, @dogbunny, @thomasjpfan, @SultanOrazbayev and @pierrotsmnrd. Many thanks also to returning contributors @TBym, @Lnk2past, @ndmlny-qs, @owenlamont and our core developer team @MarcSkovMadsen, @ahuang11, @Hoxbro, @maximlt, and @philippjfr.
Enhancements#
Add scroll button, auto-scroll and scroll position options to
Column(#5245, #5365, #5369, #5403)Add cache busting to server CSS resources (#5414)
Add
Tabulator.title_formattersparameter (#5421)Provide the the accessed path to authorization checks (#5386)
Add
Perspectiveclick events (#5430)Add and improve
pn.io.holdandpn.io.immediate_dispatchcontext managers to control events (#5444)Allow to passing
basic_login_templateargument to panel server (#5454)
Bug fixes#
Ensure
BasicAuthforwards to original URL after login (#5357)Correct return types from
threading.Threadtopanel.io.server.StoppableThread(#5396)Various guards and fixes ensuring
Tabulatorre-renders correctly (#5410, #5412)Avoid extra executions when executing periodic callback with counter (#5344)
Ensure updates to
DataModelare correctly scheduled on the event loop (#5360)Fixes for displaying single newlines in
Markdownoutput and addrenderer_options(#5376)Allow update of
Accordiontitle without updating content (#5413)Fix authentication handling when prefix is set (#5422)
Fix serialization issues affecting
TextLayerobjects inDeckGL(#5427)Fix height responsiveness of
Perspectivepane (#5429)Ensure
FileDownloadbutton can be clicked anywhere (#5431)Ensure
ReactiveHTMLchildren are rendered just like other models (#5434)Set
Perspectiveproperties correctly to avoid causing unfocus on keypresses (#5432)Ensure
FloatPanelcorrectly exposes its children to allow linking (#5433)Do no reset
Tabulatoroptions if DataFrame indexes are unchanged (#5436)Add ability to work around issues when removing series from
ECharts(#5435)Fix race conditions when initializing and rendering IPyWidgets in notebooks (#5462)
Tweak
AccordionCSS to remove gaps and avoid border overlap (#5460)Ensure columns are deleted when updating traces on
Plotlypane to avoid corruption (#5464)Invalidate layout when
TextEditorCSS loads (#5465)Ensure
FloatPanelreflects closed status (#5466)Fix handling of string dtypes on
Perspectivepane (#5467)
Documentation#
Compatibility#
Version 1.2.1#
Date: 2023-07-25
This micro-release focuses on a small number of enhancements and rendering related bug fixes. Specifically it adds support for notifying users when the page is ready and when the Websocket disconnects using corresponding config options and upgrades the Vizzu version, thereby adding support for tooltips and enabling animations when the data is updated. The bug fixes are primarily focused on ensuring components such as GridStack and Tabulator render correctly and do not unnecessarily re-render or reload stylesheets. Many thanks and welcome to @owenlamont, @sciemon, @DGLaurits, @Ciemarr and @Kislovskiy for their first contributions to Panel and the maintainers @MarcSkovMadsen, @Hoxbro and @philippjfr for contributing to this release.
Enhancements#
Bug fixes#
Ensure
GridStackchildren are sized correctly after render (#5242)Fix
Tabulatorexpanded row rendering (#5253)Fix bug where local
PDFpane is rendered as base64 string (#5264)Avoid full re-rendering when updating
HTMLbased components (#5275)Ensure that
Designdoes not trigger unnecessary updates to stylesheets (#5278)Treat
Tabulatorrow_contentsas real children ensuring layout behaves correctly (#5292)Fix
Videomin_heightandmax_height(#5296)Make
TextEditorinvisible until CSS is loaded (#5297)Fix
disabledparameter on editable sliders (#5319)
Compatibility#
Update pyodide and pyscript versions and switch to compiled build (#5309)
Documentation#
Version 1.2.0#
Date: 2023-07-06
This release primarily aims at providing compatibility with Bokeh 3.2 and the upcoming Param 2.0 release. Additionally it includes a number of improvements including the ability to generate multiple outputs from a generator using the new 'append' mode and updates and fixes for Tabulator. We are also excited about the new Streamlit migration guide and a number of bug fixes. Many thanks to @sdc50, @xiaoyang-sde and the core team including @ahuang11, @MarcSkovMadsen, @Hoxbro, @maximlt and @philippjfr for contributing to this release.
Enhancements#
Bug fixes#
Correctly process fields on
Vega(and altair) selections (#5164)Fix for resource handling particularly when working with Django (#5175)
Fix
ChatBoxbubble width (#5172)Fix
Tabulator.visiblehandling (#5182)Fix programmatic updates to
Tabulator.page(#5187)Ensure bokeh events generated in pyodide convert
Nonetonull(#5191)Improve notebook detection (#5201)
Reduce priority of
_repr_<img>_to ensure_repr_html_takes precedence (#5217)Ensure we do not modify
Tabulator.hidden_columnsinplace (#5218)Alignment and styling fixes for text input and button widgets (#5219)
Fix updates to
Plotlynested properties such as selections (#5227)
Documentation#
Compatibility#
Version 1.1.1#
Date: 2023-06-21
The first micro-release in the 1.1.x series brings a large number of bug fixes and some minor enhancements. The most important fixes include compatibility with JupyterLab 4 and improved support for updating ipywidgets. This release saw a lot of contributors and we welcome @TBym, @Glatzli, @theyashi, and @enismaxim1 to the Panel developer community and thank our existing contributors and maintainers @ahuang11, @Hoxbro, @sophiamyang, @maximlt, @MarcSkovMadsen, and @philippjfr for their continued contributions.
Enhancements#
Bug fixes#
Fix
Progressindicatorsizing_mode(#5051)Ensure kernel shutdown futures are not collected in Jupyter server extension (#5069)
Add bokeh version check for notebook to better support bokeh dev versions (#5071, #5093)
Fix false warning emitted when constructing a Param pane with
throttledoronkeyup(#5078)Allow to updating/clearing
enabled_datesonDatetimePicker(#5089)Ensure session arguments are correctly parsed by Jupyter executor (#5106)
Fix
defer_loadhandling (#5107)Fix styling with filters in
Tabulator(#5110)Fix issues when using
infilter with single value on Tabulator (#5125)Add fallback if
ReactiveHTMLshadow DOM lookup fails (#5126)Allow automatic loading of extensions during launch and warn about missing extensions (#5144)
Correctly process fields on
Vega(and altair) selections (#5145)Immediately dispatch
ColumnDataChangedEventfixingPlotlyplots not updating (#5147)
Documentation#
Compatibility#
Backward compatibility#
Renamed Trend parameter title to name (#5092)
Version 1.1.0#
Date: 2023-05-31
This is the first minor release in the 1.x series with a number of new features and small bug fixes. The main features we are excited about are the new ChatBox widget added by @ahuang11 and support for reactive generators. Many thanks to @ahuang11, @philippjfr and @Hoxbro for contributing to this release and our amazing community for reporting issues.
Features#
Bug fixes#
Handle height responsiveness of
HoloViewslayout correctly (#5009)Apply
Plotlytoolbar colors depending on template (#5012)Fix Fast
Designstyle variables (#5015)Allow reactive updates to override constant parameters (#5032)
Fix
Tabulatorheader filter styling (#5038)Ensure Jupyter extensions warns users if app has no contents (#5041)
Version 1.0.4#
Date: 2023-05-31
Another micro-release in the 1.0.x series addressing small issues reported by our engaged community. Many thanks to @ahuang11, @simzer, @alexmilowski and the core contributors @droumis, @Hoxbro and @philippjfr for contributing to this release.
Fix global loading spinner (#4936)
Fix issues resolving whether
IPyWidgetmodel (#4939)Fix recursive and inplace updates on reactive panes (#4946, #4958)
Fix issues with single
Selectwidget (#4947)Ensure CSS
configparameters can be passed toTemplateconstructor (#4948)Fixed vizzu data series type conversion for datetime (#4955)
Fix
icononToggleandButtonwidget (#4961)Fix Volume definition on
Videopane (#4970)Ensure
Card.header_coloris correctly applied (#4971)Update
param.Listsignatures to suppress warnings (#4973)Guard is_file check on Windows (#4985)
Fix serialization of
Plotly.selection_data(#4987)Speed up dynamic layout updates (#4989)
Version 1.0.3#
Date: 2023-05-25
Another micro-release in the 1.0.x series with a number of smaller bug fixes. Most importantly this resolves issues with loading indicators and with apps converted to the pyodide-worker target. Many thanks to @n3011, @Hoxbro and @philippjfr for contributing to this release.
Resolve
_repr_jpeg_methods correctly (#4904)Fix handling of queued events in pyodide worker (#4913)
Various fixes for loading indicator (#4915)
Allow
-1inTabs.activeand allow recovering from closed tabs (#4920)Ensure
HoloViewslayout is correctly initialized whencenteris set (#4921)Ensure VSCode editor does not apply white background to Panel output (#4923)
Do not error on deserialization errors in notebooks (#4927)
Ensure basic auth provider works when dynamically starting server (#4926)
Ensure
Parampanenameis updated when object changes (#4928)Align functionality and styling of
FileDownloadwithButton(#4929)Fix equality comparisons of parameter values when updating a
Pane(#4934)Warn about ignored widget parameters on
Parampane (#4934)
Version 1.0.2#
Date: 2023-05-19
A micro-release in the 1.0.2 series with a number of bug fixes and documentation tweaks. Many thanks to @jbednar and @philippjfr for contributing to this release.
Bug fixes#
Ensure
Designstylesheets are not replaced when updating component stylesheets (#4883)Ensure tooltips are rendered correctly as HTML (#4887)
Fix loading of index page resources (#4891)
Ensure
FloatPanelcan be rendered in classic notebooks (#4892)Attempt rendering output in notebooks even if not all resources have been initialized (#4893)
Do not load large bokeh-mathjax bundle in notebooks by default (#4895)
Make Fast template sidebar opening transition smoother (#4898)
Ensure new items added to
Cardlayout are rendered (#4899)Fix logo rendering in BasicAuth template (#4900)
Documentation#
Version 1.0.1#
Date: 2023-05-18
A micro-release fixing some small issues discovered in Panel 1.0. Thank you to @droumis, @Hoxbro and @philippjfr for contributing fixes.
Bug fixes#
Documentation#
Version 1.0.0#
Date: 2023-05-17
The Panel 1.0 release is finally here and it brings a huge number of improvements. The largest improvements in this release come from an upgrade from Bokeh 2.x to Bokeh 3.x. Bokeh overhauled its internal layout engine and stylesheet handling, making applications significantly more performant and customizable going forward.
This release marks a huge step forward in the usability of Panel but is also just a first step in leveraging many of the new capabilities that the updated layout engine and design system affords. In the coming months we will continue to improve and polish the UI and UX and make it easier for you to extend Panel as needed.
For now we want to thank the many people that contributed to this release either by contributing directly or by testing and providing feedback. Many thanks to the core contributors @MarcSkovMadsen, @Hoxbro, @maximlt, @jbednar, @droumis and @philippjfr and the outside contributors @ahuang11, @cdeil, @MridulS, @AndrewMaged814, @midnighter and @wendrul.
Major Features#
The three main features we want to highlight as part of this release are:
Add new and highly performant layout engine, addressing many performance and layout issues (#4326, #4463, #4491, #4503, #4522, #4690)
Add unified Design and Theme system (#4413, #4475, #4466, #4540, #4548, #4770, #4792, #4793, #4801)
Implement support for passing parameters, widgets and bound functions by reference for simple and powerful reactivity (#4495, #4505, #4603, #4606)
Some of the changes related to the new layout engine and design system will require small updates to your existing applications. To make this transition as smooth as possible we have provided an upgrade/migration guide.
New Components#
This release also adds a number of exciting new components you can leverage in your applications:
Major enhancements#
There are also a number of major enghancements in this release that we are very excited about:
Improved Markdown rendering (#4688)
Ensure
.ipynband.mdbased apps can be used as--index(#4432)Add support for selecting
formatandencodingfor Matplotlib image output and implemented responsive Image sizing (#4514)Add support for icons on
Button(#4797)Add generic
Imagepane that auto-detects the image filetype (#4551)Add support for writing applications in Markdown (#4602)
Improve support for inline resources for Jupyter (#3013, #4787)
Add ability to reuse sessions to speed up rendering (#3679, #4658)
Improve notebook resource and extension loading (#4752)
Add ability to add global loading spinner to application(s) (#4659)
Documentation#
The last major change we want to highlight is a complete overhaul of the documentation, moving from long and difficult-to-navigate user guides to distinct easily applied how-to guides along with separate, longer explanation sections. We also put in significant effort to ensure that most of our documentation can be run interactively in Pyodide or JupyterLite.
Modernize documentation by using latest pydata-sphinx-theme (#4609, #4701)
Add upgrade/migration guide (#4693)
Migrate user guide to how-to guides (#4244, #4251, #4267, #4290, #4412, #4422, #4759, #4774)
Completely overhaul App Gallery (#4047, #4565, #4574, #4598, #4683)
Use pyodide rendering throughout documentation and add JupyterLite links (#4751)
Deprecations & API changes#
Compatibility#
Bokeh 3 compatibility (#4098, #4117, #4129, #4140, #4150, #4275, #4467, #4435, #4441, #4449, #4448, #4508)
Upgrade plotly.js to 2.18.0 (#4320)
Upgrade Tabulator to 5.4 and optimize rendering (#4482)
Upgrade Echarts to 5.4.1 (#4538)
Upgrade pyodide (0.23.1) and pyscript versions (#4344)
Add support for altair and vega-lite v5 (#4488)
Add support for latest versions of ipywidgets (#4716, #4766, #4779)
Deprecations#
API changes & Backward Compatibility#
Pandas is now only a (lazy) runtime dependency (#4411)
Tabulator.frozen_rowsnow respects the order of rows in the data instead of the order in which thefrozen_rowswere defined (#4482)Make
margindefaults consistent across widgets and panes (#4528)Extension calls must specify all required extensions (#4562)
The
.embedmethod now returns a Mimebundle object for rendering (#4791)Remove
panel examplesCLI command and pyct dependency (#4691)Expose all layout components in top-level API (#4696)
Other Enhancements#
Configuration#
Jupyter#
Pyodide#
Miscelleanous#
Handle cancelling and empty value edit events on
Tabulator(#4343)Add favicon to base template (#4626)
Ensure
CrossSelectorfilters apply on each keystroke (#4339)Do not re-create
Vega.selectionsobject unless selections changed (#4497)Standardize parameter mapping APIs (#4386)
Add
Plotly.link_figureparameter (#4333)Add support for .JPEG file extension in the
JPGpane (#4532)Make periodic callback
countera parameter (#4134)Add Echarts events (#2174)
Bug fixes#
Fix caching on undecorated Parameterized method (#4332)
Ensure that global notification object can be used inside notebook callbacks (#4331)
Ensure
hash_funcsare applied recursively in cache (#4334)Fix cache
FIFOpolicy bug (#4789)Fix specifying custom index with relative path (#4288)
Fix issue reusing
FileDownloadmodel (#4328)Fix
DeckGLtooltip handling (#4628)Fix NumPy integer/floating checks on
Perspective(#4366)Ensure
memrayprofiler temporary file is flushed (#4666)Fix mimetype issue on windows (#4738)
Fix
Plotlyundefined value errors for eventdata (#4355)
Tabulator#
Jupyter#
Version 0.14.4#
Date: 2023-03-04
This release is a small bug fix release preceding the upcoming major release of Panel 1.0. Many thanks to the contributors to this release which include @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Bugs#
Fix
Tabulatorclient-side string filters by not parsing them as regex (4423)Fix the RGGPlot pane (#4380)
Fix
panel examplescommand by ensuring examples are correctly packaged (#4484)Fix event generation by considering NaNs as equal when comparing Numpy arrays (#4481)
Use cache from previous sessions when using
to_disk(#4481)Fix relative imports when running inside Jupyter Kernel (#4489)
Do not re-create
Vega.selectionsobject unless selections changed (#4497)
Enhancements#
Add support for altair and vega-lite v5 (#4488)
Misc#
Use latest react-grid from CDN (#4461)
Version 0.14.3#
Date: 2023-01-28
This release introduces a large number of bug fixes and minor enhancements. Due to the upcoming release of Panel 1.0 we have also made the unconventional decision to issue new deprecation in a micro release. Specifically the IDOM pane and Viewable.app and Viewable.pprint methods have been scheduled for deprecation. Many thanks to the contributors to this release which include @wendrul, @droumis and the core team @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Bugs#
Tabulator#
Notebook#
Fix issues rendering components as ipywidgets for some versions of ipykernel (#4289)
Add warning if custom resources could not be loaded in notebook (#4329)
Ensure notifications are enabled even if
hv.extensionhas been loaded (#4330)Ensure global notification object can be used inside notebook callbacks (#4331)
Type definitions#
Misc#
Ensure markdown links render correctly in template sidebar (#4222)
Improve .applies for
EChartsandDeckGL(#4224)Fix specifying custom
--indexwith relative path (#4288)Skip
on_loadcallbacks in liveness check (#4302)Ensure re-rendered
FileDownloadstill fetches live data (#4328)Fix handling of
panel.cacheon undecoratedParameterizedmethod (#4332)Ensure user provided
hash_funcsare applied inpanel.cache(#4334)Fix plotly eventdata undefined val (#4355)
Ensure
panel convertrespectspanel.configoptions (#4359)Propagate options from HoloViews and Bokeh plots to enclosing Pane (#4360)
Propagate options from dynamic components such as ParamMethod and Interactive to enclosing layout (#4360)
Minor enhancements#
Allow to set the log level of the Admin logger (#3495)
Make
refresh_tokenavailable in Auth (#4227)Simplify determining whether script is executed as application with
pn.state.servedproperty (#4252)Add
loading_indicatorto globalconfig(#4259)IPython
displaycompatibility in pyodide builds (#4270)Split
PanelJupyterExecutorinto separate module (#4276)Allow dynamic loading of javascript modules in
ReactiveHTML(#4319)Add
Plotly.link_figureparameter (#4333)Ensure
CrossSelectorfilters apply on each keystroke (#4339)Improve startup, error handling and shutdown of Jupyter kernels in
jupyter_server_extension(#4364)
Compatibility and Version Updates#
Deprecations#
Documentation#
Version 0.14.2#
Date: 2022-12-14
This release primarily focuses on bug fixes. In particular it resolves various issues with support for rendering ipywidgets (particularly in ipywidgets>=8.0) and also fixes a number of issues with the Jupyter Server previews. Many thanks for @govinda18, @joelostblom, @banesullivan, @xeldnahcram, @geronimogoemon, @minasouliman, @peterfpeterson, @jlstevens and the core maintainers @maximlt, @Hoxbro, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements#
Bugs#
Ensure Jupyter server extension serves resources, extensions and paths correctly (#4083, #4133, #4202)
Ensure
IPyWidgetcomm does not break when new widget is rendered (#4091)Improving detection of comms in VSCode and Google Colab (#4115)
Ensure
.jsmimetype is served correctly on Windows (#4118)Ensure unhiding
Tabulatorcolumns renders cells correctly (#4119)Ensure embedded
Sliderwidgets initialize with correct default (#4121)Handle missing event loop in thread gracefully (#4123)
Ensure
Matplotlibpane handles explicitwidth/heightsettings correctly (#4128)Allow
Viewerto render servable but non-viewable objects (#4131)Fix regression in tracking sessions in admin interface (#4132)
Ensure
Tabsheaders do not scroll unnecessarily (#4146)Ensure
Locationmodel reports as idle (#4159)Fix auth error template rendering (#4162)
Fix issues with value on
EditableSliderwhen it is outsidefixed_start/fixed_endrange (#4169)Ensure
ipywidgetsevents are handled the same way as regular events (#4171)Donβt raise
TypeErrorfor class which contains__panel__(#4174)Do not dispatch events if bokeh
Documentis set to hold events (#4178)Execute
onloadcallbacks immediately in pyodide app (#4191)Improve
IPyWidgetkernel handling in server contexts (#4195)Fix rendering of
IPyWidgetwith child views in the notebook (#4197)
Docs#
Version 0.14.1#
Date: 2022-10-28
This release primarily addresses regressions introduced in 0.14.0 and various long standing bugs. Many thanks to external contributors @liu-kan and @KedoKudo and the maintainers @Hoxbro, @maximlt and @philippjfr for contributing a number of fixes.
Minor enhancements#
Compatibility#
Fix Jupyterlite and latest PyScript compatibility (#4040)
Bugs#
Webassembly conversion#
Correctly handle resource mode in when converting to WebAssembly (#3967)
Jupyter and Server#
Correctly handle future exceptions on threads (#3977)
Fix
panel serveindex template (#3980)Do not error if
curdochas been destroyed (#3994)Ensure extensions loaded in jupyter kernel are served by StaticHandler (#4000)
Various fixes for OAuth handling with
pn.serve(#4006)Fix bug in
on_loadcallback exception handling (#4007)Ensure periodic callbacks are only started on main thread (#4011)
Ensure jupyter server extension handles explicit
root_dir(#4029)Ensure futures are correctly awaited when executed on thread (#4031)
Components#
Ensure
Tabulatorhandles filtering on edited values correctly ifshow_index=False(#3988, #4016)Ensure
Tabulatordeclares numeric sorter for numeric dtypes (#3999)Fix regression initializing
DiscreteSliderwith non-integer value (#4009)Ensure that template.config.raw_css is correctly applied (#4018)
Fix handling
MenuButtonclicks whensplit=True(#4021)Ensure styling on
Tabulatorwith empty DataFrame does not error (#4028)Allow changing
levelonDebuggerwidget (#4057)
Version 0.14.0#
Blog post: https://blog.holoviz.org/panel_0.14.html
Date: 2022-09-30
This release focuses on three main themes:
Support for running Panel apps entirely in the browser using WebAssembly (via Pyodide and PyScript)
Improvements in the app-user experience by making it easier to build responsive and performant applications
Improvements in the developer experience through static typing and docstrings.
Many, many thanks to everyone who filed issues or contributed to this release. In particular we would like to thank @janimo, @xavArtley, @thuydotm, @jmosbacher, @dmarx, @2WoLpH, @ipopa144, @sdc50 for contributions and @philippjfr, @Hoxbro, @maximlt, and @MarcSkovMadsen for ongoing maintenance and development.
Features#
Add support for converting Panel apps to pyscript/pyodide (#3817, #3830, #3851, #3856, #3857, #3858, #3860, #3861, #3863, #3864, #3868, #3878)
Manage our own CDN to improve performance and reliability for delivering JS payloads (#3867, #3870)
Add ability to
defer_loadof components (#3882)Add
config.exception_handlerto easily capture, log and notify users about errors (#3893)Implement
pn.cachefunction for memoization support (#2411)Rewrite server extension to run Panel applications in kernels so that previews run in the same environment as the deployed app (#3763)
Add ability to define authorization callback (#3777)
Support memray profiler (#3509)
Add liveness endpoint (#3832)
Add ability to configure exception handler (#3896)
Enhancements#
Ensure OAuth redirects to requested app and retains query arguments (#3555)
Add extension entry point (#3738)
Update Admin Logs page to use
Tabulator(#3694)Ensure
location.unsyncunsets query params (#3806)Allow None value on numeric sliders and
LiteralInput(#3174)Allow serving admin panel with
pn.serve(#3798)Improve
ReactiveHTMLloop support and validation (#3813)Support declaring
Perspective.plugin_configpane (#3814)Do not flicker busy indicator during
--autoreloadcheck (#3804)Improve robustness of
state.curdocin threaded and async contexts (#3776, #3810, #3834)Support datetime bounds for
DatetimePickerandDatetimeRangePicker(#3788)Allow setting the Oauth provider using environment variables (#3698)
Implement
Player.value_throttled(#3756)Ensure that URL query parameters are preserved during OAuth (#3656)
Improve
Markdowncode syntax highlighting (#3758)Ensure components do not re-render if
backgroundorloadingparameters change (#3599)Add ability to define admin dashboard plugins (#3668)
Do not calculate embed state for disabled widgets (#3757)
Add hard bounds to editable sliders (#3739)
Add bundling of shared resources (#3894)
Add
Tabulatoras defaultparam.DataFramewidget (#3912)
Documentation#
Compatibility & Version updates#
Bugs#
Server#
Ensure closed websocket does not cause errors
Handle session and websocket close cleanly (#3769)
Fix prefix handling for admin page (#3809)
Support admin dashboard in multi-process deployments (#3812)
Improve document cleanup when not invoked using
server_destroy(#3842)Ensure
pn.state.executedispatches immediately if possible (#3859)Ensure autoload.js resources are appropriately prefixed (#3873)
Notebook#
Tabulator#
Do not re-render
Tabulatoroncss_classesorbackgroundchange (#3598)Ensure expand icon updates on
Tabulator.expandedchange (#3703)Update
pageParameter when pagination is βlocalβ (#3704)Do not apply
sortersonTabulatorcell edits (#3744)Ensure
Tabulator.controlsrenders (#3768)Ensure correctness of event row and selection indices in
Tabulator(#3771, #3841)Fix issues with frontend and backend sorters being out of sync in Tabulator (#3825, #3839)
Fix default values of a list header filter in
Tabulator(#3826)Fix the edit event with a python filter in
Tabulator(#3829)Disable client-side date filtering on
Tabulator(#3849)Support editing of pandas masked array dtypes in
Tabulator(#3850)Fix issues editing a cell when client-side filtering applied (#3852)
Do not recompute data when local pagination is enabled (#3854)
Donβt skip filtering when the column name is undefined (#3862)
Misc#
Fix
FileInput.save(#3579)Ensure layout recomputes on
HTML/Markdownre-rerender (#3616)Allow overriding all widget parameters on
Parampane (#3754)Ensure
DatePickerstart/end are transformed when jslinked (#3759)Ensure notifications can be enabled without a template (#3820)
Ensure
ReactiveHTMLinline callbacks on loop variables return correct node (#3840)Ensure that
Perspectivedoes not take precedence on empty dict (#3936)Improve
sizing_modebehavior when width/height are specified (#3955)Do not load notyf resources unless notifications are enabled (#3958)
Version 0.13.1#
Date: 2022-05-20
Enhancements#
Add repr to cell and edit events (#3434)
Add support for Plotly animation frames (#3449)
Implement single and multi-selection in Vega pane (#3470, #3499, #3505)
Add typehints to help developers and users (#3476)
Add
pn.state.executemethod to run callbacks in the right context (#3550)Add support for asynchronous
on_edit/on_clickTabulator callbacks (#3550)Add
DatetimeRangeSliderwidget (#3548)
Bug fixes#
Fix pyodide array buffer conversion (#3409)
Allow
placeholderto be updated onTextEditor(#3427)Ensure bokeh correctly detects whether
HTML/Markdowncontains latex (#3438)Ensure notifications work on server created with
pn.serveand.show(#3445)Replace slickgrid background image in custom
FastTemplateCSS (#3461)Ensure
param.Arrayis synced correctly inReactiveHTML(#3456)Ensure selection on filtered
Tabulatordoes not raise out-of-bounds error (#3462)Ensure updating
Tabulatordoes not reset scroll position (#3450)Various fixes for
FastTemplateCSS (#3464)Ensure
Tabulatoron_clickandon_editevents return correct row when paginated (#3410)Fix broken JupyterLab preview (#3469)
Skip
Tabulatorrow selection when clicking on expand button (#3474)Ensure overflow in
MaterialTemplateis not clipped (#3492)Allow providing
--indexfor directory style apps (#3493)Ensure Tabulator expanded rows are sized correctly after re-render (#3507)
Make CodeHandler robust to document that has been destroyed (#3510)
Do not sync
DataFramewidgetsortersparameter with bokeh model (#3527)Ensure that HoloViews callback events are not auto-dispatched (#3528)
Ensure non-updateable
Panecan be updated insideTabs(#3532)Fix slowdown of JupyterLab on Windows (#3531)
Fix issue with inverted data when editing a cell in a sorted Tabulator column (#3531)
Ensure
Tabulatorhas correct layout after re-render (#3536)Do not log events generated by admin page on the admin page (#3539)
Fix Tabulator events when the original column is not a string (#3541)
Documentation#
Version 0.13.0#
Date: 2022-04-15
Blog post: https://blog.holoviz.org/panel_0.13.0.html
Features#
Add support for scheduling global callbacks (#2661)
MathJax now supported in
MarkdownandHTML(#2847)Improved support for async (e.g. in ParamMethod/ParamFunction, bind, onload etc.) (#2964, #3264, #2737)
Support rendering Panel objects in Jupyterlite and Pyodide (#3252, #3361, #3381)
Add
JSONEditorwidget (#1974)Add quill.js based
TextEditorwidget (#2875)Implement
NotificationsAPI for templates (#3093)Implement profiling page for Panel (#2645, #2664, #2667, #2707, #2905)
Implement support for
Vegaevents (#2592)Implement
ArrayInputwidget (#2047)Add
Debuggerwidget (#2548)Add LinearGauge indicator (#3222)
Add
ComponentResourceHandlerto server (#3284, #3289, #3303)
Enhancements#
Components#
Editable sliders
namecan be changed (#2678)Make
Plotlypane resize when window resizes (#2704)Viewerobjects can now be used withpn.serve(#2769)VTKimprovement for NaN handling (#2826)Add support for configuring
Vegaoutput (#2846)Add a
groupsparameter toSelectwidget (#2876)Add
Card.hide_headeroption (#2947)Support bytes and pathlib.Path objects on Image (#2963, #3294)
Add alphabetical and custom sort to
Param(#2986)Add
autoplayandmutedtoAudioandVideo(#3053)Add a
disabled_optionsparameter to a custom Select widget (#3067)Expose the
orientationparameter of the button group widgets (#3083)Add support for rendering pandas styler objects (#3152)
Viewernow better at working withdependsfunctions (#3159)Improve support for jinja2 loops in
ReactiveHTML(#3236)Add ability to require explicit load of ReactiveHTML extension (#3254)
Improve datetime handling of sliders (#3276)
Add support for multiple files in
FileInput.save(#3300)Add improved Tabs model that resolves sizing and hover issues (#3301, #3321, #3329)
Tabulator#
Add support to expand rows in
Tabulator(#2762, #2837, #3010, #3163)Add
Tabulator.header_alignparameter (#2861)Implement DateEditor and DatetimeEditor for
Tabulator(#2899, #3008)Implement
Tabulator.buttons(#3111)Redesign
Tabulator.styleshandling (#3175)Set default alignment for
Tabulator(#3194)Bidirectionally sync
Tabulator.sorters(#3217)Add support for setting percentage widths on
Tabulatorcolumns (#3239)Add
Tabulator.on_clickcallback (#3245)Restore
Tabulatorscroll position after patch (#3273)Enable max row limits for
Tabulator(#3306)
Notebook#
General improvements#
Warn users if extension is not loaded before server page is rendered (#2766)
Sync URL location hash interactively (#2982)
Change accent and header background color for Fast Templates (#2984)
Add thread safety and TTL to
pn.state.as_cached(#3198)Add py.typed file to support mypy (#3055)
Handle authentication errors (#3096)
Support saving png to file-like objects (#3155)
Check if there are any query parameters in
baseurland adds it tolocation.searchif possible (#3214)Improve handling of
--indexCLI argument (#3221)Fix event dispatch (#3231)
Add azure oauth v2.0 endpoint support (#3224)
Ensure
gc.collectis not excessively called (#3259)Added
panel.reactiveandpanel.viewableto namespace (#3157)Consistent handling of page title (#3290)
Bugs#
Components#
Fix warnings in
ReactiveHTMLregex (#2786)Fixed UTF-8 decoding in Terminal widget (#2880)
Allow a
param.Selectorwith no objects to be casted toAutocompleteInput(#2966)Update
ButtonGroupvalue when changing options (#2999)Fix
TQDMstyle color reset (#3040)Fix align-items on
Flexbox(#3122)Fix issue serializing
Spinnerwith negative value (#3154)Fixes for jslinking
HoloViewscomponents (#3165)BooleanStatusandLoadingSpinnernow update when changing color (#3191)Fix
Widget.from_paramwhen precedence is negative (#3199)Ensure
DiscreteSliderlabel is updated (#3278)Ensure
ReactiveHTMLtemplate variables only escapes exact matches (#3279)Fix handling of single and empty options on
DiscreteSlider(#3297)Ensure
Progresscorrectly initializes as indeterminate (#3307)Always resolve DOM nodes in ReactiveHTML._scripts (#3311)
Fixes
CrossSelector.disabledparameter (#3326)Fix
EditableSliderupdates when novalue_throttledis set (#3387)
Tabulator#
Fix HTMLTemplateFormatter on
Tabulator(#2781)Fix layout of
Tabulatorwith non-default theme (#3147)Ensure
Tabulatorselection is not reset on patch (#3287)Fix
Tabulator.downloadmethod (#3292)Restore ability to limit number of
selectablerows onTabulato(#3295)Ensure
Tabulatorvalue update reports correct old value (#3308)
Templates#
General#
Added check for bool in
Location.parse_query(#2759)Ensure cleanup happens when enabling
--warmor--autoreloadwith Bokeh 2.4 (#2760)Ensure autoload.js correctly determines
state.rel_path(#2776)Fix issue with
.appmethod (#3047)Add document argument to django.py autoload_js_script call (#3100)
Avoid sending messages on closed or closing Websocket (#3115)
Fix Django resource handling (#3116)
Fix handling of
loading_max_height(#3205)Fix Django
DocConsumer(#3281)Fix
jupyter_server_configfor preview server extension (#3291)Fix handling of
oauth_providerargument topanel.io.server.serve(#3293)Allow exporting absolute paths when saving (#3305)
Documentation#
Added
ToggleGroupdocs (#2679)Adds a code of conduct (#2892)
Add docstrings to sliders module (#3176)
Gallery Examples for Graphviz and NetworkX (#2732)
Add layouts + throttling sections to Performance docs (#3171)
Adds
Plotlystyling gallery notebook (#3038)Adds a matplotlib style guide notebook to gallery (#3036)
Adds vega altair style example for the gallery. (#3032)
Wrap new gallery examples into apps (#2546)
Add docstring to panel module (#3177)
added documentation for gcp (#3119)
Add docs about the file size limits of the
FileInputwidget (#3044)Add docstrings for most widgets and panes (#3352, #3353, #3354, #3359, #3365, #3366, #3367, #3369)
Compatibility#
Update to latest version of
Perspective(#3318)Update
Vegaversion (#3320)Update
ipywidgetssupport for compatibility with latest bokeh (#3206, #3299)Bump plotly.js version (#3227)
Updates to Param 2.0 API (#2845)
Updates for Python 3.10 deprecations (#3065)
Update and improve
DeckGLpane (#3158)
API Changes#
Version 0.12.7#
Date: 2021-03-27
The 0.12.7 release primarily fixes an incompatibility with the new jinja2 3.1.0 release. Many thanks to @maartenbreddels, @govinda18, @raybellwaves and the maintainers @maximlt and @philippjfr for contributing further fixes to this release.
Bug fixes:
Wrong offset when memoryview format is non-byte (#3206)
Support jupyter server root_dir with lab extension (#3172)
Docs:
add note on enabling panel widget on Jupyter Lab (#3029)
Remove redundant and confusing JupyterLab install instructions (#3037)
Compatibility:
Fix jinja2 imports (#3258)
Version 0.12.6#
Date: 2021-12-08
The 0.12.6 release fixes a major regression introduced in the last release along with a small number of pre-existing bugs.
Regressions:
Always load imported bokeh extensions (#2957)
Fix regression rendering
HoloViewsplotly backend (#2961)
Bug fixes:
Do not run
Aceimport on initialization (#2959)Ensure empty
Strhas same height as non-empty (#2981)Ensure
Tabulatorsupports grouping on numeric columns (#2987)Fix
Tabulatorwith multi-index and pagination (#2989)Allow index as column name in table widgets (#2990)
Ensure TemplateActions component does not have height (#2997)
Version 0.12.5#
Date: 2021-11-23
The 0.12.5 release contains a larger number of bug fixes and minor enhancements. Many thanks to @pmav99, @samuelyeewl, @xavArtley, @L8Y, @Prashant0kgp, @t-houssian, @kristw, @jlstevens and the maintainers @maximlt, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Compatibility:
Ensure ipywidget rendering is compatible with ipykernel>6 and bokeh>2.4 (#2798)
Build panel.js against bokeh.js 2.4.2 (#2945)
Enhancements:
Make OAuth cookie expiry configurable (#2724)
Run
onloadcallbacks with--warmoption (#2844)Improve Plotly responsive sizing behavior (#2838)
Adds escape parameter to
DataFramepane to enable using html markup (#2893)Allow to update the completions options from a parameter (#2895)
Tabscache dynamic contents (#2909)Allow setting a maximum height for the loading indicator (#2910)
Ensure loading of MathJax bundle is optional (#2919)
Bug fixes:
Resolve issues with inline resources on save (#2794)
Restore ability to set a maximum number of selectable rows on
Tabulator(#2791)Fixed bug where Tabulator with remote pagination would modify the wrong rows (#2801)
Ensure non-exported requirejs modules do not error (#2808)
Ensure
Tabulatorcheckbox selection only happens in checkbox column (#2812)Vtkvolumecorrection of dimensions order (#2818)Allow data item to miss optional field in
Vegapane (#2853)Allow to set
AutoCompleteInputin a Param pane (#2874)Fix
Terminalkeystroke and size handling (#2878)Fix
Tabulatorstyles on scroll (#2881)Do not sync
Indicatorproperties from frontend to avoid errors (#2886)Fix roundtrip of datetimes on
ReactiveDatacomponents (#2888)Fix handling of
Plotlypane inTabs(#2890)Fix bokeh colorbar background for dark theme (#2897)
Fix issues when streaming or patching
ReactiveData(#2900)Ensure stream and patch events do not boomerang (#2902)
Ensure
HoloViewsmatplotlib output uses tight layout (#2920)Fix decoding of single quoted strings in url parameters (#2925)
Fix Tabulator checkbox selection (#2931)
Fix Vega pane sizing issues (#2933)
Ensure toggled Accordion only triggers one event on change of active Card (#2934)
Ensure LiteralInput JS deserializer does not insert extra spaces (#2935)
Fix issue in detecting script data assignment in
ReactiveHTML(#2939)Ensure
Cardcollapsible icon offset is computed robustly (#2940)Ensure
--autoreloaddoes not reload panel modules (#2941)Ensure
pn.state.curdocis available to async callbacks (#2942)
Documentation:
Fix default values of
panels.io.server.serve(#2799)Update docs about pn.serve per user state (#2849)
Added FastApi in the user guide for embedding apps (#2870)
Simplify homepage (#2850)
CVEs:
Update jQuery to remediate CVEs (#2885)
Version 0.12.4#
Date: 2021-09-24
The 0.12.4 release fixes a number of bugs and a regression of the autoreload feature in 0.12.2 and 0.12.3.
Compatibility:
Fix issues with
--autoreloadcaused by changes in Bokeh 2.4 (#2755)
Enhancements:
Ensure user is warned if an extension was not loaded in time on server (#2765)
Allow Viewer classes to be served (#2768)
Add support for rendering
.icofiles andpathlibobjects (#2757)
Bug fixes:
Fixed export of vtk.js module (#2562)
Fix broken
HTMLTemplateFormatteronTabulator(#2730)Fix serialization issues of Panel components on
ReactiveHTML(#2743)Ensure
FlexBoxbehaves like a layout and makes its children discoverable (#2779)Ensure
Plotlyplots can be updated in tabs (#2747)Fix embedding of Panel apps in Flask (#2727)
Ensure
Spinnerwidget honors bounds when created fromParamobject (#2740)Ensure
Tabulatorstyle does not disappear after resize event (#2770)Fix
PeriodicCallbackerrors (#2764)Fix syncing of boolean types with URL parameters (#2758)
Ensure Tabulator
download_menuapplies kwargs to the filenameTextInput(#2763)Ensure
Tabulatordoes not error when no Styler is defined (#2785)
Documentation:
Version 0.12.3#
Date: 2021-09-17
The 0.12.2 release unfortunately has a compatibility issue with Bokeh 2.4 which broke the show() method. This release fixes this regression.
Patch Bokeh to fix show() (#2748)
Version 0.12.2#
Date: 2021-09-16
This a patch release with a small number of bug fixes and compatibility for bokeh 2.4. Many thanks to the contributors @Stubatiger, @maximlt, @nghenzi and the maintainers @MarcSkovMadsen and @philippjfr for the fixes in this release.
Enhancements:
Add option to hide constant parameters on
Parampane (#2637)Added
on_session_destroyedcallback (#2659)Stricter validation for linking syntax in
ReactiveHTML._template(#2689)
Bug fixes:
Improved thread safety (#2631)
Ensure sessions get distinct files in
config(#2646)Fix bug when updating
Trenddata (#2647)Ensure sorters are applied correctly after updating
Tabulatorvalue (#2639)Correctly reflect filtered data on
Tabulator.selection(#2676Unescape child literal HTML in ReactiveHTML (#2690)
Ensure Trend indicator can be rendered in layout (#2694)
Documentation:
Compatibility:
Version 0.12.1#
Date: 2021-08-10
This is a patch release with a small number of fixes following the 0.12.0 release. Many thanks to the maintainers @MarcSkovMadsen and @philippjfr for the fixes in this release.
Enhancements:
Bundle .map files during build to allow source mapping (#2591)
Various style improvements for Fast templates (#2604, #2609, #2611, #2615)
Implement hierarchical aggregation for
Tabulator(#2624)
Bug fixes:
Fix logo on Fast templates (#2184)
Fix height responsiveness of Folium pane (#2231)
Fix bug updating
Tqdmindicator (#2554)Ensure
--autoreloaddoesnβt error on cleaned up session (#2570)Donβt use persisted layout if
save_layout=False(#2579)Pin version of tqdm with asyncio support (#2595)
Reset layout when resetting grid template layout (#2576)
Fix line-height issues in Fast templates (#2600)
Clean up sessions after warmup and ensure periodic callbacks are cleaned up (#2601)
Documentation:
Version 0.12.0#
Date: 2021-07-18
Blog post: https://blog.holoviz.org/panel_0.12.0.html
The 0.12.0 release is a minor release with a lot of exciting and a huge amount of bug fixes. We are very excited about the growing community and the many contributions we received. In particular we would like to thank @douglas-raillard-arm, @mathrick, @jlstevens, @hyamanieu, @Liam-Deacon, @Stubatiger, @ablythed, @syamajala, @Hoxbro, @jbednar, @brl0, @OBITORASU, @fleming79, dhruvbalwada and @rmorshea for contributing various fixes and improvements and the core developers @xavArtley, @MarcSkovMadsen and @philippjfr for continuing to push the development of Panel.
Features:
Add
ReactiveHTML(#1894, #2091, #2092, #2098, #2115, #2210, #2287, #2290, #2332, #2345, #2372, #2373, #2374, #2383, #2384, #2393, #2397, #2399, #2400, [#2401 #2402, #2404, #2533, #2535)Add
TerminalWidget based on xterm.js (#2090)Add ability to configure global template (#2271)
Add
GridStacklayout (#2375)Add
PDFpane (#2444)Add
/panel-previewendpoint for Jupyter server extension (#2341, #2361)Add
TqdmIndicator (#2079)
Enhancements:
Add empty
Progressbar (#2088)Optimize initialization of templates (#2096)
Serialize
Perspectiveschema (#2130)Updated
JSONpane to accept single quote and wrap properly (#2143, #2443)Improvements for
Perspective(#2153)Improve handling of server prefix and proxied deployment scenarios (#2159, #2162)
Completely overhauled the default index template (#2198, #2340)
Make the Template sidebar width configurable (#2301)
Improve look and feel and styling of Fast templates (#2303, #2469, #2484, #2488)
Allow setting kwargs in
Reactive.controls(#2304)Add global configuration variable to always throttle sliders (#2306)
Add support for controlling text alignment in
DataFrameandTabulator(#2331)Add
Tabulatortheme for Fast Templates (#2425)Add ability to make only certain
Tabulatorrows selectable (#2433)Add
visibleparameter to all components (#2440)Send
Plotlyrestyle and relayout events rather than full updates (#2445)Add
push_notebookhelper function for syncing bokeh property changes in notebooks (#2447)Improve visual styling of
Card(#2343, #2348, #2376, #2437, #2527)Ensure
configvariables are configured per user session (#2358, #2455, #2481)Add
save_layoutandprevent_collisiontoReactTemplateandFastGridTemplate(#2296, #2357)Add ability to declare root application from
panel serve(#2392)Support jslinking Parameterized class (#2441)
Improve
config.sizing_modebehavior (#2442)Add separate
RangeSlidervalue_startandvalue_endparameters (#2457, #2468)Allow saving Templates (#2461)
Bundle
Tabulatorresources to allow usage in airgapped environment (#2471)Ensure
Trendindicator title wraps (#2483)Scroll on
Tabulatorselection (#2503)Increase notebook resource load timeout (#2515)
Auto-detect VSCode and Colab comms (#2536)
Add tooltip to
Tabulatorcells to see unformatted value (#2543)
Bug fixes:
Fix missing video in
Video(#2109)use idom.config to set dist dir (#2117)
Remove bootstrap CSS from
FastGridTemplate(#2123)Fix issues with
Acez-index (#2126)Fix updating of
Tabulatorselection property (#2128)Ensure changes on ReactiveData source are scheduled correctly (#2134)
Fixed
Playerlooping when start is 0 (#2141)Fix divide by zero issues on Trend indicator (#2148)
Ensure
GridSpecoverride handles duplicate matches (#2150)Fix for
loadingparameter widget linking (#2160)Fix
Tabulatorajax call on empty data (#2161)Fix
Tabulatorsorting and data initialization (#2163)Fix editing
Tabulatorwith filters applied (#2165)Fix theming on
HoloViewsplot updates (#2209)Fixed data handling on
Perspectivepane (#2212)Improve template and resource management for png export (#2221)
Improve and standardize selection behavior of
Tabulator(#2230)Ensure JS changes to
Plotlypane are applied if not explicitly triggered (#2251)Fix server-side Tabulator selection changes (#2252)
Fix update of
Paramsubobjects (#2255)Add support for
vtkCornerAnnotations(#2257)Improve request handling for remote pagination on
Tabulator(#2265)Allow setting
Paramprecedence to None (#2266)Disable nested field separators on
Tabulator(#2289)Ensure
Parampane handles changes to unknown parameter (#2346)Fix issues with local
AudioandVideo(#2380)Ensure
ReactiveDataemits correct old data in event (#2398)Ensure
Plotlyinteractivity works whenPlotlypanes are displayed in tabs (#2418, #2463)Fix
Acewidget disabled parameter (#2449)Ensure external resources are configured correctly on save (#2452)
Ensure table formatters and editors are copied on render to avoid bokeh errors (#2453)
Allow unicode auth response body (#2462)
Workaround TypeError for non-string json keys on
Plotlypane (#2465)Fix issue with throttled updates on Param (#2470)
Ensure
Tabulatorstyle is applied while streaming (#2478)Fix issues setting resources on save (#2492)
Fix
VideoStreamunpause (#2508)Ensure
DataFrameandTabulatorwidget data can be updated in callback (#2510)Fix chaining of
bindfunctions (#2513)Fix broken serialisation when syncing url parameters (#2520)
Fix
Perspectivefor string types (#2525)Fix race condition in
--autoreload(#2539)
Documentation:
Update
Server_Deployment.ipynb(#2118)Expand description of
watch=TrueinParam.ipynb(#2120)Switch to PyData Sphinx Theme (#2139)
Replace altair iris example with penguins (#2213)
Enable Binder (#2198)
Updates and fixes for Developer Guide (#2381)
Fixed
Tabsdocumentation (#2448)Added basic description and example of the
Tabulator.configurationparameter (#2412)Add parameters to
Plotlyreference guide (#2385)Add useful links to developer docs (#2319)
Add documentation about parameterized components (#2454)
Demonstrate how to lazily load tabs (#2479)
Compatibility:
Deprecations:
Version 0.11.3#
Date: 2021-04-14
The 0.11.3 release is another micro-release in the 0.11 series primarily focused on updating the documentation theme and a regression in loading Tabulator data.
Bug fixes:
Fix
Tabulatorsorting and data initialization (#2163)Improved handling of
IDOMbuild directory (#2168)
Documentation:
Switch to PyData Sphinx Theme (#2139)
Version 0.11.2#
Date: 2021-04-08
The 0.11.2 release is a micro-release fixing a number of smaller bugs. Many thanks to @Hoxbro, @dhruvbalwada, @rmorshea, @MarcSkovMadsen, @fleming79, @OBITURASU and @philippjfr for their contributions to this release.
Enhancements:
Optimize adding of roots to templates to avoid multiple preprocessing cycles (#2096)
Use schema to support date(time) dtypes on
Perspective(#2130)
Bug fixes:
Fix regression on
Videopane causing video not to be rendered at all (#2109)Fix missing closing tag in Fast templates (#2121)
Remove bootstrap CSS from
FastGridTemplate(#2123)Ensure
Tabulatorselection can be set from Python (#2128)Ensure changes on ReactiveData objects are scheduled correctly on server (#2134)
Fix for
Playerwidget when start value is 0 (#2141)Support single quotes on JSON pane (#2143)
Fix divide by zero issues when value_change is computed from zero baseline (#2148)
Ensure
GridSpechandles overrides across multiple cells (#2150)Fix for
loadingparameter widget linking (#2160)Use relative URLs for resource loading to ensure proxied apps work (#2159)
Fix
Tabulatorajax call on empty data (#2161)
Documentation:
Fix typo in Binder section of server deployment documentation (#2118)
Improve documentation surrounding watch=True in Param user guide (#2120)
Compatibility:
Version 0.11.1#
Date: 2021-03-15
The 0.11.1 release is a micro-release addressing a number of smaller bugs in the last release. Many thanks to the contributors to this release including @Hoxbro, @xavArtley, @Jacob-Barhak and @philippjfr.
Enhancements:
Allow setting horizontal and vertical alignment separately (#2072)
Expose widgets
visibleproperty (#2065)Allow bind to extract dependencies and evaluate other dynamic functions (#2056)
Allow setting
root_directoryonFileSelectorwidget (#2086)
Bug fixes:
Fixed loading of jQuery in
BootstrapTemplate(#2057)Fix VTK imports to ensure
VTKVolumepane renders grids (#2071)Fix loading of template resources from relative paths (#2067)
Fix
Spinnercomponent overflow (#2070)Handle integer column names on
Perspectivewidget (#2069)Fix bundling of template resources (#2076)
Fix
value_throttledinpn.dependsdecorator (#2085)
Compatibility:
Switch GitHub OAuth to use header authorization token (#2073)
Version 0.11.0#
Date: 2021-03-01
The 0.11.0 release brings a number of exciting new features to Panel as well as some enhancements and bug fixes. This release is also required for Bokeh 2.3 compatibility since a lot of changes to the Bokeh property system required updates. Many thanks to the many contributors to this release including @MarcSkovMadsen, @xavArtley, @hyamanieu, @cloud-rocket, @kcpevey, @kaseyrussell, @miliante, @AjayThorve and @philippjfr.
Major features:
A
Perspectivepane based on the FINOS Perspective library (#2034)Implement
--autoreloadfunctionality for the Panel server (#1983)Add
--warmoption to panel serve, useful for pre-loading items into the state cache (#1971)Add ability to define JS modules and Template specific resources (#1967)
panel.servenow supports serving static files and Bokeh apps, not just Panel apps (#1939)Add a
TrendIndicatorfor conveniently showing history and value of a numeric quantity (#1895)Add
TextToSpeechwidget (#1878)Add
SpeechToTextwidget (#1880)Add
loadingparameter and spinners to all components (#1730, #2026)Add
IDOMpane to develop interactive HTML components in Python (#2004)Add powerful new
Tabulatorwidget for flexible and configurable display of tabular data (#1531, #1887)
Enhancements:
Add watch argument to
bindfunction so that covers all the features of pn.depends (#2000)Add
formatparameter to DatetimeRangeInput widget (#2043)Allow
ParamMethodandParamFunctionto evaluate lazily (#1966)Add
value_inputparameter to TextInput widgets (#2007)Implement
Glyph3dMappersupport forVTKpanes (#2002, #2003)Add Jupyter server extension to serve resources (#1982)
Enhancements for
DarkTheme(#1964)Add
refreshfunctionality toFileSelector(#1962)Add support for Auth0 authentication (#1934)
Avoid recursive preprocessing slowing down rendering (#1852)
Add support for per-layer tooltips on
DeckGLpane (#1846)Add
Viewerbaseclass for custom user components (#2045)
Bug fixes:
Fixed
FileSelectorfile icon on selected files (#2046)Drop query args when checking URLs (#2037)
Fix
Card.header_backgroundpropagation (#2035)Disable
GoldenTemplatesidebar when empty (#2017)Ensure
Card.collapsedandAccordion.activeparameters are synced (#2009)Fix inline resources when saving (#1956)
Switch
Parampane widget type when bounds (un)defined (#1953)
Compatibility:
Updated
EChartspane to 5.0.2 of JS library (#2016)
Documentation:
Document pn.bind in API user guide (#1973)
Version 0.10.3#
Date: 2021-01-18
Another micro-release in the 0.10.x series focusing primarily on bug and regression fixes. Many thanks to @miliante, @MarcSkovMadsen, @Hoxbro, @jlstevens, @jbednar and @philippjfr.
Bug fixes:
Fix inverted axes on HoloViews plots (#1732)
Fix enabling/disabling of FileDownload widget (#1510, #1820)
Fix issues serving template resources on server with route prefix (#1821)
Fix issues with scroll behavior when expanding/collapsing Card/Accordion (#1833, #1884)
Ensure DiscreSlider label is correctly linked to value (#1906)
Fix support for setting header_color and header_background on all templates (#1872)
Ensure that Template preprocessors are applied during initialization (#1922)
Enhancements:
Support throttled in Param widget (#1800)
Support rendering of hvPlot Interactive objects (#1824)
Allow recording session launch time in server session_info (#1909)
Add Button.value parameter (#1910)
Support upload of multiple parameters on FileInput (#1911)
Documentation:
Version 0.10.2#
Date: 2020-11-13
This is another micro-release primarily fixing various minor bugs in functionality introduced as part of the 0.10.0 release. Many thanks to @MarcSkovMadsen, @ahuang11, @xavArtley, @Hoxbro, @jbednar and @philippjfr.
Bug fixes:
Fix BytesIO/StringIO buffers as input to image panes (#1711)
Fix out-of-bounds errors when assigning to
GridSpecwith fixed ncols (#1721)Fix deserialization issues for
Plotly.hover_data(#1722)Fixed updating of
Alertparameters after initialization (#1725)Fix ordering of items added to Template areas (#1736)
Fix interactivity for items in Card (#1750)
Ensure onload callbacks are only run once (#1746)
Allow overriding items in grid based templates (#1741)
Ensure
EChartsandipywidgetrerender when inCard(#1765)Ensure template dark theme persists on HoloViews plots (#1764)
Fix responsive height in Plotly pane (#1770)
Ensure image panes resize in width and height (#1777)
Fix issues with Location.sync serialization (#1784)
Add throttled argument to interact (#1259)
ECharts pane now loads echarts-gl for 3D support (#1785)
Enhancements:
Version 0.10.1#
Date: 2020-10-27
This is a micro release of Paanel primarily containing bug fixes following the 0.10.0 release. Many thanks to @MarcSkovMadsen, @jbednar and @philippjfr for contributing fixes to this release.
Enhancements:
Add pn.bind function to bind parameters to a function (#1629)
Bug fixes:
Version 0.10.0#
Date: 2020-10-23
This is a minor but jam-packed release of Panel, with a slew of new features and enhancements, plus a wide array of minor fixes and improvements to the documentation, and website. Many thanks to the people who contributed to this release, including @philippjfr, @MarkSkovMadsen (alert pane, templates, docs), @xavArtley (VTK improvements, templates, input/spinner widgets), @maximlt (panel serve), @jbednar (docs, reviewing), @kebowen (templates), @ahuang11 (datepicker), @nghenzi (react template, bugfixes), @nritsche (panel serve), @ltalirz (autocomplete input), @BoBednar (docs), @tmikolajczyk, @halilbay, @Hoxbro, and @ceball (testing and automation).
Features:
Add
CardandAccordionlayout (#1262, #1266, #1267, #1616, #1619)Location component (#1150, #1297, #1357, #1407, #1498, #1519, #1532, #1638, #1658)
VTK improvements: colorbars (#1270), synchronization (#1248, #1637), orientation widget (#1635), volume controller (#1631), serialization (#1596), follower (#1451)
Add default templates (#1277, #1374, #1419, #1421, #1459, #1472, #1473, #1479, #1530, #1535, #1608, #1617, #1645, #1647, #1650, #1660, #1661, #1662, #1677, #1682, #1685, #1687)
Improvements for ipywidgets support (#1285, #1389, #1476, #1675)
Add
pn.state.busyandpn.state.onloadcallback (#1392, #1518)Add ability to declare OAuth provider (#820, #1468, #1470, #1474, #1475, #1480, #1508, #1594, #1625)
Add busy/loading indicators and enable on Template (#1493)
Allow serving REST APIs as part of panel serve (#1164)
Add
pn.state.as_cachedfunction (#1526)Add MenuButton widget (#1533)
Add a number of
ValueIndicators(#1528, #1590, #1627, #1628, #1633)Add support for
param.Event(#1600)Add
IntInputandFloatInputwidgets (#1513)Record session statistics on
pn.state.session_info(#1615, #1620, #1634)Bundle external JS dependencies for custom models and templates (#1651, #1655)
Add support for ipympl (interactive mode) on Matplotlib (#1469)
Enhancements:
Allow defining explicit embed states (#1274)
Implement
__add__and__iadd__on layouts (#1282)Add support for hierarchical multi-indexed DataFrame (#1383)
Add
show_indexoption toDataFramewidget (#1488)Link widgets with same name during embed (#1543)
Wait until JS dependency is loaded before rendering (#1577)
For
AutocompleteInput, allow user-defined values (#1588) and case-insensitivity (#1548)Allow dates to be disabled in DatePicker (#1524)
Enable new features for a Bokeh DataTable (#1512)
Panel serve improvements: MethodType parameter (#1450), title per app (#1354)
Server deployment guide for Azure (#1350)
Add Widget.from_param classmethod (#1344)
More options for ACE widget (#1391)
Bugfixes and minor improvements:
VTK model compilation (#1669), findPokedRenderer (#1456), misc (#1406, #1409)
Fix parameterized parameter handling (#1584)
Theming improvements (#1670)
JS dependency handling (#1626)
Parameterized: explicit triggering (#1623), strings with None default (#1622)
Docs and examples (#1242, #1435, #1448, #1467, #1540, #1541, #1558, #1570, #1576, #1609)
Many other minor fixes and improvements (#1284, #1384, #1423, #1489, #1495, #1502, #1503, #1507, #1520, #1521, #1536, #1539, #1546, #1547, #1553, #1562, #1595, #1621, #1639)
Backwards compatibility:
Version 0.9.7#
The 0.9.6 release unfortunately caused a major regression in layout performance due to the way optimizations in Bokeh and Panel interacted. This release fixes this regression.
Fix regression in layout performance (#1453)
Version 0.9.6#
This is a minor bug fix release primarily for compatibility with Bokeh versions >=2.1.0 along with a variety of important bug fixes. Many thanks for the many people who contributed to this release including @mattpap, @kebowen730, @xavArtley, @maximlt, @jbednar, @mycarta, @basnijholt, @jbednar and @philippjfr.
Fixes for
FileDownloadwidget handling of callbacks (#1246, #1306)Improvements and fixes for Param pane widget mapping (#1301, #1342, #1378)
Fixed bugs handling of closed Tabs (#1337)
Fix bug in layout
clonemethod (#1349)Fix for
jslinkon Bokeh models (#1358)Fix for rendering geometries in
Vegapane (#1359)Fix issue with
HoloViewspane overriding selected renderer (#1429)Fix issues with
JSONpane depth parameter and rerendering (#1431)Fixed
param.Dateandparam.CalenderDateparameter mappings (#1433, #1434)Fixed issue with enabling
num_procsonpn.serve(#1436)Warn if a particular extension could not be loaded (#1437)
Fix issues with garbage collection and potential memory leaks (#1407)
Support recent versions of pydeck in
DeckGLpane (#1443)Ensure JS callbacks on widget created from Parameters are initialized (#1439)
Version 0.9.5#
Date: 2019-04-04
This release primarily focused on improvements and additions to the documentation. Many thanks to @MarcSkovMadsen, @philippjfr and @michaelaye for contributing to this release.
Enhancements:
Add
Template.savewith ability to save to HTML and PNG but not embed (#1224)
Bug fixes:
Fixed formatting of datetimes in
DataFramewidget (#1221)Add
panel/models/vtk/subpackage to MANIFEST to ensure it is shipped with packages
Documentation:
Version 0.9.4#
Date: 2020-04-02
This is a minor release fixing a number of regressions and compatibility issues which continue to crop up due to the upgrade to Bokeh 2.0 Additionally this release completely overhauls how communication in notebook environments are handled, eliminating the need to register custom callbacks with inlined JS callbacks to sync properties. Many thanks to the contributors to this release including @hyamanieu, @maximlt, @mattpap and the maintainer @philippjfr.
Enhancements:
Switch to using CommManager in notebook hugely simplifying comms in notebooks and reducing the amount of inlined Javascript (#1171)
Add ability to serve Flask apps directly using pn.serve (#1215)
Bug fixes:
Fix bug in Template which caused all roots to instantiate two models for each component (#1216)
Fixed bug with Bokeh 2.0 DataPicker datetime format (#1187)
Publish Panel.js to CDN to allow static HTML exports with CDN resources to work (#1190)
Handle bug in rendering Vega models with singular dataset (#1201)
Removed escaping workaround for HTML models resulting in broken static exports (#1206)
Fixed bug closing Tabs (#1208)
Embed Panel logo in server index.html (#1209)
Compatibility:
This release adds compatibility with Bokeh 2.0.1 which caused a regression in loading custom models
Version 0.9.3#
Date: 2019-03-21
This is a minor release fixing an issue with recent versions of Tornado. It also fixes issue with the packages built on the PyViz conda channel.
Respect write-locks on synchronous Websocket events (#1170)
Version 0.9.2#
Date: 2019-03-21
This is a minor release with a number of bug fixes. Many thanks to @ceball, @Guillemdb and @philippjfr for contributing these fixes.
Bug fixes:
Version 0.9.1#
Date: 2019-03-19
This is very minor releases fixing small regressions in the 0.9.0 release:
Bug fixes:
Version 0.9.0#
Date: 2019-03-13
This is a major release primarily for compatibility with the recent Bokeh 2.0 release. Additionally this release has a small number of features and bug fixes:
Features:
Added a
MultiChoicewidget (#1140)Add ability to define
Sliderformat option (#1142)Expose
pn.state.cookiesandpn.state.headersto allow accessing HTTP headers and requests from inside an app ([#1143)
Bug fixes:
Ensure
DiscreteSliderrespects layout options (#1144)
Removals:
Slider no longer support
callback_policyandcallback_throttleas they have been replaced by thevalue_throttledproperty in bokeh
Version 0.8.1#
Date: 2019-03-11
This release is a minor release with a number of bug fixes and minor enhancements. Many thanks to the community of contributors including @bstadlbauer, @ltalirz @ceball and @gmoutsofor submitting the fixes and the maintainers, including @xavArtley, @jbednar and @philippjfr, for continued development.
Minor enhancements:
Added verbose option to display server address (#1098) [@philippjfr]
Bug fixes:
Fix PNG export due to issue with PhantomJS (#1081, #1092) [@bstadlbauer, @philippjfr]
Fix for threaded server (#1090) [@xavArtley]
Ensure Plotly Pane does not perform rerender on each property change (#1109) [@philippjfr]
Fix issues with jslink and other callbacks in Template (#1135) [@philippjfr]
Various fixes for VTK pane (#1123) [@xavArtley]
Version 0.8.0#
Date: 2019-01-31
This release focuses primarily on solidifying existing functionality, significantly improving performance and fixing a number of important bugs. Additionally this release contains exciting new functionality, including several new components. We want to thank the many contributors to this release (a full list is provided at the bottom), particularly @MarcSkovMadsen (the author of awesome-panel.org) and @xavArtley, who has been hard at work at improving VTK support. We also want to thank the remaining contributors including @philippjfr, @ceball, @jbednar, @jlstevens, @Italirz, @mattpap, @Jacob-Barhak, @stefjunod and @kgullikson88. This release required only minimal changes in existing APIs and added a small number of new ones, reflecting the fact that Panel is now relatively stable and is progressing steadily towards a 1.0 release.
Major Features & Enhancements#
Major improvements to support for JS linking (#1007)
Huge performance improvements when nesting a lot of components deeply (#867, #888, #895, #988)
Add support for displaying callback errors and print output in the notebook simplifying debugging (#977)
Add support for dynamically populating
Tabs(#995)Added
FileSelectorwidget to browse the servers file system and select files (#909)Add
pn.servefunction to serve multiple apps at once on the same serve (#963)Add a
JSONpane to display json data in a tree format (#953)
Enhancements#
Updated Parameter mappings (#999)
Ensure that closed tabs update
Tabs.objects(#973)Fixed HoloViews axis linking across
Templateroots (#980)Merge FactorRange when linking HoloViews axes (#968)
Expose title and other kwargs on
.show()(#962)Let
FileInputwidget set filename (#956Expose further bokeh CLI commands and added help (#951)
Enable responsive sizing for
Vega/altair pane (#949)Added encode parameter to
SVGpane (#913)Improve
Markdownhandling including syntax highlighting and indentation (#881)Add ability to define Template variables (#815)
Allow configuring responsive behavior globally (#851)
Ensure that changes applied in callbacks are reflected on the frontend immediately (#857)
Add ability to add axes coordinates to
VTKview (#817)Add config option for
safe_embedwhich ensures all state is recorded (#1040)Implemented
__signature__for tab completion (#1029)
Bug fixes#
Fixed
DataFramewidget selection parameter (#989)Fixes for rendering long strings on Windows systems (#986)
Ensure that panel does not modify user objects (#967)
Fix multi-level expand
Paramsubobject (#965)Ensure
load_notebookis executed only once (#1000)Fixed bug updating
StaticTexton server (#964)Do not link
HoloViewsaxes with different types (#937)Ensure that integer sliders are actually integers (#876)
Ensure that
GridBoxcontents maintain size (#971)
Compatibility#
Backwards compatibility#
The Ace pane has been deprecated in favor of the Ace widget (#908)
Docs#
Version 0.7.0#
Date: 2019-11-18T21:22:16Z
This major release includes significant new functionality along with important bug and documentation fixes, including contributions from @philippjfr (maintainer and lead developer), @xavArtley (VTK support), @jbednar (docs), @DancingQuanta (FileInput), @a-recknagel (Python 3.8 support, misc), @julwin (TextAreaInput, PasswordInput), @rs2 (example notebooks), @xtaje (default values), @Karamya (Audio widget), @ceball, @ahuang11 , @eddienko, @Jacob-Barhak, @jlstevens, @jsignell, @kleavor, @lsetiawan, @mattpap, @maxibor, and @RedBeardCode.
Major enhancements:
Added pn.ipywidget() function for using panels and panes as ipwidgets, e.g. in voila (#745, #755, #771)
Greatly expanded and improved Pipeline, which now allows branching graphs (#712, #735, #737, #770)
Added streaming helper objects, including for the streamz package (#767, #769)
Added VTK gallery example and other VTK enhancements (#605, #606, #715, #729)
New widgets and panes:
Other enhancements:
Make Row/Column scrollable (#760)
Support file-like objects (not just paths) for images (#686)
Added isdatetime utility (#687)
Added repr, kill_all_servers, and cache to pn.state (#697,#776)
Added Slider value_throttled parameter (#777)
Extended existing widgets and panes:
WidgetBox can be disabled programmatically (#532)
Templates can now render inside a notebook cell (#666)
Added jscallback method to Viewable objects (#665)
Added min_characters parameter to AutocompleteInput (#721)
Added accept parameter to FileInput (#602)
Added definition_order parameter to CrossSelector (#570)
Misc widget fixes and improvements (#703, #717, #724, #762, #775)
Bug fixes and minor improvements:
Improved fancy layout for scrubber (#571)
Improved JSON embedding (#589)
Misc fixes and improvements (#626, #631, #645, #662, #681, #689, #695, #723, #725, #738, #743, #744, #748, #749, #758, #768, #772, #774, #775, #779, #784, #785, #787, #788, #789)
Prepare support for python 3.8 (#702)
Documentation:
Version 0.6.4#
Date: 2019-10-08T17:41:51Z
This release includes a number of important bug fixes along with some minor enhancements, including contributions from @philippjfr, @jsignell, @ahuang11, @jonmmease, and @hoseppan.
Enhancements:
Allow pn.depends and pn.interact to accept widgets and update their output when widget values change (#639)
Add fancy_layout option to HoloViews pane (#543)
Allow not embedding local files (e.g. images) when exporting to HTML (#625)
Bug fixes and minor improvements:
Restore logging messages that were being suppressed by the distributed package (#682)
Misc other bug fixes and improvements (#575, #588, #649, #654, #657, #660, #667, #677)
Documentation:
Added example of opening a URL from jslink (#607)
Version 0.6.3#
Date: 2019-09-19T10:28:36Z
This release saw a number of important bug and documentation fixes along with some minor enhancements.
Enhancements:
Added support for embedding Player widget (#584)
Add support for linking HoloViews plot axes across panels (#586)
Allow saving to BytesIO buffer (#596)
Allow
PeriodicCallback.periodto be updated dynamically (#609)
Bug fixes:
While hooks are applied to model no events are sent to frontend (#585)
Various fixes for embedding and rendering (#594)
Documentation:
Version 0.6.2#
Date: 2019-08-08T15:13:31Z
Minor bugfix release patching issues with 0.6.1, primarily in the CI setup. Also removed the not-yet-supported definition_order parameter of pn.CrossSelector.
Version 0.6.1#
Date: 2019-08-01T14:54:20Z
Version 0.6.0#
Date: 2019-06-02T17:56:26Z
Version 0.5.1#
Date: 2019-04-11T16:52:06Z
Minor release closely following up on 0.5.0 updating version requirements to include the officially released bokeh 1.1.0. This release also includes contributions from @philippjfr (with fixes for pipeline and embed features), @xavArtley (addition of a new widget) and @banesullivan (fixes for VTK support).
Features:
Addition of
Spinnerwidget for numeric inputs (#368)
Bugfixes:
Version 0.5.0#
Date: 2019-04-04T00:42:59Z
Major new release, greatly improving usability and capabilities. Includes contributions from @philippjfr (docs, better layouts, and many other features), @xavArtley (VTK support, Ace code editor), @banesullivan (VTK support), @jbednar and @rtmatx (docs), @jsignell (docs, infrastructure, interact support), and @jlstevens (labels for parameters).
Major new features:
Now uses Bokeh 1.1βs greatly improved layout system, requiring far fewer manual adjustments to spacing (#32)
Greatly expanded docs, now with galleries (#241, #251, #265, #281, #318, #332, #347, #340)
Allow embedding app state, to support static HTML export of panels (#250)
Added new GridSpec layout type, making it simpler to make grid-based dashboards (#338)
Added Ace code editor pane (#359)
Allow defining external JS and CSS resources via config, making it easier to extend Panel (#330)
Add HTML model capable of executing JS code, allowing more complex embedded items (#326)
Add a KaTeX and MathJax based LaTeX pane, replacing the previous limited matplotlib/PNG-based support (#311)
Other new features:
Allow passing Parameter instances to Param pane, making it much simpler to work with individual parameters (#303)
Added parameter for widget alignment (#367)
Allow specifying initial value when specifying min/max/step for interact (#334)
Add support for param.Number step (#365)
Add a PeriodicCallback (#348)
Expose curdoc and session_context when using serve (#336)
Add support for saving and loading embedded data from JSON (#301)
Add support for specifying arbitrary
labelfor Parameters (#290)Add ColorPicker widget (#267)
Add support for interact title (#266)
Bugfixes and minor improvements:
Combine HTML and JS in MIME bundle to improve browser compatibility (#327)
Inlined subobject expand toggle button (#329)
Use Select widget for ObjectSelector consistently to avoid issues with short lists and numeric lists (#362)
Various small improvements (#238, #245, #257, #258, #259, #262, #264, #276, #289, #293, #307, #313, #343, #331)
Various bugfixes (#247, #261, #263, #282, #288, #291, #297, #295, #305, #309, #322, #328, #341, #345, #354, #364)
Changes potentially affecting backwards compatibility:
Version 0.4.0#
Date: 2019-01-28T18:02:57Z
Thanks to @xavArtley for several contributions, and to @lebedov for bugfixes.
New features:
Now Python2 compatible (#225)
FileInput widget (#207)
General support for linking Panel objects, even in static exports (#199)
New user-guide notebooks: Introduction (#178), Links (#195).
Enhancements:
Bug fixes:
Version 0.3.1#
Date: 2018-12-05T22:49:23Z
Minor release fixing packaging issues.
Version 0.3.0#
Date: 2018-12-05T00:47:25Z
Thanks to @mhc03 for bugfixes.
New features and enhancements
New app: Eulerβs Method (#161)
New widgets and panes: Player (#110), DiscretePlayer (#171), CrossSelector (#153)
Spinner (spinner.gif)
Compositional string reprs (#129)
Add Param.widgets parameter to override default widgets (#172)
Pipeline improvements (#145, etc.)
Additional entry points for user commands (#176)
Support calling from anaconda-project (#133)
Improved docs
Bugfixes:
Fix example packaging (#177)
Various bugfixes and compatibility improvements (#126, #128, #132, #136, #141, #142, #150, #151, #154, etc.)
Compatibility changes
Renamed Param expand options (#127)
Version 0.1.3#
Date: 2018-10-23T12:09:07Z