circuitpython_typing
¶
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
Union
[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
oraudiopwmio.PWMAudioOut
.alias of
Union
[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 littlefsioctl(6, ...)
must also be intercepted. The need for others is hardware dependent.Prior to any call to
writeblocks(block, ...)
littlefs issuesioctl(6, block)
. This enables a device driver to erase the block prior to a write if the hardware requires it. Alternatively a driver might interceptioctl(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 returnNone
. Consequently an implementation can ignore unused values ofoperation
. Whereoperation
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 anOSError
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 intobuf
(an array of bytes). The number of blocks to read is given by the length ofbuf
, 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 index
block_num
, write blocks frombuf
(an array of bytes) to the device. The number of blocks to write is given by the length ofbuf
, 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. Ifcount
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
Union
[array
,bytearray
,bytes
,memoryview
,rgbmatrix.RGBMatrix
,ulab.numpy.ndarray
]
- circuitpython_typing.WriteableBuffer¶
Classes that implement the writeable buffer protocol.
alias of
Union
[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.
- class circuitpython_typing.socket.CommonSocketType(*args, **kwargs)¶
Describes the common structure every socket type must have.
- class circuitpython_typing.socket.InterfaceType(*args, **kwargs)¶
Describes the structure every interface type must have.
- class circuitpython_typing.socket.LegacyCircuitPythonSocketType(*args, **kwargs)¶
Describes the structure a legacy CircuitPython socket type must have.
- circuitpython_typing.socket.SocketpoolModuleType¶
alias of
module
- class circuitpython_typing.socket.StandardPythonSocketType(*args, **kwargs)¶
Describes the structure every standard Python socket type must have.
- 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.