Merge branch 'adafruit:main' into main

This commit is contained in:
Pontus Oldberg 2023-01-03 09:31:49 +01:00 committed by GitHub
commit 14417a21d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
66 changed files with 1435 additions and 417 deletions

1
.gitmodules vendored
View File

@ -310,6 +310,7 @@
[submodule "ports/espressif/esp32-camera"]
path = ports/espressif/esp32-camera
url = https://github.com/adafruit/esp32-camera/
branch = circuitpython
[submodule "ports/raspberrypi/lib/cyw43-driver"]
path = ports/raspberrypi/lib/cyw43-driver
url = https://github.com/adafruit/cyw43-driver.git

View File

@ -90,7 +90,7 @@ clean:
rm -rf autoapi
rm -rf $(STUBDIR) $(DISTDIR) *.egg-info
html: stubs
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

View File

@ -70,6 +70,11 @@ msgstr "%%c harus int atau char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -125,6 +130,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -299,7 +308,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "Objek '%s' tidak memiliki atribut '%q'"
@ -494,6 +503,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1408,6 +1422,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Nama terlalu panjang"
@ -1779,10 +1797,6 @@ msgstr ""
"ideal. Jika ini tidak dapat dihindari, berikan allow_inefficient=True ke "
"konstruktor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Pin harus berurutan"
@ -1873,7 +1887,7 @@ msgid "Random number generation error"
msgstr "Kesalahan pembuatan nomor acak"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Baca-saja"
@ -1881,10 +1895,6 @@ msgstr "Baca-saja"
msgid "Read-only filesystem"
msgstr "sistem file (filesystem) bersifat Read-only"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objek Read-only"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2731,6 +2741,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3092,10 +3106,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""
@ -4368,6 +4378,9 @@ msgstr "zi harus berjenis float"
msgid "zi must be of shape (n_section, 2)"
msgstr "Zi harus berbentuk (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objek Read-only"
#~ msgid "%q length must be >= 1"
#~ msgstr "%q panjang harus >= 1"

View File

@ -65,6 +65,11 @@ msgstr ""
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -119,6 +124,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -293,7 +302,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr ""
@ -488,6 +497,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1393,6 +1407,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1754,10 +1772,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1846,7 +1860,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1854,10 +1868,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2700,6 +2710,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3061,10 +3075,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""

View File

@ -72,6 +72,11 @@ msgstr "%%c vyžaduje int nebo char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -126,6 +131,10 @@ msgstr "Inicializace %q selhala"
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "Délka %q musí být %d"
@ -300,7 +309,7 @@ msgstr "'%s' objekt nepodporuje přiřazení položky"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' objekt nepodporuje smazání položky"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' objekt nemá žádný atribut '%q'"
@ -495,6 +504,11 @@ msgstr "Již běží"
msgid "Already scanning for wifi networks"
msgstr "Již skenuje wifi sítě"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Jiný PWMAudioOut je již aktivní"
@ -1408,6 +1422,10 @@ msgstr ""
msgid "NVS Error"
msgstr "Chyba NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Jméno je příliš dlouhé"
@ -1770,10 +1788,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1864,7 +1878,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1872,10 +1886,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2718,6 +2728,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3079,10 +3093,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""

View File

@ -71,6 +71,11 @@ msgstr "%%c erwartet Int oder Char"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -127,6 +132,10 @@ msgstr "%q Initialisierung ist gescheitert"
msgid "%q is %q"
msgstr "%q ist %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "%q länge muss %d betragen"
@ -303,7 +312,7 @@ msgstr "'%s' Objekt unterstützt keine Element-Zuordnung"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' Objekt unterstützt keine Löschung von Elementen"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' Objekt hat kein Attribut '%q'"
@ -498,6 +507,11 @@ msgstr "Läuft bereits"
msgid "Already scanning for wifi networks"
msgstr "Sucht bereits nach Wifi-Netzwerken"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Ein anderer PWMAudioOut ist bereits aktiv"
@ -1424,6 +1438,10 @@ msgstr "NLR-Sprung fehlgeschlagen. Mögliche Speicher-Beschädigung."
msgid "NVS Error"
msgstr "NVS-Fehler"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Name zu lang"
@ -1794,10 +1812,6 @@ msgstr ""
"Bytes verbraucht. Wenn dies nicht vermieden werden kann, übergib "
"allow_inefficient=True an den Konstruktor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Pins müssen geordnet sein"
@ -1889,7 +1903,7 @@ msgid "Random number generation error"
msgstr "Fehler bei der Erzeugung von Zufallszahlen"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Nur lesen möglich, da Schreibgeschützt"
@ -1897,10 +1911,6 @@ msgstr "Nur lesen möglich, da Schreibgeschützt"
msgid "Read-only filesystem"
msgstr "Schreibgeschützte Dateisystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Schreibgeschützte Objekt"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "Erhaltene Antwort ist ungültig"
@ -2777,6 +2787,10 @@ msgstr "Kann Blockgröße von 512 nicht setzen"
msgid "can't set attribute"
msgstr "kann Attribut nicht setzen"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "Speichern von '%q' nicht möglich"
@ -3148,10 +3162,6 @@ msgstr "Die Schriftart (font) muss 2048 Byte lang sein"
msgid "format requires a dict"
msgstr "Format erfordert ein Wörterbuch (dict)"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "Frequenz ist für dieses Board schreibgeschützt"
#: py/objdeque.c
msgid "full"
msgstr "voll"
@ -4438,6 +4448,12 @@ msgstr "zi muss eine Gleitkommazahl sein"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi muss die Form (n_section, 2) haben"
#~ msgid "Read-only object"
#~ msgstr "Schreibgeschützte Objekt"
#~ msgid "frequency is read-only for this board"
#~ msgstr "Frequenz ist für dieses Board schreibgeschützt"
#~ msgid "Unable to write"
#~ msgstr "Schreiben nicht möglich"

View File

@ -76,6 +76,11 @@ msgstr "%%c απαιτεί int ή char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -131,6 +136,10 @@ msgstr "%q εκκίνηση απέτυχε"
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "%q μήκος πρέπει να είναι %d"
@ -305,7 +314,7 @@ msgstr "'%s' αντικείμενο δεν υποστηρίζει ορισμό
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' αντικείμενο δεν υποστηρίζει διαγραφή πράγματος"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' αντικείμενο δεν έχει γνώρισμα '%q'"
@ -501,6 +510,11 @@ msgstr "Τρέχει ήδη"
msgid "Already scanning for wifi networks"
msgstr "Ήδη γίνεται σάρωση για δίκτυα wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Και άλλο PWMAudioOut είναι σε χρήση"
@ -1418,6 +1432,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1779,10 +1797,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1873,7 +1887,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1881,10 +1895,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2727,6 +2737,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3088,10 +3102,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""

View File

