Release Notes for version 4.0
This is the list of changes of taipy version 4.0.
Migration
Please refer to the Migration page for potential migration paths for your applications implemented on legacy Taipy versions.
Published on 2024-10.
taipy 4.0 depends on the latest
taipy-common 4.0,
taipy-gui 4.0,
taipy-core 4.0,
taipy-templates 4.0, and
taipy-rest 4.0 packages.
Upgrading to Taipy 4.0 from 3.x
Due to changes in Taipy's package structure in version 4.0, the previous version of the
taipy-config package may not be automatically removed during the upgrade process. This could
lead to runtime issues as the system may attempt to reference outdated dependencies.
To ensure a clean installation, please manually uninstall Taipy 3.x and then install a fresh Taipy 4.0.
taipy¶
4.0.3¶
Significant bug fixes
- Cycle-scoped data nodes don't appear in the
Data Node Selector.
See issue #2470.
4.0.2¶
Significant bug fixes
- Completed submissions may be notified twice.
See issue #2152.
4.0.1¶
Improvements and changes
- The impact of the
show_properties
property of the
data_nodecontrol was changed. This property now controls whether the "Properties" tab is visible.
To show or hide the list of custom properties in the "Properties" tab, you must now use the show_custom_properties property.
Significant bug fixes
- Scenario selection becomes impossible in the
scenario_selectorcontrol after creating a new Scenario.
See issue #2169. - The Delete button of the "Edit scenario" dialog of the
scenario_selectorcontrol is disabled when it should not be.
See issue #1995. - A warning is issued when a scenario is created from the
scenario_selectorcontrol.
See issue #2009. - Scenario management controls may not be fully recognized by
linters or auto-completion features in some IDEs.
See issue #1620.
4.0.0¶
Improvements and changes
- Taipy and all its dependencies now stop support Python 3.8.
The minimum supported Python version is now 3.9. - Taipy package structure has been reorganized. The
dependency on
taipy-confighas been removed. Taipy now depends on a newtaipy-commonpackage that includes the configuration features among the common code shared by alltaipy,taipy-gui, andtaipy-corepackages. -
The User Experience of the Scenario and Data management controls have been greatly improved by the following new functionalities:
-
- Multiple selection is now available.
See the multiple property for more details. - Users can now filter scenarios in the list.
See the section on Filtering for more details. - Users can now sort scenarios in the list.
See the section on Sorting for more details. - Users can now search scenarios in the list
See the section on Searching for more details.
- Multiple selection is now available.
-
- Multiple selection is now available.
See the multiple property for more details. - Users can now filter data nodes in the list.
See the section on Filtering for more details. - Users can now sort data nodes in the list.
See the section on Sorting for more details. - Users can now search data nodes in the list
See the section on Searching for more details.
- Multiple selection is now available.
-
- Users can now upload and download data of file-based data nodes.
-
- A new detail panel has been added to the job selector.
-
taipy-gui¶
4.0.3¶
Improvements and changes
- If a cell value contains line feeds (\n), the
tablecontrol displays the cell as multi-line text.
See issue #2524.
Significant bug fixes
- The callback function set to the
on_action property of
the
file_downloadcontrol gets lost in a multi-page context.
See issue #2450. - Expressions isolated in partials may raise an exception when
evaluated.
See issue #2463.
4.0.2¶
Improvements and changes
- The
chatcontrol now automatically scrolls down to the last received message unless the user has decided otherwise.
See issue #2281. - The
metriccontrol now supports geometry adjustments.
See issues #2141 and #2142. - The Stylekit consistency across elements has been
enforced.
See issue #2305.
Significant bug fixes
- Boolean values are not properly represented in
tablecontrols when the use_checkbox property is set to True.
See issue #2257. - Lambda functions may fail to locate state variables or local
functions.
See issue #2212 and issue #2242. -
tablecontrols do not consistently apply new column widths.
Additionally, a new sortable property was introduced, allowing developers to disable the sorting functionality. This change reduces the space required in column headers, enabling narrower column widths.
See issue #2286. - Charts may swap data columns where refreshed with
rebuild.
See issue #2302
4.0.1¶
Improvements and changes
- Setting up styling:
If a file namedtaipy.cssis located in the same directory as the Python script (<app>.py) running a Taipy GUI application, and no<app>.cssfile exists in the same location, this CSS file will be loaded and applied to all pages. This enables sharing styles across different Taipy GUI applications.
See issue #1597 for more details and the section on Styling.
Significant bug fixes
- The
-Hcommand line option is broken.
You must use the long--hostoption instead to specify the server hostname. - The id and payload parameters of the
on_actioncallback functions are swapped.
See issue #2045. - The chart control refresh may stop rendering
automatically if too many data changes are requested. The page must be refreshed
manually.
See issue #1992. - Aggregation in a table control may raise an error
if the table has columns holding dates.
See issue #1994. - Table columns are too narrow if there are many.
See issue #2082. - Styling is not applied to a
tablecontrol if its rebuild property is set to True.
See issue #2005.
4.0.0¶
New features
- A new control,
metric, has been added to represent significant numerical information, such as industrial KPIs. - A new control,
progress, has been added to provide a compact representation of a process's progress. - A new control,
chat, has been introduced to simplify the development of chat-based applications. - The
tablecontrol has new features:- Built-in edit functionality are now available for all supported data types. You no longer need
to define functions for the
on_edit,
on_add, and
on_delete properties. However,
you can still customize these actions by providing your own functions.
Please read this section for more details. - A new indexed property,
format_fn[column_name]
allows you to define a custom Python function to format cell values.
Please look at the example code for details. - A new property, use_checkbox,
can be set to True to display checkboxes in cells containing Boolean values.
This significantly reduces the rendering time for large tables with Boolean columns.
- Built-in edit functionality are now available for all supported data types. You no longer need
to define functions for the
on_edit,
on_add, and
on_delete properties. However,
you can still customize these actions by providing your own functions.
- You can define CSS rules for individual pages using the new
style parameter of the
Pageclass or via thePage.set_style()method.
See the section on Styling for more information. - List-of-values can now be built directly from
enumeration classes.
See the section on enumerated LoVs for more information.
Improvements and changes
- Setting up styling:
If a file namedtaipy.cssis located in the same directory as the Python script (<app>.py) running a Taipy GUI application, and no<app>.cssfile exists in the same location, this CSS file will be loaded and applied to all pages. This enables sharing styles across different Taipy GUI applications.
See issue #1597 for more details and the section on Styling. - The style and style[column_name] properties of the
tablecontrol have been renamed to row_class_name and cell_class_name[column_name], respectively. A warning message is issued if you use these properties. - Most visual elements now implement the width property,
simplifying page layout.
See issue #1720. - The
inputcontrol has a new type property, allowing you to specify the expected input type (e.g., email address, URL). - The
paneblock now includes a new property, show_button. When set to True, a persistent open button appears on the page when the pane is closed, eliminating the need for an external control to open the pane. - The Modebar in the
chartcontrol (visible when the chart is hovered over) no longer includes the Plotly logo button by default. To restore it, set the plot_config property to a dictionary with"displaylogo": True.
See issue #1600. - The decimator property of the
chartcontrol now applies to traces that are only "lines" or "markers". - A new toggle button has been added to
the
logincontrol, enabling users to show or hide the entered password. -
Page Builder API:
- Properties that expect a function can now be set to a lambda function in the Page Builder
API to simplify dynamic generation.
See issue #1379. - Controls defined with the Page Builder API have an additional property called inline which,
when set to True, will not generate a line skip, to facilitate layout.
See issue #1725.
- Properties that expect a function can now be set to a lambda function in the Page Builder
API to simplify dynamic generation.
-
The configuration of the
Guiobject was improved for easier deployment:- The port configuration
parameter can now be set to "auto". When
Gui.run()is executed with this setting, it will attempt to find an available port by automatically trying different port numbers. - A new configuration parameter, port_auto_ranges, allows specifying the range of port numbers that Taipy GUI will search when port is set to "auto".
- The port configuration
parameter can now be set to "auto". When
Significant bug fixes
- The value of multiline
inputcontrols is cleared when the ENTER key is pressed.
See issue #1762. - The
chartcontrol properly handles its selected property in the case it uses the figure property.
See issue #1786. - Indexed properties can be used in the Page Builder API as
described in the information box in
this section.
See issue #1715. - Binding to an element of a collection is now supported.
See issue #1785.
taipy-core¶
4.0.2¶
Significant bug fixes
- Some data node update events were not correctly published
on the notifier.
See issue #2319. - Running a Taipy application on a Unix base Docker container
with file data nodes (csv, excel, json, etc.) created on a windows host machine will raise
an error because the path is not recognized by the python interpreter.
See issue #2267.
4.0.0¶
New features
-
The
taipy.get_scenarios()andtaipy.get_primary_scenarios()functions now accept optional parameters to:- sort the output list of scenarios by name, id, creation date, or tag
- filter the output list of scenarios that are created in a specific time range.
For more information, please refer to Get all scenarios and Get primary scenarios.
See issue #393. -
The
JobandSubmissionentities have new attributes based on the record of job status changes. For more information on job statuses, please refer to Job Status.- The
Jobentity exposes the following timestamp attributes: submitted_at, run_at, finished_at. - The
Jobentity exposes the following duration attributes: execution_duration, pending_duration, and blocked_duration. - The
Submissionentity exposes the following timestamp attributes: submitted_at, run_at, finished_at. - The
Submissionentity exposes the execution_duration attribute.
- The
See issue #1704 and issue #1544.
- Expose an Abstract class
CoreEventConsumerBaseto implement a custom event consumer.
A consumer can be used to listen to Taipy events (mainly CRUD operations on Taipy entities) and react to them. For more information, please refer to the Track activities and Trigger actions documentation page.
See issue #405.
Improvements and changes
- In standalone job execution mode, the default value of max_nb_of_workers is now 2 instead of 1. For more information, please refer to Job execution configuration.
- In standalone job execution mode, the workers are started in a separate process are now started in "spawn" mp_context instead of the default from the system.
- When using the Taipy command-line interface, if an unsupported argument is provided, the CLI will display a message indicating the invalid argument. If the invalid argument is possibly a typo, the CLI will suggest the closest valid argument.
- Support for different encodings in
S3ObjectDataNode.
See issue #680. - Reading an
ExcelDataNodeis more consistent across the various expose types.
See issue #796. - Two scenarios belonging to the same cycle can now have the
same tag.
See issue #1292. - The custom properties of a
Scenarioare not exposed as attribute anymore.
See issue #1572. - Methods and functions returning a Boolean value and related
to entities now return a
ReasonCollectionobject, which is a set ofReasoninstances. Each reason contains a message explaining why the returned value isFalse. The collection is empty if the value isTrue.
Examples:is_deletable(),exists(),is_readable()etc. See issue #1568. - The
Config.check()method now raisesERRORissues if any data node, task, or sequence of aScenarioConfighas the same configuration id as another one in the sameScenarioConfig, or any additional property of any configuration has the same name as one of the attributes of the configuration class.
See issue #1696 and issue #411.
For more information on checkers, please refer to Configuration checker.
Significant bug fixes
-
DataNode.is_up_to_date()raises an error when the data node has never been written.
See issue #1198. - Reload the cache on all
build_manager()methods when the repository_type is changed.
See issue #1692.
Deprecations
- The
Coreservice has been deprecated and renamedOrchestrator. TheCoreservice is still available for backward compatibility but will be removed in a future release.
See issue #1567. - The production mode and the migration configuration of the version management system has been transferred from the Community edition to the Enterprise Edition as it is more suitable for enterprise applications.
- Support for the SQL repository was removed. Taipy
Community edition now only supports the
filesystemrepository type.
See issue #1513. - The
Scenario.export()andtaipy.export_scenario()functions have been transferred from the Community edition to the Enterprise edition as it is more suitable for enterprise applications.
taipy-templates¶
4.0.0¶
New features
- Creating a new application using any template now also supports initializing the application as a Git repository.
Significant bug fixes
- The first cli option of the
taipy createcommand is skipped if it's before the positional argument.
See issue #1687.
Deprecations
- The --template option of the
taipy createcommand is now renamed to --application option to correctly reflect the application template to use when creating a new Taipy application.
See issue #1472.
taipy-enterprise¶
4.0.4¶
Significant bug fixes
- Integration with Microsoft Entra ID SSO is no longer limited to 100 groups per user.
4.0.0¶
New features
- Authentication now supports
Microsoft Entra ID
including SSO and GUI integration.
For more information, please refer to Microsoft Entra ID protocol section of the user manual. - Support for
Polars DataFrame Library.
Tabular data nodes (CSVDataNode,ParquetDataNode,ExcelDataNode,SQLTableDataNode, andSQLDataNode) can now expose the data as Polars objects. They all supportpolars.LazyFrame,polars.DataFrameorpolars.Seriesas exposed type through the exposed_type configuration attribute.
Thetableandchartcontrols both have native support for these tabular data types as well. - The new
taipy.import_scenario()function can be used to import a scenario from an exported archive. For more information, please refer to Import a scenario. - The default application template now supports authentication and authorization features.
Improvements and changes
-
The
taipy.export_scenario()function now:- exports a zip archive instead of a folder.
- supports exporting file-based data nodes' data to the exported archive if the path exists.
- raises the
ExportPathAlreadyExistsexception if the export path already exists. You can explicitly set the overwrite parameter to True to overwrite the existing export path.
For more information, please refer to Export a scenario.