This is an automated email from the ASF dual-hosted git repository. martinzink pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit 6f545de4e3e1a9754ceebe85cd8d45400e8b77f0 Author: Marton Szasz <[email protected]> AuthorDate: Mon Sep 22 16:55:33 2025 +0200 MINIFICPP-2636 update ExecutePythonProcessor description - onTrigger accepts session, not property - justifying basic behavior with efficiency seems weird, removed - remove the sentence about concurrency, since the processor is single threaded On a somewhat unrelated note, should we drop this API in favor of the newer NiFi-compatible python scripting API, or is it still useful to maintain? I guess it's easier to write processors for the legacy API, but the new API seems better designed, plus it handles dependencies. If we drop it, it should be done before 1.0. Closes #2035 Signed-off-by: Martin Zink <[email protected]> --- PROCESSORS.md | 2 +- extensions/python/ExecutePythonProcessor.h | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/PROCESSORS.md b/PROCESSORS.md index 2aecfe389..7baa9891b 100644 --- a/PROCESSORS.md +++ b/PROCESSORS.md @@ -722,7 +722,7 @@ In the list below, the names of required properties appear in bold. Any other pr ### Description -Executes a script given the flow file and a process session. The script is responsible for handling the incoming flow file (transfer to SUCCESS or remove, e.g.) as well as any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back.Scripts must define an onTrigger function which accepts NiFi Context and Property objects. For efficiency, scripts are executed once when the processor is run, then the onTrigger method is called for each i [...] +Executes a script given the flow file and a process session. The script is responsible for handling the incoming flow file (transfer to SUCCESS or remove, e.g.) as well as any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back. Scripts must define an onTrigger function which accepts NiFi Context and ProcessSession objects. Scripts are executed once when the processor is run, then the onTrigger method is called for each incoming f [...] ### Properties diff --git a/extensions/python/ExecutePythonProcessor.h b/extensions/python/ExecutePythonProcessor.h index e78623f68..9fbe22f4d 100644 --- a/extensions/python/ExecutePythonProcessor.h +++ b/extensions/python/ExecutePythonProcessor.h @@ -50,10 +50,9 @@ class ExecutePythonProcessor : public core::ProcessorImpl { EXTENSIONAPI static constexpr const char* Description = "Executes a script given the flow file and a process session. " "The script is responsible for handling the incoming flow file (transfer to SUCCESS or remove, e.g.) as well as " - "any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back.Scripts must define an onTrigger function which accepts NiFi Context " - "and Property objects. For efficiency, scripts are executed once when the processor is run, then the onTrigger method is called for each incoming flowfile. This enables scripts to keep state " - "if they wish, although there will be a script context per concurrent task of the processor. In order to, e.g., compute an arithmetic sum based on incoming flow file information, set the " - "concurrent tasks to 1. The python script files are expected to contain `describe(procesor)` and `onTrigger(context, session)`."; + "any flow files created by the script. If the handling is incomplete or incorrect, the session will be rolled back. Scripts must define an onTrigger function which accepts NiFi Context " + "and ProcessSession objects. Scripts are executed once when the processor is run, then the onTrigger method is called for each incoming flowfile. This enables scripts to keep state " + "if they wish. The python script files are expected to contain `describe(processor)` and `onTrigger(context, session)`."; EXTENSIONAPI static constexpr auto ScriptFile = core::PropertyDefinitionBuilder<>::createProperty("Script File") .withDescription("Path to script file to execute. Only one of Script File or Script Body may be used")