@ -74,6 +74,11 @@ msgstr "%%c requires int or char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -129,6 +134,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -303,7 +312,7 @@ msgstr "'%s' object doesn't support item assignment"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' object doesn't support item deletion"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object has no attribute '%q'"
@ -498,6 +507,11 @@ msgstr "Already running"
msgid "Already scanning for wifi networks"
msgstr "Already scanning for WiFi networks"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Another PWMAudioOut is already active"
@ -1409,6 +1423,10 @@ msgstr "NLR jump failed. Likely memory corruption."
msgid "NVS Error"
msgstr "NVS Error"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Name too long"
@ -1778,10 +1796,6 @@ msgstr ""
"bytes. If this cannot be avoided, pass allow_inefficient=True to the "
"constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Pins must be sequential"
@ -1870,7 +1884,7 @@ msgid "Random number generation error"
msgstr "Random number generation error"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Read-only"
@ -1878,10 +1892,6 @@ msgstr "Read-only"
msgid "Read-only filesystem"
msgstr "Read-only filesystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Read-only object"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "Received response was invalid"
@ -2734,6 +2744,10 @@ msgstr "can't set 512 block size"
msgid "can't set attribute"
msgstr "can't set attribute"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "can't store '%q'"
@ -3098,10 +3112,6 @@ msgstr "font must be 2048 bytes long"
msgid "format requires a dict"
msgstr "format requires a dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "full"
@ -4373,6 +4383,9 @@ msgstr "zi must be of float type"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi must be of shape (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Read-only object"
#~ msgid "%q length must be >= 1"
#~ msgstr "%q length must be >= 1"

View File

@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-09-23 17:20+0000\n"
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
"PO-Revision-Date: 2022-12-31 17:50+0000\n"
"Last-Translator: Orlando Caro <ocaro@users.noreply.github.com>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
"X-Generator: Weblate 4.15.1-dev\n"
#: main.c
msgid ""
@ -74,6 +74,11 @@ msgstr "%%c requiere int o char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -92,9 +97,8 @@ msgstr ""
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/rtc/RTC.c ports/stm/common-hal/alarm/__init__.c
#: ports/stm/common-hal/rtc/RTC.c
#, fuzzy
msgid "%q"
msgstr "%q"
msgstr ""
#: shared-bindings/microcontroller/Pin.c
msgid "%q and %q contain duplicate pins"
@ -129,6 +133,10 @@ msgstr "%q inicializado fallido"
#: shared-bindings/dualbank/__init__.c
msgid "%q is %q"
msgstr "%q es %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
@ -169,27 +177,27 @@ msgstr "%q debe ser >= %d"
#: shared-bindings/analogbufio/BufferedIn.c
msgid "%q must be a bytearray or array of type 'H' or 'B'"
msgstr ""
msgstr "%q debe ser un byte-matriz o matriz de tipo 'H' o 'B'"
#: shared-bindings/audiocore/RawSample.c
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
msgstr ""
msgstr "%q debe ser un byte-matriz o matriz de tipo 'h', 'H', 'b', o 'B'"
#: py/argcheck.c py/obj.c py/objstrunicode.c
msgid "%q must be of type %q"
msgstr ""
msgstr "%q debe ser de typo %q"
#: py/objexcept.c shared-bindings/digitalio/Pull.c
msgid "%q must be of type %q or None"
msgstr ""
msgstr "%q debe ser de tipo %q o None"
#: ports/atmel-samd/common-hal/busio/UART.c
msgid "%q must be power of 2"
msgstr ""
msgstr "%q debe ser potencia de 2"
#: shared-bindings/wifi/Monitor.c
msgid "%q out of bounds"
msgstr ""
msgstr "%q fuera de limites"
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
@ -206,7 +214,7 @@ msgstr "pin inválido %q"
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
msgid "%q step cannot be zero"
msgstr ""
msgstr "%q paso no puede ser cero"
#: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given"
@ -214,11 +222,11 @@ msgstr "%q() toma %d argumentos posicionales pero %d fueron dados"
#: shared-bindings/usb_hid/Device.c
msgid "%q, %q, and %q must all be the same length"
msgstr ""
msgstr "%q, %q, y %q deben tener el mismo largo"
#: py/objint.c shared-bindings/storage/__init__.c
msgid "%q=%q"
msgstr ""
msgstr "%q=%q"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
#, c-format
@ -305,7 +313,7 @@ msgstr "'%s' el objeto no tiene capacidad de asignación de item"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' el objeto no tiene capacidad de borrado de item"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "objeto '%s' no tiene atributo '%q'"
@ -407,7 +415,7 @@ msgstr "La dirección debe tener %d bytes de largo"
#: ports/espressif/common-hal/memorymap/AddressRange.c
msgid "Address range not allowed"
msgstr ""
msgstr "Rango de dirección no permitido"
#: ports/espressif/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use"
@ -502,6 +510,11 @@ msgstr "Ya está en ejecución"
msgid "Already scanning for wifi networks"
msgstr "Ya se están buscando redes wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Un error ocurrió mientras recuperaba '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Otra salida PWMAudioOut esta ya activada"
@ -531,7 +544,7 @@ msgstr "Asignación del montículo mientras la VM no esta ejecutándose."
#: ports/raspberrypi/audio_dma.c
msgid "Audio conversion not implemented"
msgstr ""
msgstr "Conversión de audio no esta implementada"
#: shared-bindings/wifi/Radio.c
msgid "AuthMode.OPEN is not used with password"
@ -576,11 +589,12 @@ msgstr "Bits depth debe ser múltiplo de 8."
#: shared-bindings/bitmaptools/__init__.c
msgid "Bitmap size and bits per value must match"
msgstr ""
msgstr "El tamaño del mapa de bits y los bits por valor deben cotejar"
#: supervisor/shared/safe_mode.c
msgid "Boot device must be first device (interface #0)."
msgstr ""
"El dispositivo de arranque debe de ser el primer dispositivo (interfase #0)."
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "Both RX and TX required for flow control"
@ -591,7 +605,7 @@ msgstr "Ambos RX y TX requeridos para control de flujo"
#: ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h
#: ports/atmel-samd/boards/meowmeow/mpconfigboard.h
msgid "Both buttons were pressed at start up.\n"
msgstr ""
msgstr "Ambos botones fueron prensados al inicio\n"
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "Both pins must support hardware interrupts"
@ -621,17 +635,17 @@ msgstr ""
#: shared-bindings/framebufferio/FramebufferDisplay.c
msgid "Buffer is not a bytearray."
msgstr "Buffer no es un bytearray."
msgstr "Búfer no es un bytearray."
#: ports/cxd56/common-hal/camera/Camera.c shared-bindings/displayio/Display.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
msgid "Buffer is too small"
msgstr "El buffer es muy pequeño"
msgstr "fer es muy pequeño"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
#, c-format
msgid "Buffer length %d too big. It must be less than %d"
msgstr "Longitud del buffer %d es demasiado grande. Tiene que ser menor a %d"
msgstr "Longitud del búfer %d es demasiado grande. Tiene que ser menor a %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
#: ports/cxd56/common-hal/sdioio/SDCard.c shared-module/sdcardio/SDCard.c
@ -645,11 +659,11 @@ msgstr "Búfer deber ser un múltiplo de 512 bytes"
#: shared-bindings/_bleio/PacketBuffer.c
#, c-format
msgid "Buffer too short by %d bytes"
msgstr "Búffer muy corto por %d bytes"
msgstr "Búfer muy corto por %d bytes"
#: ports/espressif/common-hal/imagecapture/ParallelImageCapture.c
msgid "Buffers must be same size"
msgstr ""
msgstr "Búferes deben ser del mismo tamaño"
#: ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c
#: ports/espressif/common-hal/paralleldisplay/ParallelBus.c
@ -662,7 +676,7 @@ msgstr "Bus pin %d ya está siendo utilizado"
#: ports/espressif/boards/m5stack_core_basic/mpconfigboard.h
#: ports/espressif/boards/m5stack_core_fire/mpconfigboard.h
msgid "Button A was pressed at start up.\n"
msgstr ""
msgstr "Botón A fue presionado al inicio.\n"
#: shared-bindings/_bleio/UUID.c
msgid "Byte buffer must be 16 bytes."
@ -673,8 +687,9 @@ msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Los bloques CBC deben ser múltiplos de 16 bytes"
#: supervisor/shared/safe_mode.c
#, fuzzy
msgid "CIRCUITPY drive could not be found or created."
msgstr ""
msgstr "CIRCUITPY dispositivo de guardo no pudo ser encontrado o creado."
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "CRC or checksum was invalid"
@ -686,7 +701,7 @@ msgstr "Llame a super().__init__() antes de acceder al objeto nativo."
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Camera init"
msgstr ""
msgstr "Inicialización de cámara"
#: ports/espressif/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on RTC IO from deep sleep."
@ -1431,6 +1446,10 @@ msgstr "Salto NLR falló. Probablemente corrupción de memoria."
msgid "NVS Error"
msgstr "Error NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Nombre muy largo"
@ -1803,10 +1822,6 @@ msgstr ""
"ideales. Si esto no se puede evitar, pase allow_inefficient=True al "
"constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Los pines deben estar en orden secuencial"
@ -1898,7 +1913,7 @@ msgid "Random number generation error"
msgstr "Error de generación de números aleatorios"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Solo-lectura"
@ -1906,10 +1921,6 @@ msgstr "Solo-lectura"
msgid "Read-only filesystem"
msgstr "Sistema de archivos de solo-Lectura"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objeto de solo-lectura"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "La respuesta recibida es invalida"
@ -2771,6 +2782,10 @@ msgstr "no se puede definir un tamaño de bloque de 512"
msgid "can't set attribute"
msgstr "no se puede asignar el atributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "no se puede almacenar '%q'"
@ -3138,10 +3153,6 @@ msgstr "font debe ser 2048 bytes de largo"
msgid "format requires a dict"
msgstr "format requiere un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "lleno"
@ -4246,7 +4257,7 @@ msgstr "nombre en unicode escapa"
#: py/parse.c
msgid "unindent doesn't match any outer indent level"
msgstr ""
msgstr "unindent no coteja ningún nivel de espacio exterior"
#: py/objstr.c
#, c-format
@ -4268,7 +4279,7 @@ msgstr "tipo desconocido '%q'"
#: py/objstr.c
#, c-format
msgid "unmatched '%c' in format"
msgstr ""
msgstr "no coteja '%c' en formato"
#: py/objtype.c py/runtime.c
msgid "unreadable attribute"
@ -4290,11 +4301,11 @@ msgstr "instrucción Xtensa '%s' con %d argumentos no soportada"
#: shared-module/gifio/GifWriter.c
msgid "unsupported colorspace for GifWriter"
msgstr ""
msgstr "espacio de color no soportado para GifWriter"
#: shared-bindings/bitmaptools/__init__.c
msgid "unsupported colorspace for dither"
msgstr ""
msgstr "espacio de color no soportado para tramado"
#: py/objstr.c
#, c-format
@ -4315,11 +4326,11 @@ msgstr "tipos no soportados para %q: '%q', '%q'"
#: extmod/ulab/code/numpy/io/io.c
msgid "usecols is too high"
msgstr ""
msgstr "usecols es muy alto"
#: extmod/ulab/code/numpy/io/io.c
msgid "usecols keyword must be specified"
msgstr ""
msgstr "usecols palabra clave debe de ser especificada"
#: py/objint.c
#, c-format
@ -4328,7 +4339,7 @@ msgstr "el valor debe caber en %d byte(s)"
#: shared-bindings/bitmaptools/__init__.c
msgid "value out of range of target"
msgstr ""
msgstr "valor fuera de alcance al blanco"
#: shared-bindings/displayio/Bitmap.c
msgid "value_count must be > 0"
@ -4349,7 +4360,7 @@ msgstr "wifi no esta habilitado"
#: ports/raspberrypi/common-hal/wifi/Monitor.c
msgid "wifi.Monitor not available"
msgstr ""
msgstr "wifi.Monitor no esta disponible"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
@ -4365,7 +4376,7 @@ msgstr "eje especificado erróneo"
#: extmod/ulab/code/numpy/io/io.c
msgid "wrong dtype"
msgstr ""
msgstr "erroneo dtype"
#: extmod/ulab/code/numpy/transform.c
msgid "wrong index type"
@ -4379,11 +4390,11 @@ msgstr "tipo de entrada incorrecta"
#: extmod/ulab/code/numpy/transform.c
msgid "wrong length of condition array"
msgstr ""
msgstr "largo erroneo en el arreglo de condiciones"
#: extmod/ulab/code/numpy/transform.c
msgid "wrong length of index array"
msgstr ""
msgstr "largo erroneo en el arreglo de índices"
#: extmod/ulab/code/numpy/create.c py/objarray.c py/objstr.c
msgid "wrong number of arguments"
@ -4421,6 +4432,9 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "Read-only object"
#~ msgstr "Objeto de solo-lectura"
#~ msgid "%q length must be >= 1"
#~ msgstr "%q tamaño debe ser >= 1"

View File

@ -6,8 +6,8 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-08-23 14:19+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
"PO-Revision-Date: 2022-12-27 18:02+0000\n"
"Last-Translator: Blinka CircuitPython <limor@ladyada.net>\n"
"Language-Team: fil\n"
"Language: fil\n"
"MIME-Version: 1.0\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 "
"|| n % 10 == 6 || n % 10 == 9);\n"
"X-Generator: Weblate 4.8.1-dev\n"
"X-Generator: Weblate 4.15.1-dev\n"
#: main.c
msgid ""
@ -66,6 +66,11 @@ msgstr "%%c nangangailangan ng int o char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -120,6 +125,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -295,7 +304,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object ay walang attribute '%q'"
@ -491,6 +500,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1405,6 +1419,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1770,10 +1788,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1862,7 +1876,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Basahin-lamang"
@ -1870,11 +1884,6 @@ msgstr "Basahin-lamang"
msgid "Read-only filesystem"
msgstr "Basahin-lamang mode"
#: shared-module/displayio/Bitmap.c
#, fuzzy
msgid "Read-only object"
msgstr "Basahin-lamang"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2722,6 +2731,10 @@ msgstr ""
msgid "can't set attribute"
msgstr "hindi ma i-set ang attribute"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "hindi ma i-store ang '%q'"
@ -3091,10 +3104,6 @@ msgstr "font ay dapat 2048 bytes ang haba"
msgid "format requires a dict"
msgstr "kailangan ng format ng dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "puno"
@ -4375,6 +4384,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#, fuzzy
#~ msgid "Read-only object"
#~ msgstr "Basahin-lamang"
#~ msgid "Invalid pins"
#~ msgstr "Mali ang pins"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-11-09 19:20+0000\n"
"Last-Translator: Deleted User <noreply+52049@weblate.org>\n"
"PO-Revision-Date: 2022-12-27 18:02+0000\n"
"Last-Translator: Blinka CircuitPython <limor@ladyada.net>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.15-dev\n"
"X-Generator: Weblate 4.15.1-dev\n"
#: main.c
msgid ""
@ -75,6 +75,11 @@ msgstr "%%c nécessite un chiffre entier 'int' ou un caractère 'char'"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -131,6 +136,10 @@ msgstr "échec de l'initialisation %q"
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "La longeur de %q doit être %d"
@ -305,7 +314,7 @@ msgstr "l'objet %s ne supporte pas l'assignation d'éléments"
msgid "'%s' object doesn't support item deletion"
msgstr "L'objet '%s' ne prend pas en charge la suppression d'éléments"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "l'objet '%s' n'a pas d'attribut '%q'"
@ -500,6 +509,11 @@ msgstr "Déjà en cours d'exécution"
msgid "Already scanning for wifi networks"
msgstr "Déjà à la recherche des réseaux wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Un autre PWMAudioOut est déjà actif"
@ -1450,6 +1464,10 @@ msgstr "Saut NLR échoué. Corruption de mémoire probable."
msgid "NVS Error"
msgstr "Erreur NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Nom trop long"
@ -1823,10 +1841,6 @@ msgstr ""
"octets idéal. Si cela ne peut pas être évité, transmettez allow_inefficient "
"= True au constructeur"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Les broches doivent être séquentielles"
@ -1919,7 +1933,7 @@ msgid "Random number generation error"
msgstr "Erreur de génération de chiffres aléatoires"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Lecture seule"
@ -1927,10 +1941,6 @@ msgstr "Lecture seule"
msgid "Read-only filesystem"
msgstr "Système de fichier en lecture seule"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objet en lecture seule"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "Réponse reçue invalide"
@ -2805,6 +2815,10 @@ msgstr "impossible de définir une taille de bloc de 512"
msgid "can't set attribute"
msgstr "attribut non modifiable"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "impossible de stocker '%q'"
@ -3178,10 +3192,6 @@ msgstr "la police doit être longue de 2048 octets"
msgid "format requires a dict"
msgstr "le format nécessite un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "la fréquence est en lecture seule pour cette carte"
#: py/objdeque.c
msgid "full"
msgstr "plein"
@ -4466,6 +4476,12 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objet en lecture seule"
#~ msgid "frequency is read-only for this board"
#~ msgstr "la fréquence est en lecture seule pour cette carte"
#~ msgid "Unable to write"
#~ msgstr "Écriture impossible"

View File

@ -65,6 +65,11 @@ msgstr ""
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -119,6 +124,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -293,7 +302,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr ""
@ -488,6 +497,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1393,6 +1407,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1754,10 +1772,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1846,7 +1860,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1854,10 +1868,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2700,6 +2710,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3061,10 +3075,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""

View File

@ -71,6 +71,11 @@ msgstr "%%c necessita di int o char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -126,6 +131,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -300,7 +309,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "l'oggetto '%s' non ha l'attributo '%q'"
@ -497,6 +506,11 @@ msgstr "Già in funzione"
msgid "Already scanning for wifi networks"
msgstr "Già in ricerca di collegamenti WiFi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1411,6 +1425,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1779,10 +1797,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1872,7 +1886,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Sola lettura"
@ -1880,11 +1894,6 @@ msgstr "Sola lettura"
msgid "Read-only filesystem"
msgstr "Filesystem in sola lettura"
#: shared-module/displayio/Bitmap.c
#, fuzzy
msgid "Read-only object"
msgstr "Sola lettura"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2733,6 +2742,10 @@ msgstr ""
msgid "can't set attribute"
msgstr "impossibile impostare attributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "impossibile memorizzare '%q'"
@ -3099,10 +3112,6 @@ msgstr "il font deve essere lungo 2048 byte"
msgid "format requires a dict"
msgstr "la formattazione richiede un dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "pieno"
@ -4388,6 +4397,10 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#, fuzzy
#~ msgid "Read-only object"
#~ msgstr "Sola lettura"
#~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "Almeno %d %q devono essere specificati (non %d)"

View File

@ -70,6 +70,11 @@ msgstr "%%c にはintまたはcharが必要"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -124,6 +129,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -298,7 +307,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr ""
@ -493,6 +502,11 @@ msgstr "すでに実行中"
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "名前が長すぎます"
@ -1767,10 +1785,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1859,7 +1873,7 @@ msgid "Random number generation error"
msgstr "乱数生成エラー"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "読み込み専用"
@ -1867,10 +1881,6 @@ msgstr "読み込み専用"
msgid "Read-only filesystem"
msgstr "読み込み専用のファイルシステム"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "読み込み専用のオブジェクト"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2714,6 +2724,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3079,10 +3093,6 @@ msgstr "fontは2048バイト長でなければなりません"
msgid "format requires a dict"
msgstr "formatにはdictが必要"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""
@ -4357,6 +4367,9 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "Read-only object"
#~ msgstr "読み込み専用のオブジェクト"
#~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "最大で %d個の %q が指定できます(%d個でなく"

View File

@ -66,6 +66,11 @@ msgstr "%%c 전수(int)또는 캐릭터(char)필요합니다"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -120,6 +125,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -294,7 +303,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr ""
@ -489,6 +498,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1396,6 +1410,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr ""
@ -1757,10 +1775,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1849,7 +1863,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1857,10 +1871,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2704,6 +2714,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3065,10 +3079,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "완전한(full)"

View File

@ -68,6 +68,11 @@ msgstr "%%c vereist een int of char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -122,6 +127,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -296,7 +305,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' object heeft geen attribuut '%q'"
@ -491,6 +500,11 @@ msgstr "Wordt al uitgevoerd"
msgid "Already scanning for wifi networks"
msgstr "Zoekt al naar WiFi netwerken"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error"
msgstr "NVS-fout"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Naam te lang"
@ -1776,10 +1794,6 @@ msgstr ""
"gebruikt. Als dit niet kan worden vermeden, geef dan het argument "
"allow_inefficient=True aan de constructor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1870,7 +1884,7 @@ msgid "Random number generation error"
msgstr "Random number generatie fout"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Alleen-lezen"
@ -1878,10 +1892,6 @@ msgstr "Alleen-lezen"
msgid "Read-only filesystem"
msgstr "Alleen-lezen bestandssysteem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Alleen-lezen object"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2731,6 +2741,10 @@ msgstr "kan geen 512 blokgrootte instellen"
msgid "can't set attribute"
msgstr "kan attribute niet instellen"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "kan '%q' niet opslaan"
@ -3094,10 +3108,6 @@ msgstr "lettertype moet 2048 bytes lang zijn"
msgid "format requires a dict"
msgstr "format vereist een dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "vol"
@ -4373,6 +4383,9 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "Read-only object"
#~ msgstr "Alleen-lezen object"
#~ msgid "At most %d %q may be specified (not %d)"
#~ msgstr "Op zijn meest %d %q mogen worden gespecificeerd (niet %d)"

View File

@ -70,6 +70,11 @@ msgstr "%%c wymaga int lub char"
msgid "%02X"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -124,6 +129,10 @@ msgstr ""
msgid "%q is %q"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr ""
@ -298,7 +307,7 @@ msgstr ""
msgid "'%s' object doesn't support item deletion"
msgstr ""
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' obiekt nie ma atrybutu '%q'"
@ -493,6 +502,11 @@ msgstr ""
msgid "Already scanning for wifi networks"
msgstr ""
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr ""
@ -1404,6 +1418,10 @@ msgstr ""
msgid "NVS Error"
msgstr ""
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Za długa nazwa"
@ -1765,10 +1783,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1857,7 +1871,7 @@ msgid "Random number generation error"
msgstr "Błąd generowania liczb losowych"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Tylko do odczytu"
@ -1865,10 +1879,6 @@ msgstr "Tylko do odczytu"
msgid "Read-only filesystem"
msgstr "System plików tylko do odczytu"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Obiekt tylko do odczytu"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "Otrzymana odpowiedź była nieprawidłowa"
@ -2711,6 +2721,10 @@ msgstr ""
msgid "can't set attribute"
msgstr "nie można ustawić atrybutu"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "nie można zapisać '%q'"
@ -3073,10 +3087,6 @@ msgstr "font musi mieć 2048 bajtów długości"
msgid "format requires a dict"
msgstr "format wymaga słownika"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr "pełny"
@ -4349,6 +4359,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "Read-only object"
#~ msgstr "Obiekt tylko do odczytu"
#~ msgid "Invalid pins"
#~ msgstr "Złe nóżki"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-12-22 15:49+0000\n"
"PO-Revision-Date: 2022-12-28 03:47+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -72,6 +72,11 @@ msgstr "%%c requer int ou char"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -128,6 +133,10 @@ msgstr "a inicialização do %q falhou"
msgid "%q is %q"
msgstr "%q é %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "O comprimento de %q deve ser %d"
@ -302,7 +311,7 @@ msgstr "O objeto '%s' não suporta a atribuição dos itens"
msgid "'%s' object doesn't support item deletion"
msgstr "O objeto '%s' não é compatível com exclusão do item"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "O objeto '%s' não possui o atributo '%q'"
@ -501,6 +510,11 @@ msgstr "Já está em execução"
msgid "Already scanning for wifi networks"
msgstr "Já está em busca das redes de wifi"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Ocorreu um erro ao recuperar '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Um outro PWMAudioOut já está ativo"
@ -1432,6 +1446,10 @@ msgstr "O salto NLR falhou. Possível corrupção da memória."
msgid "NVS Error"
msgstr "Erro NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr "Nome ou serviço desconhecido"
#: py/qstr.c
msgid "Name too long"
msgstr "Nome muito longo"
@ -1805,10 +1823,6 @@ msgstr ""
"ideal. Caso isso não possa ser evitado, passe allow_inefficient=True ao "
"construtor"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr "Os pinos 21+ não são suportados pelo ULP"
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Os pinos devem ser sequenciais"
@ -1902,7 +1916,7 @@ msgid "Random number generation error"
msgstr "Houve um erro na geração do número aleatório"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Somente leitura"
@ -1910,10 +1924,6 @@ msgstr "Somente leitura"
msgid "Read-only filesystem"
msgstr "Sistema de arquivos somente leitura"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Objeto de leitura apenas"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "A resposta recebida foi inválida"
@ -2785,6 +2795,10 @@ msgstr "não é possível definir o tamanho de 512 blocos"
msgid "can't set attribute"
msgstr "não é possível definir o atributo"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "não é possível armazenar '%q'"
@ -3155,10 +3169,6 @@ msgstr "a fonte deve ter 2048 bytes de comprimento"
msgid "format requires a dict"
msgstr "formato requer um dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "nesta placa, a frequência é de apenas leitura"
#: py/objdeque.c
msgid "full"
msgstr "cheio"
@ -4441,6 +4451,15 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Objeto de leitura apenas"
#~ msgid "frequency is read-only for this board"
#~ msgstr "nesta placa, a frequência é de apenas leitura"
#~ msgid "Pins 21+ not supported from ULP"
#~ msgstr "Os pinos 21+ não são suportados pelo ULP"
#~ msgid "Unable to write"
#~ msgstr "Não é possível escrever"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-11-29 01:02+0000\n"
"PO-Revision-Date: 2022-12-27 17:42+0000\n"
"Last-Translator: Clay <code.clayt@gmail.com>\n"
"Language-Team: none\n"
"Language: ru\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.15-dev\n"
"X-Generator: Weblate 4.15.1-dev\n"
#: main.c
msgid ""
@ -75,6 +75,11 @@ msgstr "%%c требует int или char"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -130,6 +135,10 @@ msgstr "Инициализация %q не удалась"
msgid "%q is %q"
msgstr "%q является %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "Длинна %q должна быть %d"
@ -168,7 +177,7 @@ msgstr "%q должно быть >= %d"
#: shared-bindings/analogbufio/BufferedIn.c
msgid "%q must be a bytearray or array of type 'H' or 'B'"
msgstr ""
msgstr "%q должно быть bytearray или array типа 'H' или 'B'"
#: shared-bindings/audiocore/RawSample.c
msgid "%q must be a bytearray or array of type 'h', 'H', 'b', or 'B'"
@ -205,7 +214,7 @@ msgstr "Пин %q не допустим"
#: py/objrange.c py/objslice.c shared-bindings/random/__init__.c
msgid "%q step cannot be zero"
msgstr ""
msgstr "Шаг %q не может быть нулём"
#: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given"
@ -304,7 +313,7 @@ msgstr "Объект '%s' не поддерживает присвоение э
msgid "'%s' object doesn't support item deletion"
msgstr "Объект '%s' не поддерживает удаление элементов"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "Объект '%s' не имеет атрибута '%q'"
@ -406,7 +415,7 @@ msgstr "Адрес должен быть длиной %d байт"
#: ports/espressif/common-hal/memorymap/AddressRange.c
msgid "Address range not allowed"
msgstr ""
msgstr "Диапазон адресов не разрешен"
#: ports/espressif/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use"
@ -499,6 +508,11 @@ msgstr "Уже запущен"
msgid "Already scanning for wifi networks"
msgstr "Поиск сетей wifi уже происходит"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Другой PWMAudioOut уже активен"
@ -917,8 +931,10 @@ msgid "Drive mode not used when direction is input."
msgstr "Drive mode не используется, когда направление является входным."
#: py/obj.c
#, fuzzy
msgid "During handling of the above exception, another exception occurred:"
msgstr ""
"Во время обработки вышеупомянутого исключения произошло другое исключение:"
#: shared-bindings/aesio/aes.c
msgid "ECB only operates on 16 bytes at a time"
@ -1040,7 +1056,7 @@ msgstr "Файл существует"
#: shared-module/os/getenv.c
msgid "File not found"
msgstr ""
msgstr "Файл не найден"
#: ports/atmel-samd/common-hal/canio/Listener.c
#: ports/espressif/common-hal/canio/Listener.c
@ -1291,7 +1307,7 @@ msgstr "Недопустимое бит-на-значение"
#: shared-module/os/getenv.c
#, c-format
msgid "Invalid byte %.*s"
msgstr ""
msgstr "Неверный байт %.*s"
#: ports/atmel-samd/common-hal/imagecapture/ParallelImageCapture.c
#, c-format
@ -1333,7 +1349,7 @@ msgstr "Ключ должен быть длинной 16, 24 или 32 байт
#: shared-module/os/getenv.c
msgid "Key not found"
msgstr ""
msgstr "Ключ не найден"
#: shared-module/is31fl3741/FrameBuffer.c
msgid "LED mappings must match display size"
@ -1377,7 +1393,7 @@ msgstr "Размер данных различается"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Mismatched swap flag"
msgstr ""
msgstr "Несоответствие флага swap"
#: ports/mimxrt10xx/common-hal/busio/SPI.c
msgid "Missing MISO or MOSI Pin"
@ -1444,6 +1460,10 @@ msgstr "Не удалось выполнить NLR jump. Вероятно, по
msgid "NVS Error"
msgstr "Ошибка NVS"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Имя слишком длинное"
@ -1694,7 +1714,7 @@ msgstr ""
#: ports/espressif/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one %q can be set in deep sleep."
msgstr ""
msgstr "Только один %q может быть погружен в глубокий сон."
#: ports/espressif/common-hal/espulp/ULPAlarm.c
msgid "Only one %q can be set."
@ -1818,10 +1838,6 @@ msgstr ""
"%d байт. Если этого нельзя избежать, передайте allow_inefficient=True в "
"конструктор"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Пины должны быть последовательными"
@ -1912,7 +1928,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1920,10 +1936,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2768,6 +2780,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3129,10 +3145,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""
@ -4378,7 +4390,7 @@ msgstr ""
#: extmod/ulab/code/numpy/vector.c
msgid "wrong output type"
msgstr ""
msgstr "неверный тип вывода"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
@ -4386,7 +4398,7 @@ msgstr ""
#: ports/espressif/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
msgstr "xTaskCreate провалился"
#: shared-module/displayio/Shape.c
msgid "y value out of bounds"
@ -4394,7 +4406,7 @@ msgstr ""
#: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be an ndarray"
msgstr ""
msgstr "zi должен быть bytearray"
#: extmod/ulab/code/scipy/signal/signal.c
msgid "zi must be of float type"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-12-22 15:49+0000\n"
"PO-Revision-Date: 2022-12-28 03:47+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -72,6 +72,11 @@ msgstr "%%c kräver int eller char"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr "%S"
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -127,6 +132,10 @@ msgstr "%q init misslyckades"
msgid "%q is %q"
msgstr "%q är %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "längden på %q måste vara %d"
@ -303,7 +312,7 @@ msgstr "Objektet '%s' stöder inte tilldelning"
msgid "'%s' object doesn't support item deletion"
msgstr "Objektet '%s' stöder inte borttagning"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "Objektet '%s' har inget attribut '%q'"
@ -498,6 +507,11 @@ msgstr "Kör redan"
msgid "Already scanning for wifi networks"
msgstr "Skannar redan efter WiFi-nätverk"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr "Ett fel uppstod vid hämtning av '%s':\n"
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "En annan PWMAudioOut är redan aktiv"
@ -1417,6 +1431,10 @@ msgstr "NLR jump misslyckades. Troligen korrupt minne."
msgid "NVS Error"
msgstr "NVS-fel"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr "Namn eller tjänst inte känd"
#: py/qstr.c
msgid "Name too long"
msgstr "Name är för långt"
@ -1788,10 +1806,6 @@ msgstr ""
"%d byte. Om detta inte kan undvikas, skicka allow_inefficient=True till "
"konstruktorn"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr "Pins 21+ stöds inte av ULP"
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "Pinnarna måste vara i sekvens"
@ -1882,7 +1896,7 @@ msgid "Random number generation error"
msgstr "Fel vid generering av slumptal"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Skrivskyddad"
@ -1890,10 +1904,6 @@ msgstr "Skrivskyddad"
msgid "Read-only filesystem"
msgstr "Skrivskyddat filsystem"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Skrivskyddat objekt"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "Mottaget svar var ogiltigt"
@ -2756,6 +2766,10 @@ msgstr "kan inte sätta blockstorlek 512"
msgid "can't set attribute"
msgstr "kan inte att ange attribut"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "kan inte lagra '%q'"
@ -3124,10 +3138,6 @@ msgstr "typsnitt måste vara 2048 bytes långt"
msgid "format requires a dict"
msgstr "formatet kräver en dict"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "frekvens är skrivskyddad för detta kort"
#: py/objdeque.c
msgid "full"
msgstr "full"
@ -4403,6 +4413,15 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "Read-only object"
#~ msgstr "Skrivskyddat objekt"
#~ msgid "frequency is read-only for this board"
#~ msgstr "frekvens är skrivskyddad för detta kort"
#~ msgid "Pins 21+ not supported from ULP"
#~ msgstr "Pins 21+ stöds inte av ULP"
#~ msgid "Unable to write"
#~ msgstr "Kan inte skriva"

View File

@ -75,6 +75,11 @@ msgstr "%%c int veya char tipine ihtiyaç duyar"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -131,6 +136,10 @@ msgstr "%q init başarısız oldu"
msgid "%q is %q"
msgstr "%q %q dir"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "%q boyutu %d olmalıdır"
@ -305,7 +314,7 @@ msgstr "'%s' nesnesi, öğe atamasını desteklemiyor"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' nesnesi, öğe silmeyi desteklemiyor"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' nesnesinin '%q' özelliği yok"
@ -501,6 +510,11 @@ msgstr "Halihazırda çalışıyor"
msgid "Already scanning for wifi networks"
msgstr "Halihazırda wifi ağları için tarama yapılıyor"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "Başka bir PWMAudioOut zaten aktif durumda"
@ -1416,6 +1430,10 @@ msgstr ""
msgid "NVS Error"
msgstr "NVS hatası"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "İsim çok uzun"
@ -1777,10 +1795,6 @@ msgid ""
"constructor"
msgstr ""
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr ""
@ -1872,7 +1886,7 @@ msgid "Random number generation error"
msgstr ""
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr ""
@ -1880,10 +1894,6 @@ msgstr ""
msgid "Read-only filesystem"
msgstr ""
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr ""
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr ""
@ -2726,6 +2736,10 @@ msgstr ""
msgid "can't set attribute"
msgstr ""
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr ""
@ -3087,10 +3101,6 @@ msgstr ""
msgid "format requires a dict"
msgstr ""
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr ""
#: py/objdeque.c
msgid "full"
msgstr ""

View File

@ -74,6 +74,11 @@ msgstr "%%c xūyào zhěngshù huòzhě zìfú"
msgid "%02X"
msgstr "%02X"
#: shared-module/os/getenv.c
#, c-format
msgid "%S"
msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
#, c-format
msgid ""
@ -130,6 +135,10 @@ msgstr "%q chūshǐhuà shībài"
msgid "%q is %q"
msgstr "%q shì %q"
#: ports/raspberrypi/common-hal/wifi/Radio.c
msgid "%q is read-only for this board"
msgstr ""
#: py/argcheck.c shared-bindings/usb_hid/Device.c
msgid "%q length must be %d"
msgstr "%q de chángdù bìxū shì %d"
@ -305,7 +314,7 @@ msgstr "'%s' duìxiàng bù zhīchí yuánsù fùzhí"
msgid "'%s' object doesn't support item deletion"
msgstr "'%s' duìxiàng bù zhīchí yuánsù shānchú"
#: ports/raspberrypi/common-hal/wifi/Radio.c py/runtime.c
#: py/runtime.c
msgid "'%s' object has no attribute '%q'"
msgstr "'%s' duìxiàng méiyǒu shǔxìng '%q'"
@ -500,6 +509,11 @@ msgstr "yǐjīng zài yùnxíng"
msgid "Already scanning for wifi networks"
msgstr "yǐjīng zài sǎomiáo WIFI wǎngluò"
#: shared-module/os/getenv.c
#, c-format
msgid "An error occurred while retrieving '%s':\n"
msgstr ""
#: ports/stm/common-hal/audiopwmio/PWMAudioOut.c
msgid "Another PWMAudioOut is already active"
msgstr "lìng yí gè PWMAudioOut yǐ jīng zài gōngzuò"
@ -1423,6 +1437,10 @@ msgstr "NLR tiào zhuǎn shī bài. kě néng shì nèi cún sǔn huài."
msgid "NVS Error"
msgstr "NVS cuò wù"
#: shared-bindings/socketpool/SocketPool.c
msgid "Name or service not known"
msgstr ""
#: py/qstr.c
msgid "Name too long"
msgstr "Míngchēng tài zhǎng"
@ -1792,10 +1810,6 @@ msgstr ""
"duōzì jié. Rúguǒ wúfǎ bìmiǎn, qǐng jiāng allow_inefficient = True chuándì "
"gěigòuzào hánshù"
#: ports/espressif/common-hal/espulp/ULP.c
msgid "Pins 21+ not supported from ULP"
msgstr ""
#: ports/raspberrypi/common-hal/imagecapture/ParallelImageCapture.c
msgid "Pins must be sequential"
msgstr "yǐn jiǎo bì xū shì lián xù de"
@ -1886,7 +1900,7 @@ msgid "Random number generation error"
msgstr "Suíjī shù shēngchéng cuòwù"
#: shared-bindings/memorymonitor/AllocationSize.c
#: shared-bindings/pulseio/PulseIn.c
#: shared-bindings/pulseio/PulseIn.c shared-module/displayio/Bitmap.c
msgid "Read-only"
msgstr "Zhǐ dú"
@ -1894,10 +1908,6 @@ msgstr "Zhǐ dú"
msgid "Read-only filesystem"
msgstr "Zhǐ dú wénjiàn xìtǒng"
#: shared-module/displayio/Bitmap.c
msgid "Read-only object"
msgstr "Zhǐ dú duìxiàng"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
msgid "Received response was invalid"
msgstr "shōu dào de xiǎng yìng wú xiào"
@ -2761,6 +2771,10 @@ msgstr "wúfǎ shèzhì 512 kuài dàxiǎo"
msgid "can't set attribute"
msgstr "wúfǎ shèzhì shǔxìng"
#: py/runtime.c
msgid "can't set attribute '%q'"
msgstr ""
#: py/emitnative.c
msgid "can't store '%q'"
msgstr "wúfǎ cúnchú '%q'"
@ -3130,10 +3144,6 @@ msgstr "zìtǐ bìxū wèi 2048 zì jié"
msgid "format requires a dict"
msgstr "géshì yāoqiú yīgè yǔjù"
#: shared-bindings/microcontroller/Processor.c
msgid "frequency is read-only for this board"
msgstr "cǐ zhǔ bǎn de pín lǜ wéi zhǐ dú"
#: py/objdeque.c
msgid "full"
msgstr "chōngfèn"
@ -4409,6 +4419,12 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "Read-only object"
#~ msgstr "Zhǐ dú duìxiàng"
#~ msgid "frequency is read-only for this board"
#~ msgstr "cǐ zhǔ bǎn de pín lǜ wéi zhǐ dú"
#~ msgid "Unable to write"
#~ msgstr "wú fǎ xiě rù"

@ -1 +1 @@
Subproject commit 57133eefeb077f73b5ac17ee044d9feaf566da8e
Subproject commit baca4c084334aa8625f525a4032d66a397199ea6

View File

@ -46,6 +46,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
#include "supervisor/board.h"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom Echo"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (1)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320005
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,43 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_SDO), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_SCK), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_SPK_I2S_LRC), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_CLK), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_DATA), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomEcho"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
#include "supervisor/board.h"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,49 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom Matrix"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (2)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO21, .sda = &pin_GPIO25}, \
{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
#define CIRCUITPY_BOARD_SPI (1)
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO23, .mosi = &pin_GPIO19, .miso = &pin_GPIO33}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320004
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,51 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
CIRCUITPY_BOARD_BUS_SINGLETON(porta_i2c, i2c, 1)
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_D19), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_A33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_porta_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomMatrix"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
#include "supervisor/board.h"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,48 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2022 CDarius
*
* 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.
*/
// Micropython setup
#define MICROPY_HW_BOARD_NAME "M5Stack Atom U"
#define MICROPY_HW_MCU_NAME "ESP32"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO27)
#define CIRCUITPY_BOARD_I2C (1)
#define CIRCUITPY_BOARD_I2C_PIN {{.scl = &pin_GPIO32, .sda = &pin_GPIO26}}
#define CIRCUITPY_BOARD_SPI (1)
#define CIRCUITPY_BOARD_SPI_PIN {{.clock = &pin_GPIO23, .mosi = &pin_GPIO19, .miso = &pin_GPIO33}}
// For entering safe mode
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO39)
// Explanation of how a user got into safe mode
#define BOARD_USER_SAFE_MODE_ACTION translate("The central button was pressed at start up.\n")
// UART pins attached to the USB-serial converter chip
#define CIRCUITPY_CONSOLE_UART_TX (&pin_GPIO1)
#define CIRCUITPY_CONSOLE_UART_RX (&pin_GPIO3)

