You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Ivan Serdyuk (Jira)" <ji...@apache.org> on 2020/09/03 05:42:00 UTC

[jira] [Commented] (MINIFICPP-1259) Create Python C++ Bindings for MiNiFi C++ Testing Framework

    [ https://issues.apache.org/jira/browse/MINIFICPP-1259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17189850#comment-17189850 ] 

Ivan Serdyuk commented on MINIFICPP-1259:
-----------------------------------------

I would propose to consider/try other Python implementations. CPython is very non-flexible.

Another question is whether specific Python runtime (compiler?) would be used on;y for testing (so CPython's syntax compatibility would be used, for Python programming language) or it would be both testing and prod. env.

It makes sense to distinguish "big data" oriented Python's use cases and embedded (like with MiNiFi).

There are two projects (older one and a newer one):

[http://numba.pydata.org/]

[https://github.com/numba/llvmlite]

. These could allow you to stay cross-platform (LLVM's back-ends) and use LLVM's interop, with other languages' front-ends, available for LLVM).

For embedded use cases - makes sense to try

[|https://github.com/pfalcon/pycopy-libusb] [https://github.com/pfalcon/pycopy]

[https://github.com/pfalcon/pycopy-lib]

. For testing env. - it has such projects (could be of help):

 [https://github.com/pfalcon/pycopy-jitgen] 

[https://github.com/pfalcon/picoweb]

[https://github.com/pfalcon/pycopy-uffmpeg]

[https://github.com/pfalcon/utemplate]

[https://github.com/pfalcon/pycopy-uaiohttpclient]

[https://github.com/pfalcon/pycopy-ffigen]

.

And returning back to CPython: C++<->Python interfacing threw some libraries or frameworks, like [https://github.com/pybind/pybind11] , has poor support of modern C++ standards (14+) and are not well tested on various architectures/compilation using different compilers is not well tested.

 

 

> Create Python C++ Bindings for MiNiFi C++ Testing Framework
> -----------------------------------------------------------
>
>                 Key: MINIFICPP-1259
>                 URL: https://issues.apache.org/jira/browse/MINIFICPP-1259
>             Project: Apache NiFi MiNiFi C++
>          Issue Type: Bug
>            Reporter: James Medel
>            Assignee: James Medel
>            Priority: Blocker
>             Fix For: 0.8.0
>
>
> Per https://issues.apache.org/jira/browse/MINIFICPP-1233
> After thinking about different ways to test my MiNiFi H2O Python Processors, I thought of two scenarios:
>  * I test them using the MiNiFi C++ testing framework
>  * I test them using a hybrid MiNiFi C++ Python bindings testing framework. 
> The first approach already exists. With this Jira ticket, I will address the second approach by creating Python C++ bindings to the MiNiFi testing framework, so then users can use MiNiFi C++'s testController in Python to programmatically build their MiNiFi flow and test their C++ and Python processors. Thus, users will have the flexibility to test their processors using Python or C++.
> Files that I will be working with include TestBase.h/.cpp, BuildTests.cmake and more.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)