devicetree-compiler.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Introduce Python bindings for libfdt
@ 2016-11-17 22:53 Simon Glass
       [not found] ` <1479423205-9817-1-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Simon Glass @ 2016-11-17 22:53 UTC (permalink / raw)
  To: Devicetree Compiler; +Cc: David Gibson, Simon Glass

At present libfdt consists of only a C implementation. Many scripts are
written using Python so it useful to have Python bindings for libfdt.
Apparently this has never been attempted before, or if so I cannot find a
reference.

This series starts the process of adding this support, with just a
bare-bones set of methods, to attract initial comments.


Simon Glass (4):
  Add an initial Python library for libfdt
  Add tests for pylibfdt
  Mention pylibfdt in the documentation
  RFC: Build pylibfdt as part of the normal build process

 Makefile                   |  16 +++-
 README                     |   6 ++
 pylibfdt/.gitignore        |   3 +
 pylibfdt/Makefile.pylibfdt |  21 ++++++
 pylibfdt/libfdt.swig       | 157 +++++++++++++++++++++++++++++++++++++++
 pylibfdt/setup.py          |  34 +++++++++
 tests/pylibfdt_tests.py    | 179 +++++++++++++++++++++++++++++++++++++++++++++
 tests/run_tests.sh         |  19 ++++-
 8 files changed, 433 insertions(+), 2 deletions(-)
 create mode 100644 pylibfdt/.gitignore
 create mode 100644 pylibfdt/Makefile.pylibfdt
 create mode 100644 pylibfdt/libfdt.swig
 create mode 100644 pylibfdt/setup.py
 create mode 100644 tests/pylibfdt_tests.py

-- 
2.8.0.rc3.226.g39d4020

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [PATCH v3 0/4] Introduce Python bindings for libfdt
@ 2016-12-04  0:48 Simon Glass
  2016-12-04  0:48 ` [PATCH v3 1/4] Add an initial Python library " Simon Glass
  0 siblings, 1 reply; 9+ messages in thread
From: Simon Glass @ 2016-12-04  0:48 UTC (permalink / raw)
  To: Devicetree Compiler
  Cc: Benjamin Bimmermann, Ulrich Langenbach, David Gibson, Simon Glass

At present libfdt consists of only a C implementation. Many scripts are
written using Python so it useful to have Python bindings for libfdt.
Apparently this has never been attempted before, or if so I cannot find a
reference.

This series starts the process of adding this support, with just a
bare-bones set of methods, to attract initial comments.

The v3 series makes the binding more pythonic, allowing things like:

    fdt = libfdt.Fdt(open(fname).read())
    node = fdt.path('/subnode@1')
    print node.prop('compatible').data()
    subnode = node.first_subnode_quiet()
    while subnode:
        print subnode.name()
        subnode = subnode.next_subnode_quiet()

There are still some open question, particularly around naming.

Changes in v3:
- Make the library more pythonic
- Add classes for Node and Prop along with methods
- Add an exception class
- Use Python to generate exeptions instead of SWIG

Changes in v2:
- Add exceptions when functions return an error
- Correct Python naming to following PEP8
- Use a class to encapsulate the various methods
- Include fdt.h instead of redefining struct fdt_property
- Use bytearray to avoid the SWIG warning 454
- Add comments
- Update tests for new pylibfdt
- Add a few more tests to increase coverage
- Add some more tests
- Add details on how to obtain full help and code coverage

Simon Glass (4):
  Add an initial Python library for libfdt
  Add tests for pylibfdt
  Mention pylibfdt in the documentation
  Build pylibfdt as part of the normal build process

 Makefile                   |  16 +-
 README                     |  33 +++
 pylibfdt/.gitignore        |   3 +
 pylibfdt/Makefile.pylibfdt |  18 ++
 pylibfdt/libfdt.swig       | 602 +++++++++++++++++++++++++++++++++++++++++++++
 pylibfdt/setup.py          |  34 +++
 tests/pylibfdt_tests.py    | 389 +++++++++++++++++++++++++++++
 tests/run_tests.sh         |  19 +-
 8 files changed, 1112 insertions(+), 2 deletions(-)
 create mode 100644 pylibfdt/.gitignore
 create mode 100644 pylibfdt/Makefile.pylibfdt
 create mode 100644 pylibfdt/libfdt.swig
 create mode 100644 pylibfdt/setup.py
 create mode 100644 tests/pylibfdt_tests.py

-- 
2.8.0.rc3.226.g39d4020

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-02-06  9:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-17 22:53 [PATCH 0/4] Introduce Python bindings for libfdt Simon Glass
     [not found] ` <1479423205-9817-1-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2016-11-17 22:53   ` [PATCH 1/4] Add an initial Python library " Simon Glass
     [not found]     ` <1479423205-9817-2-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2016-11-18  0:36       ` David Gibson
     [not found]         ` <20161118003645.GC31640-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2016-11-24 18:08           ` Simon Glass
     [not found]             ` <CAPnjgZ1=QTBNZa4G_uFpka3acr91ywH2P1QF8FJkfS-7Wpd5OQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-11-24 22:03               ` David Gibson
2016-11-17 22:53   ` [PATCH 2/4] Add tests for pylibfdt Simon Glass
2016-11-17 22:53   ` [PATCH 3/4] Mention pylibfdt in the documentation Simon Glass
2016-11-17 22:53   ` [PATCH 4/4] RFC: Build pylibfdt as part of the normal build process Simon Glass
  -- strict thread matches above, loose matches on Subject: below --
2016-12-04  0:48 [PATCH v3 0/4] Introduce Python bindings for libfdt Simon Glass
2016-12-04  0:48 ` [PATCH v3 1/4] Add an initial Python library " Simon Glass
2016-12-05  4:35   ` David Gibson
2016-12-05  6:23     ` Simon Glass
2017-01-12  4:09       ` David Gibson
     [not found]         ` <20170112040950.GM14026-K0bRW+63XPQe6aEkudXLsA@public.gmane.org>
2017-02-06  9:22           ` [PATCH " Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).