View File

@ -0,0 +1,10 @@
CIRCUITPY_CREATOR_ID = 0x10151015
CIRCUITPY_CREATION_ID = 0x00320006
IDF_TARGET = esp32
CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -0,0 +1,42 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
// External pins are in silkscreen order, from top to bottom, left side, then right side
{ MP_ROM_QSTR(MP_QSTR_A25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_DAC1), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_D33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_A33), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SDA), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_DAC2), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_SCL), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_A32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_D32), MP_ROM_PTR(&pin_GPIO32) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_BTN), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_IR_LED), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_CLK), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_PDM_MIC_DATA), MP_ROM_PTR(&pin_GPIO19) },
{ MP_ROM_QSTR(MP_QSTR_PORTA_I2C), MP_ROM_PTR(&board_i2c_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -0,0 +1,26 @@
CONFIG_ESP32_SPIRAM_SUPPORT=n
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="M5StaskAtomU"
# end of LWIP
# Uncomment (remove ###) to send ESP_LOG output to TX/RX pins
### #
### # ESP System Settings
### #
### CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
### # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
### CONFIG_ESP_CONSOLE_UART_CUSTOM=y
### CONFIG_ESP_CONSOLE_NONE is not set
### CONFIG_ESP_CONSOLE_UART=y
### CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y
### # CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set
### CONFIG_ESP_CONSOLE_UART_NUM=0
### CONFIG_ESP_CONSOLE_UART_TX_GPIO=17
### CONFIG_ESP_CONSOLE_UART_RX_GPIO=16
### CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
### # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
### # end of ESP System Settings

View File

@ -369,7 +369,7 @@ void common_hal_socketpool_socket_connect(socketpool_socket_obj_t *self,
struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known);
common_hal_socketpool_socketpool_raise_gaierror_noname();
}
// Set parameters
@ -550,7 +550,7 @@ mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t *self,
struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known);
common_hal_socketpool_socketpool_raise_gaierror_noname();
}
// Set parameters

