Browse Source

Merge pull request #267 from Avaiga/feature/#684-rename-pipeline-to-sequence

core/feature/#684 rename sequence to pipeline and fix pipfile and tox.ini
Toan Quach 1 year ago
parent
commit
48c5eea2dd

+ 4 - 3
Pipfile

@@ -6,9 +6,10 @@ name = "pypi"
 [packages]
 [packages]
 "backports.zoneinfo" = {version="==0.2.1", markers="python_version < '3.9'", extras=["tzdata"]}
 "backports.zoneinfo" = {version="==0.2.1", markers="python_version < '3.9'", extras=["tzdata"]}
 cookiecutter = "==2.1.1"
 cookiecutter = "==2.1.1"
-taipy-gui = {git="https://git@github.com/Avaiga/taipy-gui.git@develop"}
-taipy-rest = {git="https://git@github.com/Avaiga/taipy-rest.git@develop"}
-taipy-templates = {git="https://git@github.com/Avaiga/taipy-templates.git@develop"}
+
+taipy-gui = {ref = "develop", git = "https://github.com/avaiga/taipy-gui.git"}
+taipy-rest = {ref = "develop", git = "https://github.com/avaiga/taipy-rest.git"}
+taipy-templates = {ref = "develop", git = "https://github.com/avaiga/taipy-templates.git"}
 
 
 [dev-packages]
 [dev-packages]
 autopep8 = "*"
 autopep8 = "*"

+ 21 - 21
README.md

@@ -3,7 +3,7 @@
 
 
 <img align="left" src="readme_img/readme_logo.png" alt="Taipy Logo" width="20%" ></img>
 <img align="left" src="readme_img/readme_logo.png" alt="Taipy Logo" width="20%" ></img>
 <br>
 <br>
-#  Welcome to Taipy 
+#  Welcome to Taipy
 <p align="left">
 <p align="left">
     <a href="https://pypi.python.org/pypi/taipy/" alt="Taipy version">
     <a href="https://pypi.python.org/pypi/taipy/" alt="Taipy version">
         <img alt="PyPI" src="https://img.shields.io/pypi/v/taipy.svg?label=pip&logo=PyPI&color=ff462b&labelColor=283282"></a>
         <img alt="PyPI" src="https://img.shields.io/pypi/v/taipy.svg?label=pip&logo=PyPI&color=ff462b&labelColor=283282"></a>
@@ -17,10 +17,10 @@
 
 
 <br>
 <br>
 
 
-###  <div align="left">Turns Data and AI algorithms into full web applications in no time. 
-###  How? Taipy GUI with Taipy Core pops out as a 360° platform to build production-ready web applications</div>  
+###  <div align="left">Turns Data and AI algorithms into full web applications in no time.
+###  How? Taipy GUI with Taipy Core pops out as a 360° platform to build production-ready web applications</div>
+
 
 
- 
 
 
 <br>
 <br>
 <br>
 <br>
@@ -32,16 +32,16 @@
 <br>
 <br>
 <br>
 <br>
 
 
-#  <div align="center"> 📊 We make both ends meet ⚙️ </div>  
+#  <div align="center"> 📊 We make both ends meet ⚙️ </div>
 <br>
 <br>
  <div align="center">
  <div align="center">
-    
+
 | TAIPY GUI - the frond-end  | TAIPY Core - the back-end |
 | TAIPY GUI - the frond-end  | TAIPY Core - the back-end |
 | --------  | -------- |
 | --------  | -------- |
 |<img src="readme_img/readme_gui_intro.gif" alt="Taipy GUI Animation"  width="100%"/> | <img src="readme_img/readme_core_intro.gif" alt="Taipy Core Animation"  width="100%"/>
 |<img src="readme_img/readme_gui_intro.gif" alt="Taipy GUI Animation"  width="100%"/> | <img src="readme_img/readme_core_intro.gif" alt="Taipy Core Animation"  width="100%"/>
 
 
-    
-</div> 
+
+</div>
 
 
 <br>
 <br>
 <br>
 <br>
@@ -84,10 +84,10 @@ excitement = 100
 
 
 Gui(page=excitement_page).run()
 Gui(page=excitement_page).run()
 ```
 ```
-*RUN*🏃🏽‍♀️  
-<div align="center">🎊 TA-DA! 🎊</div>  
+*RUN*🏃🏽‍♀️
+<div align="center">🎊 TA-DA! 🎊</div>
 <br>
 <br>
-<div align="center"><img src="readme_img/readme_gui_app.gif" width="60%" alt="GUI demo"></img></div>  
+<div align="center"><img src="readme_img/readme_gui_app.gif" width="60%" alt="GUI demo"></img></div>
 
 
 <br>
 <br>
 <br>
 <br>
@@ -100,7 +100,7 @@ Gui(page=excitement_page).run()
 
 
 ## EN-CORE?
 ## EN-CORE?
 
 
