summaryrefslogtreecommitdiff
path: root/shared-bindings/socket
AgeCommit message (Collapse)Author
2020-08-07Modify some Python stubsTaku Fukada
2020-07-27Fix several type hintsTaku Fukada
2020-07-24Add and correct some type hintsTaku Fukada
2020-07-21Merge branch 'main' into type_hintsdherrada
2020-07-17Disable existing native networking.Scott Shawcroft
We're moving towards a co-processor model and a Wiznet library is already available. New native APIs will replace these for chips with networking like the ESP32S2 but they won't be these.
2020-07-17Merge branch 'main' into type_hintsdherrada
2020-07-06Add license to some obvious files.Diego Elio Pettenò
2020-07-03Added type hints previously misseddherrada
2020-07-03Made every init return Nonedherrada
2020-07-03Added type hints to socketdherrada
2020-07-02Removed all 'self, )'dherrada
2020-05-12Swap sphinx to autoapi and the inline stubsScott Shawcroft
2020-05-11Did stage, socket, storagedherrada
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-05-30Improve rST consistency for rst2pyi useScott Shawcroft
2019-05-13Check native object in case of early accessScott Shawcroft
If a native displayio object is accessed before it's super().__init__() has been called, then a placeholder is given that will cause a crash if accessed. This is tricky to get right so we detect this case and raise a NotInplementedError instead of crashing. Fixes #1881
2019-05-02Fix socket.recv() buffer length from e23bad3aNick Moore
2019-03-23shared-bindings/socket: add socket_recv_intoJoshua Coats
2019-01-14fixup m0 and nrfScott Shawcroft
2018-10-11update documentation and translations againNick Moore
2018-10-11network module c api into shared-moduleNick Moore
2018-10-04change initialization method + mod_network namesNick Moore
2018-10-04modify modnetwork and modusocket for circuitpythonNick Moore
2018-10-04Copy modnetwork and modusocket across from MicroPythonNick Moore