View File

@ -113,7 +113,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
bool sigint_enabled) {
self->baudrate = baudrate;
self->character_bits = (uint8_t)mp_arg_validate_int_range(self->character_bits, 7, 8, MP_QSTR_bits);
self->character_bits = (uint8_t)mp_arg_validate_int_range(bits, 7, 8, MP_QSTR_bits);
self->timeout_ms = timeout * 1000;

View File

@ -29,8 +29,18 @@
// Turn off cache and invalidate all data in it.
void nrf_peripherals_disable_and_clear_cache(void) {
// Memory fence for hardware and compiler reasons. If this routine is inlined, the compiler
// needs to know that everything written out be stored before this is called.
// -O2 optimization needed this on SAMD51. Assuming nRF may have the same issue.
// __sync_synchronize() includes volatile asm(), which tells the compiler not to assume
// state across this call.
__sync_synchronize();
// Disabling cache also invalidates all cache entries.
NRF_NVMC->ICACHECNF &= ~(1 << NVMC_ICACHECNF_CACHEEN_Pos);
// Memory fence for hardware and compiler reasons.
__sync_synchronize();
}
// Enable cache

View File

@ -0,0 +1,29 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 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.
*/
#include "supervisor/board.h"
// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.

View File

@ -0,0 +1,17 @@
#define MICROPY_HW_BOARD_NAME "nullbits Bit-C PRO"
#define MICROPY_HW_MCU_NAME "rp2040"
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO3)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO2)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO22)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO23)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO20)
#define DEFAULT_UART_BUS_RX (&pin_GPIO1)
#define DEFAULT_UART_BUS_TX (&pin_GPIO0)
#define CIRCUITPY_RGB_STATUS_INVERTED_PWM
#define CIRCUITPY_RGB_STATUS_R (&pin_GPIO16)
#define CIRCUITPY_RGB_STATUS_G (&pin_GPIO17)
#define CIRCUITPY_RGB_STATUS_B (&pin_GPIO18)

