circuitpython_typing — Adafruit CircuitPython circuitpython_typing Library 1.0 documentation (original) (raw)
Adafruit CircuitPython circuitpython_typing Library
Types needed for type annotation that are not in typing
- Author(s): Alec Delaney, Dan Halbert, Randy Hudson
circuitpython_typing.Alarm
Classes that implement alarms for sleeping and asynchronous notification. You can use these alarms to wake up from light or deep sleep.
alias of alarm.pin.PinAlarm | alarm.time.TimeAlarm
circuitpython_typing.AudioSample
Classes that implement the audiosample protocol. You can play these back with audioio.AudioOut, audiobusio.I2SOut or audiopwmio.PWMAudioOut.
alias of audiocore.WaveFile | audiocore.RawSample | audiomixer.Mixer | audiomp3.MP3Decoder | synthio.MidiTrack
class circuitpython_typing.BlockDevice(*args, **kwargs)
Protocol for block device objects to enable a device to support CircuitPython filesystems. Classes which implement this protocol include storage.VfsFat.
ioctl(operation: int, arg: int | None = None) → int | None
Control the block device and query its parameters. The operation to perform is given by operation
which is one of the following integers:
- 1 - initialise the device (
arg
is unused) - 2 - shutdown the device (
arg
is unused) - 3 - sync the device (
arg
is unused) - 4 - get a count of the number of blocks, should return an integer (
arg
is unused) - 5 - get the number of bytes in a block, should return an integer, or
None
in which case the default value of 512 is used (arg
is unused) - 6 - erase a block, arg is the block number to erase
As a minimum ioctl(4, ...)
must be intercepted; for littlefs ioctl(6, ...)
must also be intercepted. The need for others is hardware dependent.
Prior to any call to writeblocks(block, ...)
littlefs issues ioctl(6, block)
. This enables a device driver to erase the block prior to a write if the hardware requires it. Alternatively a driver might intercept ioctl(6, block)
and return 0 (success). In this case the driver assumes responsibility for detecting the need for erasure.
Unless otherwise stated ioctl(operation, arg)
can return None
. Consequently an implementation can ignore unused values of operation
. Where operation
is intercepted, the return value for operations 4 and 5 are as detailed above. Other operations should return 0 on success and non-zero for failure, with the value returned being an OSError
errno code.
readblocks(block_num: int, buf: bytearray) → None
Read aligned, multiples of blocks. Starting at the block given by the index block_num
, read blocks from the device into buf
(an array of bytes). The number of blocks to read is given by the length of buf
, which will be a multiple of the block size.
writeblocks(block_num: int, buf: bytearray) → None
Write aligned, multiples of blocks, and require that the blocks that are written to be first erased (if necessary) by this method. Starting at the block given by the indexblock_num
, write blocks from buf
(an array of bytes) to the device. The number of blocks to write is given by the length of buf
, which will be a multiple of the block size.
class circuitpython_typing.ByteStream(*args, **kwargs)
Protocol for basic I/O operations on a byte stream. Classes which implement this protocol include * io.BytesIO* io.FileIO (for a file open in binary mode) * busio.UART* usb_cdc.Serial
read(count: int | None = None, /) → bytes | None
Read count
bytes from the stream. If count
bytes are not immediately available, or if the parameter is not specified in the call, the outcome is implementation-dependent.
write(buf: array | bytearray | bytes | memoryview | rgbmatrix.RGBMatrix | ulab.numpy.ndarray, /) → int | None
Write the bytes in buf
to the stream.
circuitpython_typing.FrameBuffer_: TypeAlias_ = ForwardRef('rgbmatrix.RGBMatrix')
Classes that implement the framebuffer protocol.
circuitpython_typing.ReadableBuffer
Classes that implement the readable buffer protocol.
alias of array | bytearray | bytes | memoryview | rgbmatrix.RGBMatrix | ulab.numpy.ndarray
circuitpython_typing.WriteableBuffer
Classes that implement the writeable buffer protocol.
alias of array | bytearray | memoryview | rgbmatrix.RGBMatrix | ulab.numpy.ndarray
circuitpython_typing.socket
Type annotation definitions for sockets. Used for adafruit_requests and similar libraries.
- Author(s): Kevin Conley
class circuitpython_typing.socket.CircuitPythonSocketType(*args, **kwargs)
Describes the structure every modern CircuitPython socket type must have.
class circuitpython_typing.socket.CommonCircuitPythonSocketType(*args, **kwargs)
Describes the common structure every CircuitPython socket type must have.
connect(address: Tuple[str, int], conntype: int | None = Ellipsis) → None
Connect to a remote socket at the provided (host, port) address. The conntype kwarg optionally may indicate SSL or not, depending on the underlying interface.
class circuitpython_typing.socket.CommonSocketType(*args, **kwargs)
Describes the common structure every socket type must have.
Close the socket.
send(data: bytes, flags: int = Ellipsis) → None
Send data to the socket. The meaning of the optional flags kwarg is implementation-specific.
settimeout(value: float | None) → None
Set a timeout on blocking socket operations.
class circuitpython_typing.socket.InterfaceType(*args, **kwargs)
Describes the structure every interface type must have.
Constant representing that a socket’s connection mode is TLS.
class circuitpython_typing.socket.LegacyCircuitPythonSocketType(*args, **kwargs)
Describes the structure a legacy CircuitPython socket type must have.
recv(bufsize: int = Ellipsis) → bytes
Receive data from the socket. The return value is a bytes object representing the data received. The maximum amount of data to be received at once is specified by bufsize.
circuitpython_typing.socket.SocketpoolModuleType
alias of ModuleType
class circuitpython_typing.socket.StandardPythonSocketType(*args, **kwargs)
Describes the structure every standard Python socket type must have.
connect(address: Tuple[Any, ...] | str | bytes) → None
Connect to a remote socket at the provided address.
class circuitpython_typing.socket.SupportsRecvInto(*args, **kwargs)
Describes a type that possesses a socket recv_into() method.
recv_into(buffer: bytearray, nbytes: int = Ellipsis, flags: int = Ellipsis) → int
Receive up to nbytes bytes from the socket, storing the data into the provided buffer. If nbytes is not specified (or 0), receive up to the size available in the given buffer. The meaning of the optional flags kwarg is implementation-specific. Returns the number of bytes received.
class circuitpython_typing.socket.SupportsRecvWithFlags(*args, **kwargs)
Describes a type that posseses a socket recv() method supporting the flags kwarg.
recv(bufsize: int = Ellipsis, flags: int = Ellipsis) → bytes
Receive data from the socket. The return value is a bytes object representing the data received. The maximum amount of data to be received at once is specified by bufsize. The meaning of the optional flags kwarg is implementation-specific.