Holoviz Panel Versions Save

Panel: The powerful data exploration & web app framework for Python

v1.3.0

6 months ago

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

  • Integrate support for param reactive expressions and expose pn.rx (#5138, #5582)
  • Implement ChatMessage, ChatFeed and ChatInterface components (#5333)
  • Unify OAuth implementations and refresh access_token (#5627)
  • Add ColorMap widget (#5647)

Enhancement

  • Add unit to widget in HoloViews pane if provided (#5535)
  • Allow registering global on_session_destroyed callback (#5585)
  • Implement auto_grow on TextAreaInput (#5592)
  • Add ability to redirect users from authorization callback (#5594)
  • Add support for Path object in FileDownload (#5607)
  • Add authorization_code and password based OAuth login handlers (#5547)
  • Add format to EditableFloatSlider and EditableIntSlider (#5631)
  • Add support for decorating async functions with pn.io.cache (#5649)
  • Map param.Bytes to FileInput widget (#5665)

Bug fixes

  • Fixes for Column invisible scroll_button taking space (#5532)
  • Guard undefined values from being set on BrowserInfo (#5588)
  • Fix thumbnails and use Panel design on index page (#5595)
  • Fix regressions in TextEditor caused by migration to shadow DOM (#5609)
  • Sync location state from request (#5581)
  • Fix Select widget label offset in Material Design (#5639)
  • Override token contents when reusing sessions (#5640)
  • Fix patching a table with a DataFrame with a custom index (#5645)
  • Set FloatPanel status correctly on initialization (#5651)
  • Fix patching table with pd.Timestamp values (#5650)
  • Ensure notifications and browser_info are loaded when HoloViews is loaded (#5657)
  • Gracefully handle resolution of invalid paths in _stylesheets (#5666)
  • Handle patching tables with NaT values (#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

  • Improved docs on deploying with GCP (#5531)
  • Add Streamlit migration guide for chat components (#5670)

v1.2.3

8 months ago

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

  • Add ability to change admin page endpoint (#5447)
  • Authentication /logout endpoint now serves configurable template (#5514)
  • Add options to sanitize HTML panes (#5516)

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 convert requirements 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 TextEditor correctly detects selections and renders HTML (#5511)
  • Fix Markdown rendering with the MyST parser (#5497)
  • Fix OAuth login endpoint when --prefix is set (#5492)

Documentation

  • Update outdated DateRangeSlider.step documentation (#5510)

v1.2.2

8 months ago

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. Bug fixes also center 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_formatters parameter (#5421)
  • Provide the the accessed path to authorization checks (#5386)
  • Add Perspective click events (#5430)
  • Add and improve pn.io.hold and pn.io.immediate_dispatch context managers to control events (#5444)
  • Allow to passing basic_login_template argument to panel server (#5454)

Bug fixes

  • Ensure BasicAuth forwards to original URL after login (#5357)
  • Correct return types from threading.Thread to panel.io.server.StoppableThread (#5396)
  • Various guards and fixes ensuring Tabulator re-renders correctly (#5410, #5412)
  • Avoid extra executions when executing periodic callback with counter (#5344)
  • Ensure updates to DataModel are correctly scheduled on the event loop (#5360)
  • Fixes for displaying single newlines in Markdown output and add renderer_options (#5376)
  • Allow update of Accordion title without updating content (#5413)
  • Fix authentication handling when prefix is set (#5422)
  • Fix serialization issues affecting TextLayer objects in DeckGL (#5427)
  • Fix height responsiveness of Perspective pane (#5429)
  • Ensure FileDownload button can be clicked anywhere (#5431)
  • Ensure ReactiveHTML children are rendered just like other models (#5434)
  • Set Perspective properties correctly to avoid causing unfocus on keypresses (#5432)
  • Ensure FloatPanel correctly exposes its children to allow linking (#5433)
  • Do no reset Tabulator options 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 Accordion CSS to remove gaps and avoid border overlap (#5460)
  • Ensure columns are deleted when updating traces on Plotly pane to avoid corruption (#5464)
  • Invalidate layout when TextEditor CSS loads (#5465)
  • Ensure FloatPanel reflects closed status (#5466)
  • Fix handling of string dtypes on Perspective pane (#5467)

Documentation

  • Fix incorrectly linked images in streamlit migration guide and VSCode guide (#5327, #5329)
  • Improve developer instructions (#5305, #5380, #5426)

Compatibility

  • Compatibility with param 2.0 watchers (#5350, #5455)

v1.2.1

9 months ago

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

  • Add config.disconnect_notification and config.ready_notification (#5244)
  • Add Vizzu tooltip support and allow animations when data is updated (#5258)
  • Style tweaks for Card and Select components (#5280)

Bug fixes

  • Ensure GridStack children are sized correctly after render (#5242)
  • Fix Tabulator expanded row rendering (#5253)
  • Fix bug where local PDF pane is rendered as base64 string (#5264)
  • Avoid full re-rendering when updating HTML based components (#5275)
  • Ensure that Design does not trigger unnecessary updates to stylesheets (#5278)
  • Treat Tabulator row_contents as real children ensuring layout behaves correctly (#5292)
  • Fix Video min_height and max_height (#5296)
  • Make TextEditor invisible until CSS is loaded (#5297)
  • Fix disabled parameter on editable sliders (#5319

Compatibility

  • Update pyodide and pyscript versions and switch to compiled build (#5309)

Documentation

  • Add VS Code How To Guide (#5196)
  • Fix binder (#5257)
  • Various smaller documentation fixes ([#4821], #5249, #5266)
  • Tweak example in the Build an App section of Getting Started (#5302)
  • Update pyodide documentation with latest versions (#5234, #5308)
  • Remove MyST inline directives from JupyterLite notebooks (#5311)

v1.2.0

10 months ago

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

  • Add append mode for reactive generator output (#5129)
  • Upgrade to Tabulator 5.5 (#5182)
  • Add support for LoadingSpinner label (#5194)
  • Add the editable parameter to Perspective (#5211)
  • Add support for setting theme_classes on Tabulator (#5216)
  • Move resource handling onto BaseTemplate (#5228)

Bug fixes

  • Correctly process fields on Vega (and altair) selections (#5164)
  • Fix for resource handling particularly when working with Django (#5175)
  • Fix ChatBox bubble width (#5172)
  • Fix Tabulator.visible handling (#5182)
  • Fix programmatic updates to Tabulator.page (#5187)
  • Ensure bokeh events generated in pyodide convert None to null (#5191)
  • Improve notebook detection (#5201)
  • Reduce priority of _repr_<img>_ to ensure _repr_html_ takes precedence (#5217)
  • Ensure we do not modify Tabulator.hidden_columns inplace (#5218)
  • Alignment and styling fixes for text input and button widgets (#5219)
  • Fix updates to Plotly nested properties such as selections (#5227)

Documentation

  • Add Streamlit migration guide (#5027)
  • Improve defer_load how-to guide (#5112)

Compatibility

  • Remove markdown-it-py pins (#5159)
  • Forward compatibility fixes for Param 2.0 (#5169, #5198)
  • Compatibility with Bokeh 3.2 (#5185)

v1.1.1

10 months ago

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

  • Implement per_session cache (#5117)
  • Enhancements for ChatBox including methods to update rows and hide names (#5118, #5118)

Bug fixes

  • Fix Progress indicator sizing_mode (#5051)
  • Fix various ChatBox issues (#5065, #5101, #5101)
  • 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 throttled or onkeyup (#5078)
  • Allow to updating/clearing enabled_dates on DatetimePicker (#5089)
  • Ensure session arguments are correctly parsed by Jupyter executor (#5106)
  • Fix defer_load handling (#5107)
  • Fix styling with filters in Tabulator (#5110)
  • Fix issues when using in filter with single value on Tabulator (#5125)
  • Add fallback if ReactiveHTML shadow 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 ColumnDataChangedEvent fixing Plotly plots not updating (#5147)

Documentation

  • Overhaul Perspective reference page (#5087)
  • Add new HuggingFace deployment documentation (#5158)
  • Enable and document mathjax extension in Markdown reference (#5158)

Compatibility

  • Correctly serialize new IPyWidget models on creation (#5114)
  • Ensure we handle JupyterLab 4 comm messages correctly (#5140)

Backward compatibility

  • Renamed Trend parameter title to name (#5092)

v1.1.0

11 months ago

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

  • Add the ChatBox widget (#4702)
  • Add a standalone TooltipIcon indicator (#4909)
  • Implement support for reactive generator functions (#5019)
  • Allow setting on_* handlers in constructor (#5026)
  • Allow controlling initial Template sidebar state (#5033)

Bug fixes

  • Handle height responsiveness of HoloViews layout correctly (#5009)
  • Apply Plotly toolbar colors depending on template (#5012)
  • Fix Fast Design style variables (#5015)
  • Allow reactive updates to override constant parameters (#5032)
  • Fix Tabulator header filter styling (#5038)
  • Ensure Jupyter extensions warns users if app has no contents (#5041)

v1.0.4

11 months ago

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 IPyWidget model (#4939)
  • Fix recursive and inplace updates on reactive panes (#4946, #4958)
  • Fix issues with single Select widget (#4947)
  • Ensure CSS config parameters can be passed to Template constructor (#4948)
  • Fixed vizzu data series type conversion for datetime (#4955)
  • Small documentation fixes (#4943, #4960)
  • Fix icon on Toggle and Button widget (#4961)
  • Fix Volume definition on Video pane
  • Ensure icon renders on Toggle button (#4969) (#4970)
  • Ensure Card.header_color is correctly applied (#4971)
  • Update param.List signatures to suppress warnings (#4973)
  • Fix font loading in VanillaTemplate (#4975)
  • Guard is_file check on Windows (#4985)
  • Fix serialization of Plotly.selection_data (#4987)
  • Speed up dynamic layout updates (#4989)

v1.0.3

11 months ago

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 -1 in Tabs.active and allow recovering from closed tabs (#4920)
  • Ensure HoloViews layout is correctly initialized when center is 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 Param pane name is updated when object changes (#4928)
  • Align functionality and styling of FileDownload with Button (#4929)
  • Fix equality comparisons of parameter values when updating a Pane (#4934)
  • Warn about ignored widget parameters on Param pane (#4934)

v1.0.2

1 year ago

A micro-release in the 1.0.x series with a number of bug fixes and documentation tweaks. Many thanks to @jbednar and @philippjfr for contributing to this release.

Bug fixes

  • Ensure Design stylesheets are not replaced when updating component stylesheets (#4883)
  • Ensure tooltips are rendered correctly as HTML (#4887)
  • Fix loading of index page resources (#4891)
  • Ensure FloatPanel can 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 Card layout are rendered (#4899)
  • Fix logo rendering in BasicAuth template (#4900)

Documentation

  • Various documentation tweaks (#4884, #4888, #4889, #4901)
  • Update Vega/Altair reference notebook to use altair 5 APIs (#4894)