View File

@ -0,0 +1,9 @@
USB_VID = 0x2E8A
USB_PID = 0x1048
USB_PRODUCT = "Bit-C PRO"
USB_MANUFACTURER = "nullbits"
CHIP_VARIANT = RP2040
CHIP_FAMILY = rp2
EXTERNAL_FLASH_DEVICES = "GD25Q32C"

View File

@ -0,0 +1,4 @@
// Put board-specific pico-sdk definitions here. This file must exist.
// Allow extra time for xosc to start.
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64

View File

@ -0,0 +1,49 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_module_globals_table[] = {
CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_D26), MP_ROM_PTR(&pin_GPIO26) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_D27), MP_ROM_PTR(&pin_GPIO27) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_D28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_D29), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_D22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_D23), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_D20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO1) },
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO2) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_D21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_LED_GREEN), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_LED_BLUE), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);

View File

@ -98,7 +98,7 @@ void socketpool_resolve_host_raise(socketpool_socketpool_obj_t *self, const char
int result = socketpool_resolve_host(self, host, addr);
if (result < 0) {
printf("socket_resolve_host() returned %d\n", result);
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known);
common_hal_socketpool_socketpool_raise_gaierror_noname();
mp_raise_OSError(-result);
}
}

View File

@ -64,8 +64,8 @@ static inline void nw_put_le32(uint8_t *buf, uint32_t x) {
buf[3] = x >> 24;
}
NORETURN static void ro_attribute(int attr) {
mp_raise_msg_varg(&mp_type_AttributeError, MP_ERROR_TEXT("'%s' object has no attribute '%q'"), "Radio", attr);
NORETURN static void ro_attribute(qstr attr) {
mp_raise_NotImplementedError_varg(translate("%q is read-only for this board"), attr);
}
bool common_hal_wifi_radio_get_enabled(wifi_radio_obj_t *self) {

View File

@ -2,6 +2,9 @@
LONGINT_IMPL = MPZ
CIRCUITPY_OPTIMIZE_PROPERTY_FLASH_SIZE ?= 1
# CYW43 support does not provide settable MAC addresses for station or AP.
CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS = 0
CIRCUITPY_ALARM ?= 1
CIRCUITPY_RP2PIO ?= 1

View File

@ -57,7 +57,11 @@
#endif
#if defined(MICROPY_UNIX_COVERAGE)
#include "py/objstr.h"
typedef int os_getenv_err_t;
mp_obj_t common_hal_os_getenv(const char *key, mp_obj_t default_);
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len);
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value);
#endif
STATIC mp_obj_t mod_os_urandom(mp_obj_t num) {
@ -212,6 +216,28 @@ STATIC mp_obj_t mod_os_getenv(mp_obj_t var_in) {
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_obj, mod_os_getenv);
#if defined(MICROPY_UNIX_COVERAGE)
STATIC mp_obj_t mod_os_getenv_int(mp_obj_t var_in) {
mp_int_t value;
os_getenv_err_t result = common_hal_os_getenv_int(mp_obj_str_get_str(var_in), &value);
if (result == 0) {
return mp_obj_new_int(value);
}
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_int_obj, mod_os_getenv_int);
STATIC mp_obj_t mod_os_getenv_str(mp_obj_t var_in) {
char buf[4096];
os_getenv_err_t result = common_hal_os_getenv_str(mp_obj_str_get_str(var_in), buf, sizeof(buf));
if (result == 0) {
return mp_obj_new_str_copy(&mp_type_str, (byte *)buf, strlen(buf));
}
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_os_getenv_str_obj, mod_os_getenv_str);
#endif
STATIC mp_obj_t mod_os_putenv(mp_obj_t key_in, mp_obj_t value_in) {
const char *key = mp_obj_str_get_str(key_in);
const char *value = mp_obj_str_get_str(value_in);
@ -351,6 +377,10 @@ STATIC const mp_rom_map_elem_t mp_module_os_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&mod_os_rename_obj) },
{ MP_ROM_QSTR(MP_QSTR_rmdir), MP_ROM_PTR(&mod_os_rmdir_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) },
#if defined(MICROPY_UNIX_COVERAGE)
{ MP_ROM_QSTR(MP_QSTR_getenv_int), MP_ROM_PTR(&mod_os_getenv_int_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv_str), MP_ROM_PTR(&mod_os_getenv_str_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mod_os_mkdir_obj) },

