I'd like to use `collections.deque`: https://docs.circuitpython.org/en/latest/docs/library/collections.html#collections.deque ...on my RP2040-based Keybow 2040 (https://circuitpython.org/board/pimoroni_keybow2040/). For MicroPython, `collections.deque` is enabled for all `rp2` devices, because they all have `MICROPY_CONFIG_ROM_LEVEL` set to 'extra features':cf7d962cf3/ports/rp2/mpconfigport.h (L44)
...which includes `MICROPY_PY_COLLECTIONS_DEQUE` (see6bda80d811/py/mpconfig.h (L1225-L1227)
). For CircuitPython, it looks like `MICROPY_CONFIG_ROM_LEVEL` defaults to 'core' (`MICROPY_CONFIG_ROM_LEVEL_CORE_FEATURES`) and isn't updated against any of the ports, so the only port getting `collections.deque` is the `unix` port, which explcitly sets `MICROPY_PY_COLLECTIONS_DEQUE`:6925a00138/ports/unix/mpconfigport.h (L134)
At Dan Halbert's suggestion... https://github.com/adafruit/circuitpython/pull/6474#issuecomment-1152364768 ... this commit enables `MICROPY_PY_COLLECTIONS_DEQUE` for all builds where `CIRCUITPY_FULL_BUILD` is true - which includes Raspberry Pi:6925a00138/ports/raspberrypi/mpconfigport.mk (L11)
See also: * https://github.com/adafruit/circuitpython/issues/5734 *970eedce8f
which originally added collections.deque to MicroPython
CircuitPython ============= .. image:: https://s3.amazonaws.com/adafruit-circuit-python/CircuitPython_Repo_header_logo.png |Build Status| |Doc Status| |License| |Discord| |Weblate| `circuitpython.org <https://circuitpython.org>`__ \| `Get CircuitPython <#get-circuitpython>`__ \| `Documentation <#documentation>`__ \| `Contributing <#contributing>`__ \| `Branding <#branding>`__ \| `Differences from Micropython <#differences-from-micropython>`__ \| `Project Structure <#project-structure>`__ **CircuitPython** is a *beginner friendly*, open source version of Python for tiny, inexpensive computers called microcontrollers. This package contains the "stubs", or type definitions for CircuitPython. With some advanced editors and other tools, this information can be identify TypeErrors, AttributeErrors, and other problems before you deploy your code to a device and can even help autocomplete your code. .. |Build Status| image:: https://github.com/adafruit/circuitpython/workflows/Build%20CI/badge.svg :target: https://github.com/adafruit/circuitpython/actions?query=branch%3Amain .. |Doc Status| image:: https://readthedocs.org/projects/circuitpython/badge/?version=latest :target: http://circuitpython.readthedocs.io/ .. |Discord| image:: https://img.shields.io/discord/327254708534116352.svg :target: https://adafru.it/discord .. |License| image:: https://img.shields.io/badge/License-MIT-brightgreen.svg :target: https://choosealicense.com/licenses/mit/ .. |Weblate| image:: https://hosted.weblate.org/widgets/circuitpython/-/svg-badge.svg :target: https://hosted.weblate.org/engage/circuitpython/?utm_source=widget
Languages
C
90.2%
Python
7.4%
Makefile
1.8%
Shell
0.2%