Mailing List Archive

How to find any documentation for smbus?
I am using the python3 smbus module, but it's hard work because of the
lack of documentation. Web searches confirm that the documentation is
somewhat thin!

If you do the obvious this is what you get:-

>>> import smbus
>>> dir (smbus)
['SMBus', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
>>> help(smbus)


Help on module SMBus:

NAME
SMBus

DESCRIPTION
This module defines an object type that allows SMBus transactions
on hosts running the Linux kernel. The host kernel must have I2C
support, I2C device interface support, and a bus adapter driver.
All of these can be either built-in to the kernel, or loaded from
modules.

Because the I2C device interface is opened R/W, users of this
module usually must have root permissions.

FILE
/usr/lib/python3/dist-packages/smbus.cpython-39-arm-linux-gnueabihf.so


Even a list of available methods would be handy! :-)


Presumably python3's smbus is just a wrapper so if I could find the underlying C/C++
documentation it might help.

--
Chris Green
·
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to find any documentation for smbus? [ In reply to ]
Dan Purgert <dan@djph.net> wrote:
> On 2023-10-28, Chris Green wrote:
> > I am using the python3 smbus module, but it's hard work because of the
> > lack of documentation. Web searches confirm that the documentation is
> > somewhat thin!
> >
>
> The SMBus spec is available from http://smbus.org (or at least it used
> to be ... watch it be hidden behind a paywall now).
>
That provides very detailed hardware information but virtually nothing
at all about software libraries and such. Lots of interesting
reading, for example there's an appendix detailing the differences
between smbus and i2c, but nothing very helpful for a poor old
application programmer like me! :-)

--
Chris Green
·
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to find any documentation for smbus? [ In reply to ]
Il Sat, 28 Oct 2023 17:08:00 +0100, Chris Green ha scritto:

> I am using the python3 smbus module, but it's hard work because of the
> lack of documentation. Web searches confirm that the documentation is
> somewhat thin!
>
> If you do the obvious this is what you get:-
>
> >>> import smbus dir (smbus)
> ['SMBus', '__doc__', '__file__', '__loader__', '__name__',
> '__package__', '__spec__']
> >>> help(smbus)
>
>
> Help on module SMBus:
>
> NAME
> SMBus
>
> DESCRIPTION
> This module defines an object type that allows SMBus
> transactions on hosts running the Linux kernel. The host kernel
> must have I2C support, I2C device interface support, and a bus
> adapter driver.
> All of these can be either built-in to the kernel, or loaded
> from modules.
>
> Because the I2C device interface is opened R/W, users of this
> module usually must have root permissions.
>
> FILE
> /usr/lib/python3/dist-packages/smbus.cpython-39-arm-linux-
gnueabihf.so
>
>
> Even a list of available methods would be handy! :-)
>
>
> Presumably python3's smbus is just a wrapper so if I could find the
> underlying C/C++
> documentation it might help.

https://pypi.org/project/smbus2/

smbus2 is designed to be a "drop-in replacement of smbus". SO you can look
at its documentation for or use it instead of smbus.

Disclaimer: I haven't any experience on this library
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to find any documentation for smbus? [ In reply to ]
km <kammamuri@libero.it> wrote:
> Il Sat, 28 Oct 2023 17:08:00 +0100, Chris Green ha scritto:
>
> > I am using the python3 smbus module, but it's hard work because of the
> > lack of documentation. Web searches confirm that the documentation is
> > somewhat thin!
> >
> > If you do the obvious this is what you get:-
> >
> > >>> import smbus dir (smbus)
> > ['SMBus', '__doc__', '__file__', '__loader__', '__name__',
> > '__package__', '__spec__']
> > >>> help(smbus)
> >
> >
> > Help on module SMBus:
> >
> > NAME
> > SMBus
> >
> > DESCRIPTION
> > This module defines an object type that allows SMBus
> > transactions on hosts running the Linux kernel. The host kernel
> > must have I2C support, I2C device interface support, and a bus
> > adapter driver.
> > All of these can be either built-in to the kernel, or loaded
> > from modules.
> >
> > Because the I2C device interface is opened R/W, users of this
> > module usually must have root permissions.
> >
> > FILE
> > /usr/lib/python3/dist-packages/smbus.cpython-39-arm-linux-
> gnueabihf.so
> >
> >
> > Even a list of available methods would be handy! :-)
> >
> >
> > Presumably python3's smbus is just a wrapper so if I could find the
> > underlying C/C++
> > documentation it might help.
>
> https://pypi.org/project/smbus2/
>
> smbus2 is designed to be a "drop-in replacement of smbus". SO you can look
> at its documentation for or use it instead of smbus.
>
> Disclaimer: I haven't any experience on this library

Ah, thank you, I had come across smbus2 but wanted to stay with smbus
if I could as it's in the Debian repositories. However, as you say,
it claims to be a "drop-in replacement of smbus" so the documentation
should be some help at least.

--
Chris Green
·
--
https://mail.python.org/mailman/listinfo/python-list
Re: How to find any documentation for smbus? [ In reply to ]
Chris Green wrote at 2023-10-28 17:08 +0100:
>I am using the python3 smbus module, but it's hard work because of the
>lack of documentation. Web searches confirm that the documentation is
>somewhat thin!
>
>If you do the obvious this is what you get:-
>
> >>> import smbus
> >>> dir (smbus)
> ['SMBus', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
> >>> help(smbus)
> ...

What does `help(smbus.SMBus`) tell you?

Almost surely, `SMBus` is a class providing the main access methods.
--
https://mail.python.org/mailman/listinfo/python-list