Commit Graph

14 Commits

Author SHA1 Message Date
exceptionfactory 2d9943e2d3
NIFI-13042 Support Python 3.12 for Python Processors
This closes #8644.

- Updated Controller.py main function to join non-daemon threads avoiding RuntimeError on Python 3.12
- Replaced deprecated find_module method with find_spec
- Updated documentation to include support for Python 3.12

Signed-off-by: Joseph Witt <joewitt@apache.org>
2024-04-14 20:47:51 -07:00
Mark Payne 2ad9db18db
NIFI-12959: Support loading Python processors from NARs
This closes #8573

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-04-05 15:55:03 -05:00
David Handermann 26f5fa2be0
NIFI-11443 Route Python Framework Logging to SLF4J (#8407)
* NIFI-11443 Routed Python Framework Logging to SLF4J

- Changed Python logging to use standard output stream
- Adjusted Python logging format for simplified processing
- Updated PythonProcess to pipe standard error and standard output streams to reader
- Added Log Reader command with Virtual Thread for each Python Process
- Removed Python log properties from NiFi Properties configuration
2024-03-05 16:55:04 -05:00
Alex Ethier e03329e01f
NIFI-12739 - Import ProcessPoolExecutor to fix bug in python 3.9+ (#8357)
* NIFI-12739 Import ProcessPoolExecutor to fix bug in python 3.9+ that causes
Exceptions to be raised incorrectly in multi-threaded applications
(https://bugs.python.org/issue42647)

* Removed extraneous whitespace.
2024-02-14 12:50:01 -05:00
Mark Payne a587bad711
NIFI-12675 Fixed custom Relationships with Python Processors
Fixed bug that caused custom Relationships not to work on Python Processors. Added unit test to verify. Also addressed issue in PythonControllerInteractionIT where it did not wait for Processors to become valid (originally this wasn't necessary but when we refactored Processors to initialize in the background this was overlooked).

This closes #8316

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-02-01 11:55:24 -06:00
Mark Payne 2acc1038c9
NIFI-12616 Added Processor Documentation Support for Python
- Added some Use Case docs for Python processors and updated Runtime Manifests to include Python based processors as well as Use Case/MultiProcessorUseCase documentation elements. Refactored/cleaned up some of the Python code and added unit tests.

- Added python-unit-tests profile and enabled on Ubuntu and macOS GitHub workflows

This closes #8253

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2024-01-18 19:12:05 -06:00
exceptionfactory 00fd7d7cca NIFI-12361-RC6 prepare for next development iteration 2023-11-22 18:35:27 -06:00
exceptionfactory 49fa0d8674 NIFI-12361-RC6 prepare release nifi-2.0.0-M1-RC6 2023-11-22 18:35:26 -06:00
Mark Payne a978406c83
NIFI-12326: When a Python Processor is created, it attempts to download dependencies in the background and then load the processor code. If that fails, it previously gave up; now it will log the exception and keep trying
This closes #7990

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-11-07 09:07:59 -06:00
Mark Payne 5bcad9eef3
NIFI-12240 Added Python Processors for Docs, ChatGPT, Chroma, and Pinecone
Created new python processors for text embeddings, inserting into Chroma, querying Chroma, querying ChatGPT, inserting into and querying Pinecone. Fixed some bugs in the Python framework. Added Python extensions to assembly. Also added ability to load dependencies from a requirements.txt as that was important for making the different vectorstore implementations play more nicely together.

Excluded nifi-python-extensions-bundle from GitHub build because it requires Maven to use unpack-resources goal, which will not work in GitHub because it uses mvn compile instead of mvn install

- ParseDocument
- ChunkDocument
- PromptChatGPT
- PutChroma
- PutPinecone
- QueryChroma
- QueryPinecone

NIFI-12195 Added support for requirements.txt to define Python dependencies

This closes #7894

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-11-01 16:17:36 -05:00
Mark Bean 5ecc12f405
NIFI-12285 Added py4j.url build property
The py4j.url property allows the URL for downloading py4j to be specified by a Maven command-line option

This closes #7946

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-10-27 16:25:53 -05:00
Mark Payne cbdf32ab79
NIFI-12205: Moved loading of Python dependencies into background thread when processor created instead of during startup. Some code cleanup.
This closes #7863

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-10-14 15:05:17 -05:00
mr1716 70c756ff78
NIFI-11953 Upgraded download-maven-plugin from 1.6.8 to 1.7.1
This closes #7613

Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-08-16 21:03:41 -05:00
Mark Payne 7f7cccfdc2
NIFI-11241 Initial implementation of Python-based Processor API with Py4J
- Updated GitHub workflow so that system tests include Python 3.9
- Updated GitHub actions to build necessary modules for system tests

This closes #7003

Co-authored-by: David Handermann <exceptionfactory@apache.org>
Signed-off-by: David Handermann <exceptionfactory@apache.org>
2023-04-14 15:03:34 -05:00