All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kent Gibson <warthog618@gmail.com>
To: linux-gpio@vger.kernel.org, brgl@bgdev.pl
Cc: Kent Gibson <warthog618@gmail.com>
Subject: [libgpiod][PATCH 0/2] support casting line.Value to bool
Date: Wed, 22 May 2024 08:46:41 +0800	[thread overview]
Message-ID: <20240522004643.96863-1-warthog618@gmail.com> (raw)

While writing a gpiod plugin for gpiozero (Python), I had to map line.Value
to its bool equivalent.  Casting seemed the obvious way to go, as it is
essentially a boolean, but that didn't work as I expected - it always
returned True. This is the case for any Python type that does not provide
a suitable conversion operator.

This series adds support for casting line.Value to bool.

Patch 1 adds a test that comfirms the existing behaviour.
Patch 2 adds the __bool__() operator to make the Value behave as one
might expect.

As an aside, I couldn't for the life of me work out how to run the complete
python test suite.  There are no hints in the documentation.

There is a python-tests-run target in the Makefile, but that didn't work:

~/libgpiod/bindings/python$ make python-tests-run
PYTHONPATH=/home/kent/libgpiod/bindings/python
LD_LIBRARY_PATH=/home/kent/libgpiod/lib/.libs/:\
	/home/kent/libgpiod/tests/gpiosim/.libs/ \
python3 -B -m tests
/bin/bash: line 2: /home/kent/libgpiod/tests/gpiosim/.libs/: Is a directory
make: *** [Makefile:677: python-tests-run] Error 126

I tried fixing that but I still couldn't satisfy ld wrt the gpiosim
(I don't have libgpiod installed - just using the local build),
so gave up and called this particular test directly with

$ python -m unittest tests_line.py

While that passes, I can't guarantee it hasn't caused some other
breakage, though it seems very unlikely.

Kent Gibson (2):
  bindings: python: tests: add test for casting line.Value to bool
  bindings: python: support casting line.Value to bool

 bindings/python/gpiod/line.py       |  3 +++
 bindings/python/tests/Makefile.am   |  1 +
 bindings/python/tests/tests_line.py | 11 +++++++++++
 3 files changed, 15 insertions(+)
 create mode 100644 bindings/python/tests/tests_line.py

--
2.39.2


             reply	other threads:[~2024-05-22  0:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-22  0:46 Kent Gibson [this message]
2024-05-22  0:46 ` [libgpiod][PATCH 1/2] bindings: python: tests: add test for casting line.Value to bool Kent Gibson
2024-05-22  0:46 ` [libgpiod][PATCH 2/2] bindings: python: support " Kent Gibson
2024-05-22 16:22 ` [libgpiod][PATCH 0/2] " brgl
2024-05-22 23:57   ` Kent Gibson
2024-05-23  0:32     ` Kent Gibson
2024-05-23  7:50       ` Bartosz Golaszewski
2024-05-23  7:55 ` Bartosz Golaszewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240522004643.96863-1-warthog618@gmail.com \
    --to=warthog618@gmail.com \
    --cc=brgl@bgdev.pl \
    --cc=linux-gpio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.