Skip to content

Releases: holoviz/panel

Version 1.3.7

19 Jan 16:58
Compare
Choose a tag to compare

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

  • Add filter_by to ChatMessage.serialize (#6090)
  • Support using an SVG for ToggleIcon (#6127)
  • Add resizable param to TextAreaInput (#6126)
  • Improve date and datetime picker functionality (#6152)
  • Add activity indicator to ChatMessage (#6153)
  • Lazily import bleach HTML sanitizer (#6179)

Bug fixes

  • Fix alignment issues in chat components (#6104, #6135)
  • 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 Matplotlib pane (#6128)
  • Ensure icon displays inline with text on FileDownload (#6133)
  • Fix styling of links in Tabulator fast theme (#6146)
  • Fix passing of card_params on ChatFeed (#6154)
  • Handle Tabulator.title_formatter if is type dict (#6166)
  • Fix per_session caching (#6169)
  • Correctly reshape nd-arrays in Plotly pane (#6174)
  • Handle NaT values on Perspective pane (#6176)
  • Do not rerender output if ReplacementPane object 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 TextEditor to support being rendered in the Shadow DOM (#6222)
  • Add guard to Tabulator ensuring 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

Documentation

  • Add Design and Theme explanation documentation (#4741)
  • Fix pyodide execution in documentation
  • Fix wrong and broken link (#5988, #6132)
  • Use GoatCounter for website analytics (#6117)
  • Add Dask How to guide (#4234)
  • Fix Material template 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

20 Dec 18:14
Compare
Choose a tag to compare

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 ChatReactionIcons alignment and trigger reactions correctly (#6086)
  • Change Column scroll_position default value from None to 0 (#6082)
  • Fix issue with accumulating callbacks on server (#6091)
  • Ensure ReactiveExpr renders in pyodide (#6097)
  • Ensure TooltipIcon description can be updated (#6099)
  • Fix IPyWidgets rendering in BootstrapTemplate (#6100)
  • Fix padding and alignment of FileDownload (#6101)

Version 1.3.5

18 Dec 17:23
Compare
Choose a tag to compare

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 Fast template styling (#6023)
  • Replace Player widget unicode icons with SVG for more consistency (#6030)
  • Elaborate on ChatInterface callback exception summary (#6046)
  • Add ToggleIcon widget (#6034)
  • Use minified Tabulator.js ([#6060]#6060))
  • Support rendering GeoDataFrame and GeoSeries in DataFrame pane (#6061)
  • Optimize rendering of ChatMessage (#6069)
  • Apply smaller optimizations for Viewable and ChatMessage (#6074)
  • Add bottom padding to MaterialTemplate (#6075)
  • Update mapbox-gl version for DeckGL pane (#6077)

Bug fixes

  • Remove duplicate property definition of VizzuChart.config (#5947)
  • Remove stray print in Tabulator styler handling (#5944)
  • Fix bug when clearing pn.cache before anything has been cached (#5981)
  • Fix obj.save() when threading is enabled (#5993)
  • Fix Matplotlib responsiveness and improve reference notebook (#5973)
  • Gracefully handle non-decodable access_token (#5994)
  • Ensure onload callbacks scheduled during or after load are still executed (#6005)
  • Don't attempt to set Tabulator text_align on Bokeh formatters that don't support it (#6010)
  • Correctly set error page to be rendered on auth failure (#6014)
  • Fix ChatInterface post 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 ChatMessage reactions icon rendering (#6034)
  • Fix issues with ChatInterface stop ensuring send button is re-enabled and placeholder removed (#6033)
  • Ensure that Design does not override properties on HoloViews pane (#6051)
  • Ensure async callbacks correctly dispatch events when Websocket is locked (#6052)
  • Fix state.add_periodic_callback when 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.langchain import lazy improving import time (#6056)
  • Change prominence of TooltipIcon (#6057)

Documentation

  • Improve reactive expression notebook (#5960)
  • Document requirement to install pyviz_comms in same env as Jupyter (#5980)
  • Update documentation's pyodide version to use version from panel.io.convert (#5996)

Version 1.3.4

29 Nov 18:24
Compare
Choose a tag to compare

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

  • Allow passing partial function to tabulator filter (#5912)
  • Allow defining custom callbacks for ChatInterface buttons (#5839)

Bug fixes

  • Fix regression when setting text_align and HTMLTemplateFormatter on Tabulator (#5922)
  • Ensure notifications are correctly destroyed (#5924)
  • Fix header overflow issues in FastGridTemplate (#5935)
  • Ensure Audio model respects sizing (#5936)
  • Persist Tabulator selection across pages when pagination='remote' for all selection modes (#5929)
  • Ensure Tabulator styler subset logic is not lost (#5938)
  • Fix regression in OAuth when id_token does not contain user key (#5939)
  • Ensure Vega/Altair plot with responsive width/height respects fixed width/height value when set (#5940)
  • Ensure BrowserInfo is imported by default (#5942)

Documentation

  • Restore plot styling guides in how-to guide (#5919)
  • Document support for emojis on Button labels (#5926)
  • Update and improve SVG pane reference docs (#5934)

Version 1.3.2

22 Nov 15:11
Compare
Choose a tag to compare

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

  • Speed up Pane.clone (#5848)
  • Speed up config attribute access (#5851)
  • Cache templates loaded from string (#5854)
  • Only load extension entrypoints once (#5855)
  • Do not freeze document models unless needed (#5864)

Enhancements

  • Use the compiled version of Pyodide by default (#5808)
  • Add support for AutocompleteInput.search_strategy parameter (#5832)
  • Use stdlib_module_names when determining pyodide dependencies (#5818)
  • Add Tabulator.sortable parameter (#5827)
  • Add delay for tooltip to show up for buttons (#5860)
  • Add serialize method on ChatMessage and ChatFeed (#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_align correctly if Tabulator is given Bokeh formatter (#5866)
  • Fix FileDownload embed=True style for Fast design (#5875)
  • Enable Tabulator selection across pages with pagination="remote" and selectable="checkbox" (#5889)
  • Fix rendering of VTK colorbar (#5902)
  • Ensure HoloViews DynamicMap updates when widget dimension has unit (#5904)
  • Add space between MaterialTemplate app and site title separator (#5905)
  • Consistently handle errors during authentication (#5909)

Compatibility

  • Updates for Numpy 2.0 compatibility (#5817)
  • Improve notebook handling when loading bokeh dev versions (#5820)
  • Support for rendering into DOM from PyScript Next worker (#5820)

Documentation

  • Enhance extension and config docs (#5790)
  • Document setting a multiselect header filter on Tabulator (#5825)
  • Add missing GridSpec docs (#5840)
  • Fix for getting_started widgets example (#5859)
  • Add more references to Panel Chat Examples (#5881)
  • Document Tabulator fontawesome css (#5892)
  • Fix broken link to panel tagged items in holoviz blog (#5903)
  • MenuButton docs improvements (#5907)

Version 1.3.1

31 Oct 16:50
Compare
Choose a tag to compare

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 ColorMap widget correctly handles shared layout and display parameters (#5732)
  • Fix accessing refreshed access_token (#5734)
  • Ensure Markdown code blocks always wrap (#5738)
  • Fix returning state.user_info if no id_token is present in cookies (#5747)
  • Fix Widget.from_param type annotation (#5754)
  • Fix auto send for ChatInterface with TextAreaInput (#5762)
  • Add support for iframe srcdoc on Location (#5774)
  • Ensure Tabulator.style applies correctly with changing data (#5757)
  • Ensure panel convert can correctly detect transformers_js import (#5772)
  • Adjust ReactiveHTML css 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

  • Fix typo in examples/reference/widgets/StaticText.ipynb (#5739)
  • Add ReactiveExpr reference docs and change default widget location (#5755, #5760)
  • Fix pyscript WASM example (#5771)
  • Improve documentation for deep linking docs (#5752)

Version 1.3.0

24 Oct 08:01
Compare
Choose a tag to compare

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)

Version 1.2.3

18 Sep 09:39
Compare
Choose a tag to compare

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)

Version 1.2.2

01 Sep 17:23
Compare
Choose a tag to compare

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)

Version 1.2.1

25 Jul 16:39
Compare
Choose a tag to compare

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)