summaryrefslogtreecommitdiff
path: root/shared-bindings/terminalio
AgeCommit message (Collapse)Author
2021-03-15run code formatting scriptmicroDev
2020-08-07Modify some Python stubsTaku Fukada
2020-07-27Fix several type hintsTaku Fukada
2020-07-03Made every init return Nonedherrada
2020-07-03Added type hints to terminaliodherrada
2020-05-12Swap sphinx to autoapi and the inline stubsScott Shawcroft
2020-05-12Did struct, supervisor, terminaliodherrada
2019-12-04protocols: Allow them to be (optionally) type-safeJeff Epler
Protocols are nice, but there is no way for C code to verify whether a type's "protocol" structure actually implements some particular protocol. As a result, you can pass an object that implements the "vfs" protocol to one that expects the "stream" protocol, and the opposite of awesomeness ensues. This patch adds an OPTIONAL (but enabled by default) protocol identifier as the first member of any protocol structure. This identifier is simply a unique QSTR chosen by the protocol designer and used by each protocol implementer. When checking for protocol support, instead of just checking whether the object's type has a non-NULL protocol field, use `mp_proto_get` which implements the protocol check when possible. The existing protocols are now named: protocol_framebuf protocol_i2c protocol_pin protocol_stream protocol_spi protocol_vfs (most of these are unused in CP and are just inherited from MP; vfs and stream are definitely used though) I did not find any crashing examples, but here's one to give a flavor of what is improved, using `micropython_coverage`. Before the change, the vfs "ioctl" protocol is invoked, and the result is not intelligible as json (but it could have resulted in a hard fault, potentially): >>> import uos, ujson >>> u = uos.VfsPosix('/tmp') >>> ujson.load(u) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: syntax error in JSON After the change, the vfs object is correctly detected as not supporting the stream protocol: >>> ujson.load(p) Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: stream operation not supported
2019-03-19Fix up sphinxScott Shawcroft
2019-03-19Move Glyph and BuiltinFont into fontioScott Shawcroft
It was confusing in displayio. Fixes #1662
2019-02-12Move terminal font to terminalio from board.Scott Shawcroft
2019-02-11A variety of displayio improvementsScott Shawcroft
This changes a number of things in displayio: * Introduces BuiltinFont and Glyph so the built in font can be used by libraries. For boards with a font it is available as board.TERMINAL_FONT. Fixes #1172 * Remove _load_row from Bitmap in favor of bitmap[] access. Index can be x/y tuple or overall index. Fixes #1191 * Add width and height properties to Bitmap. * Add insert and [] access to Group. Fixes #1518 * Add index param to pop on Group. * Terminal no longer takes unicode character info. It takes a BuiltinFont instead. * Fix Terminal's handling of [###D vt100 commands used when up arrowing into repl history. * Add x and y positions to Group plus scale as well. * Add bitmap accessor for BuiltinFont
2019-01-31Polish up commentsScott Shawcroft
2019-01-31Add terminalioScott Shawcroft