-#### <div align="center">Let's create a back-end execution, also called *scenario* using Taipy Core. Our scenario will filter movie data based on the genre you choose. This scenario will be submitted (i.e., executed) each time the genre selection changes and output the seven most popular movies of that genre. </div>  
+#### <div align="center">Let's create a back-end execution, also called *scenario* using Taipy Core. Our scenario will filter movie data based on the genre you choose. This scenario will be submitted (i.e., executed) each time the genre selection changes and output the seven most popular movies of that genre. </div>
 <br>
 <br>
 
 
 *Here is our filter function: a standard Python function that is used by the unique task in the scenario*
 *Here is our filter function: a standard Python function that is used by the unique task in the scenario*
@@ -113,15 +113,15 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
 
 
 *This is the execution graph of the scenario we are implementing*
 *This is the execution graph of the scenario we are implementing*
 
 
-<div align="center"><img src="readme_img/readme_exec_g.png" alt="Taipy Core Graph"  width="60%"/></div> 
+<div align="center"><img src="readme_img/readme_exec_g.png" alt="Taipy Core Graph"  width="60%"/></div>
 
 
 
 
 ### Taipy Studio - The easy peasy way
 ### Taipy Studio - The easy peasy way
-*You can use the Taipy Studio extension in VSCode to configure your pipeline with no code* 
+*You can use the Taipy Studio extension in VSCode to configure your sequence with no code*
 
 
-<div align="center"><img src="readme_img/readme_studio.gif" width="80%" alt="GUI demo"></img></div> 
+<div align="center"><img src="readme_img/readme_studio.gif" width="80%" alt="GUI demo"></img></div>
 
 
-*Your configuration is automatically saved as a TOML file* 
+*Your configuration is automatically saved as a TOML file*
 
 
 <br>
 <br>
 <br>
 <br>
@@ -135,7 +135,7 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
 <br>
 <br>
 
 
 ### Taipy Core - a walk on the code side
 ### Taipy Core - a walk on the code side