View File

@ -37,6 +37,10 @@
// These are defined in modos.c
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mod_os_errno_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_obj);
#if defined(MICROPY_UNIX_COVERAGE)
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_int_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_getenv_str_obj);
#endif
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_putenv_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_unsetenv_obj);
MP_DECLARE_CONST_FUN_OBJ_1(mod_os_system_obj);
@ -47,6 +51,10 @@ STATIC const mp_rom_map_elem_t uos_vfs_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_errno), MP_ROM_PTR(&mod_os_errno_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv), MP_ROM_PTR(&mod_os_getenv_obj) },
#if defined(MICROPY_UNIX_COVERAGE)
{ MP_ROM_QSTR(MP_QSTR_getenv_int), MP_ROM_PTR(&mod_os_getenv_int_obj) },
{ MP_ROM_QSTR(MP_QSTR_getenv_str), MP_ROM_PTR(&mod_os_getenv_str_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_putenv), MP_ROM_PTR(&mod_os_putenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_unsetenv), MP_ROM_PTR(&mod_os_unsetenv_obj) },
{ MP_ROM_QSTR(MP_QSTR_system), MP_ROM_PTR(&mod_os_system_obj) },

View File

@ -538,6 +538,9 @@ CFLAGS += -DCIRCUITPY_WIFI=$(CIRCUITPY_WIFI)
CIRCUITPY_WEB_WORKFLOW ?= $(CIRCUITPY_WIFI)
CFLAGS += -DCIRCUITPY_WEB_WORKFLOW=$(CIRCUITPY_WEB_WORKFLOW)
CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS?= 1
CFLAGS += -DCIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS=$(CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS)
# tinyusb port tailored configuration
CIRCUITPY_TUSB_MEM_ALIGN ?= 4
CFLAGS += -DCIRCUITPY_TUSB_MEM_ALIGN=$(CIRCUITPY_TUSB_MEM_ALIGN)

View File

@ -106,7 +106,9 @@ STATIC mp_obj_t native_base_init_wrapper(size_t n_args, const mp_obj_t *pos_args
// copy in args
memcpy(args2, pos_args, n_args * sizeof(mp_obj_t));
// copy in kwargs
if (n_kw) {
memcpy(args2 + n_args, kw_args->table, 2 * n_kw * sizeof(mp_obj_t));
}
self->subobj[0] = native_base->make_new(native_base, n_args, n_kw, args2);
m_del(mp_obj_t, args2, n_args + 2 * n_kw);

View File

@ -1247,8 +1247,8 @@ void mp_store_attr(mp_obj_t base, qstr attr, mp_obj_t value) {
mp_raise_AttributeError(MP_ERROR_TEXT("no such attribute"));
#else
mp_raise_msg_varg(&mp_type_AttributeError,
MP_ERROR_TEXT("'%s' object has no attribute '%q'"),
mp_obj_get_type_str(base), attr);
MP_ERROR_TEXT("can't set attribute '%q'"),
attr);
#endif
}

View File

