diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3dda76db4e51..057395eeefc1 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -34,7 +34,7 @@ jobs:
run: |
sudo apt-get install -y eatmydata
sudo eatmydata apt-get install -y gettext librsvg2-bin mingw-w64
- pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter polib pyyaml
+ pip install requests sh click setuptools cpp-coveralls "Sphinx<4" sphinx-rtd-theme recommonmark sphinx-autoapi sphinxcontrib-svg2pdfconverter polib pyyaml
- name: Versions
run: |
gcc --version
diff --git a/.gitignore b/.gitignore
index 435ed73a7886..403fcc2997d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@
############
dist/
*.egg-info
+.eggs
# Logs and Databases
######################
@@ -51,6 +52,7 @@ _build
# Generated rst files
######################
genrst/
+autoapi/
# ctags and similar
###################
diff --git a/Makefile b/Makefile
index aa8fc26d1fb1..1971076a38f1 100644
--- a/Makefile
+++ b/Makefile
@@ -69,7 +69,7 @@ clean:
rm -rf $(BUILDDIR)/*
rm -rf $(STUBDIR) $(DISTDIR) *.egg-info
-html:
+html: stubs
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@@ -213,8 +213,10 @@ check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
$(PYTHON) tools/check_translations.py $^
stubs:
+ mkdir -p circuitpython-stubs
python tools/extract_pyi.py shared-bindings/ $(STUBDIR)
- #python setup.py sdist
+ python tools/extract_pyi.py ports/atmel-samd/bindings $(STUBDIR)
+ python setup.py sdist
update-frozen-libraries:
@echo "Updating all frozen libraries to latest tagged version."
diff --git a/conf.py b/conf.py
index 2e503737c9f5..aea84dd21d08 100644
--- a/conf.py
+++ b/conf.py
@@ -55,7 +55,6 @@
'sphinx.ext.todo',
'sphinx.ext.coverage',
'rstjinja',
- 'c2rst',
'recommonmark',
]
@@ -66,9 +65,17 @@
source_suffix = {
'.rst': 'restructuredtext',
'.md': 'markdown',
- '.c': ''
}
+extensions.append('autoapi.extension')
+
+autoapi_type = 'python'
+# Uncomment this if debugging autoapi
+# autoapi_keep_files = True
+autoapi_dirs = ['circuitpython-stubs']
+autoapi_add_toctree_entry = False
+autoapi_options = ['members', 'undoc-members', 'private-members', 'show-inheritance', 'special-members', 'show-module-summary']
+autoapi_template_dir = 'docs/autoapi/templates'
# The encoding of source files.
#source_encoding = 'utf-8-sig'
@@ -78,7 +85,7 @@
# General information about the project.
project = 'Adafruit CircuitPython'
-copyright = '2014-2018, MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)'
+copyright = '2014-2020, MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)'
# These are overwritten on ReadTheDocs.
# The version info for the project you're documenting, acts as replacement for
@@ -105,6 +112,7 @@
".git",
".venv",
".direnv",
+ "docs/autoapi",
"docs/README.md",
"drivers",
"examples",
diff --git a/docs/c2rst.py b/docs/c2rst.py
deleted file mode 100644
index 76489dca30f9..000000000000
--- a/docs/c2rst.py
+++ /dev/null
@@ -1,31 +0,0 @@
-def c2rst(app, docname, source):
- """ Pre-parse '.c' & '.h' files that contain rST source.
- """
- # Make sure we're outputting HTML
- if app.builder.format != 'html':
- return
-
- fname = app.env.doc2path(docname)
- if (not fname.endswith(".c") and
- not fname.endswith(".h")):
- #print("skipping:", fname)
- return
-
- src = source[0]
-
- stripped = []
- for line in src.split("\n"):
- line = line.strip()
- if line == "//|":
- stripped.append("")
- elif line.startswith("//| "):
- stripped.append(line[len("//| "):])
- stripped = "\r\n".join(stripped)
-
- rendered = app.builder.templates.render_string(
- stripped, app.config.html_context
- )
- source[0] = rendered
-
-def setup(app):
- app.connect("source-read", c2rst)
diff --git a/ports/atmel-samd/README.rst b/ports/atmel-samd/README.rst
index 721177275087..a6881902e90e 100644
--- a/ports/atmel-samd/README.rst
+++ b/ports/atmel-samd/README.rst
@@ -21,4 +21,4 @@ Port Specific modules
---------------------
.. toctree::
- bindings/samd/__init__
+ ../../autoapi/samd/index
diff --git a/ports/atmel-samd/bindings/samd/Clock.c b/ports/atmel-samd/bindings/samd/Clock.c
index b88bb82e22f6..24e425e8cb2b 100644
--- a/ports/atmel-samd/bindings/samd/Clock.c
+++ b/ports/atmel-samd/bindings/samd/Clock.c
@@ -30,18 +30,12 @@
#include "py/objproperty.h"
#include "py/runtime.h"
-//| .. currentmodule:: samd
+//| import typing
+//| class Clock:
+//| """Identifies a clock on the microcontroller.
//|
-//| :class:`Clock` --- Clock reference
-//| ------------------------------------------
-//|
-//| Identifies a clock on the microcontroller.
-//|
-//| .. class:: Clock
-//|
-//| Identifies a clock on the microcontroller. They are fixed by the
-//| hardware so they cannot be constructed on demand. Instead, use
-//| `samd.clock` to reference the desired clock.
+//| They are fixed by the hardware so they cannot be constructed on demand. Instead, use
+//| ``samd.clock`` to reference the desired clock."""
//|
STATIC void samd_clock_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
@@ -50,9 +44,8 @@ STATIC void samd_clock_print(const mp_print_t *print, mp_obj_t self_in, mp_print
mp_printf(print, "%q.%q.%q", MP_QSTR_samd, MP_QSTR_clock, self->name);
}
-//| .. attribute:: enabled
-//|
-//| Is the clock enabled? (read-only)
+//| enabled: bool = ...
+//| """Is the clock enabled? (read-only)"""
//|
STATIC mp_obj_t samd_clock_get_enabled(mp_obj_t self_in) {
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
@@ -69,9 +62,8 @@ const mp_obj_property_t samd_clock_enabled_obj = {
},
};
-//| .. attribute:: parent
-//|
-//| Clock parent. (read-only)
+//| parent: typing.Union(Clock | None) = ...
+//| """Clock parent. (read-only)"""
//|
STATIC mp_obj_t samd_clock_get_parent(mp_obj_t self_in) {
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
@@ -98,9 +90,8 @@ const mp_obj_property_t samd_clock_parent_obj = {
},
};
-//| .. attribute:: frequency
-//|
-//| Clock frequency. (read-only)
+//| frequency: int = ...
+//| """Clock frequency in Herz. (read-only)"""
//|
STATIC mp_obj_t samd_clock_get_frequency(mp_obj_t self_in) {
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
@@ -117,9 +108,8 @@ const mp_obj_property_t samd_clock_frequency_obj = {
},
};
-//| .. attribute:: calibration
-//|
-//| Clock calibration. Not all clocks can be calibrated.
+//| calibration: int = ...
+//| """Clock calibration. Not all clocks can be calibrated."""
//|
STATIC mp_obj_t samd_clock_get_calibration(mp_obj_t self_in) {
samd_clock_obj_t *self = MP_OBJ_TO_PTR(self_in);
diff --git a/ports/atmel-samd/bindings/samd/__init__.c b/ports/atmel-samd/bindings/samd/__init__.c
index 55a10001d26b..6e9b68ccc63f 100644
--- a/ports/atmel-samd/bindings/samd/__init__.c
+++ b/ports/atmel-samd/bindings/samd/__init__.c
@@ -30,29 +30,16 @@
#include "bindings/samd/Clock.h"
-//| :mod:`samd` --- SAMD implementation settings
-//| =================================================
-//|
-//| .. module:: samd
-//| :synopsis: SAMD implementation settings
-//| :platform: SAMD21
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Clock
-//|
+//| """SAMD implementation settings"""
-//| :mod:`samd.clock` --- samd clock names
+//| """:mod:`samd.clock` --- samd clock names
//| --------------------------------------------------------
//|
//| .. module:: samd.clock
//| :synopsis: samd clock names
//| :platform: SAMD21
//|
-//| References to clocks as named by the microcontroller
+//| References to clocks as named by the microcontroller"""
//|
const mp_obj_module_t samd_clock_module = {
.base = { &mp_type_module },
diff --git a/setup.py b/setup.py
index 1e0d81da3690..37afb6f1b1ff 100644
--- a/setup.py
+++ b/setup.py
@@ -5,18 +5,16 @@
stub_root = Path("circuitpython-stubs")
stubs = [p.relative_to(stub_root).as_posix() for p in stub_root.glob("*.pyi")]
-now = datetime.utcnow()
-version = now.strftime("%Y.%m.%d")
-
setup(
name="circuitpython-stubs",
description="PEP 561 type stubs for CircuitPython",
url="https://github.com/adafruit/circuitpython",
maintainer="CircuitPythonistas",
author_email="circuitpython@adafruit.com",
- version=version,
+ use_scm_version=True,
license="MIT",
package_data={"circuitpython-stubs": stubs},
packages=["circuitpython-stubs"],
- setup_requires=["setuptools>=38.6.0"],
+ setup_requires=["setuptools>=38.6.0",
+ "setuptools_scm"],
)
diff --git a/shared-bindings/_bleio/Adapter.c b/shared-bindings/_bleio/Adapter.c
index 6fb5c323d777..4816294f7fb2 100644
--- a/shared-bindings/_bleio/Adapter.c
+++ b/shared-bindings/_bleio/Adapter.c
@@ -48,10 +48,7 @@
#define WINDOW_DEFAULT (0.1f)
//| class Adapter:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`Adapter` --- BLE adapter
-//| ----------------------------------------------------
+//| """BLE adapter
//|
//| The Adapter manages the discovery and connection to other nearby Bluetooth Low Energy devices.
//| This part of the Bluetooth Low Energy Specification is known as Generic Access Profile (GAP).
diff --git a/shared-bindings/_bleio/Address.c b/shared-bindings/_bleio/Address.c
index 2071bd3b24cc..ccbab1b9d274 100644
--- a/shared-bindings/_bleio/Address.c
+++ b/shared-bindings/_bleio/Address.c
@@ -35,12 +35,7 @@
#include "shared-module/_bleio/Address.h"
//| class Address:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`Address` -- BLE address
-//| =========================================================
-//|
-//| Encapsulates the address of a BLE device."""
+//| """Encapsulates the address of a BLE device."""
//|
//| def __init__(self, address: buf, address_type: Any):
@@ -97,7 +92,7 @@ STATIC mp_obj_t bleio_address_make_new(const mp_obj_type_t *type, size_t n_args,
//| >>> _bleio.adapter.address
//|
//| >>> _bleio.adapter.address.address_bytes
-//| b'5\xa8\xed\xf5\x1d\xc8'"""
+//| b'5\\xa8\\xed\\xf5\\x1d\\xc8'"""
//|
STATIC mp_obj_t bleio_address_get_address_bytes(mp_obj_t self_in) {
bleio_address_obj_t *self = MP_OBJ_TO_PTR(self_in);
diff --git a/shared-bindings/_bleio/Attribute.c b/shared-bindings/_bleio/Attribute.c
index 72fd13d1ccd2..6c47c87ba82c 100644
--- a/shared-bindings/_bleio/Attribute.c
+++ b/shared-bindings/_bleio/Attribute.c
@@ -30,12 +30,8 @@
#include "shared-bindings/_bleio/UUID.h"
//| class Attribute:
-//| """.. currentmodule:: _bleio
+//| """Definitions associated with all BLE attributes: characteristics, descriptors, etc.
//|
-//| :class:`Attribute` -- BLE Attribute
-//| =========================================================
-//|
-//| Definitions associated with all BLE attributes: characteristics, descriptors, etc.
//| :py:class:`~_bleio.Attribute` is, notionally, a superclass of
//| :py:class:`~Characteristic` and :py:class:`~Descriptor`,
//| but is not defined as a Python superclass of those classes."""
diff --git a/shared-bindings/_bleio/Characteristic.c b/shared-bindings/_bleio/Characteristic.c
index f8f18d0bd690..785b677d67a3 100644
--- a/shared-bindings/_bleio/Characteristic.c
+++ b/shared-bindings/_bleio/Characteristic.c
@@ -34,13 +34,8 @@
#include "shared-bindings/_bleio/UUID.h"
//| class Characteristic:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`Characteristic` -- BLE service characteristic
-//| =========================================================
-//|
-//| Stores information about a BLE service characteristic and allows reading
-//| and writing of the characteristic's value."""
+//| """Stores information about a BLE service characteristic and allows reading
+//| and writing of the characteristic's value."""
//|
//| def __init__(self, ):
//| """There is no regular constructor for a Characteristic. A new local Characteristic can be created
diff --git a/shared-bindings/_bleio/CharacteristicBuffer.c b/shared-bindings/_bleio/CharacteristicBuffer.c
index f38f650d91f2..6cbd587c64e7 100644
--- a/shared-bindings/_bleio/CharacteristicBuffer.c
+++ b/shared-bindings/_bleio/CharacteristicBuffer.c
@@ -42,12 +42,7 @@ STATIC void raise_error_if_not_connected(bleio_characteristic_buffer_obj_t *self
}
//| class CharacteristicBuffer:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`CharacteristicBuffer` -- BLE Service incoming values buffer.
-//| =====================================================================
-//|
-//| Accumulates a Characteristic's incoming values in a FIFO buffer."""
+//| """Accumulates a Characteristic's incoming values in a FIFO buffer."""
//|
//| def __init__(self, characteristic: Characteristic, *, timeout: int = 1, buffer_size: int = 64):
//|
diff --git a/shared-bindings/_bleio/Connection.c b/shared-bindings/_bleio/Connection.c
index 93600e76d983..0a96d8a111ba 100644
--- a/shared-bindings/_bleio/Connection.c
+++ b/shared-bindings/_bleio/Connection.c
@@ -43,12 +43,7 @@
#include "shared-bindings/_bleio/Service.h"
//| class Connection:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`Connection` -- A BLE connection
-//| =========================================================
-//|
-//| A BLE connection to another device. Used to discover and interact with services on the other
+//| """A BLE connection to another device. Used to discover and interact with services on the other
//| device.
//|
//| Usage::
@@ -211,15 +206,14 @@ STATIC mp_obj_t bleio_connection_get_connection_interval(mp_obj_t self_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(bleio_connection_get_connection_interval_obj, bleio_connection_get_connection_interval);
-//| .. attribute:: max_packet_length
-//|
-//| The maximum number of data bytes that can be sent in a single transmission,
+//| attribute: Any = ...
+//| """The maximum number of data bytes that can be sent in a single transmission,
//| not including overhead bytes.
//|
//| This is the maximum number of bytes that can be sent in a notification,
//| which must be sent in a single packet.
//| But for a regular characteristic read or write, may be sent in multiple packets,
-//| so this limit does not apply.
+//| so this limit does not apply."""
//|
STATIC mp_obj_t bleio_connection_get_max_packet_length(mp_obj_t self_in) {
bleio_connection_obj_t *self = MP_OBJ_TO_PTR(self_in);
diff --git a/shared-bindings/_bleio/Descriptor.c b/shared-bindings/_bleio/Descriptor.c
index 00b3bacf51dd..9d702084944b 100644
--- a/shared-bindings/_bleio/Descriptor.c
+++ b/shared-bindings/_bleio/Descriptor.c
@@ -34,12 +34,8 @@
#include "shared-bindings/_bleio/UUID.h"
//| class Descriptor:
-//| """.. currentmodule:: _bleio
+//| """Stores information about a BLE descriptor.
//|
-//| :class:`Descriptor` -- BLE descriptor
-//| =========================================================
-//|
-//| Stores information about a BLE descriptor.
//| Descriptors are attached to BLE characteristics and provide contextual
//| information about the characteristic."""
//|
diff --git a/shared-bindings/_bleio/PacketBuffer.c b/shared-bindings/_bleio/PacketBuffer.c
index 80beadb1584f..907bfabd27c3 100644
--- a/shared-bindings/_bleio/PacketBuffer.c
+++ b/shared-bindings/_bleio/PacketBuffer.c
@@ -36,12 +36,7 @@
#include "shared-bindings/util.h"
//| class PacketBuffer:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`PacketBuffer` -- Packet-oriented characteristic usage.
-//| =====================================================================
-//|
-//| Accumulates a Characteristic's incoming packets in a FIFO buffer and facilitates packet aware
+//| """Accumulates a Characteristic's incoming packets in a FIFO buffer and facilitates packet aware
//| outgoing writes. A packet's size is either the characteristic length or the maximum transmission
//| unit (MTU) minus overhead, whichever is smaller. The MTU can change so check `incoming_packet_length`
//| and `outgoing_packet_length` before creating a buffer to store data.
@@ -60,7 +55,7 @@
//| It may be a local Characteristic provided by a Peripheral Service, or a remote Characteristic
//| in a remote Service that a Central has connected to.
//| :param int buffer_size: Size of ring buffer (in packets of the Characteristic's maximum
-//| length) that stores incoming packets coming from the peer.
+//| length) that stores incoming packets coming from the peer."""
//| ...
//|
STATIC mp_obj_t bleio_packet_buffer_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
@@ -126,11 +121,11 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(bleio_packet_buffer_readinto_obj, bleio_packet_
//| """Writes all bytes from data into the same outgoing packet. The bytes from header are included
//| before data when the pending packet is currently empty.
//|
-//| This does not block until the data is sent. It only blocks until the data is pending."""
-//| ...
+//| This does not block until the data is sent. It only blocks until the data is pending.
//|
-//| :return: number of bytes written. May include header bytes when packet is empty.
-//| :rtype: int
+//| :return: number of bytes written. May include header bytes when packet is empty.
+//| :rtype: int"""
+//| ...
//|
// TODO: Add a kwarg `merge=False` to dictate whether subsequent writes are merged into a pending
// one.
@@ -174,7 +169,7 @@ STATIC mp_obj_t bleio_packet_buffer_write(mp_uint_t n_args, const mp_obj_t *pos_
}
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(bleio_packet_buffer_write_obj, 1, bleio_packet_buffer_write);
-//| def deinit(self, ) -> Any:
+//| def deinit(self) -> Any:
//| """Disable permanently."""
//| ...
STATIC mp_obj_t bleio_packet_buffer_deinit(mp_obj_t self_in) {
@@ -184,7 +179,7 @@ STATIC mp_obj_t bleio_packet_buffer_deinit(mp_obj_t self_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(bleio_packet_buffer_deinit_obj, bleio_packet_buffer_deinit);
-//| packet_size: Any = ...
+//| packet_size: int = ...
//| """`packet_size` is the same as `incoming_packet_length`.
//| The name `packet_size` is deprecated and
//| will be removed in CircuitPython 6.0.0."""
@@ -210,9 +205,8 @@ const mp_obj_property_t bleio_packet_buffer_incoming_packet_length_obj = {
(mp_obj_t)&mp_const_none_obj },
};
-//| .. attribute:: outgoing_packet_length
-//|
-//| Maximum length in bytes of a packet we are writing.
+//| outgoing_packet_length: int = ...
+//| """Maximum length in bytes of a packet we are writing."""
//|
STATIC mp_obj_t bleio_packet_buffer_get_outgoing_packet_length(mp_obj_t self_in) {
bleio_packet_buffer_obj_t *self = MP_OBJ_TO_PTR(self_in);
diff --git a/shared-bindings/_bleio/ScanEntry.c b/shared-bindings/_bleio/ScanEntry.c
index a92b247be375..905bea81d23d 100644
--- a/shared-bindings/_bleio/ScanEntry.c
+++ b/shared-bindings/_bleio/ScanEntry.c
@@ -36,12 +36,7 @@
#include "shared-module/_bleio/ScanEntry.h"
//| class ScanEntry:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`ScanEntry` -- BLE scan data
-//| =========================================================
-//|
-//| Encapsulates information about a device that was received during scanning. It can be
+//| """Encapsulates information about a device that was received during scanning. It can be
//| advertisement or scan response data. This object may only be created by a `_bleio.ScanResults`:
//| it has no user-visible constructor."""
//|
@@ -68,7 +63,7 @@ STATIC mp_obj_t bleio_scanentry_matches(mp_uint_t n_args, const mp_obj_t *pos_ar
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
-
+
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[ARG_prefixes].u_obj, &bufinfo, MP_BUFFER_READ);
return mp_obj_new_bool(common_hal_bleio_scanentry_matches(self, bufinfo.buf, bufinfo.len, args[ARG_all].u_bool));
diff --git a/shared-bindings/_bleio/ScanResults.c b/shared-bindings/_bleio/ScanResults.c
index 4b274fc68236..6077dcbdaebe 100644
--- a/shared-bindings/_bleio/ScanResults.c
+++ b/shared-bindings/_bleio/ScanResults.c
@@ -33,12 +33,7 @@
#include "shared-bindings/_bleio/ScanResults.h"
//| class ScanResults:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`ScanResults` -- An Iterator over BLE scanning results
-//| ===============================================================
-//|
-//| Iterates over advertising data received while scanning. This object is always created
+//| """Iterates over advertising data received while scanning. This object is always created
//| by a `_bleio.Adapter`: it has no user-visible constructor."""
//|
STATIC mp_obj_t scanresults_iternext(mp_obj_t self_in) {
diff --git a/shared-bindings/_bleio/Service.c b/shared-bindings/_bleio/Service.c
index 3526ce189900..5ca7504f27a3 100644
--- a/shared-bindings/_bleio/Service.c
+++ b/shared-bindings/_bleio/Service.c
@@ -33,12 +33,7 @@
#include "shared-bindings/_bleio/UUID.h"
//| class Service:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`Service` -- BLE GATT Service
-//| =========================================================
-//|
-//| Stores information about a BLE service and its characteristics."""
+//| """Stores information about a BLE service and its characteristics."""
//|
//| def __init__(self, uuid: UUID, *, secondary: bool = False):
//| """Create a new Service identified by the specified UUID. It can be accessed by all
diff --git a/shared-bindings/_bleio/UUID.c b/shared-bindings/_bleio/UUID.c
index d4b0f84cad2f..78161b95660e 100644
--- a/shared-bindings/_bleio/UUID.c
+++ b/shared-bindings/_bleio/UUID.c
@@ -34,12 +34,7 @@
#include "shared-bindings/_bleio/UUID.h"
//| class UUID:
-//| """.. currentmodule:: _bleio
-//|
-//| :class:`UUID` -- BLE UUID
-//| =========================================================
-//|
-//| A 16-bit or 128-bit UUID. Can be used for services, characteristics, descriptors and more."""
+//| """A 16-bit or 128-bit UUID. Can be used for services, characteristics, descriptors and more."""
//|
//| def __init__(self, value: Any):
//| """Create a new UUID or UUID object encapsulating the uuid value.
@@ -207,7 +202,7 @@ STATIC mp_obj_t bleio_uuid_pack_into(mp_uint_t n_args, const mp_obj_t *pos_args,
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
-
+
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[ARG_buffer].u_obj, &bufinfo, MP_BUFFER_WRITE);
diff --git a/shared-bindings/_bleio/__init__.c b/shared-bindings/_bleio/__init__.c
index da7bfdd81659..90b185f79a83 100644
--- a/shared-bindings/_bleio/__init__.c
+++ b/shared-bindings/_bleio/__init__.c
@@ -41,13 +41,7 @@
#include "shared-bindings/_bleio/Service.h"
#include "shared-bindings/_bleio/UUID.h"
-//| """:mod:`_bleio` --- Bluetooth Low Energy (BLE) communication
-//| ================================================================
-//|
-//| .. module:: _bleio
-//| :synopsis: Bluetooth Low Energy functionality
-//| :platform: nRF
-//|
+//| """
//| The `_bleio` module provides necessary low-level functionality for communicating
//| using Bluetooth Low Energy (BLE). The '_' prefix indicates this module is meant
//| for internal use by libraries but not by the end user. Its API may change incompatibly
@@ -58,24 +52,6 @@
//| provides higher-level convenience functionality, including predefined beacons, clients,
//| servers.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Address
-//| Adapter
-//| Attribute
-//| Characteristic
-//| CharacteristicBuffer
-//| Connection
-//| Descriptor
-//| PacketBuffer
-//| ScanEntry
-//| ScanResults
-//| Service
-//| UUID
-//|
//| .. attribute:: adapter
//|
//| BLE Adapter used to manage device discovery and connections.
diff --git a/shared-bindings/_eve/__init__.c b/shared-bindings/_eve/__init__.c
index 0e78cea160e4..4fa48f2c7563 100644
--- a/shared-bindings/_eve/__init__.c
+++ b/shared-bindings/_eve/__init__.c
@@ -34,28 +34,10 @@
#include "shared-module/_eve/__init__.h"
#include "shared-bindings/_eve/__init__.h"
-
-
-
-
-
-
-
-
-
-
-
-
-
-//| """:mod:`_eve` --- low-level BridgeTek EVE bindings
-//| ================================================
-//|
-//| .. module:: _eve
-//| :synopsis: low-level BridgeTek EVE bindings
-//| :platform: SAMD21/SAMD51
+//| """Low-level BridgeTek EVE bindings
//|
//| The `_eve` module provides a class _EVE which
-//| contains methods for constructing EVE command
+//| contains methods for constructing EVE command
//| buffers and appending basic graphics commands."""
//|
diff --git a/shared-bindings/_pew/PewPew.c b/shared-bindings/_pew/PewPew.c
index 37188d2b743a..82bf04a61782 100644
--- a/shared-bindings/_pew/PewPew.c
+++ b/shared-bindings/_pew/PewPew.c
@@ -35,12 +35,7 @@
#include "supervisor/shared/translate.h"
//| class PewPew:
-//| """.. currentmodule:: _pew
-//|
-//| :class:`PewPew` -- LED matrix and button driver
-//| ===============================================
-//|
-//| This is an internal module to be used by the ``pew.py`` library from
+//| """This is an internal module to be used by the ``pew.py`` library from
//| https://github.com/pewpew-game/pew-pewpew-standalone-10.x to handle the
//| LED matrix display and buttons on the ``pewpew10`` board.
//|
diff --git a/shared-bindings/_pew/__init__.c b/shared-bindings/_pew/__init__.c
index b6aab672646a..6e0070d8e2da 100644
--- a/shared-bindings/_pew/__init__.c
+++ b/shared-bindings/_pew/__init__.c
@@ -41,17 +41,7 @@ STATIC mp_obj_t get_pressed(void) {
STATIC MP_DEFINE_CONST_FUN_OBJ_0(get_pressed_obj, get_pressed);
-//| """:mod:`_pew` --- LED matrix driver
-//| ==================================
-//|
-//| .. module:: _pew
-//| :synopsis: LED matrix driver
-//| :platform: SAMD21
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| PewPew"""
+//| """LED matrix driver"""
//|
STATIC const mp_rom_map_elem_t pew_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__pew) },
diff --git a/shared-bindings/_pixelbuf/PixelBuf.c b/shared-bindings/_pixelbuf/PixelBuf.c
index 2d1f4fff2f53..71a91d7076c7 100644
--- a/shared-bindings/_pixelbuf/PixelBuf.c
+++ b/shared-bindings/_pixelbuf/PixelBuf.c
@@ -45,12 +45,7 @@ extern const int32_t colorwheel(float pos);
static void parse_byteorder(mp_obj_t byteorder_obj, pixelbuf_byteorder_details_t* parsed);
//| class PixelBuf:
-//| """.. currentmodule:: _pixelbuf
-//|
-//| :class:`PixelBuf` -- A fast RGB[W] pixel buffer for LED and similar devices
-//| ===========================================================================
-//|
-//| :class:`~_pixelbuf.PixelBuf` implements an RGB[W] bytearray abstraction."""
+//| """A fast RGB[W] pixel buffer for LED and similar devices."""
//|
//| def __init__(self, size: int, *, byteorder: str = "BGR", brightness: float = 0, auto_write: bool = False, header: bytes = b"", trailer: bytes = b""):
//| """Create a PixelBuf object of the specified size, byteorder, and bits per pixel.
diff --git a/shared-bindings/_pixelbuf/__init__.c b/shared-bindings/_pixelbuf/__init__.c
index 30656f1c78ce..bfd479fde0b1 100644
--- a/shared-bindings/_pixelbuf/__init__.c
+++ b/shared-bindings/_pixelbuf/__init__.c
@@ -33,35 +33,22 @@
#include "shared-bindings/_pixelbuf/PixelBuf.h"
-//| """:mod:`_pixelbuf` --- Fast RGB(W) pixel buffer and helpers
-//| ===========================================================
-
-//| .. module:: _pixelbuf
-//| :synopsis: A fast RGB(W) pixel buffer library for like NeoPixel and DotStar.
+//| """A fast RGB(W) pixel buffer library for like NeoPixel and DotStar.
//|
//| The `_pixelbuf` module provides the :py:class:`PixelBuf` class to accelerate
//| RGB(W) strip/matrix manipulation, such as DotStar and Neopixel.
//|
-//| Byteorders are configured with strings, such as "RGB" or "RGBD".
-//| TODO: Pull in docs from pypixelbuf.
+//| Byteorders are configured with strings, such as "RGB" or "RGBD"."""
+// TODO: Pull in docs from pypixelbuf.
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| PixelBuf"""
-
-//| def colorwheel(n: Any) -> Any: ...
-//|
-
-//| def wheel(n: Any) -> Any:
+//| def colorwheel(n: int) -> Any:
//| """C implementation of the common wheel() function found in many examples.
//| Returns the colorwheel RGB value as an integer value for n (usable in :py:class:`PixelBuf`, neopixel, and dotstar)."""
//| ...
//|
-//| .. function:: wheel(n)
-//| Use of wheel() is deprecated. Please use colorwheel().
+//| def wheel(n: Any) -> Any:
+//| """Use of wheel() is deprecated. Please use colorwheel()."""
+//|
STATIC mp_obj_t pixelbuf_colorwheel(mp_obj_t n) {
return MP_OBJ_NEW_SMALL_INT(colorwheel(MP_OBJ_IS_SMALL_INT(n) ? MP_OBJ_SMALL_INT_VALUE(n) : mp_obj_float_get(n)));
diff --git a/shared-bindings/_stage/Layer.c b/shared-bindings/_stage/Layer.c
index 437114cd3195..0f8260e53f6a 100644
--- a/shared-bindings/_stage/Layer.c
+++ b/shared-bindings/_stage/Layer.c
@@ -31,10 +31,7 @@
#include "supervisor/shared/translate.h"
//| class Layer:
-//| """.. currentmodule:: _stage
-//|
-//| :class:`Layer` -- Keep information about a single layer of graphics
-//| ==================================================================="""
+//| """Keep information about a single layer of graphics"""
//|
//| def __init__(self, width: int, height: int, graphic: bytearray, palette: bytearray, grid: bytearray):
//| """Keep internal information about a layer of graphics (either a
diff --git a/shared-bindings/_stage/Text.c b/shared-bindings/_stage/Text.c
index 8797f74dbed4..b0ff1525c367 100644
--- a/shared-bindings/_stage/Text.c
+++ b/shared-bindings/_stage/Text.c
@@ -31,13 +31,10 @@
#include "supervisor/shared/translate.h"
//| class Text:
-//| """.. currentmodule:: _stage
-//|
-//| :class:`Text` -- Keep information about a single text of text
-//| =============================================================="""
+//| """Keep information about a single grid of text"""
//|
//| def __init__(self, width: int, height: int, font: bytearray, palette: bytearray, chars: bytearray):
-//| """Keep internal information about a text of text
+//| """Keep internal information about a grid of text
//| in a format suitable for fast rendering
//| with the ``render()`` function.
//|
diff --git a/shared-bindings/_stage/__init__.c b/shared-bindings/_stage/__init__.c
index 6b5c4fd8b1dd..6a56381856f1 100644
--- a/shared-bindings/_stage/__init__.c
+++ b/shared-bindings/_stage/__init__.c
@@ -34,22 +34,10 @@
#include "Layer.h"
#include "Text.h"
-//| """:mod:`_stage` --- C-level helpers for animation of sprites on a stage
-//| =====================================================================
-//|
-//| .. module:: _stage
-//| :synopsis: C-level helpers for animation of sprites on a stage
-//| :platform: SAMD21
+//| """C-level helpers for animation of sprites on a stage
//|
//| The `_stage` module contains native code to speed-up the ```stage`` Library
-//| `_.
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Layer
-//| Text"""
+//| `_."""
//|
//| def render(x0: int, y0: int, x1: int, y1: int, layers: list, buffer: bytearray, display: displayio.Display, scale: int, background: int) -> Any:
//| """Render and send to the display a fragment of the screen.
diff --git a/shared-bindings/aesio/__init__.c b/shared-bindings/aesio/__init__.c
index 43dc73e8b1c3..fa2a2c426eba 100644
--- a/shared-bindings/aesio/__init__.c
+++ b/shared-bindings/aesio/__init__.c
@@ -31,23 +31,10 @@
#include "__init__.h"
-//| :mod:`aesio` --- AES encryption routines
-//| ========================================
-//|
-//| .. module:: aesio
-//| :synopsis: Embedded implementation of AES
+//| """AES encryption routines
//|
//| The `AES` module contains classes used to implement encryption
-//| and decryption. It aims to be low overhead in terms of memory.
-//|
-//|
-
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| aes
+//| and decryption. It aims to be low overhead in terms of memory."""
STATIC const mp_obj_tuple_t mp_aes_key_size_obj = {
diff --git a/shared-bindings/aesio/aes.c b/shared-bindings/aesio/aes.c
index 4ddcfa898b5f..7a559b0bbec5 100644
--- a/shared-bindings/aesio/aes.c
+++ b/shared-bindings/aesio/aes.c
@@ -9,35 +9,31 @@
// Defined at the end of this file
-//| .. currentmodule:: aesio
+//| class AES:
+//| """Encrypt and decrypt AES streams"""
//|
-//| :class:`aesio` -- Encrypt and decrypt AES streams
-//| =====================================================
+//| def __init__(self, key, mode=0, iv=None, segment_size=8) -> Any:
+//| """Create a new AES state with the given key.
//|
-//| An object that represents an AES stream, including the current state.
+//| :param bytearray key: A 16-, 24-, or 32-byte key
+//| :param int mode: AES mode to use. One of: AES.MODE_ECB, AES.MODE_CBC, or
+//| AES.MODE_CTR
+//| :param bytearray iv: Initialization vector to use for CBC or CTR mode
//|
-//| .. class:: AES(key, mode=0, iv=None, segment_size=8)
+//| Additional arguments are supported for legacy reasons.
//|
-//| Create a new AES state with the given key.
+//| Encrypting a string::
//|
-//| :param bytearray key: A 16-, 24-, or 32-byte key
-//| :param int mode: AES mode to use. One of: AES.MODE_ECB, AES.MODE_CBC, or
-//| AES.MODE_CTR
-//| :param bytearray iv: Initialization vector to use for CBC or CTR mode
+//| import aesio
+//| from binascii import hexlify
//|
-//| Additional arguments are supported for legacy reasons.
-//|
-//| Encrypting a string::
-//|
-//| import aesio
-//| from binascii import hexlify
-//|
-//| key = b'Sixteen byte key'
-//| inp = b'Circuit Python!!' # Note: 16-bytes long
-//| outp = bytearray(len(inp))
-//| cipher = aesio.AES(key, aesio.mode.MODE_ECB)
-//| cipher.encrypt_into(inp, outp)
-//| hexlify(outp)
+//| key = b'Sixteen byte key'
+//| inp = b'Circuit Python!!' # Note: 16-bytes long
+//| outp = bytearray(len(inp))
+//| cipher = aesio.AES(key, aesio.mode.MODE_ECB)
+//| cipher.encrypt_into(inp, outp)
+//| hexlify(outp)"""
+//| ...
//|
STATIC mp_obj_t aesio_aes_make_new(const mp_obj_type_t *type, size_t n_args,
@@ -154,12 +150,13 @@ STATIC void validate_length(aesio_aes_obj_t *self, size_t src_length,
}
}
-//| .. method:: encrypt_into(src, dest)
+//| def encrypt_into(src, dest) -> None:
+//| """Encrypt the buffer from ``src`` into ``dest``.
//|
-//| Encrypt the buffer from ``src`` into ``dest``.
-//| For ECB mode, the buffers must be 16 bytes long. For CBC mode, the
-//| buffers must be a multiple of 16 bytes, and must be equal length. For
-//| CTX mode, there are no restrictions.
+//| For ECB mode, the buffers must be 16 bytes long. For CBC mode, the
+//| buffers must be a multiple of 16 bytes, and must be equal length. For
+//| CTX mode, there are no restrictions."""
+//| ...
//|
STATIC mp_obj_t aesio_aes_encrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
mp_obj_t dest) {
@@ -184,12 +181,13 @@ STATIC mp_obj_t aesio_aes_encrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
STATIC MP_DEFINE_CONST_FUN_OBJ_3(aesio_aes_encrypt_into_obj,
aesio_aes_encrypt_into);
-//| .. method:: decrypt_into(src, dest)
+//| def decrypt_into(src, dest) -> None:
//|
-//| Decrypt the buffer from ``src`` into ``dest``.
-//| For ECB mode, the buffers must be 16 bytes long. For CBC mode, the
-//| buffers must be a multiple of 16 bytes, and must be equal length. For
-//| CTX mode, there are no restrictions.
+//| """Decrypt the buffer from ``src`` into ``dest``.
+//| For ECB mode, the buffers must be 16 bytes long. For CBC mode, the
+//| buffers must be a multiple of 16 bytes, and must be equal length. For
+//| CTX mode, there are no restrictions."""
+//| ...
//|
STATIC mp_obj_t aesio_aes_decrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
mp_obj_t dest) {
diff --git a/shared-bindings/analogio/AnalogIn.c b/shared-bindings/analogio/AnalogIn.c
index 2fb5051ebedf..bafa287ff1ed 100644
--- a/shared-bindings/analogio/AnalogIn.c
+++ b/shared-bindings/analogio/AnalogIn.c
@@ -37,10 +37,7 @@
#include "shared-bindings/util.h"
//| class AnalogIn:
-//| """.. currentmodule:: analogio
-//|
-//| :class:`AnalogIn` -- read analog voltage
-//| ============================================
+//| """Read analog voltage levels
//|
//| Usage::
//|
diff --git a/shared-bindings/analogio/AnalogOut.c b/shared-bindings/analogio/AnalogOut.c
index 9064bb5dcee4..a8edcc0ae1eb 100644
--- a/shared-bindings/analogio/AnalogOut.c
+++ b/shared-bindings/analogio/AnalogOut.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class AnalogOut:
-//| """.. currentmodule:: analogio
-//|
-//| :class:`AnalogOut` -- output analog voltage
-//| ============================================
-//|
-//| The AnalogOut is used to output analog values (a specific voltage).
+//| """Output analog values (a specific voltage).
//|
//| Example usage::
//|
diff --git a/shared-bindings/analogio/__init__.c b/shared-bindings/analogio/__init__.c
index 79627f16aa07..1f059f340270 100644
--- a/shared-bindings/analogio/__init__.c
+++ b/shared-bindings/analogio/__init__.c
@@ -34,25 +34,12 @@
#include "shared-bindings/analogio/AnalogIn.h"
#include "shared-bindings/analogio/AnalogOut.h"
-//| """:mod:`analogio` --- Analog hardware support
-//| =================================================
-//|
-//| .. module:: analogio
-//| :synopsis: Analog hardware support
-//| :platform: SAMD21, ESP8266
+//| """Analog hardware support
//|
//| The `analogio` module contains classes to provide access to analog IO
//| typically implemented with digital-to-analog (DAC) and analog-to-digital
//| (ADC) converters.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| AnalogIn
-//| AnalogOut
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/audiobusio/I2SOut.c b/shared-bindings/audiobusio/I2SOut.c
index 724a65a34721..d965aac89e98 100644
--- a/shared-bindings/audiobusio/I2SOut.c
+++ b/shared-bindings/audiobusio/I2SOut.c
@@ -36,12 +36,7 @@
#include "supervisor/shared/translate.h"
//| class I2SOut:
-//| """.. currentmodule:: audiobusio
-//|
-//| :class:`I2SOut` -- Output an I2S audio signal
-//| ========================================================
-//|
-//| I2S is used to output an audio signal on an I2S bus."""
+//| """Output an I2S audio signal"""
//|
//| def __init__(self, bit_clock: microcontroller.Pin, word_select: microcontroller.Pin, data: microcontroller.Pin, *, left_justified: bool):
//| """Create a I2SOut object associated with the given pins.
diff --git a/shared-bindings/audiobusio/PDMIn.c b/shared-bindings/audiobusio/PDMIn.c
index 6cc834724b86..5b950297b511 100644
--- a/shared-bindings/audiobusio/PDMIn.c
+++ b/shared-bindings/audiobusio/PDMIn.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class PDMIn:
-//| """.. currentmodule:: audiobusio
-//|
-//| :class:`PDMIn` -- Record an input PDM audio stream
-//| ========================================================
-//|
-//| PDMIn can be used to record an input audio signal on a given set of pins."""
+//| """Record an input PDM audio stream"""
//|
//| def __init__(self, clock_pin: microcontroller.Pin, data_pin: microcontroller.Pin, *, sample_rate: int = 16000, bit_depth: int = 8, mono: bool = True, oversample: int = 64, startup_delay: float = 0.11):
//| """Create a PDMIn object associated with the given pins. This allows you to
diff --git a/shared-bindings/audiobusio/__init__.c b/shared-bindings/audiobusio/__init__.c
index c5c387361927..89ccbb88b5aa 100644
--- a/shared-bindings/audiobusio/__init__.c
+++ b/shared-bindings/audiobusio/__init__.c
@@ -34,26 +34,13 @@
#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-bindings/audiobusio/PDMIn.h"
-//| """:mod:`audiobusio` --- Support for audio input and output over digital bus
-//| =========================================================================
-//|
-//| .. module:: audiobusio
-//| :synopsis: Support for audio input and output over digital bus
-//| :platform: SAMD21
+//| """Support for audio input and output over digital buses
//|
//| The `audiobusio` module contains classes to provide access to audio IO
//| over digital buses. These protocols are used to communicate audio to other
//| chips in the same circuit. It doesn't include audio interconnect protocols
//| such as S/PDIF.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| I2SOut
-//| PDMIn
-//|
//| All libraries change hardware state and should be deinitialized when they
//| are no longer needed. To do so, either call :py:meth:`!deinit` or use a
//| context manager."""
diff --git a/shared-bindings/audiocore/RawSample.c b/shared-bindings/audiocore/RawSample.c
index 6091fbfc00ce..c0f9325e67a6 100644
--- a/shared-bindings/audiocore/RawSample.c
+++ b/shared-bindings/audiocore/RawSample.c
@@ -35,19 +35,8 @@
#include "shared-bindings/audiocore/RawSample.h"
#include "supervisor/shared/translate.h"
-
-
-
-
-
-
//| class RawSample:
-//| """.. currentmodule:: audiocore
-//|
-//| :class:`RawSample` -- A raw audio sample buffer
-//| ========================================================
-//|
-//| An in-memory sound sample"""
+//| """A raw audio sample buffer in memory"""
//|
//| def __init__(self, buffer: array.array, *, channel_count: int = 1, sample_rate: int = 8000):
//| """Create a RawSample based on the given buffer of signed values. If channel_count is more than
diff --git a/shared-bindings/audiocore/WaveFile.c b/shared-bindings/audiocore/WaveFile.c
index 65b42fb6c439..a067f6cda8d0 100644
--- a/shared-bindings/audiocore/WaveFile.c
+++ b/shared-bindings/audiocore/WaveFile.c
@@ -34,10 +34,7 @@
#include "supervisor/shared/translate.h"
//| class WaveFile:
-//| """.. currentmodule:: audiocore
-//|
-//| :class:`WaveFile` -- Load a wave file for audio playback
-//| ========================================================
+//| """Load a wave file for audio playback
//|
//| A .wav file prepped for audio playback. Only mono and stereo files are supported. Samples must
//| be 8 bit unsigned or 16 bit signed. If a buffer is provided, it will be used instead of allocating
diff --git a/shared-bindings/audiocore/__init__.c b/shared-bindings/audiocore/__init__.c
index 38f91d8eeb1f..b400b945486b 100644
--- a/shared-bindings/audiocore/__init__.c
+++ b/shared-bindings/audiocore/__init__.c
@@ -35,22 +35,7 @@
#include "shared-bindings/audiocore/WaveFile.h"
//#include "shared-bindings/audiomixer/Mixer.h"
-//| """:mod:`audiocore` --- Support for audio samples and mixer
-//| ========================================================
-//|
-//| .. module:: audiocore
-//| :synopsis: Support for audio samples and mixer
-//| :platform: SAMD21
-//|
-//| The `audiocore` module contains core classes for audio IO
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| RawSample
-//| WaveFile"""
+//| """Support for audio samples"""
//|
STATIC const mp_rom_map_elem_t audiocore_module_globals_table[] = {
diff --git a/shared-bindings/audioio/AudioOut.c b/shared-bindings/audioio/AudioOut.c
index 84e5e4422788..5748682020e9 100644
--- a/shared-bindings/audioio/AudioOut.c
+++ b/shared-bindings/audioio/AudioOut.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class AudioOut:
-//| """.. currentmodule:: audioio
-//|
-//| :class:`AudioOut` -- Output an analog audio signal
-//| ========================================================
-//|
-//| AudioOut can be used to output an analog audio signal on a given pin."""
+//| """Output an analog audio signal"""
//|
//| def __init__(self, left_channel: microcontroller.Pin, *, right_channel: microcontroller.Pin = None, quiescent_value: int = 0x8000):
//| """Create a AudioOut object associated with the given pin(s). This allows you to
diff --git a/shared-bindings/audioio/__init__.c b/shared-bindings/audioio/__init__.c
index bc2e26cfce2e..7ec927834fe9 100644
--- a/shared-bindings/audioio/__init__.c
+++ b/shared-bindings/audioio/__init__.c
@@ -42,22 +42,10 @@
#include "shared-bindings/audiomixer/Mixer.h"
#endif
-//| """:mod:`audioio` --- Support for audio input and output
-//| ======================================================
-//|
-//| .. module:: audioio
-//| :synopsis: Support for audio input and output
-//| :platform: SAMD21
+//| """Support for audio output
//|
//| The `audioio` module contains classes to provide access to audio IO.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| AudioOut
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/audiomixer/Mixer.c b/shared-bindings/audiomixer/Mixer.c
index 966581d454a0..31e62cdae15c 100644
--- a/shared-bindings/audiomixer/Mixer.c
+++ b/shared-bindings/audiomixer/Mixer.c
@@ -39,12 +39,7 @@
#include "supervisor/shared/translate.h"
//| class Mixer:
-//| """.. currentmodule:: audiomixer
-//|
-//| :class:`Mixer` -- Mixes one or more audio samples together
-//| ===========================================================
-//|
-//| Mixer mixes multiple samples into one sample."""
+//| """Mixes one or more audio samples together into one sample."""
//|
//| def __init__(self, voice_count: int = 2, buffer_size: int = 1024, channel_count: int = 2, bits_per_sample: int = 16, samples_signed: bool = True, sample_rate: int = 8000):
//| """Create a Mixer object that can mix multiple channels with the same sample rate.
diff --git a/shared-bindings/audiomixer/MixerVoice.c b/shared-bindings/audiomixer/MixerVoice.c
index 257d9507b996..ec5768d2f013 100644
--- a/shared-bindings/audiomixer/MixerVoice.c
+++ b/shared-bindings/audiomixer/MixerVoice.c
@@ -38,10 +38,7 @@
#include "supervisor/shared/translate.h"
//| class MixerVoice:
-//| """.. currentmodule:: audiomixer
-//|
-//| :class:`MixerVoice` -- Voice objects used with Mixer
-//| =====================================================
+//| """Voice objects used with Mixer
//|
//| Used to access and control samples with `audiomixer.Mixer`."""
//|
diff --git a/shared-bindings/audiomixer/__init__.c b/shared-bindings/audiomixer/__init__.c
index c90a4a0e65d4..1146bb7981b6 100644
--- a/shared-bindings/audiomixer/__init__.c
+++ b/shared-bindings/audiomixer/__init__.c
@@ -32,21 +32,7 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/audiomixer/Mixer.h"
-//| """:mod:`audiomixer` --- Support for audio mixer
-//| ========================================================
-//|
-//| .. module:: audiomixer
-//| :synopsis: Support for audio mixer
-//|
-//| The `audiomixer` module contains core classes for mixing audio sources
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Mixer
-//| MixerVoice"""
+//| """Support for audio mixing"""
//|
STATIC const mp_rom_map_elem_t audiomixer_module_globals_table[] = {
diff --git a/shared-bindings/audiomp3/MP3Decoder.c b/shared-bindings/audiomp3/MP3Decoder.c
index d9c85bbf637d..e6d48e32cbf1 100644
--- a/shared-bindings/audiomp3/MP3Decoder.c
+++ b/shared-bindings/audiomp3/MP3Decoder.c
@@ -35,12 +35,7 @@
#include "supervisor/shared/translate.h"
//| class MP3:
-//| """.. currentmodule:: audiomp3
-//|
-//| :class:`MP3Decoder` -- Load a mp3 file for audio playback
-//| =========================================================
-//|
-//| An object that decodes MP3 files for playback on an audio device."""
+//| """Load a mp3 file for audio playback"""
//|
//| def __init__(self, file: typing.BinaryIO, buffer: bytearray):
//|
diff --git a/shared-bindings/audiomp3/__init__.c b/shared-bindings/audiomp3/__init__.c
index 50b29da5294c..62e5f56cbb23 100644
--- a/shared-bindings/audiomp3/__init__.c
+++ b/shared-bindings/audiomp3/__init__.c
@@ -31,20 +31,7 @@
#include "shared-bindings/audiomp3/MP3Decoder.h"
-//| """:mod:`audiomp3` --- Support for MP3-compressed audio files
-//| ==========================================================
-//|
-//| .. module:: audiomp3
-//| :synopsis: Support for mp3 files
-//|
-//| The `audiomp3` module contains an mp3 decoder
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| MP3Decoder"""
+//| """Support for MP3-compressed audio files"""
//|
STATIC const mp_rom_map_elem_t audiomp3_module_globals_table[] = {
diff --git a/shared-bindings/audiopwmio/PWMAudioOut.c b/shared-bindings/audiopwmio/PWMAudioOut.c
index 17f82e3f644b..d6b102317f17 100644
--- a/shared-bindings/audiopwmio/PWMAudioOut.c
+++ b/shared-bindings/audiopwmio/PWMAudioOut.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class PWMAudioOut:
-//| """.. currentmodule:: audiopwmio
-//|
-//| :class:`PWMAudioOut` -- Output an analog audio signal
-//| ========================================================
-//|
-//| AudioOut can be used to output an analog audio signal on a given pin."""
+//| """Output an analog audio signal by varying the PWM duty cycle."""
//|
//| def __init__(self, left_channel: microcontroller.Pin, *, right_channel: microcontroller.Pin = None, quiescent_value: int = 0x8000):
//| """Create a PWMAudioOut object associated with the given pin(s). This allows you to
diff --git a/shared-bindings/audiopwmio/__init__.c b/shared-bindings/audiopwmio/__init__.c
index 74d22b45ec31..5caea14209df 100644
--- a/shared-bindings/audiopwmio/__init__.c
+++ b/shared-bindings/audiopwmio/__init__.c
@@ -33,22 +33,10 @@
#include "shared-bindings/audiopwmio/__init__.h"
#include "shared-bindings/audiopwmio/PWMAudioOut.h"
-//| """:mod:`audiopwmio` --- Support for audio input and output
-//| ========================================================
-//|
-//| .. module:: audiopwmio
-//| :synopsis: Support for audio output via digital PWM
-//| :platform: NRF52
+//| """Audio output via digital PWM
//|
//| The `audiopwmio` module contains classes to provide access to audio IO.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| PWMAudioOut
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/bitbangio/I2C.c b/shared-bindings/bitbangio/I2C.c
index a682e050e17f..2043fc903f19 100644
--- a/shared-bindings/bitbangio/I2C.c
+++ b/shared-bindings/bitbangio/I2C.c
@@ -38,10 +38,7 @@
#include "supervisor/shared/translate.h"
//| class I2C:
-//| """.. currentmodule:: bitbangio
-//|
-//| :class:`I2C` --- Two wire serial protocol
-//| ------------------------------------------"""
+//| """Two wire serial protocol"""
//|
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, *, frequency: int = 400000, timeout: int):
//| """I2C is a two-wire protocol for communicating between devices. At the
diff --git a/shared-bindings/bitbangio/OneWire.c b/shared-bindings/bitbangio/OneWire.c
index 1c9405bd8db2..a236f4c2aa29 100644
--- a/shared-bindings/bitbangio/OneWire.c
+++ b/shared-bindings/bitbangio/OneWire.c
@@ -35,10 +35,7 @@
#include "shared-bindings/util.h"
//| class OneWire:
-//| """.. currentmodule:: bitbangio
-//|
-//| :class:`OneWire` -- Lowest-level of the Maxim OneWire protocol
-//| ===============================================================
+//| """Lowest-level of the Maxim OneWire protocol
//|
//| :class:`~bitbangio.OneWire` implements the timing-sensitive foundation of
//| the Maxim (formerly Dallas Semi) OneWire protocol.
diff --git a/shared-bindings/bitbangio/SPI.c b/shared-bindings/bitbangio/SPI.c
index 38e0926e8d26..08bbf1257fd8 100644
--- a/shared-bindings/bitbangio/SPI.c
+++ b/shared-bindings/bitbangio/SPI.c
@@ -40,10 +40,7 @@
#include "supervisor/shared/translate.h"
//| class SPI:
-//| """.. currentmodule:: bitbangio
-//|
-//| :class:`SPI` -- a 3-4 wire serial protocol
-//| -----------------------------------------------
+//| """A 3-4 wire serial protocol
//|
//| SPI is a serial protocol that has exclusive pins for data in and out of the
//| master. It is typically faster than :py:class:`~bitbangio.I2C` because a
diff --git a/shared-bindings/bitbangio/__init__.c b/shared-bindings/bitbangio/__init__.c
index e9600a7e668c..e04bdf70115c 100644
--- a/shared-bindings/bitbangio/__init__.c
+++ b/shared-bindings/bitbangio/__init__.c
@@ -40,12 +40,7 @@
#include "py/runtime.h"
-//| """:mod:`bitbangio` --- Digital protocols implemented by the CPU
-//| =============================================================
-//|
-//| .. module:: bitbangio
-//| :synopsis: Digital protocols implemented by the CPU
-//| :platform: SAMD21, ESP8266
+//| """Digital protocols implemented by the CPU
//|
//| The `bitbangio` module contains classes to provide digital bus protocol
//| support regardless of whether the underlying hardware exists to use the
@@ -55,15 +50,6 @@
//| hardware to implement the protocols. Native implementations will be faster
//| than bitbanged versions and have more capabilities.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| I2C
-//| OneWire
-//| SPI
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/board/__init__.c b/shared-bindings/board/__init__.c
index 77675e093719..010a9fb92af2 100644
--- a/shared-bindings/board/__init__.c
+++ b/shared-bindings/board/__init__.c
@@ -29,11 +29,7 @@
#include "shared-bindings/board/__init__.h"
-//| """:mod:`board` --- Board specific pin names
-//| ========================================================
-//|
-//| .. module:: board
-//| :synopsis: Board specific pin names
+//| """Board specific pin names
//|
//| Common container for board base pin names. These will vary from board to
//| board so don't expect portability when using this module.
diff --git a/shared-bindings/busio/I2C.c b/shared-bindings/busio/I2C.c
index 8ae3658eee63..7e8af765f7c5 100644
--- a/shared-bindings/busio/I2C.c
+++ b/shared-bindings/busio/I2C.c
@@ -37,10 +37,7 @@
#include "supervisor/shared/translate.h"
//| class I2C:
-//| """.. currentmodule:: busio
-//|
-//| :class:`I2C` --- Two wire serial protocol
-//| ------------------------------------------"""
+//| """Two wire serial protocol"""
//|
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, *, frequency: int = 400000, timeout: int = 255):
//|
diff --git a/shared-bindings/busio/OneWire.c b/shared-bindings/busio/OneWire.c
index 556e567efc76..723cc031a881 100644
--- a/shared-bindings/busio/OneWire.c
+++ b/shared-bindings/busio/OneWire.c
@@ -35,10 +35,7 @@
#include "shared-bindings/util.h"
//| class OneWire:
-//| """.. currentmodule:: busio
-//|
-//| :class:`OneWire` -- Lowest-level of the Maxim OneWire protocol
-//| ================================================================="""
+//| """Lowest-level of the Maxim OneWire protocol"""
//|
//| def __init__(self, pin: microcontroller.Pin):
//| """(formerly Dallas Semi) OneWire protocol.
diff --git a/shared-bindings/busio/SPI.c b/shared-bindings/busio/SPI.c
index 5b1881702c24..2ba9a4c22c90 100644
--- a/shared-bindings/busio/SPI.c
+++ b/shared-bindings/busio/SPI.c
@@ -42,10 +42,7 @@
//| class SPI:
-//| """.. currentmodule:: busio
-//|
-//| `SPI` -- a 3-4 wire serial protocol
-//| -----------------------------------------------
+//| """A 3-4 wire serial protocol
//|
//| SPI is a serial protocol that has exclusive pins for data in and out of the
//| master. It is typically faster than :py:class:`~busio.I2C` because a
@@ -147,7 +144,7 @@ STATIC void check_for_deinit(busio_spi_obj_t *self) {
//| def configure(self, *, baudrate: int = 100000, polarity: int = 0, phase: int = 0, bits: int = 8) -> Any:
//| """Configures the SPI bus. The SPI object must be locked.
//|
-//| :param int baudrate: the desired clock rate in Hertz. The actual clock rate may be higher or lower
+//| :param int baudrate: the desired clock rate in Hertz. The actual clock rate may be higher or lower
//| due to the granularity of available clock settings.
//| Check the `frequency` attribute for the actual clock rate.
//| :param int polarity: the base state of the clock line (0 or 1)
diff --git a/shared-bindings/busio/UART.c b/shared-bindings/busio/UART.c
index 5984194a9afd..d4642225c087 100644
--- a/shared-bindings/busio/UART.c
+++ b/shared-bindings/busio/UART.c
@@ -43,10 +43,7 @@
// #define STREAM_DEBUG(...) mp_printf(&mp_plat_print __VA_OPT__(,) __VA_ARGS__)
//| class UART:
-//| """.. currentmodule:: busio
-//|
-//| :class:`UART` -- a bidirectional serial protocol
-//| ================================================="""
+//| """A bidirectional serial protocol"""
//| def __init__(self, tx: microcontroller.Pin, rx: microcontroller.Pin, *, baudrate: int = 9600, bits: int = 8, parity: Parity = None, stop: int = 1, timeout: float = 1, receiver_buffer_size: int = 64):
//| """A common bidirectional serial protocol that uses an an agreed upon speed
//| rather than a shared clock line.
diff --git a/shared-bindings/busio/__init__.c b/shared-bindings/busio/__init__.c
index 212b3218c151..04632c2f4a54 100644
--- a/shared-bindings/busio/__init__.c
+++ b/shared-bindings/busio/__init__.c
@@ -38,12 +38,7 @@
#include "py/runtime.h"
-//| """:mod:`busio` --- Hardware accelerated behavior
-//| =================================================
-//|
-//| .. module:: busio
-//| :synopsis: Hardware accelerated behavior
-//| :platform: SAMD21
+//| """Hardware accelerated external bus access
//|
//| The `busio` module contains classes to support a variety of serial
//| protocols.
@@ -54,16 +49,6 @@
//| then a RuntimeError will be raised. Use the `bitbangio` module to explicitly
//| bitbang a serial protocol on any general purpose pins.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| I2C
-//| OneWire
-//| SPI
-//| UART
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/digitalio/DigitalInOut.c b/shared-bindings/digitalio/DigitalInOut.c
index 5fffb3f653cc..54ced099db67 100644
--- a/shared-bindings/digitalio/DigitalInOut.c
+++ b/shared-bindings/digitalio/DigitalInOut.c
@@ -44,10 +44,7 @@
#include "supervisor/shared/translate.h"
//| class DigitalInOut:
-//| """.. currentmodule:: digitalio
-//|
-//| :class:`DigitalInOut` -- digital input and output
-//| =========================================================
+//| """Digital input and output
//|
//| A DigitalInOut is used to digitally control I/O pins. For analog control of
//| a pin, see the :py:class:`analogio.AnalogIn` and
diff --git a/shared-bindings/digitalio/Direction.c b/shared-bindings/digitalio/Direction.c
index 0586e95def61..dbd0e93e4756 100644
--- a/shared-bindings/digitalio/Direction.c
+++ b/shared-bindings/digitalio/Direction.c
@@ -39,10 +39,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
//| class Direction:
-//| """.. currentmodule:: digitalio
-//|
-//| :class:`Direction` -- defines the direction of a digital pin
-//| ============================================================="""
+//| """Defines the direction of a digital pin"""
//|
//| def __init__(self, ):
//| """Enum-like class to define which direction the digital values are
diff --git a/shared-bindings/digitalio/DriveMode.c b/shared-bindings/digitalio/DriveMode.c
index 23745b04694c..31b682d3883e 100644
--- a/shared-bindings/digitalio/DriveMode.c
+++ b/shared-bindings/digitalio/DriveMode.c
@@ -27,10 +27,7 @@
#include "shared-bindings/digitalio/DriveMode.h"
//| class DriveMode:
-//| """.. currentmodule:: digitalio
-//|
-//| :class:`DriveMode` -- defines the drive mode of a digital pin
-//| ============================================================="""
+//| """Defines the drive mode of a digital pin"""
//|
//| def __init__(self, ):
//| """Enum-like class to define the drive mode used when outputting
diff --git a/shared-bindings/digitalio/Pull.c b/shared-bindings/digitalio/Pull.c
index 1e64d0788702..9aeec1f331ca 100644
--- a/shared-bindings/digitalio/Pull.c
+++ b/shared-bindings/digitalio/Pull.c
@@ -27,10 +27,7 @@
#include "shared-bindings/digitalio/Pull.h"
//| class Pull:
-//| """.. currentmodule:: digitalio
-//|
-//| :class:`Pull` -- defines the pull of a digital input pin
-//| ============================================================="""
+//| """Defines the pull of a digital input pin"""
//|
//| def __init__(self, ):
//| """Enum-like class to define the pull value, if any, used while reading
diff --git a/shared-bindings/digitalio/__init__.c b/shared-bindings/digitalio/__init__.c
index 5a11436a2315..f8f45b158b67 100644
--- a/shared-bindings/digitalio/__init__.c
+++ b/shared-bindings/digitalio/__init__.c
@@ -38,25 +38,10 @@
#include "py/runtime.h"
-//| """:mod:`digitalio` --- Basic digital pin support
-//| =================================================
-//|
-//| .. module:: digitalio
-//| :synopsis: Basic digital pin support
-//| :platform: SAMD21, ESP8266
+//| """Basic digital pin support
//|
//| The `digitalio` module contains classes to provide access to basic digital IO.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| DigitalInOut
-//| Direction
-//| DriveMode
-//| Pull
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/displayio/Bitmap.c b/shared-bindings/displayio/Bitmap.c
index d15c3b10787d..a52840f2e086 100644
--- a/shared-bindings/displayio/Bitmap.c
+++ b/shared-bindings/displayio/Bitmap.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class Bitmap:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`Bitmap` -- Stores values in a 2D array
-//| ==========================================================================
-//|
-//| Stores values of a certain size in a 2D array"""
+//| """Stores values of a certain size in a 2D array"""
//|
//| def __init__(self, width: int, height: int, value_count: int):
//| """Create a Bitmap object with the given fixed size. Each pixel stores a value that is used to
diff --git a/shared-bindings/displayio/ColorConverter.c b/shared-bindings/displayio/ColorConverter.c
index 1d6e5a0cc908..505e9f766542 100644
--- a/shared-bindings/displayio/ColorConverter.c
+++ b/shared-bindings/displayio/ColorConverter.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class ColorConverter:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`ColorConverter` -- Converts one color format to another
-//| =========================================================================================
-//|
-//| Converts one color format to another."""
+//| """Converts one color format to another."""
//|
//| def __init__(self, *, dither: bool = False):
//| """Create a ColorConverter object to convert color formats. Only supports RGB888 to RGB565
diff --git a/shared-bindings/displayio/Display.c b/shared-bindings/displayio/Display.c
index 12abec1c8322..62ef0f5d008b 100644
--- a/shared-bindings/displayio/Display.c
+++ b/shared-bindings/displayio/Display.c
@@ -40,10 +40,7 @@
#include "supervisor/shared/translate.h"
//| class Display:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`Display` -- Manage updating a display over a display bus
-//| ==========================================================================
+//| """Manage updating a display over a display bus
//|
//| This initializes a display and connects it into CircuitPython. Unlike other
//| objects in CircuitPython, Display objects live until `displayio.release_displays()`
diff --git a/shared-bindings/displayio/EPaperDisplay.c b/shared-bindings/displayio/EPaperDisplay.c
index 8b03ddc067ed..8b77e4df3769 100644
--- a/shared-bindings/displayio/EPaperDisplay.c
+++ b/shared-bindings/displayio/EPaperDisplay.c
@@ -40,10 +40,7 @@
#include "supervisor/shared/translate.h"
//| class EPaperDisplay:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`EPaperDisplay` -- Manage updating an epaper display over a display bus
-//| ==============================================================================
+//| """Manage updating an epaper display over a display bus
//|
//| This initializes an epaper display and connects it into CircuitPython. Unlike other
//| objects in CircuitPython, EPaperDisplay objects live until `displayio.release_displays()`
diff --git a/shared-bindings/displayio/FourWire.c b/shared-bindings/displayio/FourWire.c
index 649045039ec5..5ee4ec5a9acc 100644
--- a/shared-bindings/displayio/FourWire.c
+++ b/shared-bindings/displayio/FourWire.c
@@ -39,12 +39,7 @@
#include "supervisor/shared/translate.h"
//| class FourWire:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`FourWire` -- Manage updating a display over SPI four wire protocol
-//| ==========================================================================
-//|
-//| Manage updating a display over SPI four wire protocol in the background while Python code runs.
+//| """Manage updating a display over SPI four wire protocol in the background while Python code runs.
//| It doesn't handle display initialization."""
//|
//| def __init__(self, spi_bus: busio.SPI, *, command: microcontroller.Pin, chip_select: microcontroller.Pin, reset: microcontroller.Pin = None, baudrate: int = 24000000, polarity: int = 0, phase: int = 0):
diff --git a/shared-bindings/displayio/Group.c b/shared-bindings/displayio/Group.c
index 36e137dc9b19..b6f96883b913 100644
--- a/shared-bindings/displayio/Group.c
+++ b/shared-bindings/displayio/Group.c
@@ -36,12 +36,7 @@
#include "supervisor/shared/translate.h"
//| class Group:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`Group` -- Group together sprites and subgroups
-//| ==========================================================================
-//|
-//| Manage a group of sprites and groups and how they are inter-related."""
+//| """Manage a group of sprites and groups and how they are inter-related."""
//|
//| def __init__(self, *, max_size: int = 4, scale: int = 1, x: int = 0, y: int = 0):
//| """Create a Group of a given size and scale. Scale is in one dimension. For example, scale=2
diff --git a/shared-bindings/displayio/I2CDisplay.c b/shared-bindings/displayio/I2CDisplay.c
index e2402dc49b46..0cfac66720d4 100644
--- a/shared-bindings/displayio/I2CDisplay.c
+++ b/shared-bindings/displayio/I2CDisplay.c
@@ -39,12 +39,7 @@
#include "supervisor/shared/translate.h"
//| class I2CDisplay:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`I2CDisplay` -- Manage updating a display over I2C
-//| ==========================================================================
-//|
-//| Manage updating a display over I2C in the background while Python code runs.
+//| """Manage updating a display over I2C in the background while Python code runs.
//| It doesn't handle display initialization."""
//|
//| def __init__(self, i2c_bus: busio.I2C, *, device_address: int, reset: microcontroller.Pin = None):
diff --git a/shared-bindings/displayio/OnDiskBitmap.c b/shared-bindings/displayio/OnDiskBitmap.c
index 95c890c3b9cb..170873653ad6 100644
--- a/shared-bindings/displayio/OnDiskBitmap.c
+++ b/shared-bindings/displayio/OnDiskBitmap.c
@@ -34,12 +34,7 @@
#include "shared-bindings/displayio/OnDiskBitmap.h"
//| class OnDiskBitmap:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`OnDiskBitmap` -- Loads pixels straight from disk
-//| ==========================================================================
-//|
-//| Loads values straight from disk. This minimizes memory use but can lead to
+//| """Loads values straight from disk. This minimizes memory use but can lead to
//| much slower pixel load times. These load times may result in frame tearing where only part of
//| the image is visible.
//|
diff --git a/shared-bindings/displayio/Palette.c b/shared-bindings/displayio/Palette.c
index 5df11d2b10d9..871b2b06af92 100644
--- a/shared-bindings/displayio/Palette.c
+++ b/shared-bindings/displayio/Palette.c
@@ -43,12 +43,7 @@
//| class Palette:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`Palette` -- Stores a mapping from bitmap pixel palette_indexes to display colors
-//| =========================================================================================
-//|
-//| Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to
+//| """Map a pixel palette_index to a full color. Colors are transformed to the display's format internally to
//| save memory."""
//|
//| def __init__(self, color_count: int):
diff --git a/shared-bindings/displayio/ParallelBus.c b/shared-bindings/displayio/ParallelBus.c
index cedcf1de52a3..eb75ecc03899 100644
--- a/shared-bindings/displayio/ParallelBus.c
+++ b/shared-bindings/displayio/ParallelBus.c
@@ -38,12 +38,7 @@
#include "supervisor/shared/translate.h"
//| class ParallelBus:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`ParallelBus` -- Manage updating a display over 8-bit parallel bus
-//| ==============================================================================
-//|
-//| Manage updating a display over 8-bit parallel bus in the background while Python code runs. This
+//| """Manage updating a display over 8-bit parallel bus in the background while Python code runs. This
//| protocol may be refered to as 8080-I Series Parallel Interface in datasheets. It doesn't handle
//| display initialization."""
//|
diff --git a/shared-bindings/displayio/Shape.c b/shared-bindings/displayio/Shape.c
index 0f22bb2a3e36..fce89c77167e 100644
--- a/shared-bindings/displayio/Shape.c
+++ b/shared-bindings/displayio/Shape.c
@@ -35,12 +35,7 @@
#include "supervisor/shared/translate.h"
//| class Shape:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`Shape` -- Represents a shape by defining its bounds on each row
-//| ==========================================================================
-//|
-//| Represents any shape made by defining boundaries that may be mirrored."""
+//| """Represents a shape made by defining boundaries that may be mirrored."""
//|
//| def __init__(self, width: int, height: int, *, mirror_x: bool = False, mirror_y: bool = False):
//| """Create a Shape object with the given fixed size. Each pixel is one bit and is stored by the
diff --git a/shared-bindings/displayio/TileGrid.c b/shared-bindings/displayio/TileGrid.c
index e7410e4b6718..01fba46a58ea 100644
--- a/shared-bindings/displayio/TileGrid.c
+++ b/shared-bindings/displayio/TileGrid.c
@@ -41,10 +41,7 @@
#include "supervisor/shared/translate.h"
//| class TileGrid:
-//| """.. currentmodule:: displayio
-//|
-//| :class:`TileGrid` -- A grid of tiles sourced out of one bitmap
-//| ==========================================================================
+//| """A grid of tiles sourced out of one bitmap
//|
//| Position a grid of tiles sourced from a bitmap and pixel_shader combination. Multiple grids
//| can share bitmaps and pixel shaders.
diff --git a/shared-bindings/displayio/__init__.c b/shared-bindings/displayio/__init__.c
index 37c02532924a..b791336b5686 100644
--- a/shared-bindings/displayio/__init__.c
+++ b/shared-bindings/displayio/__init__.c
@@ -43,33 +43,10 @@
#include "shared-bindings/displayio/Shape.h"
#include "shared-bindings/displayio/TileGrid.h"
-//| """:mod:`displayio` --- Native display driving
-//| =========================================================================
-//|
-//| .. module:: displayio
-//| :synopsis: Native helpers for driving displays
-//| :platform: SAMD21, SAMD51, nRF52
+//| """Native helpers for driving displays
//|
//| The `displayio` module contains classes to manage display output
-//| including synchronizing with refresh rates and partial updating.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Bitmap
-//| ColorConverter
-//| Display
-//| EPaperDisplay
-//| FourWire
-//| Group
-//| I2CDisplay
-//| OnDiskBitmap
-//| Palette
-//| ParallelBus
-//| Shape
-//| TileGrid"""
+//| including synchronizing with refresh rates and partial updating."""
//|
diff --git a/shared-bindings/fontio/BuiltinFont.c b/shared-bindings/fontio/BuiltinFont.c
index f60c9e36c761..bf9a65873902 100644
--- a/shared-bindings/fontio/BuiltinFont.c
+++ b/shared-bindings/fontio/BuiltinFont.c
@@ -37,12 +37,7 @@
#include "supervisor/shared/translate.h"
//| class BuiltinFont:
-//| """.. currentmodule:: fontio
-//|
-//| :class:`BuiltinFont` -- A font built into CircuitPython
-//| =========================================================================================
-//|
-//| A font built into CircuitPython."""
+//| """A font built into CircuitPython"""
//|
//| def __init__(self, ):
//| """Creation not supported. Available fonts are defined when CircuitPython is built. See the
diff --git a/shared-bindings/fontio/Glyph.c b/shared-bindings/fontio/Glyph.c
index 6235dbc46f54..6558e2e7a1ec 100644
--- a/shared-bindings/fontio/Glyph.c
+++ b/shared-bindings/fontio/Glyph.c
@@ -29,22 +29,27 @@
#include
//| class Glyph:
-//| """.. currentmodule:: fontio
+//| """Storage of glyph info"""
//|
-//| :class:`Glyph` -- Storage of glyph info
-//| =========================================================================="""
-//|
-//| def __init__(self, bitmap: displayio.Bitmap, tile_index: int, width: int, height: int, dx: int, dy: int, shift_x: int, shift_y: int):
+//| def __init__(self,
+//| bitmap: displayio.Bitmap,
+//| tile_index: int,
+//| width: int,
+//| height: int,
+//| dx: int,
+//| dy: int,
+//| shift_x: int,
+//| shift_y: int):
//| """Named tuple used to capture a single glyph and its attributes.
//|
-//| :param displayio.Bitmap bitmap: the bitmap including the glyph
-//| :param int tile_index: the tile index within the bitmap
-//| :param int width: the width of the glyph's bitmap
-//| :param int height: the height of the glyph's bitmap
-//| :param int dx: x adjustment to the bitmap's position
-//| :param int dy: y adjustment to the bitmap's position
-//| :param int shift_x: the x difference to the next glyph
-//| :param int shift_y: the y difference to the next glyph"""
+//| :param bitmap: the bitmap including the glyph
+//| :param tile_index: the tile index within the bitmap
+//| :param width: the width of the glyph's bitmap
+//| :param height: the height of the glyph's bitmap
+//| :param dx: x adjustment to the bitmap's position
+//| :param dy: y adjustment to the bitmap's position
+//| :param shift_x: the x difference to the next glyph
+//| :param shift_y: the y difference to the next glyph"""
//| ...
//|
const mp_obj_namedtuple_type_t fontio_glyph_type = {
diff --git a/shared-bindings/fontio/__init__.c b/shared-bindings/fontio/__init__.c
index 478fc18068e4..f376f3503569 100644
--- a/shared-bindings/fontio/__init__.c
+++ b/shared-bindings/fontio/__init__.c
@@ -33,22 +33,7 @@
#include "shared-bindings/fontio/BuiltinFont.h"
#include "shared-bindings/fontio/Glyph.h"
-//| """:mod:`fontio` --- Core font related data structures
-//| =========================================================================
-//|
-//| .. module:: fontio
-//| :synopsis: Core font related data structures
-//| :platform: SAMD21, SAMD51, nRF52
-//|
-//| The `fontio` module contains classes to store font related information.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| BuiltinFont
-//| Glyph"""
+//| """Core font related data structures"""
//|
STATIC const mp_rom_map_elem_t fontio_module_globals_table[] = {
diff --git a/shared-bindings/framebufferio/FramebufferDisplay.c b/shared-bindings/framebufferio/FramebufferDisplay.c
index 5e63b988e3a0..51ef0905990d 100644
--- a/shared-bindings/framebufferio/FramebufferDisplay.c
+++ b/shared-bindings/framebufferio/FramebufferDisplay.c
@@ -41,10 +41,7 @@
#include "supervisor/shared/translate.h"
//| class FramebufferDisplay:
-//| """.. currentmodule:: framebufferio
-//|
-//| :class:`FramebufferDisplay` -- Manage updating a display with framebuffer in RAM
-//| ================================================================================
+//| """Manage updating a display with framebuffer in RAM
//|
//| This initializes a display and connects it into CircuitPython. Unlike other
//| objects in CircuitPython, Display objects live until `displayio.release_displays()`
diff --git a/shared-bindings/framebufferio/__init__.c b/shared-bindings/framebufferio/__init__.c
index 50725c515062..492423464a70 100644
--- a/shared-bindings/framebufferio/__init__.c
+++ b/shared-bindings/framebufferio/__init__.c
@@ -28,25 +28,13 @@
#include "shared-bindings/framebufferio/__init__.h"
#include "shared-bindings/framebufferio/FramebufferDisplay.h"
-//| """:mod:`framebufferio` --- Native framebuffer display driving
-//| =========================================================================
-//|
-//| .. module:: framebufferio
-//| :synopsis: Native helpers for driving displays
-//| :platform: SAMD51, nRF52
+//| """Native framebuffer display driving
//|
//| The `framebufferio` module contains classes to manage display output
//| including synchronizing with refresh rates and partial updating.
//| It is used in conjunction with classes from `displayio` to actually
//| place items on the display; and classes like `RGBMatrix` to actually
-//| drive the display.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| FramebufferDisplay"""
+//| drive the display."""
//|
#if CIRCUITPY_FRAMEBUFFERIO
diff --git a/shared-bindings/frequencyio/FrequencyIn.c b/shared-bindings/frequencyio/FrequencyIn.c
index 270fa87c311a..2d628088b72a 100644
--- a/shared-bindings/frequencyio/FrequencyIn.c
+++ b/shared-bindings/frequencyio/FrequencyIn.c
@@ -36,10 +36,7 @@
#include "supervisor/shared/translate.h"
//| class FrequencyIn:
-//| """.. currentmodule:: frequencyio
-//|
-//| :class:`FrequencyIn` -- Read a frequency signal
-//| ========================================================
+//| """Read a frequency signal
//|
//| FrequencyIn is used to measure the frequency, in hertz, of a digital signal
//| on an incoming pin. Accuracy has shown to be within 10%, if not better. It
diff --git a/shared-bindings/frequencyio/__init__.c b/shared-bindings/frequencyio/__init__.c
index 219d5f64529c..031004d4b48d 100644
--- a/shared-bindings/frequencyio/__init__.c
+++ b/shared-bindings/frequencyio/__init__.c
@@ -33,23 +33,8 @@
#include "shared-bindings/frequencyio/__init__.h"
#include "shared-bindings/frequencyio/FrequencyIn.h"
-//| """:mod:`frequencyio` --- Support for frequency based protocols
-//| =============================================================
+//| """Support for frequency based protocols
//|
-//| .. module:: frequencyio
-//| :synopsis: Support for frequency based protocols
-//| :platform: SAMD51
-//|
-//| The `frequencyio` module contains classes to provide access to basic frequency IO.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| FrequencyIn
-//|
-
//| .. warning:: This module is not available in SAMD21 builds. See the
//| :ref:`module-support-matrix` for more info.
//|
diff --git a/shared-bindings/gamepad/GamePad.c b/shared-bindings/gamepad/GamePad.c
index 946a24dbff33..a750892fefea 100644
--- a/shared-bindings/gamepad/GamePad.c
+++ b/shared-bindings/gamepad/GamePad.c
@@ -35,10 +35,7 @@
#include "supervisor/shared/translate.h"
//| class GamePad:
-//| """.. currentmodule:: gamepad
-//|
-//| :class:`GamePad` -- Scan buttons for presses
-//| ============================================
+//| """Scan buttons for presses
//|
//| Usage::
//|
@@ -90,7 +87,7 @@
//| on delays.
//|
//| They button presses are accumulated, until the ``get_pressed`` method
-//| is called, at which point the button state is cleared, and the new
+//| is called, at which point the button state is cleared, and the new
//| button presses start to be recorded."""
//| ...
//|
diff --git a/shared-bindings/gamepad/__init__.c b/shared-bindings/gamepad/__init__.c
index 0c32fd6c1ca0..557777f50bbe 100644
--- a/shared-bindings/gamepad/__init__.c
+++ b/shared-bindings/gamepad/__init__.c
@@ -29,17 +29,7 @@
#include "shared-bindings/gamepad/GamePad.h"
#include "shared-bindings/util.h"
-//| """:mod:`gamepad` --- Button handling
-//| ==================================
-//|
-//| .. module:: gamepad
-//| :synopsis: Button handling
-//| :platform: SAMD21
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| GamePad"""
+//| """Button handling in the background"""
//|
STATIC const mp_rom_map_elem_t gamepad_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_gamepad) },
diff --git a/shared-bindings/gamepadshift/GamePadShift.c b/shared-bindings/gamepadshift/GamePadShift.c
index 37be3d957636..48b579457ddc 100644
--- a/shared-bindings/gamepadshift/GamePadShift.c
+++ b/shared-bindings/gamepadshift/GamePadShift.c
@@ -33,10 +33,7 @@
#include "supervisor/shared/translate.h"
//| class GamePadShift:
-//| """.. currentmodule:: gamepadshift
-//|
-//| :class:`GamePadShift` -- Scan buttons for presses through a shift register
-//| ==========================================================================="""
+//| """Scan buttons for presses through a shift register"""
//|
//| def __init__(self, clock: Any, data: Any, latch: Any):
//| """Initializes button scanning routines.
diff --git a/shared-bindings/gamepadshift/__init__.c b/shared-bindings/gamepadshift/__init__.c
index 3763b04877d5..f1713589307c 100644
--- a/shared-bindings/gamepadshift/__init__.c
+++ b/shared-bindings/gamepadshift/__init__.c
@@ -30,17 +30,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "shared-bindings/util.h"
-//| """:mod:`gamepadshift` --- Tracks button presses read through a shift register
-//| ===========================================================================
-//|
-//| .. module:: gamepadshift
-//| :synopsis: Tracks button presses read through a shift register
-//| :platform: SAMD21, SAMD51
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| GamePadShift"""
+//| """Tracks button presses read through a shift register"""
//|
STATIC const mp_rom_map_elem_t gamepadshift_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_gamepadshift) },
diff --git a/shared-bindings/help.c b/shared-bindings/help.c
deleted file mode 100644
index 4e7c3a78bbad..000000000000
--- a/shared-bindings/help.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of the MicroPython project, http://micropython.org/
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-//| :func:`help` - Built-in method to provide helpful information
-//| ==============================================================
-//|
-//| .. function:: help(object=None)
-//|
-//| Prints a help method about the given object. When ``object`` is none,
-//| prints general port information.
-//|
diff --git a/shared-bindings/help.rst b/shared-bindings/help.rst
new file mode 100644
index 000000000000..63991bff2c6b
--- /dev/null
+++ b/shared-bindings/help.rst
@@ -0,0 +1,31 @@
+# This file is part of the MicroPython project, http://micropython.org/
+#
+# The MIT License (MIT)
+#
+# Copyright (c) 2016 Scott Shawcroft for Adafruit Industries
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+:func:`help` - Built-in method to provide helpful information
+==============================================================
+
+.. function:: help(object=None)
+
+ Prints a help method about the given object. When ``object`` is none,
+ prints general port information.
diff --git a/shared-bindings/i2cslave/I2CSlave.c b/shared-bindings/i2cslave/I2CSlave.c
index 5bab2af74e15..80875ce75823 100644
--- a/shared-bindings/i2cslave/I2CSlave.c
+++ b/shared-bindings/i2cslave/I2CSlave.c
@@ -50,10 +50,7 @@ STATIC mp_obj_t mp_obj_new_i2cslave_i2c_slave_request(i2cslave_i2c_slave_obj_t *
}
//| class I2CSlave:
-//| """.. currentmodule:: i2cslave
-//|
-//| :class:`I2CSlave` --- Two wire serial protocol slave
-//| ----------------------------------------------------"""
+//| """Two wire serial protocol slave"""
//|
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, addresses: tuple, smbus: bool = False):
//| """I2C is a two-wire protocol for communicating between devices.
@@ -229,17 +226,15 @@ const mp_obj_type_t i2cslave_i2c_slave_type = {
};
//| class I2CSlaveRequest:
-//| """:class:`I2CSlaveRequest` --- I2C Slave Request
-//| ----------------------------------------------"""
//|
//| def __init__(self, slave: i2cslave.I2CSlave, address: int, is_read: bool, is_restart: bool):
//| """I2C transfer request from a master.
//| This cannot be instantiated directly, but is returned by :py:meth:`I2CSlave.request`.
//|
-//| :param ~i2cslave.I2CSlave slave: The I2C Slave receiving this request
-//| :param int address: I2C address
-//| :param bool is_read: I2C Master read request
-//| :param bool is_restart: Repeated Start Condition"""
+//| :param slave: The I2C Slave receiving this request
+//| :param address: I2C address
+//| :param is_read: I2C Master read request
+//| :param is_restart: Repeated Start Condition"""
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *args, mp_map_t *kw_args) {
mp_arg_check_num(n_args, kw_args, 4, 4, false);
@@ -264,7 +259,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_obj___exit__(size_t n_args, const mp_
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(i2cslave_i2c_slave_request___exit___obj, 4, 4, i2cslave_i2c_slave_request_obj___exit__);
-//| address: Any = ...
+//| address: int = ...
//| """The I2C address of the request."""
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_get_address(mp_obj_t self_in) {
@@ -274,7 +269,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_get_address(mp_obj_t self_in) {
}
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_address_obj, i2cslave_i2c_slave_request_get_address);
-//| is_read: Any = ...
+//| is_read: bool = ...
//| """The I2C master is reading from the device."""
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_read(mp_obj_t self_in) {
@@ -284,7 +279,7 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_read(mp_obj_t self_in) {
}
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_is_read_obj, i2cslave_i2c_slave_request_get_is_read);
-//| is_restart: Any = ...
+//| is_restart: bool = ...
//| """Is Repeated Start Condition."""
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_restart(mp_obj_t self_in) {
@@ -294,14 +289,13 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_get_is_restart(mp_obj_t self_in) {
}
MP_DEFINE_CONST_PROP_GET(i2cslave_i2c_slave_request_is_restart_obj, i2cslave_i2c_slave_request_get_is_restart);
-//| def read(self, n: int = -1, ack: bool = True) -> Any:
+//| def read(self, n: int = -1, ack: bool = True) -> bytearray:
//| """Read data.
//| If ack=False, the caller is responsible for calling :py:meth:`I2CSlaveRequest.ack`.
//|
-//| :param int n: Number of bytes to read (negative means all)
-//| :param bool ack: Whether or not to send an ACK after the n'th byte
-//| :return: Bytes read
-//| :rtype: bytearray"""
+//| :param n: Number of bytes to read (negative means all)
+//| :param ack: Whether or not to send an ACK after the n'th byte
+//| :return: Bytes read"""
//| ...
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_read(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
@@ -355,10 +349,10 @@ STATIC mp_obj_t i2cslave_i2c_slave_request_read(size_t n_args, const mp_obj_t *p
}
MP_DEFINE_CONST_FUN_OBJ_KW(i2cslave_i2c_slave_request_read_obj, 1, i2cslave_i2c_slave_request_read);
-//| def write(self, buffer: bytearray) -> Any:
+//| def write(self, buffer: bytearray) -> int:
//| """Write the data contained in buffer.
//|
-//| :param bytearray buffer: Write out the data in this buffer
+//| :param buffer: Write out the data in this buffer
//| :return: Number of bytes written"""
//| ...
//|
@@ -393,7 +387,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(i2cslave_i2c_slave_request_write_obj, i2cslave_
//| """Acknowledge or Not Acknowledge last byte received.
//| Use together with :py:meth:`I2CSlaveRequest.read` ack=False.
//|
-//| :param bool ack: Whether to send an ACK or NACK"""
+//| :param ack: Whether to send an ACK or NACK"""
//| ...
//|
STATIC mp_obj_t i2cslave_i2c_slave_request_ack(uint n_args, const mp_obj_t *args) {
diff --git a/shared-bindings/i2cslave/__init__.c b/shared-bindings/i2cslave/__init__.c
index ffeb216faeb3..41b42fef83f8 100644
--- a/shared-bindings/i2cslave/__init__.c
+++ b/shared-bindings/i2cslave/__init__.c
@@ -35,22 +35,10 @@
#include "py/runtime.h"
-//| """:mod:`i2cslave` --- Two wire serial protocol slave
-//| ==================================================
-//|
-//| .. module:: i2cslave
-//| :synopsis: Two wire serial protocol slave
-//| :platform: SAMD21, SAMD51
+//| """Two wire serial protocol slave
//|
//| The `i2cslave` module contains classes to support a I2C slave.
//|
-//| Classes
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| I2CSlave
-//|
//| Example emulating 2 devices::
//|
//| import board
diff --git a/shared-bindings/index.rst b/shared-bindings/index.rst
index cbffdb614089..d94177394369 100644
--- a/shared-bindings/index.rst
+++ b/shared-bindings/index.rst
@@ -7,13 +7,17 @@ present or if flash space is limited. For example, a microcontroller without
analog features will not have `analogio`. See the `support_matrix` page for
a list of modules supported on each board.
+.. toctree::
+ :hidden:
+
+ support_matrix
+
Modules
---------
.. toctree::
:glob:
- :maxdepth: 3
+ :maxdepth: 2
- support_matrix
- */__init__
+ ../autoapi/*/index
help
diff --git a/shared-bindings/math/__init__.c b/shared-bindings/math/__init__.c
index 755bf75897e5..56155306ffab 100644
--- a/shared-bindings/math/__init__.c
+++ b/shared-bindings/math/__init__.c
@@ -38,12 +38,7 @@
#define MP_PI MICROPY_FLOAT_CONST(3.14159265358979323846)
-//| """:mod:`math` --- mathematical functions
-//| ========================================================
-//|
-//| .. module:: math
-//| :synopsis: mathematical functions
-//| :platform: SAMD21/SAMD51
+//| """mathematical functions
//|
//| The `math` module provides some basic mathematical functions for
//| working with floating-point numbers."""
diff --git a/shared-bindings/microcontroller/Pin.c b/shared-bindings/microcontroller/Pin.c
index cad0d67b1d46..765e602e5f56 100644
--- a/shared-bindings/microcontroller/Pin.c
+++ b/shared-bindings/microcontroller/Pin.c
@@ -34,12 +34,7 @@
#include "supervisor/shared/translate.h"
//| class Pin:
-//| """.. currentmodule:: microcontroller
-//|
-//| :class:`Pin` --- Pin reference
-//| ------------------------------------------
-//|
-//| Identifies an IO pin on the microcontroller."""
+//| """Identifies an IO pin on the microcontroller."""
//|
//| def __init__(self, ):
//| """Identifies an IO pin on the microcontroller. They are fixed by the
diff --git a/shared-bindings/microcontroller/Processor.c b/shared-bindings/microcontroller/Processor.c
index dedb5a27c21c..c4b24912478f 100644
--- a/shared-bindings/microcontroller/Processor.c
+++ b/shared-bindings/microcontroller/Processor.c
@@ -35,12 +35,7 @@
#include "py/runtime.h"
//| class Processor:
-//| """.. currentmodule:: microcontroller
-//|
-//| :class:`Processor` --- Microcontroller CPU information and control
-//| ------------------------------------------------------------------
-//|
-//| Get information about the microcontroller CPU and control it.
+//| """Microcontroller CPU information and control
//|
//| Usage::
//|
@@ -55,8 +50,8 @@
//| ...
//|
-//| frequency: Any = ...
-//| """The CPU operating frequency as an `int`, in Hertz. (read-only)"""
+//| frequency: int = ...
+//| """The CPU operating frequency in Hertz. (read-only)"""
//|
STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) {
return mp_obj_new_int_from_uint(common_hal_mcu_processor_get_frequency());
diff --git a/shared-bindings/microcontroller/RunMode.c b/shared-bindings/microcontroller/RunMode.c
index df3ff418683a..6db315d8d94c 100644
--- a/shared-bindings/microcontroller/RunMode.c
+++ b/shared-bindings/microcontroller/RunMode.c
@@ -27,10 +27,7 @@
#include "shared-bindings/microcontroller/RunMode.h"
//| class RunMode:
-//| """.. currentmodule:: microcontroller
-//|
-//| :class:`RunMode` -- run state of the microcontroller
-//| ============================================================="""
+//| """run state of the microcontroller"""
//|
//| def __init__(self, ):
//| """Enum-like class to define the run mode of the microcontroller and
diff --git a/shared-bindings/microcontroller/__init__.c b/shared-bindings/microcontroller/__init__.c
index 75b76398083f..21e1c90a92c7 100644
--- a/shared-bindings/microcontroller/__init__.c
+++ b/shared-bindings/microcontroller/__init__.c
@@ -42,27 +42,13 @@
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`microcontroller` --- Pin references and cpu functionality
-//| ================================================================
-//|
-//| .. module:: microcontroller
-//| :synopsis: Pin references and core functionality
-//| :platform: SAMD21, ESP8266
+//| """Pin references and cpu functionality
//|
//| The `microcontroller` module defines the pins from the perspective of the
-//| microcontroller. See `board` for board-specific pin mappings.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Pin
-//| Processor
-//| RunMode"""
+//| microcontroller. See `board` for board-specific pin mappings."""
//|
-//| cpu: Any = ...
+//| cpu: Processor = ...
//| """CPU information and control, such as ``cpu.temperature`` and ``cpu.frequency``
//| (clock frequency).
//| This object is the sole instance of `microcontroller.Processor`."""
diff --git a/shared-bindings/multiterminal/__init__.c b/shared-bindings/multiterminal/__init__.c
index 3a40650191d3..baf2fb674985 100644
--- a/shared-bindings/multiterminal/__init__.c
+++ b/shared-bindings/multiterminal/__init__.c
@@ -30,12 +30,7 @@
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`multiterminal` --- Manage additional terminal sources
-//| ===========================================================
-//|
-//| .. module:: multiterminal
-//| :synopsis: Manage additional terminal sources
-//| :platform: ESP8266
+//| """Manage additional terminal sources
//|
//| The `multiterminal` module allows you to configure an additional serial
//| terminal source. Incoming characters are accepted from both the internal
diff --git a/shared-bindings/neopixel_write/__init__.c b/shared-bindings/neopixel_write/__init__.c
index f18c7fdfd13c..5e5bc31eb7a1 100644
--- a/shared-bindings/neopixel_write/__init__.c
+++ b/shared-bindings/neopixel_write/__init__.c
@@ -31,12 +31,7 @@
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`neopixel_write` --- Low-level neopixel implementation
-//| ===========================================================
-//|
-//| .. module:: neopixel_write
-//| :synopsis: Low-level neopixel implementation
-//| :platform: SAMD21
+//| """Low-level neopixel implementation
//|
//| The `neopixel_write` module contains a helper method to write out bytes in
//| the 800khz neopixel protocol.
@@ -55,11 +50,11 @@
//| pixel_off = bytearray([0, 0, 0])
//| neopixel_write.neopixel_write(pin, pixel_off)"""
//|
-//| def neopixel_write(digitalinout: digitalio.DigitalInOut, buf: bytearray) -> Any:
+//| def neopixel_write(digitalinout: digitalio.DigitalInOut, buf: bytearray) -> None:
//| """Write buf out on the given DigitalInOut.
//|
-//| :param ~digitalio.DigitalInOut digitalinout: the DigitalInOut to output with
-//| :param bytearray buf: The bytes to clock out. No assumption is made about color order"""
+//| :param digitalinout: the DigitalInOut to output with
+//| :param buf: The bytes to clock out. No assumption is made about color order"""
//| ...
STATIC mp_obj_t neopixel_write_neopixel_write_(mp_obj_t digitalinout_obj, mp_obj_t buf) {
if (!MP_OBJ_IS_TYPE(digitalinout_obj, &digitalio_digitalinout_type)) {
diff --git a/shared-bindings/network/__init__.c b/shared-bindings/network/__init__.c
index 4f03781cf48b..6af86688eb18 100644
--- a/shared-bindings/network/__init__.c
+++ b/shared-bindings/network/__init__.c
@@ -38,12 +38,7 @@
#if CIRCUITPY_NETWORK
-//| """:mod:`network` --- Network Interface Management
-//| ===============================================
-//|
-//| .. module:: network
-//| :synopsis: Network Interface Management
-//| :platform: SAMD
+//| """Network Interface Management
//|
//| This module provides a registry of configured NICs.
//| It is used by the 'socket' module to look up a suitable
diff --git a/shared-bindings/nvm/ByteArray.c b/shared-bindings/nvm/ByteArray.c
index a28c2c4f9a78..326f719a836e 100644
--- a/shared-bindings/nvm/ByteArray.c
+++ b/shared-bindings/nvm/ByteArray.c
@@ -31,14 +31,8 @@
#include "shared-bindings/nvm/ByteArray.h"
#include "supervisor/shared/translate.h"
-
-
-
//| class ByteArray:
-//| """.. currentmodule:: nvm
-//|
-//| :class:`ByteArray` -- Presents a stretch of non-volatile memory as a bytearray.
-//| ================================================================================
+//| """Presents a stretch of non-volatile memory as a bytearray.
//|
//| Non-volatile memory is available as a byte array that persists over reloads
//| and power cycles. Each assignment causes an erase and write cycle so its recommended to assign
diff --git a/shared-bindings/nvm/__init__.c b/shared-bindings/nvm/__init__.c
index 3bd9a309b5e7..51c5bb2789da 100644
--- a/shared-bindings/nvm/__init__.c
+++ b/shared-bindings/nvm/__init__.c
@@ -31,23 +31,10 @@
#include "shared-bindings/nvm/__init__.h"
#include "shared-bindings/nvm/ByteArray.h"
-//| """:mod:`nvm` --- Non-volatile memory
-//| ===========================================================
-//|
-//| .. module:: nvm
-//| :synopsis: Non-volatile memory
-//| :platform: SAMD21
+//| """Non-volatile memory
//|
//| The `nvm` module allows you to store whatever raw bytes you wish in a
-//| reserved section non-volatile memory.
-//|
-
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| ByteArray"""
+//| reserved section non-volatile memory."""
//|
STATIC const mp_rom_map_elem_t nvm_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_nvm) },
diff --git a/shared-bindings/os/__init__.c b/shared-bindings/os/__init__.c
index 2a6b13c9b01b..4e991d089d66 100644
--- a/shared-bindings/os/__init__.c
+++ b/shared-bindings/os/__init__.c
@@ -37,12 +37,7 @@
#include "py/runtime.h"
#include "shared-bindings/os/__init__.h"
-//| """:mod:`os` --- functions that an OS normally provides
-//| ========================================================
-//|
-//| .. module:: os
-//| :synopsis: functions that an OS normally provides
-//| :platform: SAMD21
+//| """functions that an OS normally provides
//|
//| The `os` module is a strict subset of the CPython `cpython:os` module. So,
//| code written in CircuitPython will work in CPython but not necessarily the
diff --git a/shared-bindings/ps2io/Ps2.c b/shared-bindings/ps2io/Ps2.c
index d327d4180188..a87b14ddd7f9 100644
--- a/shared-bindings/ps2io/Ps2.c
+++ b/shared-bindings/ps2io/Ps2.c
@@ -37,10 +37,7 @@
#include "supervisor/shared/translate.h"
//| class Ps2:
-//| """.. currentmodule:: ps2io
-//|
-//| :class:`Ps2` -- Communicate with a PS/2 keyboard or mouse
-//| =========================================================
+//| """Communicate with a PS/2 keyboard or mouse
//|
//| Ps2 implements the PS/2 keyboard/mouse serial protocol, used in
//| legacy devices. It is similar to UART but there are only two
diff --git a/shared-bindings/ps2io/__init__.c b/shared-bindings/ps2io/__init__.c
index 081127bac4b9..38a70b1a2797 100644
--- a/shared-bindings/ps2io/__init__.c
+++ b/shared-bindings/ps2io/__init__.c
@@ -33,22 +33,10 @@
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/ps2io/Ps2.h"
-//| """:mod:`ps2io` --- Support for PS/2 protocol
-//| =====================================================
-//|
-//| .. module:: ps2io
-//| :synopsis: Support for PS/2 based devices
-//| :platform: SAMD21
+//| """Support for PS/2 protocol
//|
//| The `ps2io` module contains classes to provide PS/2 communication.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Ps2
-//|
//| .. warning:: This module is not available in some SAMD21 builds. See the
//| :ref:`module-support-matrix` for more info.
diff --git a/shared-bindings/pulseio/PWMOut.c b/shared-bindings/pulseio/PWMOut.c
index 3a25d69380d0..7970c02f3498 100644
--- a/shared-bindings/pulseio/PWMOut.c
+++ b/shared-bindings/pulseio/PWMOut.c
@@ -36,12 +36,7 @@
#include "supervisor/shared/translate.h"
//| class PWMOut:
-//| """.. currentmodule:: pulseio
-//|
-//| :class:`PWMOut` -- Output a Pulse Width Modulated signal
-//| ========================================================
-//|
-//| PWMOut can be used to output a PWM signal on a given pin."""
+//| """Output a Pulse Width Modulated signal on a given pin."""
//|
//| def __init__(self, pin: microcontroller.Pin, *, duty_cycle: int = 0, frequency: int = 500, variable_frequency: bool = False):
//| """Create a PWM object associated with the given pin. This allows you to
diff --git a/shared-bindings/pulseio/PulseIn.c b/shared-bindings/pulseio/PulseIn.c
index 9024f53e3b5b..5c52b2582252 100644
--- a/shared-bindings/pulseio/PulseIn.c
+++ b/shared-bindings/pulseio/PulseIn.c
@@ -36,15 +36,9 @@
#include "supervisor/shared/translate.h"
//| class PulseIn:
-//| """.. currentmodule:: pulseio
-//|
-//| :class:`PulseIn` -- Read a series of pulse durations
-//| ========================================================
-//|
-//| PulseIn is used to measure a series of active and idle pulses. This is
-//| commonly used in infrared receivers and low cost temperature sensors (DHT).
-//| The pulsed signal consists of timed active and idle periods. Unlike PWM,
-//| there is no set duration for active and idle pairs."""
+//| """Measure a series of active and idle pulses. This is commonly used in infrared receivers
+//| and low cost temperature sensors (DHT). The pulsed signal consists of timed active and
+//| idle periods. Unlike PWM, there is no set duration for active and idle pairs."""
//|
//| def __init__(self, pin: microcontroller.Pin, maxlen: int = 2, *, idle_state: bool = False):
//| """Create a PulseIn object associated with the given pin. The object acts as
diff --git a/shared-bindings/pulseio/PulseOut.c b/shared-bindings/pulseio/PulseOut.c
index 9c650731bb48..16b0a6f0cc55 100644
--- a/shared-bindings/pulseio/PulseOut.c
+++ b/shared-bindings/pulseio/PulseOut.c
@@ -37,14 +37,9 @@
#include "supervisor/shared/translate.h"
//| class PulseOut:
-//| """.. currentmodule:: pulseio
-//|
-//| :class:`PulseOut` -- Output a pulse train
-//| ========================================================
-//|
-//| PulseOut is used to pulse PWM "carrier" output on and off. This is commonly
-//| used in infrared remotes. The pulsed signal consists of timed on and off
-//| periods. Unlike PWM, there is no set duration for on and off pairs."""
+//| """Pulse PWM "carrier" output on and off. This is commonly used in infrared remotes. The
+//| pulsed signal consists of timed on and off periods. Unlike PWM, there is no set duration
+//| for on and off pairs."""
//|
//| def __init__(self, carrier: pulseio.PWMOut):
//| """Create a PulseOut object associated with the given PWMout object.
@@ -115,7 +110,7 @@ STATIC mp_obj_t pulseio_pulseout_obj___exit__(size_t n_args, const mp_obj_t *arg
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pulseio_pulseout___exit___obj, 4, 4, pulseio_pulseout_obj___exit__);
-//| def send(self, pulses: array.array) -> Any:
+//| def send(self, pulses: array.array) -> Any:
//| """Pulse alternating on and off durations in microseconds starting with on.
//| ``pulses`` must be an `array.array` with data type 'H' for unsigned
//| halfword (two bytes).
diff --git a/shared-bindings/pulseio/__init__.c b/shared-bindings/pulseio/__init__.c
index 70cb61fc3057..87946e5f0be1 100644
--- a/shared-bindings/pulseio/__init__.c
+++ b/shared-bindings/pulseio/__init__.c
@@ -35,24 +35,10 @@
#include "shared-bindings/pulseio/PulseOut.h"
#include "shared-bindings/pulseio/PWMOut.h"
-//| """:mod:`pulseio` --- Support for pulse based protocols
-//| =====================================================
-//|
-//| .. module:: pulseio
-//| :synopsis: Support for pulse based protocols
-//| :platform: SAMD21, ESP8266
+//| """Support for pulse based protocols
//|
//| The `pulseio` module contains classes to provide access to basic pulse IO.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| PulseIn
-//| PulseOut
-//| PWMOut
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
diff --git a/shared-bindings/random/__init__.c b/shared-bindings/random/__init__.c
index d8b266be0092..c0124df41766 100644
--- a/shared-bindings/random/__init__.c
+++ b/shared-bindings/random/__init__.c
@@ -33,12 +33,7 @@
#include "shared-bindings/random/__init__.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`random` --- pseudo-random numbers and choices
-//| ========================================================
-//|
-//| .. module:: random
-//| :synopsis: pseudo-random numbers and choices
-//| :platform: SAMD21, ESP8266
+//| """pseudo-random numbers and choices
//|
//| The `random` module is a strict subset of the CPython `cpython:random`
//| module. So, code written in CircuitPython will work in CPython but not
diff --git a/shared-bindings/rgbmatrix/RGBMatrix.c b/shared-bindings/rgbmatrix/RGBMatrix.c
index e2393eb61d1d..cbf570958add 100644
--- a/shared-bindings/rgbmatrix/RGBMatrix.c
+++ b/shared-bindings/rgbmatrix/RGBMatrix.c
@@ -39,10 +39,7 @@
#include "shared-module/framebufferio/FramebufferDisplay.h"
//| class RGBMatrix:
-//| """.. currentmodule:: rgbmatrix
-//|
-//| :class:`RGBMatrix` -- Driver for HUB75-style RGB LED matrices
-//| ================================================================
+//| """Displays an in-memory framebuffer to a HUB75-style RGB LED matrix."""
//|
extern Protomatter_core *_PM_protoPtr;
@@ -134,9 +131,6 @@ STATIC void preflight_pins_or_throw(uint8_t clock_pin, uint8_t *rgb_pins, uint8_
}
}
-
-//| :class:`~rgbmatrix.RGBMatrix` displays an in-memory framebuffer to an LED matrix."""
-//|
//| def __init__(self, *, width: Any, bit_depth: Any, rgb_pins: Any, addr_pins: Any, clock_pin: Any, latch_pin: Any, output_enable_pin: Any, doublebuffer: Any = True, framebuffer: Any = None, height: Any = 0):
//| """Create a RGBMatrix object with the given attributes. The height of
//| the display is determined by the number of rgb and address pins:
@@ -297,7 +291,7 @@ const mp_obj_property_t rgbmatrix_rgbmatrix_brightness_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| def refresh(self, ) -> Any: ...
+//| def refresh(self) -> Any: ...
//| """Transmits the color data in the buffer to the pixels so that
//| they are shown."""
//|
@@ -309,7 +303,7 @@ STATIC mp_obj_t rgbmatrix_rgbmatrix_refresh(mp_obj_t self_in) {
}
MP_DEFINE_CONST_FUN_OBJ_1(rgbmatrix_rgbmatrix_refresh_obj, rgbmatrix_rgbmatrix_refresh);
-//| width: Any = ...
+//| width: int = ...
//| """The width of the display, in pixels"""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_get_width(mp_obj_t self_in) {
@@ -325,7 +319,7 @@ const mp_obj_property_t rgbmatrix_rgbmatrix_width_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| height: Any = ...
+//| height: int = ...
//| """The height of the display, in pixels"""
//|
STATIC mp_obj_t rgbmatrix_rgbmatrix_get_height(mp_obj_t self_in) {
diff --git a/shared-bindings/rgbmatrix/__init__.c b/shared-bindings/rgbmatrix/__init__.c
index f61002a78096..7f0576652a98 100644
--- a/shared-bindings/rgbmatrix/__init__.c
+++ b/shared-bindings/rgbmatrix/__init__.c
@@ -31,16 +31,7 @@
#include "shared-bindings/rgbmatrix/RGBMatrix.h"
-//| """:mod:`rgbmatrix` --- Low-level routines for bitbanged LED matrices
-//| =====================================================================
-//|
-//| .. module:: rgbmatrix
-//| :synopsis: Low-level routines for bitbanged LED matrices
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| RGBMatrix"""
+//| """Low-level routines for bitbanged LED matrices"""
//|
STATIC const mp_rom_map_elem_t rgbmatrix_module_globals_table[] = {
diff --git a/shared-bindings/rotaryio/IncrementalEncoder.c b/shared-bindings/rotaryio/IncrementalEncoder.c
index a10fb6fd5f15..8b2723866801 100644
--- a/shared-bindings/rotaryio/IncrementalEncoder.c
+++ b/shared-bindings/rotaryio/IncrementalEncoder.c
@@ -35,12 +35,7 @@
#include "shared-bindings/util.h"
//| class IncrementalEncoder:
-//| """.. currentmodule:: rotaryio
-//|
-//| :class:`IncrementalEncoder` -- Track the relative position of an incremental encoder
-//| ====================================================================================
-//|
-//| IncrementalEncoder determines the relative rotational position based on two series of pulses."""
+//| """IncrementalEncoder determines the relative rotational position based on two series of pulses."""
//|
//| def __init__(self, pin_a: microcontroller.Pin, pin_b: microcontroller.Pin):
//| """Create an IncrementalEncoder object associated with the given pins. It tracks the positional
diff --git a/shared-bindings/rotaryio/__init__.c b/shared-bindings/rotaryio/__init__.c
index 0cc8eb556086..0fa457ca736b 100644
--- a/shared-bindings/rotaryio/__init__.c
+++ b/shared-bindings/rotaryio/__init__.c
@@ -33,27 +33,13 @@
#include "shared-bindings/rotaryio/__init__.h"
#include "shared-bindings/rotaryio/IncrementalEncoder.h"
-//| """:mod:`rotaryio` --- Support for reading rotation sensors
-//| ========================================================
-//|
-//| .. module:: rotaryio
-//| :synopsis: Support for reading rotation sensors
-//| :platform: SAMD
+//| """Support for reading rotation sensors
//|
//| The `rotaryio` module contains classes to read different rotation encoding schemes. See
//| `Wikipedia's Rotary Encoder page `_ for more
//| background.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| IncrementalEncoder
-//|
-//| .. warning:: This module is not available in some SAMD21 (aka M0) builds. See the
-//| :ref:`module-support-matrix` for more info.
+//| .. warning:: This module is not available in some SAMD21 (aka M0) builds. See the :ref:`module-support-matrix` for more info.
//|
//| All classes change hardware state and should be deinitialized when they
diff --git a/shared-bindings/rtc/RTC.c b/shared-bindings/rtc/RTC.c
index 663f5be6cb0f..58fe308f533d 100644
--- a/shared-bindings/rtc/RTC.c
+++ b/shared-bindings/rtc/RTC.c
@@ -38,15 +38,8 @@
const rtc_rtc_obj_t rtc_rtc_obj = {{&rtc_rtc_type}};
-
-
-
-
//| class RTC:
-//| """.. currentmodule:: rtc
-//|
-//| :class:`RTC` --- Real Time Clock
-//| --------------------------------"""
+//| """Real Time Clock"""
//|
//| def __init__(self, ):
//| """This class represents the onboard Real Time Clock. It is a singleton and will always return the same instance."""
@@ -60,7 +53,7 @@ STATIC mp_obj_t rtc_rtc_make_new(const mp_obj_type_t *type, size_t n_args, const
return (mp_obj_t)&rtc_rtc_obj;
}
-//| datetime: Any = ...
+//| datetime: time.struct_time = ...
//| """The current date and time of the RTC as a `time.struct_time`.
//|
//| This must be set to the current date and time whenever the board loses power::
@@ -101,7 +94,7 @@ const mp_obj_property_t rtc_rtc_datetime_obj = {
(mp_obj_t)&mp_const_none_obj},
};
-//| calibration: Any = ...
+//| calibration: int = ...
//| """The RTC calibration value as an `int`.
//|
//| A positive value speeds up the clock and a negative value slows it down.
diff --git a/shared-bindings/rtc/__init__.c b/shared-bindings/rtc/__init__.c
index 66669ca5fec0..b204d511c9fc 100644
--- a/shared-bindings/rtc/__init__.c
+++ b/shared-bindings/rtc/__init__.c
@@ -31,23 +31,11 @@
#include "shared-bindings/rtc/RTC.h"
#include "shared-bindings/time/__init__.h"
-//| """:mod:`rtc` --- Real Time Clock
-//| ========================================================
-//|
-//| .. module:: rtc
-//| :synopsis: Real Time Clock
-//| :platform: SAMD21, SAMD51, nRF52
+//| """Real Time Clock
//|
//| The `rtc` module provides support for a Real Time Clock. You can access and manage the
//| RTC using :class:`rtc.RTC`. It also backs the :func:`time.time` and :func:`time.localtime`
-//| functions using the onboard RTC if present.
-//|
-//| Classes
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| RTC"""
+//| functions using the onboard RTC if present."""
//|
void rtc_reset(void) {
diff --git a/shared-bindings/socket/__init__.c b/shared-bindings/socket/__init__.c
index 4c0811bdb6cc..19c4850cde61 100644
--- a/shared-bindings/socket/__init__.c
+++ b/shared-bindings/socket/__init__.c
@@ -37,12 +37,7 @@
#include "shared-module/network/__init__.h"
-//| """:mod:`socket` --- TCP, UDP and RAW socket support
-//| =================================================
-//|
-//| .. module:: socket
-//| :synopsis: TCP, UDP and RAW sockets
-//| :platform: SAMD21, SAMD51
+//| """TCP, UDP and RAW socket support
//|
//| Create TCP, UDP and RAW sockets for communicating over the Internet."""
//|
@@ -50,7 +45,6 @@
STATIC const mp_obj_type_t socket_type;
//| class socket:
-//| """.. currentmodule:: socket"""
//|
//| def __init__(self, family: int, type: int, proto: int):
//| """Create a new socket
diff --git a/shared-bindings/storage/__init__.c b/shared-bindings/storage/__init__.c
index feb1a9bd7612..8ac08d8c9b0c 100644
--- a/shared-bindings/storage/__init__.c
+++ b/shared-bindings/storage/__init__.c
@@ -35,12 +35,7 @@
#include "shared-bindings/storage/__init__.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`storage` --- storage management
-//| ========================================================
-//|
-//| .. module:: storage
-//| :synopsis: storage management
-//| :platform: SAMD21, SAMD51
+//| """Storage management
//|
//| The `storage` provides storage management functionality such as mounting and
//| unmounting which is typically handled by the operating system hosting Python.
diff --git a/shared-bindings/struct/__init__.c b/shared-bindings/struct/__init__.c
index 3772f93a76ea..256b385c8e21 100644
--- a/shared-bindings/struct/__init__.c
+++ b/shared-bindings/struct/__init__.c
@@ -38,12 +38,7 @@
#include "shared-module/struct/__init__.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`struct` --- manipulation of c-style data
-//| ========================================================
-//|
-//| .. module:: struct
-//| :synopsis: byte data control
-//| :platform: SAMD21
+//| """Manipulation of c-style data
//|
//| This module implements a subset of the corresponding CPython module,
//| as described below. For more information, refer to the original CPython
@@ -56,7 +51,7 @@
//|
-//| def calcsize(fmt: Any) -> Any:
+//| def calcsize(fmt: str) -> int:
//| """Return the number of bytes needed to store the given fmt."""
//| ...
//|
diff --git a/shared-bindings/supervisor/Runtime.c b/shared-bindings/supervisor/Runtime.c
index 05921899cee4..a420d5b80556 100755
--- a/shared-bindings/supervisor/Runtime.c
+++ b/shared-bindings/supervisor/Runtime.c
@@ -30,12 +30,7 @@
//TODO: add USB, REPL to description once they're operational
//| class Runtime:
-//| """.. currentmodule:: supervisor
-//|
-//| :class:`Runtime` --- Supervisor Runtime information
-//| ----------------------------------------------------
-//|
-//| Get current status of runtime objects.
+//| """Current status of runtime objects.
//|
//| Usage::
//|
@@ -50,7 +45,7 @@
//| ...
//|
-//| runtime.serial_connected: Any = ...
+//| serial_connected: bool = ...
//| """Returns the USB serial communication status (read-only).
//|
//| .. note::
@@ -78,7 +73,7 @@ const mp_obj_property_t supervisor_serial_connected_obj = {
};
-//| runtime.serial_bytes_available: Any = ...
+//| serial_bytes_available: int = ...
//| """Returns the whether any bytes are available to read
//| on the USB serial input. Allows for polling to see whether
//| to call the built-in input() or wait. (read-only)"""
diff --git a/shared-bindings/supervisor/__init__.c b/shared-bindings/supervisor/__init__.c
index 7fe6668f4826..1830308b7d63 100644
--- a/shared-bindings/supervisor/__init__.c
+++ b/shared-bindings/supervisor/__init__.c
@@ -36,30 +36,16 @@
#include "shared-bindings/supervisor/__init__.h"
#include "shared-bindings/supervisor/Runtime.h"
-//| """:mod:`supervisor` --- Supervisor settings
-//| =================================================
-//|
-//| .. module:: supervisor
-//| :synopsis: Supervisor settings
-//| :platform: SAMD21/51 (All), nRF (Runtime only)
-//|
-//| The `supervisor` module. (TODO: expand description)
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Runtime"""
+//| """Supervisor settings"""
//|
-//| runtime: Any = ...
-//| """Runtime information, such as `runtime.serial_connected`
+//| runtime: Runtime = ...
+//| """Runtime information, such as ``runtime.serial_connected``
//| (USB serial connection status).
//| This object is the sole instance of `supervisor.Runtime`."""
//|
-//| def enable_autoreload(self, ) -> Any:
+//| def enable_autoreload(self) -> None:
//| """Enable autoreload based on USB file write activity."""
//| ...
//|
@@ -69,7 +55,7 @@ STATIC mp_obj_t supervisor_enable_autoreload(void) {
}
MP_DEFINE_CONST_FUN_OBJ_0(supervisor_enable_autoreload_obj, supervisor_enable_autoreload);
-//| def disable_autoreload(self, ) -> Any:
+//| def disable_autoreload(self) -> None:
//| """Disable autoreload based on USB file write activity until
//| `enable_autoreload` is called."""
//| ...
@@ -80,7 +66,7 @@ STATIC mp_obj_t supervisor_disable_autoreload(void) {
}
MP_DEFINE_CONST_FUN_OBJ_0(supervisor_disable_autoreload_obj, supervisor_disable_autoreload);
-//| def set_rgb_status_brightness(self, ) -> Any:
+//| def set_rgb_status_brightness(self, brightness: int) -> None:
//| """Set brightness of status neopixel from 0-255
//| `set_rgb_status_brightness` is called."""
//| ...
@@ -96,7 +82,7 @@ STATIC mp_obj_t supervisor_set_rgb_status_brightness(mp_obj_t lvl){
}
MP_DEFINE_CONST_FUN_OBJ_1(supervisor_set_rgb_status_brightness_obj, supervisor_set_rgb_status_brightness);
-//| def reload(self, ) -> Any:
+//| def reload(self) -> None:
//| """Reload the main Python code and run it (equivalent to hitting Ctrl-D at the REPL)."""
//| ...
//|
@@ -107,7 +93,7 @@ STATIC mp_obj_t supervisor_reload(void) {
}
MP_DEFINE_CONST_FUN_OBJ_0(supervisor_reload_obj, supervisor_reload);
-//| def set_next_stack_limit(self, size: Any) -> Any:
+//| def set_next_stack_limit(self, size: int) -> None:
//| """Set the size of the stack for the next vm run. If its too large, the default will be used."""
//| ...
//|
diff --git a/shared-bindings/terminalio/Terminal.c b/shared-bindings/terminalio/Terminal.c
index 1288b7018218..5c045fdee2ba 100644
--- a/shared-bindings/terminalio/Terminal.c
+++ b/shared-bindings/terminalio/Terminal.c
@@ -38,10 +38,7 @@
#include "supervisor/shared/translate.h"
//| class Terminal:
-//| """.. currentmodule:: terminalio
-//|
-//| :class:`Terminal` -- display a character stream with a TileGrid
-//| ================================================================"""
+//| """Display a character stream with a TileGrid"""
//|
//| def __init__(self, tilegrid: Any, font: Any):
//| """Terminal manages tile indices and cursor position based on VT100 commands. The font should be
diff --git a/shared-bindings/terminalio/__init__.c b/shared-bindings/terminalio/__init__.c
index 591be839adbd..5892111395d5 100644
--- a/shared-bindings/terminalio/__init__.c
+++ b/shared-bindings/terminalio/__init__.c
@@ -35,22 +35,10 @@
#include "py/runtime.h"
-//| """:mod:`terminalio` --- Displays text in a TileGrid
-//| =================================================
-//|
-//| .. module:: terminalio
-//| :synopsis: Displays text in a TileGrid
+//| """Displays text in a TileGrid
//|
//| The `terminalio` module contains classes to display a character stream on a display. The built
-//| in font is available as ``terminalio.FONT``.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Terminal"""
-//|
+//| in font is available as ``terminalio.FONT``."""
//|
STATIC const mp_rom_map_elem_t terminalio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_terminalio) },
diff --git a/shared-bindings/time/__init__.c b/shared-bindings/time/__init__.c
index 36eaa27f6339..20277d6b072a 100644
--- a/shared-bindings/time/__init__.c
+++ b/shared-bindings/time/__init__.c
@@ -36,12 +36,7 @@
#include "shared-bindings/time/__init__.h"
#include "supervisor/shared/translate.h"
-//| """:mod:`time` --- time and timing related functions
-//| ========================================================
-//|
-//| .. module:: time
-//| :synopsis: time and timing related functions
-//| :platform: SAMD21
+//| """time and timing related functions
//|
//| The `time` module is a strict subset of the CPython `cpython:time` module. So, code
//| written in MicroPython will work in CPython but not necessarily the other
diff --git a/shared-bindings/touchio/TouchIn.c b/shared-bindings/touchio/TouchIn.c
index 6d59a17446da..4c1d534eaa1f 100644
--- a/shared-bindings/touchio/TouchIn.c
+++ b/shared-bindings/touchio/TouchIn.c
@@ -39,10 +39,7 @@
#include "supervisor/shared/translate.h"
//| class TouchIn:
-//| """.. currentmodule:: touchio
-//|
-//| :class:`TouchIn` -- Read the state of a capacitive touch sensor
-//| ===================================================================
+//| """Read the state of a capacitive touch sensor
//|
//| Usage::
//|
diff --git a/shared-bindings/touchio/__init__.c b/shared-bindings/touchio/__init__.c
index 96367f0823fc..92e067cf6870 100644
--- a/shared-bindings/touchio/__init__.c
+++ b/shared-bindings/touchio/__init__.c
@@ -35,23 +35,11 @@
#include "py/runtime.h"
-//| """:mod:`touchio` --- Touch related IO
-//| =================================================
-//|
-//| .. module:: touchio
-//| :synopsis: Hardware accelerated behavior
-//| :platform: SAMD21
+//| """Touch related IO
//|
//| The `touchio` module contains classes to provide access to touch IO typically
//| accelerated by hardware on the onboard microcontroller.
//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| TouchIn
-//|
//| All classes change hardware state and should be deinitialized when they
//| are no longer needed if the program continues after use. To do so, either
//| call :py:meth:`!deinit` or use a context manager. See
diff --git a/shared-bindings/uheap/__init__.c b/shared-bindings/uheap/__init__.c
index f1be3042477c..f089f29221e0 100644
--- a/shared-bindings/uheap/__init__.c
+++ b/shared-bindings/uheap/__init__.c
@@ -31,11 +31,7 @@
#include "shared-bindings/uheap/__init__.h"
-//| """:mod:`uheap` --- Heap size analysis
-//| ================================================================
-//|
-//| .. module:: uheap
-//| :synopsis: Heap size analysis"""
+//| """Heap size analysis"""
//|
//| def info(object: Any) -> Any:
diff --git a/shared-bindings/ulab/__init__.rst b/shared-bindings/ulab/__init__.pyi
similarity index 100%
rename from shared-bindings/ulab/__init__.rst
rename to shared-bindings/ulab/__init__.pyi
diff --git a/shared-bindings/usb_hid/Device.c b/shared-bindings/usb_hid/Device.c
index bcea5b2c5527..8c0c364ff3a1 100644
--- a/shared-bindings/usb_hid/Device.c
+++ b/shared-bindings/usb_hid/Device.c
@@ -28,10 +28,7 @@
#include "shared-bindings/usb_hid/Device.h"
//| class Device:
-//| """.. currentmodule:: usb_hid
-//|
-//| :class:`Device` -- HID Device
-//| ============================================
+//| """HID Device
//|
//| Usage::
//|
diff --git a/shared-bindings/usb_hid/__init__.c b/shared-bindings/usb_hid/__init__.c
index 3d0978d623c8..e12ea8da4e72 100644
--- a/shared-bindings/usb_hid/__init__.c
+++ b/shared-bindings/usb_hid/__init__.c
@@ -31,12 +31,7 @@
#include "shared-bindings/usb_hid/__init__.h"
#include "shared-bindings/usb_hid/Device.h"
-//| """:mod:`usb_hid` --- USB Human Interface Device
-//| ===========================================================
-//|
-//| .. module:: usb_hid
-//| :synopsis: USB Human Interface Device
-//| :platform: SAMD21
+//| """USB Human Interface Device
//|
//| The `usb_hid` module allows you to output data as a HID device."""
//|
@@ -44,14 +39,6 @@
//| usb_hid.devices: Any = ...
//| """Tuple of all active HID device interfaces."""
//|
-
-//| """Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| Device"""
-//|
STATIC const mp_rom_map_elem_t usb_hid_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_usb_hid) },
{ MP_ROM_QSTR(MP_QSTR_devices), MP_ROM_PTR(&common_hal_usb_hid_devices) },
diff --git a/shared-bindings/usb_midi/PortIn.c b/shared-bindings/usb_midi/PortIn.c
index 55a5865ca750..9d9310b47a5f 100644
--- a/shared-bindings/usb_midi/PortIn.c
+++ b/shared-bindings/usb_midi/PortIn.c
@@ -36,12 +36,9 @@
#include "supervisor/shared/translate.h"
//| class PortIn:
-//| """.. currentmodule:: usb_midi
+//| """Receives midi commands over USB"""
//|
-//| :class:`PortIn` -- receives midi commands over USB
-//| ==================================================="""
-//|
-//| def __init__(self, ):
+//| def __init__(self):
//| """You cannot create an instance of `usb_midi.PortIn`.
//|
//| PortIn objects are constructed for every corresponding entry in the USB
diff --git a/shared-bindings/usb_midi/PortOut.c b/shared-bindings/usb_midi/PortOut.c
index d83eb53b6989..14ed0e767eef 100644
--- a/shared-bindings/usb_midi/PortOut.c
+++ b/shared-bindings/usb_midi/PortOut.c
@@ -36,10 +36,7 @@
#include "supervisor/shared/translate.h"
//| class PortOut:
-//| """.. currentmodule:: usb_midi
-//|
-//| :class:`PortOut` -- sends midi messages to a computer over USB
-//| =============================================================="""
+//| """Sends midi messages to a computer over USB"""
//|
//| def __init__(self, ):
//| """You cannot create an instance of `usb_midi.PortOut`.
diff --git a/shared-bindings/usb_midi/__init__.c b/shared-bindings/usb_midi/__init__.c
index 2631d8a88251..5570b601ca59 100644
--- a/shared-bindings/usb_midi/__init__.c
+++ b/shared-bindings/usb_midi/__init__.c
@@ -35,22 +35,7 @@
#include "py/runtime.h"
-//| """:mod:`usb_midi` --- MIDI over USB
-//| =================================================
-//|
-//| .. module:: usb_midi
-//| :synopsis: MIDI over USB
-//|
-//| The `usb_midi` module contains classes to transmit and receive MIDI messages over USB
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| PortIn
-//| PortOut"""
-//|
+//| """Classes to transmit and receive MIDI messages over USB"""
//|
mp_map_elem_t usb_midi_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_usb_midi) },
diff --git a/shared-bindings/ustack/__init__.c b/shared-bindings/ustack/__init__.c
index 073840abace2..e5fac694179e 100644
--- a/shared-bindings/ustack/__init__.c
+++ b/shared-bindings/ustack/__init__.c
@@ -34,15 +34,11 @@
-//| """:mod:`ustack` --- Stack information and analysis
-//| ========================================================
-//|
-//| .. module:: ustack
-//| :synopsis: stack information functions"""
+//| """Stack information and analysis"""
//|
#if MICROPY_MAX_STACK_USAGE
-//| def max_stack_usage() -> Any:
+//| def max_stack_usage() -> int:
//| """Return the maximum excursion of the stack so far."""
//| ...
//|
@@ -53,7 +49,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(max_stack_usage_obj, max_stack_usage);
#endif // MICROPY_MAX_STACK_USAGE
-//| def stack_size() -> Any:
+//| def stack_size() -> int:
//| """Return the size of the entire stack.
//| Same as in micropython.mem_info(), but returns a value instead
//| of just printing it."""
diff --git a/shared-bindings/wiznet/__init__.c b/shared-bindings/wiznet/__init__.c
index 5c8e8d3fd237..0b0b7b14b761 100644
--- a/shared-bindings/wiznet/__init__.c
+++ b/shared-bindings/wiznet/__init__.c
@@ -35,21 +35,7 @@
#include "shared-module/network/__init__.h"
-//| """:mod:`wiznet` --- Support for WizNet hardware
-//| =============================================
-//|
-//| .. module:: wiznet
-//| :synopsis: Support for WizNet hardware
-//| :platform: SAMD
-//|
-//| Support for WizNet hardware, including the WizNet 5500 Ethernet adaptor.
-//|
-//| Libraries
-//|
-//| .. toctree::
-//| :maxdepth: 3
-//|
-//| wiznet5k"""
+//| """Support for WizNet hardware, including the WizNet 5500 Ethernet adaptor."""
//|
extern const mod_network_nic_type_t mod_network_nic_type_wiznet5k;
diff --git a/shared-bindings/wiznet/wiznet5k.c b/shared-bindings/wiznet/wiznet5k.c
index 2e2ee3949625..2f49dffea9f9 100644
--- a/shared-bindings/wiznet/wiznet5k.c
+++ b/shared-bindings/wiznet/wiznet5k.c
@@ -47,10 +47,7 @@
#include "shared-module/wiznet/wiznet5k.h"
//| class WIZNET5K:
-//| """.. currentmodule:: wiznet
-//|
-//| :class:`WIZNET5K` -- wrapper for Wiznet 5500 Ethernet interface
-//| ==============================================================="""
+//| """Wrapper for Wiznet 5500 Ethernet interface"""
//|
//| def __init__(self, spi: busio.SPI, cs: microcontroller.Pin, rst: microcontroller.Pin, dhcp: bool = True):
//| """Create a new WIZNET5500 interface using the specified pins
diff --git a/tools/extract_pyi.py b/tools/extract_pyi.py
index de783eb27014..95370f7619a7 100644
--- a/tools/extract_pyi.py
+++ b/tools/extract_pyi.py
@@ -22,7 +22,7 @@
pyi_lines = []
classes = os.listdir(module_path)
classes = [x for x in sorted(classes) if x.endswith(".c")]
- if classes[-1] == "__init__.c":
+ if classes and classes[-1] == "__init__.c":
classes.insert(0, classes.pop())
for class_file in classes:
class_path = os.path.join(module_path, class_file)
@@ -37,6 +37,13 @@
continue
pyi_lines.append(line)
+ raw_stubs = [x for x in sorted(classes) if x.endswith(".pyi")]
+ if raw_stubs and raw_stubs[-1] == "__init__.pyi":
+ raw_stubs.insert(0, raw_stubs.pop())
+ for raw_stub in raw_stubs:
+ raw_stub_path = os.path.join(module_path, raw_stub)
+ with open(raw_stub_path, "r") as f:
+ pyi_lines.extend(f.readlines())
stub_filename = os.path.join(stub_directory, module + ".pyi")
print(stub_filename)
stub_contents = "".join(pyi_lines)
@@ -54,3 +61,6 @@
print()
print(f"{ok} ok out of {total}")
+
+if ok != total:
+ sys.exit(total - ok)