-<div align="left">For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio, Taipy has your back! </div>   
+<div align="left">For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio, Taipy has your back! </div>
 
 
 *<div align="left">Check out the movie genre demo scenario creation with this [Demo](https://www.taipy.io/project/movie-genre-selector/) </div>*
 *<div align="left">Check out the movie genre demo scenario creation with this [Demo](https://www.taipy.io/project/movie-genre-selector/) </div>*
 
 
@@ -184,7 +184,7 @@ scenario = tp.create_scenario(scenario_cfg)
 def on_genre_selected(state):
 def on_genre_selected(state):
     scenario.selected_genre_node.write(state.selected_genre)
     scenario.selected_genre_node.write(state.selected_genre)
     tp.submit(scenario)
     tp.submit(scenario)
-    state.df = scenario.filtered_data.read()  
+    state.df = scenario.filtered_data.read()
 
 
 # Get list of genres
 # Get list of genres
 genres = [
 genres = [
@@ -210,13 +210,13 @@ my_page = """
 Gui(page=my_page).run()
 Gui(page=my_page).run()
 
 
 ```
 ```
-*RUN*🏃🏽‍♀️ 
+*RUN*🏃🏽‍♀️
 
 
 <br>
 <br>
 
 
-<div align="center">🎊TA-DA!🎊</div>  
+<div align="center">🎊TA-DA!🎊</div>
 <br>
 <br>
-<div align="center"><img src="readme_img/readme_app.gif" width="80%" alt="GUI demo"></img></div> 
+<div align="center"><img src="readme_img/readme_app.gif" width="80%" alt="GUI demo"></img></div>
 
 
 <br>
 <br>
 
 

+ 5 - 5
gui/src/CoreSelector.tsx

@@ -32,11 +32,11 @@ import {
     createRequestUpdateAction,
     createRequestUpdateAction,
 } from "taipy-gui";
 } from "taipy-gui";
 
 
-import { Cycles, Cycle, DataNodes, NodeType, Scenarios, Scenario, DataNode, Pipeline } from "./utils/types";
+import { Cycles, Cycle, DataNodes, NodeType, Scenarios, Scenario, DataNode, Sequence } from "./utils/types";
 import {
 import {
     Cycle as CycleIcon,
     Cycle as CycleIcon,
     Datanode as DatanodeIcon,
     Datanode as DatanodeIcon,
-    Pipeline as PipelineIcon,
+    Sequence as SequenceIcon,
     Scenario as ScenarioIcon,
     Scenario as ScenarioIcon,
 } from "./icons";
 } from "./icons";
 import { BadgePos, BadgeSx, BaseTreeViewSx, FlagSx, ParentItemSx, iconLabelSx, tinyIconButtonSx, tinySelPinIconButtonSx } from "./utils";
 import { BadgePos, BadgeSx, BaseTreeViewSx, FlagSx, ParentItemSx, iconLabelSx, tinyIconButtonSx, tinySelPinIconButtonSx } from "./utils";
@@ -46,7 +46,7 @@ export interface EditProps {
 }
 }
 
 
 type Entities = Cycles | Scenarios | DataNodes;
 type Entities = Cycles | Scenarios | DataNodes;
-type Entity = Cycle | Scenario | Pipeline | DataNode;
+type Entity = Cycle | Scenario | Sequence | DataNode;
 type Pinned = Record<string, boolean>;
 type Pinned = Record<string, boolean>;
 
 
 interface CoreSelectorProps {
 interface CoreSelectorProps {
@@ -139,8 +139,8 @@ const CoreItem = (props: {
                             ) : (
                             ) : (
                                 <ScenarioIcon fontSize="small" color="primary" />
                                 <ScenarioIcon fontSize="small" color="primary" />
                             )
                             )
-                        ) : nodeType === NodeType.PIPELINE ? (
-                            <PipelineIcon fontSize="small" color="primary" />
+                        ) : nodeType === NodeType.SEQUENCE ? (
+                            <SequenceIcon fontSize="small" color="primary" />
                         ) : (
                         ) : (
                             <DatanodeIcon fontSize="small" color="primary" />
                             <DatanodeIcon fontSize="small" color="primary" />
                         )}
                         )}

+ 33 - 33
gui/src/ScenarioViewer.tsx

@@ -69,17 +69,17 @@ interface ScenarioViewerProps {
     showConfig?: boolean;
     showConfig?: boolean;
     showCycle?: boolean;
     showCycle?: boolean;
     showDelete?: boolean;
     showDelete?: boolean;
-    showPipelines?: boolean;
+    showSequences?: boolean;
     showProperties?: boolean;
     showProperties?: boolean;
     showSubmit?: boolean;
     showSubmit?: boolean;
-    showSubmitPipelines?: boolean;
+    showSubmitSequences?: boolean;
     showTags?: boolean;
     showTags?: boolean;
     libClassName?: string;
     libClassName?: string;
     className?: string;
     className?: string;
     dynamicClassName?: string;
     dynamicClassName?: string;
 }
 }
 
 
-interface PipelinesRowProps {
+interface SequencesRowProps {
     active: boolean;
     active: boolean;
     number: number;
     number: number;
     id: string;
     id: string;
@@ -103,7 +103,7 @@ const tagsAutocompleteSx = {
     maxWidth: "none",
     maxWidth: "none",
 };
 };
 
 
-const PipelineRow = ({
+const SequenceRow = ({
     active,
     active,
     number,
     number,
     id,
     id,
@@ -116,26 +116,26 @@ const PipelineRow = ({
     focusName,
     focusName,
     setFocusName,
     setFocusName,
     submittable,
     submittable,
-}: PipelinesRowProps) => {
-    const [pipeline, setPipeline] = useState<string>(label);
+}: SequencesRowProps) => {
+    const [sequence, setSequence] = useState<string>(label);
 
 
-    const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => setPipeline(e.currentTarget.value), []);
+    const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => setSequence(e.currentTarget.value), []);
     const onSaveField = useCallback(
     const onSaveField = useCallback(
         (e: MouseEvent<HTMLElement>) => {
         (e: MouseEvent<HTMLElement>) => {
             e.stopPropagation();
             e.stopPropagation();
-            editLabel(id, pipeline);
+            editLabel(id, sequence);
         },
         },
-        [id, pipeline, editLabel]
+        [id, sequence, editLabel]
     );
     );
     const onCancelField = useCallback(
     const onCancelField = useCallback(
         (e: MouseEvent<HTMLElement>) => {
         (e: MouseEvent<HTMLElement>) => {
             e.stopPropagation();
             e.stopPropagation();
-            setPipeline(label);
+            setSequence(label);
             setFocusName("");
             setFocusName("");
         },
         },
         [label, setFocusName]
         [label, setFocusName]
     );
     );
-    const onSubmitPipeline = useCallback(
+    const onSubmitSequence = useCallback(
         (e: MouseEvent<HTMLElement>) => {
         (e: MouseEvent<HTMLElement>) => {
             e.stopPropagation();
             e.stopPropagation();
             submitEntity(id);
             submitEntity(id);
@@ -143,9 +143,9 @@ const PipelineRow = ({
         [submitEntity, id]
         [submitEntity, id]
     );
     );
 
 
-    useEffect(() => setPipeline(label), [label]);
+    useEffect(() => setSequence(label), [label]);
 
 
-    const name = `pipeline${number}`;
+    const name = `sequence${number}`;
 
 
     const index = number + 1;
     const index = number + 1;
     return (
     return (
@@ -153,9 +153,9 @@ const PipelineRow = ({
             <Grid item container xs={10}>
             <Grid item container xs={10}>
                 {active && focusName === name ? (
                 {active && focusName === name ? (
                     <TextField
                     <TextField
-                        label={`Pipeline ${index}`}
+                        label={`Sequence ${index}`}
                         variant="outlined"
                         variant="outlined"
-                        value={pipeline}
+                        value={sequence}
                         onChange={onChange}
                         onChange={onChange}
                         sx={FieldNoMaxWidth}
                         sx={FieldNoMaxWidth}
                         disabled={!enableScenarioFields}
                         disabled={!enableScenarioFields}
@@ -174,14 +174,14 @@ const PipelineRow = ({
                         }}
                         }}
                     />
                     />
                 ) : (
                 ) : (
-                    <Typography variant="subtitle2">{pipeline}</Typography>
+                    <Typography variant="subtitle2">{sequence}</Typography>
                 )}
                 )}
             </Grid>
             </Grid>
             <Grid item xs={2} container alignContent="center" alignItems="center" justifyContent="center">
             <Grid item xs={2} container alignContent="center" alignItems="center" justifyContent="center">
                 {submit ? (
                 {submit ? (
                     <IconButton
                     <IconButton
                         size="small"
                         size="small"
-                        onClick={onSubmitPipeline}
+                        onClick={onSubmitSequence}
                         disabled={!enableScenarioFields || !active || !submittable}
                         disabled={!enableScenarioFields || !active || !submittable}
                     >
                     >
                         <Send color={disableColor("info", !enableScenarioFields || !active || !submittable)} />
                         <Send color={disableColor("info", !enableScenarioFields || !active || !submittable)} />
@@ -208,9 +208,9 @@ const ScenarioViewer = (props: ScenarioViewerProps) => {
         showCycle = false,
         showCycle = false,
         showDelete = true,
         showDelete = true,
         showProperties = true,
         showProperties = true,
-        showPipelines = true,
+        showSequences = true,
         showSubmit = true,
         showSubmit = true,
-        showSubmitPipelines = true,
+        showSubmitSequences = true,
         showTags = true,
         showTags = true,
     } = props;
     } = props;
 
 
@@ -225,7 +225,7 @@ const ScenarioViewer = (props: ScenarioViewerProps) => {
         scLabel,
         scLabel,
         scTags,
         scTags,
         scProperties,
         scProperties,
-        scPipelines,
+        scSequences,
         scAuthorizedTags,
         scAuthorizedTags,
         scDeletable,
         scDeletable,
         scPromotable,
         scPromotable,
@@ -276,9 +276,9 @@ const ScenarioViewer = (props: ScenarioViewerProps) => {
     );
     );
 
 
     // submits
     // submits
-    const submitPipeline = useCallback(
-        (pipelineId: string) => {
-            dispatch(createSendActionNameAction(id, module, props.onSubmit, { id: pipelineId }));
+    const submitSequence = useCallback(
+        (sequenceId: string) => {
+            dispatch(createSendActionNameAction(id, module, props.onSubmit, { id: sequenceId }));
         },
         },
         [props.onSubmit, id, dispatch, module]
         [props.onSubmit, id, dispatch, module]
     );
     );
@@ -344,8 +344,8 @@ const ScenarioViewer = (props: ScenarioViewerProps) => {
     );
     );
     const onChangeTags = useCallback((_: SyntheticEvent, tags: string[]) => setTags(tags), []);
     const onChangeTags = useCallback((_: SyntheticEvent, tags: string[]) => setTags(tags), []);
 
 
-    // pipelines
-    const editPipeline = useCallback(
+    // sequences
+    const editSequence = useCallback(
         (id: string, label: string) => {
         (id: string, label: string) => {
             if (isScenario) {
             if (isScenario) {
                 dispatch(createSendActionNameAction(id, module, props.onEdit, { id: id, name: label }));
                 dispatch(createSendActionNameAction(id, module, props.onEdit, { id: id, name: label }));
@@ -568,26 +568,26 @@ const ScenarioViewer = (props: ScenarioViewerProps) => {
                                 onFocus={onFocus}
                                 onFocus={onFocus}
                                 onEdit={props.onEdit}
                                 onEdit={props.onEdit}
                             />
                             />
-                            {showPipelines ? (
+                            {showSequences ? (
                                 <>
                                 <>
                                     <Grid item xs={12} container justifyContent="space-between">
                                     <Grid item xs={12} container justifyContent="space-between">
-                                        <Typography variant="h6">Pipelines</Typography>
+                                        <Typography variant="h6">Sequences</Typography>
                                     </Grid>
                                     </Grid>
 
 
-                                    {scPipelines &&
-                                        scPipelines.map((item, index) => {
+                                    {scSequences &&
+                                        scSequences.map((item, index) => {
                                             const [key, value, submittable] = item;
                                             const [key, value, submittable] = item;
                                             return (
                                             return (
-                                                <PipelineRow
+                                                <SequenceRow
                                                     active={active}
                                                     active={active}
                                                     number={index}
                                                     number={index}
                                                     id={key}
                                                     id={key}
                                                     label={value}
                                                     label={value}
                                                     key={key}
                                                     key={key}
-                                                    submitEntity={submitPipeline}
+                                                    submitEntity={submitSequence}
                                                     enableScenarioFields={isScenario}
                                                     enableScenarioFields={isScenario}
-                                                    submit={showSubmitPipelines}
-                                                    editLabel={editPipeline}
+                                                    submit={showSubmitSequences}
+                                                    editLabel={editSequence}
                                                     onFocus={onFocus}
                                                     onFocus={onFocus}
                                                     focusName={focusName}
                                                     focusName={focusName}
                                                     setFocusName={setFocusName}
                                                     setFocusName={setFocusName}

+ 1 - 1
gui/src/icons/index.ts

@@ -1,7 +1,7 @@
 export { Cycle } from "./cycle";
 export { Cycle } from "./cycle";
 export { Datanode } from "./datanode";
 export { Datanode } from "./datanode";
 export { Job } from "./job";
 export { Job } from "./job";
-export { Pipeline } from "./pipeline";
+export { Sequence } from "./sequence";
 export { Scenario } from "./scenario";
 export { Scenario } from "./scenario";
 export { Task } from "./task";
 export { Task } from "./task";
 export { Input } from "./input";
 export { Input } from "./input";

+ 1 - 1
gui/src/icons/pipeline.tsx → gui/src/icons/sequence.tsx

@@ -1,7 +1,7 @@
 import React from "react";
 import React from "react";
 import { SvgIcon, SvgIconProps } from "@mui/material";
 import { SvgIcon, SvgIconProps } from "@mui/material";
 
 
-export const Pipeline = (props: SvgIconProps) => (
+export const Sequence = (props: SvgIconProps) => (
     <SvgIcon {...props} viewBox="0 0 16 16">
     <SvgIcon {...props} viewBox="0 0 16 16">
         <path d="m1.08 6.71c.27 0 .48-.21.49-.47h3.64c.26 0 .47.21.47.47v.84h-.09c-.28 0-.5.22-.5.5s.22.5.5.5h.09v3.77c0 1.11.9 2.01 2.01 2.01h6.5c.06.21.24.37.47.37.28 0 .5-.22.5-.5v-4.4c0-.28-.22-.5-.5-.5s-.5.22-.5.5v.05h-4v-1.33c.19-.07.32-.25.32-.46s-.13-.39-.32-.46v-1.33h3.84c.02.25.23.46.49.46.28 0 .5-.22.5-.5v-4.42c0-.28-.22-.5-.5-.5-.26 0-.47.2-.49.46l-12.44-.02c-.03-.25-.23-.44-.49-.44-.28 0-.5.22-.5.5v4.4c0 .28.22.5.5.5zm13.09 4.13v2.49h-6.48c-.56 0-1.01-.45-1.01-1.01v-3.77h2.49v1.74l.05.55zm-4.45-5.58-.55.05v2.24h-2.49v-.84c0-.81-.66-1.47-1.47-1.47h-3.63v-2.48l12.42.02v2.49h-4.28z" />
         <path d="m1.08 6.71c.27 0 .48-.21.49-.47h3.64c.26 0 .47.21.47.47v.84h-.09c-.28 0-.5.22-.5.5s.22.5.5.5h.09v3.77c0 1.11.9 2.01 2.01 2.01h6.5c.06.21.24.37.47.37.28 0 .5-.22.5-.5v-4.4c0-.28-.22-.5-.5-.5s-.5.22-.5.5v.05h-4v-1.33c.19-.07.32-.25.32-.46s-.13-.39-.32-.46v-1.33h3.84c.02.25.23.46.49.46.28 0 .5-.22.5-.5v-4.42c0-.28-.22-.5-.5-.5-.26 0-.47.2-.49.46l-12.44-.02c-.03-.25-.23-.44-.49-.44-.28 0-.5.22-.5.5v4.4c0 .28.22.5.5.5zm13.09 4.13v2.49h-6.48c-.56 0-1.01-.45-1.01-1.01v-3.77h2.49v1.74l.05.55zm-4.45-5.58-.55.05v2.24h-2.49v-.84c0-.81-.66-1.47-1.47-1.47h-3.63v-2.48l12.42.02v2.49h-4.28z" />
     </SvgIcon>
     </SvgIcon>

+ 3 - 3
gui/src/projectstorm/NodeWidget.tsx

@@ -16,8 +16,8 @@ import styled from "@emotion/styled";
 import { DefaultPortModel, PortWidget } from "@projectstorm/react-diagrams";
 import { DefaultPortModel, PortWidget } from "@projectstorm/react-diagrams";
 import { DiagramEngine } from "@projectstorm/react-diagrams-core";
 import { DiagramEngine } from "@projectstorm/react-diagrams-core";
 
 
-import { DataNode, Task, Pipeline } from "../utils/names";
-import { Datanode as DIcon, Task as TIcon, Pipeline as PIcon, Scenario as SIcon } from "../icons";
+import { DataNode, Task, Sequence } from "../utils/names";
+import { Datanode as DIcon, Task as TIcon, Sequence as PIcon, Scenario as SIcon } from "../icons";
 import { TaipyNodeModel } from "./models";
 import { TaipyNodeModel } from "./models";
 import { IN_PORT_NAME } from "../utils/diagram";
 import { IN_PORT_NAME } from "../utils/diagram";
 import { Input, Output } from "../icons";
 import { Input, Output } from "../icons";
@@ -118,7 +118,7 @@ const NodeWidget = ({ node, engine }: NodeProps) => {
                         <DIcon />
                         <DIcon />
                     ) : node.getType() == Task ? (
                     ) : node.getType() == Task ? (
                         <TIcon />
                         <TIcon />
-                    ) : node.getType() == Pipeline ? (
+                    ) : node.getType() == Sequence ? (
                         <PIcon />
                         <PIcon />
                     ) : (
                     ) : (
                         <SIcon />
                         <SIcon />

+ 2 - 2
gui/src/utils.ts

@@ -15,7 +15,7 @@ import { PopoverOrigin } from "@mui/material/Popover";
 
 
 import { useDynamicProperty } from "taipy-gui";
 import { useDynamicProperty } from "taipy-gui";
 
 
-// id, is_primary, config_id, creation_date, label, tags, properties(key, value), pipelines(id, label), authorized_tags, deletable
+// id, is_primary, config_id, creation_date, label, tags, properties(key, value), sequences(id, label), authorized_tags, deletable
 export type ScenarioFull = [
 export type ScenarioFull = [
     string,
     string,
     boolean,
     boolean,
@@ -39,7 +39,7 @@ export enum ScFProps {
     label,
     label,
     tags,
     tags,
     properties,
     properties,
-    pipelines,
+    sequences,
     authorized_tags,
     authorized_tags,
     deletable,
     deletable,
     promotable,
     promotable,

+ 3 - 3
gui/src/utils/childtype.ts

@@ -11,11 +11,11 @@
  * specific language governing permissions and limitations under the License.
  * specific language governing permissions and limitations under the License.
  */
  */
 
 
-import { DataNode, Pipeline, Scenario, Task } from "./names";
+import { DataNode, Sequence, Scenario, Task } from "./names";
 
 
 const childType: Record<string, string> = {
 const childType: Record<string, string> = {
   [Task]: DataNode,
   [Task]: DataNode,
-  [Pipeline]: Task,
-  [Scenario]: Pipeline,
+  [Sequence]: Task,
+  [Scenario]: Sequence,
 };
 };
 export const getChildType = (nodeType: string) => childType[nodeType] || "";
 export const getChildType = (nodeType: string) => childType[nodeType] || "";

+ 4 - 4
gui/src/utils/config.ts

@@ -11,12 +11,12 @@
  * specific language governing permissions and limitations under the License.
  * specific language governing permissions and limitations under the License.
  */
  */
 
 
-import { DataNode, Pipeline, Scenario, Task } from "./names";
+import { DataNode, Sequence, Scenario, Task } from "./names";
 
 
 const nodeColor: Record<string, string> = {
 const nodeColor: Record<string, string> = {
   [DataNode]: "#283282",
   [DataNode]: "#283282",
   [Task]: "#ff462b",
   [Task]: "#ff462b",
-  [Pipeline]: "#ff462b",
+  [Sequence]: "#ff462b",
   [Scenario]: "#f0faff",
   [Scenario]: "#f0faff",
 };
 };
 export const getNodeColor = (nodeType: string) => nodeColor[nodeType] || "pink";
 export const getNodeColor = (nodeType: string) => nodeColor[nodeType] || "pink";
@@ -24,9 +24,9 @@ export const getNodeColor = (nodeType: string) => nodeColor[nodeType] || "pink";
 const nodeIcon: Record<string, string> = {
 const nodeIcon: Record<string, string> = {
   [DataNode]: "datanode",
   [DataNode]: "datanode",
   [Task]: "task",
   [Task]: "task",
-  [Pipeline]: "pipeline",
+  [Sequence]: "sequence",
   [Scenario]: "scenario",
   [Scenario]: "scenario",
 };
 };
 export const getNodeIcon = (nodeType: string) => nodeIcon[nodeType];
 export const getNodeIcon = (nodeType: string) => nodeIcon[nodeType];
 
 
-export const nodeTypes = [DataNode, Pipeline, Scenario, Task];
+export const nodeTypes = [DataNode, Sequence, Scenario, Task];

+ 1 - 1
gui/src/utils/names.ts

@@ -15,5 +15,5 @@ export const Taipy = "TAIPY";
 export const Job = "JOB";
 export const Job = "JOB";
 export const DataNode = "DataNode";
 export const DataNode = "DataNode";
 export const Task = "Task";
 export const Task = "Task";
-export const Pipeline = "Pipeline";
+export const Sequence = "Sequence";
 export const Scenario = "Scenario";
 export const Scenario = "Scenario";

+ 4 - 4
gui/src/utils/types.ts

@@ -6,9 +6,9 @@ export type DisplayModel = [
 
 
 export type DataNode = [string, string, undefined, number, boolean];
 export type DataNode = [string, string, undefined, number, boolean];
 export type DataNodes = Array<DataNode>;
 export type DataNodes = Array<DataNode>;
-export type Pipeline = [string, string, DataNodes, number, boolean];
-export type Pipelines = Array<Pipeline>;
-export type Scenario = [string, string, DataNodes | Pipelines, number, boolean];
+export type Sequence = [string, string, DataNodes, number, boolean];
+export type Sequences = Array<Sequence>;
+export type Scenario = [string, string, DataNodes | Sequences, number, boolean];
 export type Scenarios = Array<Scenario>;
 export type Scenarios = Array<Scenario>;
 export type Cycle = [string, string, Scenarios | DataNodes, number, boolean];
 export type Cycle = [string, string, Scenarios | DataNodes, number, boolean];
 export type Cycles = Array<Cycle>;
 export type Cycles = Array<Cycle>;
@@ -16,6 +16,6 @@ export type Cycles = Array<Cycle>;
 export enum NodeType {
 export enum NodeType {
     CYCLE = 0,
     CYCLE = 0,
     SCENARIO = 1,
     SCENARIO = 1,
-    PIPELINE = 2,
+    SEQUENCE = 2,
     NODE = 3,
     NODE = 3,
 }
 }

+ 17 - 17
src/taipy/gui_core/GuiCoreLib.py

@@ -25,7 +25,7 @@ except ImportError:
 from dateutil import parser
 from dateutil import parser
 
 
 from taipy.config import Config
 from taipy.config import Config
-from taipy.core import Cycle, DataNode, Job, Pipeline, Scenario, cancel_job, create_scenario
+from taipy.core import Cycle, DataNode, Job, Scenario, Sequence, cancel_job, create_scenario
 from taipy.core import delete as core_delete
 from taipy.core import delete as core_delete
 from taipy.core import delete_job
 from taipy.core import delete_job
 from taipy.core import get as core_get
 from taipy.core import get as core_get
@@ -59,7 +59,7 @@ class _GCDoNotUpdate(_DoNotUpdate):
 
 
 
 
 Scenario.__bases__ += (_GCDoNotUpdate,)
 Scenario.__bases__ += (_GCDoNotUpdate,)
-Pipeline.__bases__ += (_GCDoNotUpdate,)
+Sequence.__bases__ += (_GCDoNotUpdate,)
 DataNode.__bases__ += (_GCDoNotUpdate,)
 DataNode.__bases__ += (_GCDoNotUpdate,)
 Job.__bases__ += (_GCDoNotUpdate,)
 Job.__bases__ += (_GCDoNotUpdate,)
 
 
@@ -67,7 +67,7 @@ Job.__bases__ += (_GCDoNotUpdate,)
 class _EntityType(Enum):
 class _EntityType(Enum):
     CYCLE = 0
     CYCLE = 0
     SCENARIO = 1
     SCENARIO = 1
-    PIPELINE = 2
+    SEQUENCE = 2
     DATANODE = 3
     DATANODE = 3
 
 
 
 
@@ -89,8 +89,8 @@ class _GuiCoreScenarioAdapter(_TaipyBase):
                     [(k, v) for k, v in scenario.properties.items() if k not in _GuiCoreScenarioAdapter.__INNER_PROPS]
                     [(k, v) for k, v in scenario.properties.items() if k not in _GuiCoreScenarioAdapter.__INNER_PROPS]
                     if scenario.properties
                     if scenario.properties
                     else [],
                     else [],
-                    [(p.id, p.get_simple_label(), is_submittable(p)) for p in scenario.pipelines.values()]
-                    if scenario.pipelines
+                    [(p.id, p.get_simple_label(), is_submittable(p)) for p in scenario.sequences.values()]
+                    if scenario.sequences
                     else [],
                     else [],
                     list(scenario.properties.get("authorized_tags", [])) if scenario.properties else [],
                     list(scenario.properties.get("authorized_tags", [])) if scenario.properties else [],
                     is_deletable(scenario),  # deletable
                     is_deletable(scenario),  # deletable
@@ -226,12 +226,12 @@ class _GuiCoreContext(CoreEventConsumerBase):
                 _GuiCoreContext._CORE_CHANGED_NAME,
                 _GuiCoreContext._CORE_CHANGED_NAME,
                 {"scenario": event.entity_id if scenario else True},
                 {"scenario": event.entity_id if scenario else True},
             )
             )
-        elif event.entity_type == EventEntityType.PIPELINE and event.entity_id:  # TODO import EventOperation
-            pipeline = core_get(event.entity_id) if event.operation.value != 3 else None
-            if pipeline:
-                if hasattr(pipeline, "parent_ids") and pipeline.parent_ids:
+        elif event.entity_type == EventEntityType.SEQUENCE and event.entity_id:  # TODO import EventOperation
+            sequence = core_get(event.entity_id) if event.operation.value != 3 else None
+            if sequence:
+                if hasattr(sequence, "parent_ids") and sequence.parent_ids:
                     self.gui.broadcast(
                     self.gui.broadcast(
-                        _GuiCoreContext._CORE_CHANGED_NAME, {"scenario": [x for x in pipeline.parent_ids]}
+                        _GuiCoreContext._CORE_CHANGED_NAME, {"scenario": [x for x in sequence.parent_ids]}
                     )
                     )
         elif event.entity_type == EventEntityType.JOB:
         elif event.entity_type == EventEntityType.JOB:
             with self.lock:
             with self.lock:
@@ -391,7 +391,7 @@ class _GuiCoreContext(CoreEventConsumerBase):
             return
             return
         data = args[0]
         data = args[0]
         entity_id = data.get(_GuiCoreContext.__PROP_ENTITY_ID)
         entity_id = data.get(_GuiCoreContext.__PROP_ENTITY_ID)
-        entity: t.Union[Scenario, Pipeline] = core_get(entity_id)
+        entity: t.Union[Scenario, Sequence] = core_get(entity_id)
         if entity:
         if entity:
             try:
             try:
                 if isinstance(entity, Scenario):
                 if isinstance(entity, Scenario):
@@ -448,13 +448,13 @@ class _GuiCoreContext(CoreEventConsumerBase):
                             return (
                             return (
                                 data.id,
                                 data.id,
                                 data.get_simple_label(),
                                 data.get_simple_label(),
-                                self.data_nodes_by_owner[data.id] + list(data.pipelines.values()),
+                                self.data_nodes_by_owner[data.id] + list(data.sequences.values()),
                                 _EntityType.SCENARIO.value,
                                 _EntityType.SCENARIO.value,
                                 data.is_primary,
                                 data.is_primary,
                             )
                             )
-                        elif isinstance(data, Pipeline):
+                        elif isinstance(data, Sequence):
                             if datanodes := self.data_nodes_by_owner.get(data.id):
                             if datanodes := self.data_nodes_by_owner.get(data.id):
-                                return (data.id, data.get_simple_label(), datanodes, _EntityType.PIPELINE.value, False)
+                                return (data.id, data.get_simple_label(), datanodes, _EntityType.SEQUENCE.value, False)
         return None
         return None
 
 
     def get_jobs_list(self):
     def get_jobs_list(self):
@@ -515,7 +515,7 @@ class _GuiCoreContext(CoreEventConsumerBase):
             except Exception as e:
             except Exception as e:
                 state.assign(_GuiCoreContext._DATANODE_VIZ_ERROR_VAR, f"Error updating Datanode. {e}")
                 state.assign(_GuiCoreContext._DATANODE_VIZ_ERROR_VAR, f"Error updating Datanode. {e}")
 
 
-    def __edit_properties(self, entity: t.Union[Scenario, Pipeline, DataNode], data: t.Dict[str, str]):
+    def __edit_properties(self, entity: t.Union[Scenario, Sequence, DataNode], data: t.Dict[str, str]):
         with entity as ent:
         with entity as ent:
             if isinstance(ent, Scenario):
             if isinstance(ent, Scenario):
                 tags = data.get(_GuiCoreContext.__PROP_SCENARIO_TAGS)
                 tags = data.get(_GuiCoreContext.__PROP_SCENARIO_TAGS)
@@ -752,8 +752,8 @@ class _GuiCore(ElementLibrary):
                 "show_cycle": ElementProperty(PropertyType.boolean, False),
                 "show_cycle": ElementProperty(PropertyType.boolean, False),
                 "show_tags": ElementProperty(PropertyType.boolean, True),
                 "show_tags": ElementProperty(PropertyType.boolean, True),
                 "show_properties": ElementProperty(PropertyType.boolean, True),
                 "show_properties": ElementProperty(PropertyType.boolean, True),
-                "show_pipelines": ElementProperty(PropertyType.boolean, True),
-                "show_submit_pipelines": ElementProperty(PropertyType.boolean, True),
+                "show_sequences": ElementProperty(PropertyType.boolean, True),
+                "show_submit_sequences": ElementProperty(PropertyType.boolean, True),
                 "class_name": ElementProperty(PropertyType.dynamic_string),
                 "class_name": ElementProperty(PropertyType.dynamic_string),
             },
             },
             inner_properties={
             inner_properties={

+ 4 - 4
src/taipy/gui_core/viselements.json

@@ -139,16 +139,16 @@
                         "doc": "If False, the scenario properties are not visible."
                         "doc": "If False, the scenario properties are not visible."
                     },
                     },
                     {
                     {
-                        "name": "show_pipelines",
+                        "name": "show_sequences",
                         "type": "bool",
                         "type": "bool",
                         "default_value": "True",
                         "default_value": "True",
-                        "doc": "If False, the scenario pipelines are not visible."
+                        "doc": "If False, the scenario sequences are not visible."
                     },
                     },
                     {
                     {
-                        "name": "show_submit_pipelines",
+                        "name": "show_submit_sequences",
                         "type": "bool",
                         "type": "bool",
                         "default_value": "True",
                         "default_value": "True",
-                        "doc": "If False, the buttons to submit scenario pipelines are not visible."
+                        "doc": "If False, the buttons to submit scenario sequences are not visible."
                     }
                     }
                 ]
                 ]
             }
             }