@ -65,19 +65,21 @@
//| ...
//| frequency: int
//| """The CPU operating frequency in Hertz. (read-only)"""
//| """The CPU operating frequency in Hertz.
//|
//| **Limitations:** Setting the ``frequency`` is possible only on some i.MX boards.
//| On most boards, ``frequency`` is read-only.
//| """
STATIC mp_obj_t mcu_processor_set_frequency(mp_obj_t self, mp_obj_t freq) {
#if CIRCUITPY_SETTABLE_PROCESSOR_FREQUENCY
STATIC mp_obj_t mcu_processor_set_frequency(mp_obj_t self, mp_obj_t freq) {
uint32_t value_of_freq = (uint32_t)mp_arg_validate_int_min(mp_obj_get_int(freq), 0, MP_QSTR_frequency);
common_hal_mcu_processor_set_frequency(self, value_of_freq);
#else
mp_raise_msg(&mp_type_NotImplementedError,translate("frequency is read-only for this board"));
#endif
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(mcu_processor_set_frequency_obj, mcu_processor_set_frequency);
#endif
STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) {
@ -86,9 +88,14 @@ STATIC mp_obj_t mcu_processor_get_frequency(mp_obj_t self) {
MP_DEFINE_CONST_FUN_OBJ_1(mcu_processor_get_frequency_obj, mcu_processor_get_frequency);
#if CIRCUITPY_SETTABLE_PROCESSOR_FREQUENCY
MP_PROPERTY_GETSET(mcu_processor_frequency_obj,
(mp_obj_t)&mcu_processor_get_frequency_obj,
(mp_obj_t)&mcu_processor_set_frequency_obj);
#else
MP_PROPERTY_GETTER(mcu_processor_frequency_obj,
(mp_obj_t)&mcu_processor_get_frequency_obj);
#endif
//| reset_reason: microcontroller.ResetReason
//| """The reason the microcontroller started up from reset state."""

View File

@ -198,16 +198,21 @@ MP_WEAK
mp_obj_t common_hal_socketpool_socketpool_gethostbyname_raise(socketpool_socketpool_obj_t *self, const char *host) {
mp_obj_t ip_str = common_hal_socketpool_socketpool_gethostbyname(self, host);
if (ip_str == mp_const_none) {
common_hal_socketpool_socketpool_raise_gaierror(SOCKETPOOL_EAI_NONAME, MP_QSTR_Name_space_or_space_service_space_not_space_known);
common_hal_socketpool_socketpool_raise_gaierror_noname();
}
return ip_str;
}
MP_WEAK NORETURN
void common_hal_socketpool_socketpool_raise_gaierror(int value, qstr name) {
mp_obj_t exc_args[2] = {
MP_OBJ_NEW_SMALL_INT(value),
MP_OBJ_NEW_QSTR(name),
void common_hal_socketpool_socketpool_raise_gaierror_noname(void) {
vstr_t vstr;
mp_print_t print;
vstr_init_print(&vstr, 64, &print);
mp_printf(&print, "%S", translate("Name or service not known"));
mp_obj_t exc_args[] = {
MP_OBJ_NEW_SMALL_INT(SOCKETPOOL_EAI_NONAME),
mp_obj_new_str_from_vstr(&mp_type_str, &vstr),
};
nlr_raise(mp_obj_new_exception_args(&mp_type_gaierror, 2, exc_args));
nlr_raise(mp_obj_new_exception_args(&mp_type_gaierror, MP_ARRAY_SIZE(exc_args), exc_args));
}

View File

@ -73,6 +73,6 @@ bool socketpool_socket(socketpool_socketpool_obj_t *self,
socketpool_socketpool_addressfamily_t family, socketpool_socketpool_sock_t type,
socketpool_socket_obj_t *sock);
NORETURN void common_hal_socketpool_socketpool_raise_gaierror(int value, qstr name);
NORETURN void common_hal_socketpool_socketpool_raise_gaierror_noname(void);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_SOCKETPOOL_SOCKETPOOL_H

View File

@ -139,13 +139,19 @@ MP_PROPERTY_GETSET(wifi_radio_hostname_obj,
//| mac_address: ReadableBuffer
//| """MAC address for the station. When the address is altered after interface is connected
//| the changes would only be reflected once the interface reconnects."""
//| the changes would only be reflected once the interface reconnects.
//|
//| **Limitations:** Not settable on RP2040 CYW43 boards, such as Pi Pico W.
//| """
STATIC mp_obj_t _wifi_radio_get_mac_address(mp_obj_t self_in) {
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_obj, _wifi_radio_get_mac_address);
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
STATIC mp_obj_t wifi_radio_set_mac_address(mp_obj_t self_in, mp_obj_t mac_address_in) {
mp_buffer_info_t mac_address;
mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ);
@ -160,10 +166,16 @@ STATIC mp_obj_t wifi_radio_set_mac_address(mp_obj_t self_in, mp_obj_t mac_addres
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_obj, wifi_radio_set_mac_address);
#endif
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
MP_PROPERTY_GETSET(wifi_radio_mac_address_obj,
(mp_obj_t)&wifi_radio_get_mac_address_obj,
(mp_obj_t)&wifi_radio_set_mac_address_obj);
#else
MP_PROPERTY_GETTER(wifi_radio_mac_address_obj,
(mp_obj_t)&wifi_radio_get_mac_address_obj);
#endif
//| tx_power: float
//| """Wifi transmission power, in dBm."""
@ -187,13 +199,17 @@ MP_PROPERTY_GETSET(wifi_radio_tx_power_obj,
//| mac_address_ap: ReadableBuffer
//| """MAC address for the AP. When the address is altered after interface is started
//| the changes would only be reflected once the interface restarts."""
//| the changes would only be reflected once the interface restarts.
//|
//| **Limitations:** Not settable on RP2040 CYW43 boards, such as Pi Pico W.
//| """
STATIC mp_obj_t wifi_radio_get_mac_address_ap(mp_obj_t self_in) {
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address_ap(self));
}
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_ap_obj, wifi_radio_get_mac_address_ap);
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_address_in) {
mp_buffer_info_t mac_address;
mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ);
@ -208,10 +224,16 @@ STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_add
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_ap_obj, wifi_radio_set_mac_address_ap);
#endif
#if CIRCUITPY_WIFI_RADIO_SETTABLE_MAC_ADDRESS
MP_PROPERTY_GETSET(wifi_radio_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_get_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_set_mac_address_ap_obj);
#else
MP_PROPERTY_GETTER(wifi_radio_mac_address_ap_obj,
(mp_obj_t)&wifi_radio_get_mac_address_ap_obj);
#endif
//| def start_scanning_networks(
//| self, *, start_channel: int = 1, stop_channel: int = 11

View File

@ -689,7 +689,7 @@ STATIC void fill_row(displayio_bitmap_t *bitmap, int swap, int16_t *luminance_da
static void write_pixels(displayio_bitmap_t *bitmap, int y, bool *data) {
if (bitmap->bits_per_value == 1) {
uint32_t *pixel_data = (uint32_t *)(bitmap->data + bitmap->stride * y);
for (int i = 0; i < bitmap->stride; i++) {
for (int i = 0; i < bitmap->width; i++) {
uint32_t p = 0;
for (int j = 0; j < 32; j++) {
p = (p << 1);

View File

@ -30,12 +30,12 @@
#include "py/runtime.h"
enum { align_bits = 8 * sizeof(uint32_t) };
enum { ALIGN_BITS = 8 * sizeof(uint32_t) };
static int stride(uint32_t width, uint32_t bits_per_value) {
uint32_t row_width = width * bits_per_value;
// align to uint32_t
return (row_width + align_bits - 1) / align_bits;
return (row_width + ALIGN_BITS - 1) / ALIGN_BITS;
}
void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t width,
@ -66,12 +66,12 @@ void common_hal_displayio_bitmap_construct_from_buffer(displayio_bitmap_t *self,
self->x_shift = 0; // Used to divide the index by the number of pixels per word. Its used in a
// shift which effectively divides by 2 ** x_shift.
uint32_t power_of_two = 1;
while (power_of_two < align_bits / bits_per_value) {
while (power_of_two < ALIGN_BITS / bits_per_value) {
self->x_shift++;
power_of_two <<= 1;
}
self->x_mask = (1 << self->x_shift) - 1; // Used as a modulus on the x value
self->bitmask = (1 << bits_per_value) - 1;
self->x_mask = (1u << self->x_shift) - 1u; // Used as a modulus on the x value
self->bitmask = (1u << bits_per_value) - 1u;
self->dirty_area.x1 = 0;
self->dirty_area.x2 = width;
@ -117,7 +117,7 @@ uint32_t common_hal_displayio_bitmap_get_pixel(displayio_bitmap_t *self, int16_t
void displayio_bitmap_set_dirty_area(displayio_bitmap_t *self, const displayio_area_t *dirty_area) {
if (self->read_only) {
mp_raise_RuntimeError(translate("Read-only object"));
mp_raise_RuntimeError(translate("Read-only"));
}
displayio_area_t area = *dirty_area;

View File

@ -38,9 +38,11 @@ typedef enum {
// Allocation free version that returns the full length of the value.
// If it fits, the return value is 0-terminated. The passed in buffer
// may be modified even if an error is returned. Allocation free.
// An error that is not 'open' or 'not found' is printed on the repl.
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len);
// Returns GETENV_OK and sets value to the read value. Returns
// GETENV_ERR_... if the value was not numeric. allocation-free.
// If any error code is returned, value is guaranteed not modified
// An error that is not 'open' or 'not found' is printed on the repl.
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value);

View File

@ -28,6 +28,7 @@
// tested in the unix "coverage" build, without bringing in "our" os module
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include "shared-bindings/os/__init__.h"
@ -36,6 +37,7 @@
#include "py/gc.h"
#include "py/misc.h"
#include "py/mpstate.h"
#include "py/mpprint.h"
#include "py/objstr.h"
#include "py/parsenum.h"
#include "py/runtime.h"
@ -199,6 +201,7 @@ STATIC os_getenv_err_t read_string_value(file_arg *active_file, vstr_t *buf) {
case '#':
next_line(active_file);
MP_FALLTHROUGH;
case 0:
case '\n':
return GETENV_OK;
default:
@ -255,7 +258,6 @@ STATIC os_getenv_err_t read_bare_value(file_arg *active_file, vstr_t *buf, int f
while (true) {
switch (character) {
case 0:
return GETENV_ERR_UNEXPECTED | character;
case '\n':
return GETENV_OK;
case '#':
@ -290,6 +292,7 @@ STATIC os_getenv_err_t os_getenv_vstr(const char *path, const char *key, vstr_t
while (!is_eof(&active_file)) {
if (key_matches(&active_file, key)) {
result = read_value(&active_file, buf, quoted);
break;
}
}
close_file(&active_file);
@ -311,7 +314,58 @@ STATIC os_getenv_err_t os_getenv_buf_terminated(const char *key, char *value, si
return result;
}
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len) {
STATIC void print_dont_raise(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, ...) {
va_list argptr;
va_start(argptr,fmt);
mp_vcprintf(&mp_plat_print, fmt, argptr);
mp_printf(&mp_plat_print, "\n");
va_end(argptr);
}
STATIC void handle_getenv_error(os_getenv_err_t error, void (*handle)(const mp_obj_type_t *exc_type, const compressed_string_t *fmt, ...)) {
if (error == GETENV_OK) {
return;
}
if (error & GETENV_ERR_UNEXPECTED) {
byte character = (error & 0xff);
char buf[8];
vstr_t vstr;
vstr_init_fixed_buf(&vstr, sizeof(buf), buf);
mp_print_t print = { .data = &vstr, .print_strn = (mp_print_strn_t)vstr_add_strn };
if (character) {
mp_str_print_quoted(&print, &character, 1, true);
} else {
mp_str_print_quoted(&print, (byte *)"EOF", 3, true);
}
handle(&mp_type_ValueError, translate("Invalid byte %.*s"), vstr.len, vstr.buf);
} else {
switch (error) {
case GETENV_ERR_OPEN:
handle(&mp_type_ValueError, translate("%S"), translate("File not found"));
break;
case GETENV_ERR_UNICODE:
handle(&mp_type_ValueError, translate("%S"), translate("Invalid unicode escape"));
break;
case GETENV_ERR_NOT_FOUND:
handle(&mp_type_ValueError, translate("%S"), translate("Key not found"));
break;
default:
handle(&mp_type_RuntimeError, translate("%S"), translate("Internal error"));
break;
}
}
}
STATIC void common_hal_os_getenv_showerr(const char *key, os_getenv_err_t result) {
if (result != GETENV_OK && result != GETENV_ERR_OPEN && result != GETENV_ERR_NOT_FOUND) {
mp_cprintf(&mp_plat_print, translate("An error occurred while retrieving '%s':\n"), key);
handle_getenv_error(result, print_dont_raise);
}
}
STATIC
os_getenv_err_t common_hal_os_getenv_str_inner(const char *key, char *value, size_t value_len) {
bool quoted;
os_getenv_err_t result = os_getenv_buf_terminated(key, value, value_len, &quoted);
if (result == GETENV_OK && !quoted) {
@ -320,33 +374,10 @@ os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t va
return result;
}
STATIC void throw_getenv_error(os_getenv_err_t error) {
if (error == GETENV_OK) {
return;
}
if (error & GETENV_ERR_UNEXPECTED) {
byte character = (error & 0xff);
mp_print_t print;
vstr_t vstr;
vstr_init_print(&vstr, 8 + 4 + 1, &print);
if (character) {
mp_str_print_quoted(&print, &character, 1, true);
} else {
mp_str_print_quoted(&print, (byte *)"EOF", 3, true);
}
mp_raise_ValueError_varg(translate("Invalid byte %.*s"),
vstr.len, vstr.buf);
}
switch (error) {
case GETENV_ERR_OPEN:
mp_raise_ValueError(translate("File not found"));
case GETENV_ERR_UNICODE:
mp_raise_ValueError(translate("Invalid unicode escape"));
case GETENV_ERR_NOT_FOUND:
mp_raise_ValueError(translate("Key not found"));
default:
mp_raise_RuntimeError(translate("Internal error"));
}
os_getenv_err_t common_hal_os_getenv_str(const char *key, char *value, size_t value_len) {
os_getenv_err_t result = common_hal_os_getenv_str_inner(key, value, value_len);
common_hal_os_getenv_showerr(key, result);
return result;
}
mp_obj_t common_hal_os_getenv_path(const char *path, const char *key, mp_obj_t default_) {
@ -358,7 +389,7 @@ mp_obj_t common_hal_os_getenv_path(const char *path, const char *key, mp_obj_t d
if (result == GETENV_ERR_NOT_FOUND || result == GETENV_ERR_OPEN) {
return default_;
}
throw_getenv_error(result);
handle_getenv_error(result, mp_raise_msg_varg);
if (quoted) {
return mp_obj_new_str_from_vstr(&mp_type_str, &buf);
@ -371,7 +402,7 @@ mp_obj_t common_hal_os_getenv(const char *key, mp_obj_t default_) {
return common_hal_os_getenv_path(GETENV_PATH, key, default_);
}
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) {
STATIC os_getenv_err_t common_hal_os_getenv_int_inner(const char *key, mp_int_t *value) {
char buf[16];
bool quoted;
os_getenv_err_t result = os_getenv_buf_terminated(key, buf, sizeof(buf), &quoted);
@ -383,9 +414,18 @@ os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) {
}
char *end;
long num = strtol(buf, &end, 0);
while (unichar_isspace(*end)) {
end++;
}
if (end == buf || *end) { // If the whole buffer was not consumed it's an error
return GETENV_ERR_UNEXPECTED | *end;
}
*value = (mp_int_t)num;
return GETENV_OK;
}
os_getenv_err_t common_hal_os_getenv_int(const char *key, mp_int_t *value) {
os_getenv_err_t result = common_hal_os_getenv_int_inner(key, value);
common_hal_os_getenv_showerr(key, result);
return result;
}

View File

@ -58,6 +58,9 @@ static supervisor_allocation *supervisor_cache = NULL;
// Wait until both the write enable and write in progress bits have cleared.
static bool wait_for_flash_ready(void) {
if (flash_device == NULL) {
return false;
}
bool ok = true;
// Both the write enable and write in progress bits should be low.
if (flash_device->no_ready_bit) {
@ -192,6 +195,9 @@ static bool copy_block(uint32_t src_address, uint32_t dest_address) {
return true;
}
#define READ_JEDEC_ID_RETRY_COUNT (100)
// If this fails, flash_device will remain NULL.
void supervisor_flash_init(void) {
if (flash_device != NULL) {
return;
@ -220,7 +226,11 @@ void supervisor_flash_init(void) {
#else
// The response will be 0xff if the flash needs more time to start up.
uint8_t jedec_id_response[3] = {0xff, 0xff, 0xff};
while (jedec_id_response[0] == 0xff) {
// Response can also be 0x00 if reading before ready. When compiled with `-O2`, typically
// takes three tries to read on Grand Central M4.
size_t count = READ_JEDEC_ID_RETRY_COUNT;
while ((count-- > 0) && (jedec_id_response[0] == 0xff || jedec_id_response[2] == 0x00)) {
spi_flash_read_command(CMD_READ_JEDEC_ID, jedec_id_response, 3);
}
for (uint8_t i = 0; i < EXTERNAL_FLASH_DEVICE_COUNT; i++) {
@ -234,6 +244,7 @@ void supervisor_flash_init(void) {
}
#endif
if (flash_device == NULL) {
// Flash did not respond. Give up.
return;
}
@ -293,6 +304,9 @@ uint32_t supervisor_flash_get_block_size(void) {
// The total number of available blocks.
uint32_t supervisor_flash_get_block_count(void) {
if (flash_device == NULL) {
return 0;
}
// We subtract one erase sector size because we may use it as a staging area
// for writes.
return (flash_device->total_size - SPI_FLASH_ERASE_SIZE) / FILESYSTEM_BLOCK_SIZE;

View File

@ -35,15 +35,15 @@ bdev = RAMBlockDevice(64)
uos.VfsFat.mkfs(bdev)
uos.mount(uos.VfsFat(bdev), "/")
content_good = """
content_good = b"""
# comment
key0 = "hello world"
key1 = 7
key2= "\n"
key3 ="\u00c1x"
key4 = "\U000000c1x"
key5 = "\f\"\\"
key6 = "\t\r\b"
key2= "\\n"
key3 ="\\u00c1x"
key4 = "\\U000000c1x"
key5 = "\\f\\"\\\\"
key6 = "\\t\\r\\b"
key7 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
key8 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
key9 = "hello comment" # comment
@ -54,15 +54,15 @@ subvalue = "hi"
"""
content_bad = [
'key = "\n',
'key = """\n',
"key =\n",
'key="',
b'key = "\n',
b'key = """\n',
b"key =\n",
b'key="',
]
def run_test(key, content):
with open("/settings.toml", "w") as f:
with open("/settings.toml", "wb") as f:
f.write(content)
try:
@ -75,5 +75,15 @@ def run_test(key, content):
for i in range(13):
run_test(f"key{i}", content_good)
content_good = content_good.replace(b"\n", b"\r\n")
for i in range(13):
run_test(f"key{i}", content_good)
run_test(f"K", b"K = 7\r\n")
print(uos.getenv_int("K"))
# Test value without trailing newline
run_test(f"noeol", b"noeol=3")
for content in content_bad:
run_test("key", content)

View File

@ -1,9 +1,9 @@
key0 'hello world'
key1 7
key2 Invalid byte '\n'
key2 '\n'
key3 'Áx'
key4 'Áx'
key5 Invalid byte '\\'
key5 '\x0c"\\'
key6 '\t\r\x08'
key7 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key8 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@ -11,6 +11,22 @@ key9 'hello comment'
key10 127
key11 0
key12 None
key0 'hello world'
key1 7
key2 '\n'
key3 'Áx'
key4 'Áx'
key5 '\x0c"\\'
key6 '\t\r\x08'
key7 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key8 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
key9 'hello comment'
key10 127
key11 0
key12 None
K 7
7
noeol 3
key Invalid byte '\n'
key Invalid byte '"'
key invalid syntax for integer with base 10: ''