| CPC G06F 8/34 (2013.01) [G06F 3/0482 (2013.01); G06F 3/0486 (2013.01); G06F 8/41 (2013.01); G06F 8/447 (2013.01); G06F 9/542 (2013.01); G06F 16/258 (2019.01); G06F 16/38 (2019.01); G06F 40/30 (2020.01); H04L 65/1101 (2022.05); H04L 67/01 (2022.05)] | 30 Claims |

|
1. A system comprising:
one or more processors; and
one or more memories including program code that is executable by the one or more processors to perform operations including:
generating a graphical user interface (GUI) for forecasting software, wherein the GUI includes a drag-and-drop canvas comprising a set of rearrangeable nodes defining a forecasting pipeline for forecasting one or more time series, the forecasting pipeline involving a sequence of operations for processing the one or more time series to produce one or more forecasts, each rearrangeable node in the set of rearrangeable nodes corresponding to a respective operation of the sequence of operations;
detecting a user interaction with the GUI for attaching a rearrangeable node that is an external-language execution node to the set of rearrangeable nodes on the drag-and-drop canvas in relation to the forecasting pipeline, the external-language execution node being usable to insert custom code defined using an external programming language into the forecasting pipeline, wherein the external programming language is different than a first default programming language of the forecasting software, and wherein the custom code is code provided by a user of the GUI from a source external to the forecasting software;
receiving the custom code written in the external programming language for the external-language execution node;
receiving a user input for initiating an execution of the forecasting pipeline;
in response to receiving the user input, generating wrapped custom code by appending additional program code to the custom code, the additional program code enabling execution of the custom code written in the external programming language by a set of execution threads in an execution context of the first default programming language of the forecasting software, and the additional program code enabling sharing of data between the custom code and the forecasting software, wherein the additional program code includes one or more shared variables that can be mutually accessed in the external programming language and the first default programming language, the one or more shared variables including one or more input variables corresponding to the external programming language and one or more output variables corresponding to the first default programming language, wherein the one or more input variables include input information to be provided by the forecasting software to the custom code, and wherein the one or more output variables include output information to be provided from the custom code to the forecasting software;
providing the wrapped custom code to the set of execution threads, the set of execution threads being configured to execute the wrapped custom code as part of the forecasting pipeline to generate the one or more forecasts; and
outputting the one or more forecasts in the GUI.
|