[dpdk-dev] [PATCH v1 0/4] app: make python apps python2/3 compliant

Neil Horman nhorman at tuxdriver.com
Fri Dec 9 16:28:37 CET 2016


On Thu, Dec 08, 2016 at 03:51:01PM +0000, John McNamara wrote:
> These patches refactor the DPDK Python applications to make them Python 2/3
> compatible.
> 
> In order to do this the patchset starts by making the apps PEP8 compliant in
> accordance with the DPDK Coding guidelines:
> 
>     http://dpdk.org/doc/guides/contributing/coding_style.html#python-code
> 
> Implementing PEP8 and Python 2/3 compliance means that we can check all future
> Python patches for consistency. Python 2/3 support also makes downstream
> packaging easier as more distros move to Python 3 as the system python.
> 
> See the previous discussion about Python2/3 compatibilty here:
> 
>     http://dpdk.org/ml/archives/dev/2016-December/051683.html
> 
> I've tested that the apps compile with python 2 and 3 and I've tested some
> of the apps for consistent output but it needs additional testing.
> 
> John McNamara (4):
>   app: make python apps pep8 compliant
>   app: make python apps python2/3 compliant
>   app: give python apps a consistent shebang line
>   doc: add required python versions to coding guidelines
> 
>  app/cmdline_test/cmdline_test.py                   |  87 ++-
>  app/cmdline_test/cmdline_test_data.py              | 403 +++++-----
>  app/test/autotest.py                               |  46 +-
>  app/test/autotest_data.py                          | 831 +++++++++++----------
>  app/test/autotest_runner.py                        | 740 +++++++++---------
>  app/test/autotest_test_funcs.py                    | 481 ++++++------
>  doc/guides/conf.py                                 |  11 +-
>  doc/guides/contributing/coding_style.rst           |   3 +-
>  examples/ip_pipeline/config/diagram-generator.py   |  13 +-
>  .../ip_pipeline/config/pipeline-to-core-mapping.py |  11 +-
>  tools/cpu_layout.py                                |  79 +-
>  tools/dpdk-devbind.py                              |  26 +-
>  tools/dpdk-pmdinfo.py                              |  73 +-
>  13 files changed, 1410 insertions(+), 1394 deletions(-)
> 
> --
> 2.7.4
> 
I think the changelog is deceptive.  It claims to make all the utilities python2
and 3 compliant.  But compliance with python3 is more than just stylistic
formatting.  After this series several of these apps continue to fail under
python3.  dpdk-pmdinfo as an example:

[nhorman at hmsreliant dpdk]$ ./tools/dpdk-pmdinfo.py ./build/app/testacl
Traceback (most recent call last):
  File "./tools/dpdk-pmdinfo.py", line 607, in <module>
    main()
  File "./tools/dpdk-pmdinfo.py", line 596, in main
    readelf.process_dt_needed_entries()
  File "./tools/dpdk-pmdinfo.py", line 437, in process_dt_needed_entries
    rc = tag.needed.find("librte_pmd")
TypeError: a bytes-like object is required, not 'str'


I'm not saying its a bad patchset, but the changelog should reflect that the
change is purely stylistic, not functional.

Neil



More information about the dev mailing list