diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot index 4434a0018d7b0..16ec8ce0f422c 100644 --- a/locale/circuitpython.pot +++ b/locale/circuitpython.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-20 09:37-0700\n" +"POT-Creation-Date: 2018-08-23 02:28+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,18 +17,64 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: extmod/machine_i2c.c:299 -msgid "invalid I2C peripheral" +#: extmod/modutimeq.c:131 +msgid "queue overflow" msgstr "" -#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 -#: extmod/machine_i2c.c:392 -msgid "I2C operation not supported" +#: extmod/modutimeq.c:147 extmod/modutimeq.c:172 extmod/moduheapq.c:86 +msgid "empty heap" msgstr "" -#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 -#, c-format -msgid "address %08x is not aligned to %d bytes" +#: extmod/moductypes.c:122 +msgid "syntax error in uctypes descriptor" +msgstr "" + +#: extmod/moductypes.c:219 +msgid "Cannot unambiguously get sizeof scalar" +msgstr "" + +#: extmod/moductypes.c:397 +msgid "struct: no fields" +msgstr "" + +#: extmod/moductypes.c:530 +msgid "struct: cannot index" +msgstr "" + +#: extmod/moductypes.c:544 +msgid "struct: index out of range" +msgstr "" + +#: extmod/moduheapq.c:38 +msgid "heap must be a list" +msgstr "" + +#: extmod/modussl_axtls.c:81 +msgid "invalid key" +msgstr "" + +#: extmod/modussl_axtls.c:87 +msgid "invalid cert" +msgstr "" + +#: extmod/modujson.c:281 +msgid "syntax error in JSON" +msgstr "" + +#: extmod/vfs_fat.c:426 py/moduerrno.c:150 +msgid "Read-only filesystem" +msgstr "" + +#: extmod/moduzlib.c:97 +msgid "compression header" +msgstr "" + +#: extmod/modframebuf.c:299 +msgid "invalid format" +msgstr "" + +#: extmod/uos_dupterm.c:120 +msgid "invalid dupterm index" msgstr "" #: extmod/machine_spi.c:57 @@ -51,10 +97,6 @@ msgstr "" msgid "must specify all of sck/mosi/miso" msgstr "" -#: extmod/modframebuf.c:299 -msgid "invalid format" -msgstr "" - #: extmod/modubinascii.c:38 extmod/moduhashlib.c:102 msgid "a bytes-like object is required" msgstr "" @@ -71,849 +113,937 @@ msgstr "" msgid "incorrect padding" msgstr "" -#: extmod/moductypes.c:122 -msgid "syntax error in uctypes descriptor" -msgstr "" - -#: extmod/moductypes.c:219 -msgid "Cannot unambiguously get sizeof scalar" +#: extmod/machine_i2c.c:299 +msgid "invalid I2C peripheral" msgstr "" -#: extmod/moductypes.c:397 -msgid "struct: no fields" +#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 +#: extmod/machine_i2c.c:392 +msgid "I2C operation not supported" msgstr "" -#: extmod/moductypes.c:530 -msgid "struct: cannot index" +#: extmod/vfs_posix_file.c:48 py/objstringio.c:43 ports/unix/file.c:50 +msgid "I/O operation on closed file" msgstr "" -#: extmod/moductypes.c:544 -msgid "struct: index out of range" +#: extmod/modure.c:161 +msgid "Splitting with sub-captures" msgstr "" -#: extmod/moduheapq.c:38 -msgid "heap must be a list" +#: extmod/modure.c:207 +msgid "Error in regex" msgstr "" -#: extmod/moduheapq.c:86 extmod/modutimeq.c:147 extmod/modutimeq.c:172 -msgid "empty heap" +#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 +#, c-format +msgid "address %08x is not aligned to %d bytes" msgstr "" -#: extmod/modujson.c:281 -msgid "syntax error in JSON" +#: py/vm.c:255 +msgid "local variable referenced before assignment" msgstr "" -#: extmod/modure.c:161 -msgid "Splitting with sub-captures" +#: py/vm.c:1142 +msgid "no active exception to reraise" msgstr "" -#: extmod/modure.c:207 -msgid "Error in regex" +#: py/vm.c:1284 +msgid "byte code not implemented" msgstr "" -#: extmod/modussl_axtls.c:81 -msgid "invalid key" +#: py/builtinimport.c:253 lib/utils/pyexec.c:97 +msgid "script compilation not supported" msgstr "" -#: extmod/modussl_axtls.c:87 -msgid "invalid cert" +#: py/builtinimport.c:338 +msgid "cannot perform relative import" msgstr "" -#: extmod/modutimeq.c:131 -msgid "queue overflow" +#: py/builtinimport.c:422 py/builtinimport.c:534 +msgid "module not found" msgstr "" -#: extmod/moduzlib.c:97 -msgid "compression header" +#: py/builtinimport.c:425 py/builtinimport.c:537 +msgid "no module named '%q'" msgstr "" -#: extmod/uos_dupterm.c:120 -msgid "invalid dupterm index" +#: py/builtinimport.c:512 +msgid "relative import" msgstr "" -#: extmod/vfs_fat.c:426 py/moduerrno.c:150 -msgid "Read-only filesystem" +#: py/moduerrno.c:143 py/moduerrno.c:146 +msgid "Permission denied" msgstr "" -#: extmod/vfs_posix_file.c:48 ports/unix/file.c:50 py/objstringio.c:43 -msgid "I/O operation on closed file" +#: py/moduerrno.c:144 +msgid "No such file/directory" msgstr "" -#: lib/embed/abort_.c:8 -msgid "abort() called" +#: py/moduerrno.c:145 +msgid "Input/output error" msgstr "" -#: lib/netutils/netutils.c:83 -msgid "invalid arguments" +#: py/moduerrno.c:147 +msgid "File exists" msgstr "" -#: lib/utils/pyexec.c:97 py/builtinimport.c:253 -msgid "script compilation not supported" +#: py/moduerrno.c:148 +msgid "Unsupported operation" msgstr "" -#: main.c:143 -msgid " output:\n" +#: py/moduerrno.c:149 +msgid "Invalid argument" msgstr "" -#: main.c:157 main.c:230 +#: py/persistentcode.c:223 msgid "" -"Auto-reload is on. Simply save files over USB to run them or enter REPL to " -"disable.\n" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." msgstr "" -#: main.c:159 -msgid "Running in safe mode! Auto-reload is off.\n" +#: py/persistentcode.c:326 +msgid "can only save bytecode" msgstr "" -#: main.c:161 main.c:232 -msgid "Auto-reload is off.\n" +#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 +#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 +#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 +msgid "buffer too small" msgstr "" -#: main.c:175 -msgid "Running in safe mode! Not running saved code.\n" +#: py/objlist.c:273 +msgid "pop from empty list" msgstr "" -#: main.c:191 -msgid "WARNING: Your code filename has two extensions\n" +#: py/objrange.c:110 +msgid "zero step" msgstr "" -#: main.c:239 -msgid "You requested starting safe mode by " +#: py/objgenerator.c:108 +msgid "can't send non-None value to a just-started generator" msgstr "" -#: main.c:242 -msgid "To exit, please reset the board without " +#: py/objgenerator.c:126 +msgid "generator already executing" msgstr "" -#: main.c:249 -msgid "" -"You are running in safe mode which means something really bad happened.\n" +#: py/objgenerator.c:229 +msgid "generator ignored GeneratorExit" msgstr "" -#: main.c:251 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#: py/objgenerator.c:251 +msgid "can't pend throw to just-started generator" msgstr "" -#: main.c:252 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#: py/parse.c:726 +msgid "constant must be an integer" msgstr "" -#: main.c:255 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" +#: py/parse.c:868 +msgid "Unable to init parser" msgstr "" -#: main.c:256 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" +#: py/parse.c:1170 +msgid "unexpected indent" msgstr "" -#: main.c:260 -msgid "Press any key to enter the REPL. Use CTRL-D to reload." +#: py/parse.c:1173 +msgid "unindent does not match any outer indentation level" msgstr "" -#: main.c:415 -msgid "soft reboot\n" +#: py/parse.c:1176 py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 +#: py/compile.c:2742 +msgid "invalid syntax" msgstr "" -#: ports/atmel-samd/audio_dma.c:285 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 -msgid "All sync event channels in use" +#: py/obj.c:90 +msgid "Traceback (most recent call last):\n" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:135 -msgid "calibration is read only" +#: py/obj.c:94 +msgid " File \"%q\", line %d" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:137 -msgid "calibration is out of range" +#: py/obj.c:96 +msgid " File \"%q\"" msgstr "" -#: ports/atmel-samd/board_busses.c:39 -msgid "No default I2C bus" +#: py/obj.c:100 +msgid ", in %q\n" msgstr "" -#: ports/atmel-samd/board_busses.c:64 -msgid "No default SPI bus" +#: py/obj.c:257 +msgid "can't convert to int" msgstr "" -#: ports/atmel-samd/board_busses.c:91 -msgid "No default UART bus" +#: py/obj.c:260 +#, c-format +msgid "can't convert %s to int" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 -#: ports/nrf/common-hal/analogio/AnalogIn.c:39 -msgid "Pin does not have ADC capabilities" +#: py/obj.c:320 +msgid "can't convert to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 -msgid "No DAC on chip" +#: py/obj.c:323 +#, c-format +msgid "can't convert %s to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 -msgid "AnalogOut not supported on given pin" +#: py/obj.c:353 +msgid "can't convert to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 -msgid "Invalid bit clock pin" +#: py/obj.c:356 +#, c-format +msgid "can't convert %s to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 -msgid "Bit clock and word select must share a clock unit" +#: py/obj.c:371 +msgid "expected tuple/list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 -msgid "Invalid data pin" +#: py/obj.c:374 +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 -msgid "Serializer in use" +#: py/obj.c:385 +msgid "tuple/list has wrong length" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 -msgid "Clock unit in use" +#: py/obj.c:387 +#, c-format +msgid "requested length %d but object has length %d" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 -msgid "Unable to find free GCLK" +#: py/obj.c:400 +msgid "indices must be integers" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 -msgid "Too many channels in sample." +#: py/obj.c:403 +msgid "%q indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:326 -msgid "No DMA channel found" +#: py/obj.c:420 ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 +msgid "index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:328 -msgid "Unable to allocate buffers for signed conversion" +#: py/obj.c:423 +msgid "%q index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 -msgid "Invalid clock pin" +#: py/obj.c:455 +msgid "object has no len" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 -msgid "Only 8 or 16 bit mono with " +#: py/obj.c:458 +#, c-format +msgid "object of type '%s' has no len()" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 -msgid "sampling rate out of range" +#: py/obj.c:496 +msgid "object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:69 -msgid "DAC already in use" +#: py/obj.c:499 +#, c-format +msgid "'%s' object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:73 -msgid "Right channel unsupported" +#: py/obj.c:503 +msgid "object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:76 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:116 -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 -msgid "Invalid pin" +#: py/obj.c:506 +#, c-format +msgid "'%s' object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:84 -msgid "Invalid pin for left channel" +#: py/obj.c:510 +msgid "object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:88 -msgid "Invalid pin for right channel" +#: py/obj.c:513 +#, c-format +msgid "'%s' object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:91 -msgid "Cannot output both channels on the same pin" +#: py/obj.c:544 +msgid "object with buffer protocol required" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:173 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:186 -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:110 -msgid "All timers in use" +#: py/objslice.c:66 +msgid "Length must be an int" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:215 -msgid "All event channels in use" +#: py/objslice.c:71 +msgid "Length must be non-negative" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:71 -msgid "Not enough pins available" +#: py/objslice.c:86 py/sequence.c:57 +msgid "slice step cannot be zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:78 -#: ports/atmel-samd/common-hal/busio/SPI.c:132 -#: ports/atmel-samd/common-hal/busio/UART.c:119 -#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 -#: ports/nrf/common-hal/busio/I2C.c:58 -msgid "Invalid pins" +#: py/objslice.c:159 +msgid "Cannot subclass slice" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:101 -msgid "SDA or SCL needs a pull up" +#: py/objdeque.c:107 +msgid "full" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:121 -msgid "Unsupported baudrate" +#: py/objdeque.c:127 +msgid "empty" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:66 -msgid "bytes > 8 bits not supported" +#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 +msgid "negative power with no float support" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:72 -msgid "tx and rx cannot both be None" +#: py/objint_longlong.c:222 py/objfloat.c:270 py/modmath.c:196 +#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 +msgid "division by zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:139 -msgid "Failed to allocate RX buffer" +#: py/objint_longlong.c:251 +msgid "ulonglong too large" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:147 -msgid "Could not initialize UART" +#: py/objstrunicode.c:134 +#, c-format +msgid "string indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:234 -msgid "No RX pin" +#: py/objstrunicode.c:145 py/objstrunicode.c:164 +msgid "string index out of range" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:284 -msgid "No TX pin" +#: py/objstrunicode.c:191 py/objtuple.c:187 py/objstr.c:427 py/objarray.c:413 +#: shared-bindings/nvm/ByteArray.c:85 +msgid "only slices with step=1 (aka None) are supported" msgstr "" -#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 -#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 -msgid "Cannot get pull while in output mode" +#: py/argcheck.c:44 +msgid "function does not take keyword arguments" msgstr "" -#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 -#: ports/esp8266/common-hal/microcontroller/__init__.c:64 -msgid "Cannot reset into bootloader because no bootloader is present." +#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 +#, c-format +msgid "function takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:120 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:366 -#: ports/nrf/common-hal/pulseio/PWMOut.c:227 -msgid "Invalid PWM frequency" +#: py/argcheck.c:64 +#, c-format +msgid "function missing %d required positional arguments" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:184 -msgid "All timers for this pin are in use" +#: py/argcheck.c:72 +#, c-format +msgid "function expected at most %d arguments, got %d" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 -msgid "No hardware support on pin" +#: py/argcheck.c:97 +msgid "'%q' argument required" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 -msgid "EXTINT channel already in use" +#: py/argcheck.c:122 +msgid "extra positional arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 -#, c-format -msgid "Failed to allocate RX buffer of %d bytes" +#: py/argcheck.c:130 +msgid "extra keyword arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 -msgid "pop from an empty PulseIn" +#: py/argcheck.c:142 +msgid "argument num/types mismatch" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 -msgid "index out of range" +#: py/argcheck.c:147 +msgid "keyword argument(s) not yet implemented - use normal args instead" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:178 -msgid "Another send is already active" +#: py/objfloat.c:308 py/parsenum.c:331 +msgid "complex values not supported" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 -msgid "Both pins must support hardware interrupts" +#: py/bc.c:88 py/objnamedtuple.c:108 +msgid "%q() takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 -msgid "A hardware interrupt channel is already in use" +#: py/bc.c:197 py/bc.c:215 +msgid "unexpected keyword argument" msgstr "" -#: ports/atmel-samd/common-hal/rtc/RTC.c:101 -msgid "calibration value out of range +/-127" +#: py/bc.c:199 +msgid "keywords must be strings" msgstr "" -#: ports/atmel-samd/common-hal/storage/__init__.c:48 -msgid "Cannot remount '/' when USB is active." +#: py/bc.c:206 py/objnamedtuple.c:138 +msgid "function got multiple values for argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 -msgid "No free GCLKs" +#: py/bc.c:218 py/objnamedtuple.c:130 +msgid "unexpected keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 -#: ports/nrf/common-hal/usb_hid/Device.c:45 +#: py/bc.c:244 #, c-format -msgid "Buffer incorrect size. Should be %d bytes." +msgid "function missing required positional argument #%d" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:53 -msgid "USB Busy" +#: py/bc.c:260 +msgid "function missing required keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:59 -msgid "USB Error" +#: py/bc.c:269 +msgid "function missing keyword-only argument" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 -msgid "Pin %q does not have ADC capabilities" +#: py/emitinlinextensa.c:86 +msgid "can only have up to 4 parameters to Xtensa assembly" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 -msgid "No hardware support for analog out." +#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 +msgid "parameters must be registers in sequence a2 to a5" msgstr "" -#: ports/esp8266/common-hal/busio/SPI.c:72 -msgid "Pins not valid for SPI" +#: py/emitinlinextensa.c:162 +#, c-format +msgid "'%s' expects a register" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:45 -msgid "Only tx supported on UART1 (GPIO2)." +#: py/emitinlinextensa.c:169 +#, c-format +msgid "'%s' expects an integer" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 -msgid "invalid data bits" +#: py/emitinlinextensa.c:174 +#, c-format +msgid "'%s' integer %d is not within range %d..%d" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 -msgid "invalid stop bits" +#: py/emitinlinextensa.c:182 +#, c-format +msgid "'%s' expects a label" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 -msgid "ESP8266 does not support pull down." +#: py/emitinlinextensa.c:193 +msgid "label '%q' not defined" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 -msgid "GPIO16 does not support pull up." +#: py/emitinlinextensa.c:327 +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c:66 -msgid "ESP8226 does not support safe mode." +#: py/modthread.c:240 +msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 -#, c-format -msgid "Maximum PWM frequency is %dhz." +#: py/objset.c:371 +msgid "pop from an empty set" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 -msgid "Minimum PWM frequency is 1hz." +#: py/modbuiltins.c:162 +msgid "chr() arg not in range(0x110000)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#: py/modbuiltins.c:171 +msgid "chr() arg not in range(256)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#: py/modbuiltins.c:285 +msgid "arg is an empty sequence" +msgstr "" + +#: py/modbuiltins.c:350 +msgid "ord expects a character" +msgstr "" + +#: py/modbuiltins.c:353 #, c-format -msgid "PWM not supported on pin %d" +msgid "ord() expected a character, but string of length %d found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 -msgid "No PulseIn support for %q" +#: py/modbuiltins.c:363 +msgid "3-arg pow() not supported" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:34 -msgid "Unable to remount filesystem" +#: py/modbuiltins.c:517 +msgid "must use keyword argument for key function" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:38 -msgid "Use esptool to erase flash and re-upload Python instead" +#: py/objobject.c:55 +msgid "__new__ arg must be a user-type" msgstr "" -#: ports/esp8266/esp_mphal.c:154 -msgid "C-level assert" +#: py/lexer.c:345 +msgid "unicode name escapes" msgstr "" -#: ports/esp8266/machine_adc.c:57 +#: py/modmath.c:41 shared-bindings/math/__init__.c:53 +msgid "math domain error" +msgstr "" + +#: py/objtype.c:358 +msgid "__init__() should return None" +msgstr "" + +#: py/objtype.c:360 #, c-format -msgid "not a valid ADC Channel: %d" +msgid "__init__() should return None, not '%s'" msgstr "" -#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 -msgid "impossible baudrate" +#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 +msgid "unreadable attribute" msgstr "" -#: ports/esp8266/machine_pin.c:129 -msgid "expecting a pin" +#: py/objtype.c:868 py/runtime.c:653 +msgid "object not callable" msgstr "" -#: ports/esp8266/machine_pin.c:284 -msgid "Pin(16) doesn't support pull" +#: py/objtype.c:870 py/runtime.c:655 +#, c-format +msgid "'%s' object is not callable" msgstr "" -#: ports/esp8266/machine_pin.c:323 -msgid "invalid pin" +#: py/objtype.c:978 +msgid "type takes 1 or 3 arguments" msgstr "" -#: ports/esp8266/machine_pin.c:389 -msgid "pin does not have IRQ capabilities" +#: py/objtype.c:989 +msgid "cannot create instance" msgstr "" -#: ports/esp8266/machine_rtc.c:185 -msgid "buffer too long" +#: py/objtype.c:991 +msgid "cannot create '%q' instances" msgstr "" -#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 -#: ports/esp8266/machine_rtc.c:246 -msgid "invalid alarm" +#: py/objtype.c:1047 +msgid "can't add special method to already-subclassed class" msgstr "" -#: ports/esp8266/machine_uart.c:169 -#, c-format -msgid "UART(%d) does not exist" +#: py/objtype.c:1091 py/objtype.c:1097 +msgid "type is not an acceptable base type" msgstr "" -#: ports/esp8266/machine_uart.c:219 -msgid "UART(1) can't read" +#: py/objtype.c:1100 +msgid "type '%q' is not an acceptable base type" msgstr "" -#: ports/esp8266/modesp.c:119 -msgid "len must be multiple of 4" +#: py/objtype.c:1137 +msgid "multiple inheritance not supported" msgstr "" -#: ports/esp8266/modesp.c:274 -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" +#: py/objtype.c:1164 +msgid "multiple bases have instance lay-out conflict" msgstr "" -#: ports/esp8266/modesp.c:317 -msgid "flash location must be below 1MByte" +#: py/objtype.c:1205 +msgid "first argument to super() must be type" msgstr "" -#: ports/esp8266/modmachine.c:63 -msgid "frequency can only be either 80Mhz or 160MHz" +#: py/objtype.c:1370 +msgid "issubclass() arg 2 must be a class or a tuple of classes" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "STA required" +#: py/objtype.c:1384 +msgid "issubclass() arg 1 must be a class" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "AP required" +#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 +msgid "negative shift count" msgstr "" -#: ports/esp8266/modnetwork.c:87 -msgid "Cannot update i/f status" +#: py/objint_mpz.c:336 +msgid "pow() with 3 arguments requires integers" msgstr "" -#: ports/esp8266/modnetwork.c:142 -msgid "Cannot set STA config" +#: py/objint_mpz.c:347 +msgid "pow() 3rd argument cannot be 0" msgstr "" -#: ports/esp8266/modnetwork.c:144 -msgid "Cannot connect to AP" +#: py/objint_mpz.c:415 +msgid "overflow converting long int to machine word" msgstr "" -#: ports/esp8266/modnetwork.c:152 -msgid "Cannot disconnect from AP" +#: py/objint.c:144 +msgid "can't convert inf to int" msgstr "" -#: ports/esp8266/modnetwork.c:173 -msgid "unknown status param" +#: py/objint.c:146 +msgid "can't convert NaN to int" msgstr "" -#: ports/esp8266/modnetwork.c:222 -msgid "STA must be active" +#: py/objint.c:163 +msgid "float too big" msgstr "" -#: ports/esp8266/modnetwork.c:239 -msgid "scan failed" +#: py/objint.c:328 +msgid "long int not supported in this build" msgstr "" -#: ports/esp8266/modnetwork.c:306 -msgid "wifi_set_ip_info() failed" +#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 +msgid "small int overflow" msgstr "" -#: ports/esp8266/modnetwork.c:319 -msgid "either pos or kw args are allowed" +#: py/builtinevex.c:99 +msgid "bad compile mode" msgstr "" -#: ports/esp8266/modnetwork.c:329 -msgid "can't get STA config" +#: py/emitnative.c:183 +msgid "unknown type '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:331 -msgid "can't get AP config" +#: py/emitnative.c:260 +msgid "Viper functions don't currently support more than 4 arguments" msgstr "" -#: ports/esp8266/modnetwork.c:346 -msgid "invalid buffer length" +#: py/emitnative.c:742 +msgid "conversion to object" msgstr "" -#: ports/esp8266/modnetwork.c:405 -msgid "can't set STA config" +#: py/emitnative.c:921 +msgid "local '%q' used before type known" msgstr "" -#: ports/esp8266/modnetwork.c:407 -msgid "can't set AP config" +#: py/emitnative.c:1118 py/emitnative.c:1156 +msgid "can't load from '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:416 -msgid "can query only one param" +#: py/emitnative.c:1128 +msgid "can't load with '%q' index" msgstr "" -#: ports/esp8266/modnetwork.c:469 -msgid "unknown config param" +#: py/emitnative.c:1188 +msgid "local '%q' has type '%q' but source is '%q'" msgstr "" -#: ports/nrf/common-hal/analogio/AnalogOut.c:37 -msgid "AnalogOut functionality not supported" +#: py/emitnative.c:1289 py/emitnative.c:1379 +msgid "can't store '%q'" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 -#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 -#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 -#: ports/nrf/common-hal/busio/UART.c:88 -msgid "busio.UART not yet implemented" +#: py/emitnative.c:1358 py/emitnative.c:1419 +msgid "can't store to '%q'" msgstr "" -#: ports/nrf/common-hal/microcontroller/Processor.c:49 -#, c-format -msgid "Can not get temperature. status: 0x%02x" +#: py/emitnative.c:1369 +msgid "can't store with '%q' index" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:199 -msgid "Cannot apply GAP parameters." +#: py/emitnative.c:1540 +msgid "can't implicitly convert '%q' to 'bool'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:213 -msgid "Cannot set PPCP parameters." +#: py/emitnative.c:1774 +msgid "unary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:245 -msgid "Can not query for the device address." +#: py/emitnative.c:1930 +msgid "binary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:264 -msgid "Can not add Vendor Specific 128-bit UUID." +#: py/emitnative.c:1951 +msgid "can't do binary op between '%q' and '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:284 -#: ports/nrf/drivers/bluetooth/ble_drv.c:298 -msgid "Can not add Service." +#: py/emitnative.c:2126 +msgid "casting" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:373 -msgid "Can not add Characteristic." +#: py/emitnative.c:2173 +msgid "return expected '%q' but got '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:400 -msgid "Can not apply device name in the stack." +#: py/emitnative.c:2191 +msgid "must raise an object" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:464 -#: ports/nrf/drivers/bluetooth/ble_drv.c:514 -msgid "Can not encode UUID, to check length." +#: py/emitnative.c:2201 +msgid "native yield" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:470 -#: ports/nrf/drivers/bluetooth/ble_drv.c:520 -msgid "Can encode UUID into the advertisment packet." +#: py/stream.c:96 +msgid "stream operation not supported" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:545 -msgid "Can not fit data into the advertisment packet." +#: py/binary.c:112 +msgid "bad typecode" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:558 -#: ports/nrf/drivers/bluetooth/ble_drv.c:604 -#, c-format -msgid "Can not apply advertisment data. status: 0x%02x" +#: py/objstr.c:261 +msgid "bytes value out of range" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:614 -#, c-format -msgid "Can not start advertisment. status: 0x%02x" +#: py/objstr.c:270 +msgid "wrong number of arguments" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#: py/objstr.c:467 +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "" + +#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 +msgid "empty separator" +msgstr "" + +#: py/objstr.c:641 +msgid "rsplit(None,n)" +msgstr "" + +#: py/objstr.c:713 +msgid "substring not found" +msgstr "" + +#: py/objstr.c:770 +msgid "start/end indices" +msgstr "" + +#: py/objstr.c:931 +msgid "bad format string" +msgstr "" + +#: py/objstr.c:953 +msgid "single '}' encountered in format string" +msgstr "" + +#: py/objstr.c:992 +msgid "bad conversion specifier" +msgstr "" + +#: py/objstr.c:996 +msgid "end of format while looking for conversion specifier" +msgstr "" + +#: py/objstr.c:998 #, c-format -msgid "Can not stop advertisment. status: 0x%02x" +msgid "unknown conversion specifier %c" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:650 -#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#: py/objstr.c:1029 +msgid "unmatched '{' in format" +msgstr "" + +#: py/objstr.c:1036 +msgid "expected ':' after format specifier" +msgstr "" + +#: py/objstr.c:1050 +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "" + +#: py/objstr.c:1055 py/objstr.c:1083 +msgid "tuple index out of range" +msgstr "" + +#: py/objstr.c:1071 +msgid "attributes not supported yet" +msgstr "" + +#: py/objstr.c:1079 +msgid "" +"can't switch from manual field specification to automatic field numbering" +msgstr "" + +#: py/objstr.c:1171 +msgid "invalid format specifier" +msgstr "" + +#: py/objstr.c:1192 +msgid "sign not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1200 +msgid "sign not allowed with integer format specifier 'c'" +msgstr "" + +#: py/objstr.c:1259 #, c-format -msgid "Can not read attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:667 -#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#: py/objstr.c:1331 #, c-format -msgid "Can not write attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#: py/objstr.c:1343 +msgid "'=' alignment not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1367 #, c-format -msgid "Can not notify attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#: py/objstr.c:1415 +msgid "format requires a dict" +msgstr "" + +#: py/objstr.c:1424 +msgid "incomplete format key" +msgstr "" + +#: py/objstr.c:1482 +msgid "incomplete format" +msgstr "" + +#: py/objstr.c:1490 +msgid "not enough arguments for format string" +msgstr "" + +#: py/objstr.c:1500 #, c-format -msgid "Can not start scanning. status: 0x%02x" +msgid "%%c requires int or char" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#: py/objstr.c:1507 +msgid "integer required" +msgstr "" + +#: py/objstr.c:1570 #, c-format -msgid "Can not connect. status: 0x%02x" +msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 -msgid "Invalid UUID parameter" +#: py/objstr.c:1577 +msgid "not all arguments converted during string formatting" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 -msgid "Invalid Service type" +#: py/objstr.c:2102 +msgid "can't convert to str implicitly" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 -msgid "Invalid UUID string length" +#: py/objstr.c:2106 +msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: ports/unix/modffi.c:138 -msgid "Unknown type" +#: py/objcomplex.c:203 +msgid "can't do truncated division of a complex number" msgstr "" -#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 -msgid "Error in ffi_prep_cif" +#: py/objcomplex.c:209 +msgid "complex division by zero" msgstr "" -#: ports/unix/modffi.c:270 -msgid "ffi_prep_closure_loc" +#: py/objcomplex.c:237 +msgid "0.0 to a complex power" msgstr "" -#: ports/unix/modffi.c:413 -msgid "Don't know how to pass object to native function" +#: py/modmicropython.c:155 +msgid "schedule stack full" msgstr "" -#: ports/unix/modusocket.c:474 -#, c-format -msgid "[addrinfo error %d]" +#: py/objdict.c:314 +msgid "popitem(): dictionary is empty" msgstr "" -#: py/argcheck.c:44 -msgid "function does not take keyword arguments" +#: py/objdict.c:357 +msgid "dict update sequence has wrong length" msgstr "" -#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 -#, c-format -msgid "function takes %d positional arguments but %d were given" +#: py/runtime.c:206 +msgid "name not defined" msgstr "" -#: py/argcheck.c:64 -#, c-format -msgid "function missing %d required positional arguments" +#: py/runtime.c:209 +msgid "name '%q' is not defined" msgstr "" -#: py/argcheck.c:72 -#, c-format -msgid "function expected at most %d arguments, got %d" +#: py/runtime.c:304 py/runtime.c:611 +msgid "unsupported type for operator" msgstr "" -#: py/argcheck.c:97 -msgid "'%q' argument required" +#: py/runtime.c:307 +msgid "unsupported type for %q: '%s'" msgstr "" -#: py/argcheck.c:122 -msgid "extra positional arguments given" +#: py/runtime.c:614 +msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: py/argcheck.c:130 -msgid "extra keyword arguments given" +#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 +msgid "wrong number of values to unpack" msgstr "" -#: py/argcheck.c:142 -msgid "argument num/types mismatch" +#: py/runtime.c:883 py/runtime.c:947 +#, c-format +msgid "need more than %d values to unpack" msgstr "" -#: py/argcheck.c:147 -msgid "keyword argument(s) not yet implemented - use normal args instead" +#: py/runtime.c:890 +#, c-format +msgid "too many values to unpack (expected %d)" msgstr "" -#: py/bc.c:88 py/objnamedtuple.c:108 -msgid "%q() takes %d positional arguments but %d were given" +#: py/runtime.c:984 +msgid "argument has wrong type" msgstr "" -#: py/bc.c:197 py/bc.c:215 -msgid "unexpected keyword argument" +#: py/runtime.c:986 +msgid "argument should be a '%q' not a '%q'" +msgstr "" + +#: py/runtime.c:1123 py/runtime.c:1197 +msgid "no such attribute" +msgstr "" + +#: py/runtime.c:1128 +msgid "type object '%q' has no attribute '%q'" msgstr "" -#: py/bc.c:199 -msgid "keywords must be strings" +#: py/runtime.c:1132 py/runtime.c:1200 +msgid "'%s' object has no attribute '%q'" msgstr "" -#: py/bc.c:206 py/objnamedtuple.c:138 -msgid "function got multiple values for argument '%q'" +#: py/runtime.c:1238 +msgid "object not iterable" msgstr "" -#: py/bc.c:218 py/objnamedtuple.c:130 -msgid "unexpected keyword argument '%q'" +#: py/runtime.c:1241 +#, c-format +msgid "'%s' object is not iterable" msgstr "" -#: py/bc.c:244 -#, c-format -msgid "function missing required positional argument #%d" +#: py/runtime.c:1260 py/runtime.c:1296 +msgid "object not an iterator" msgstr "" -#: py/bc.c:260 -msgid "function missing required keyword argument '%q'" +#: py/runtime.c:1262 py/runtime.c:1298 +#, c-format +msgid "'%s' object is not an iterator" msgstr "" -#: py/bc.c:269 -msgid "function missing keyword-only argument" +#: py/runtime.c:1401 +msgid "exceptions must derive from BaseException" msgstr "" -#: py/binary.c:112 -msgid "bad typecode" +#: py/runtime.c:1430 +msgid "cannot import name %q" msgstr "" -#: py/builtinevex.c:99 -msgid "bad compile mode" +#: py/runtime.c:1535 +msgid "memory allocation failed, heap is locked" msgstr "" -#: py/builtinimport.c:338 -msgid "cannot perform relative import" +#: py/runtime.c:1539 +#, c-format +msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: py/builtinimport.c:422 py/builtinimport.c:534 -msgid "module not found" +#: py/runtime.c:1609 +msgid "maximum recursion depth exceeded" msgstr "" -#: py/builtinimport.c:425 py/builtinimport.c:537 -msgid "no module named '%q'" +#: py/objarray.c:426 +msgid "lhs and rhs should be compatible" msgstr "" -#: py/builtinimport.c:512 -msgid "relative import" +#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 +msgid "array/bytes required on right side" msgstr "" #: py/compile.c:397 py/compile.c:542 @@ -996,11 +1126,6 @@ msgstr "" msgid "non-keyword arg after keyword arg" msgstr "" -#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 -#: py/parse.c:1176 -msgid "invalid syntax" -msgstr "" - #: py/compile.c:2465 msgid "expecting key:value for dict" msgstr "" @@ -1061,1185 +1186,1076 @@ msgstr "" msgid "'data' requires integer arguments" msgstr "" -#: py/emitinlinextensa.c:86 -msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "" - -#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 -msgid "parameters must be registers in sequence a2 to a5" -msgstr "" - -#: py/emitinlinextensa.c:162 -#, c-format -msgid "'%s' expects a register" -msgstr "" - -#: py/emitinlinextensa.c:169 -#, c-format -msgid "'%s' expects an integer" -msgstr "" - -#: py/emitinlinextensa.c:174 -#, c-format -msgid "'%s' integer %d is not within range %d..%d" -msgstr "" - -#: py/emitinlinextensa.c:182 -#, c-format -msgid "'%s' expects a label" -msgstr "" - -#: py/emitinlinextensa.c:193 -msgid "label '%q' not defined" -msgstr "" - -#: py/emitinlinextensa.c:327 -#, c-format -msgid "unsupported Xtensa instruction '%s' with %d arguments" -msgstr "" - -#: py/emitnative.c:183 -msgid "unknown type '%q'" -msgstr "" - -#: py/emitnative.c:260 -msgid "Viper functions don't currently support more than 4 arguments" -msgstr "" - -#: py/emitnative.c:742 -msgid "conversion to object" -msgstr "" - -#: py/emitnative.c:921 -msgid "local '%q' used before type known" -msgstr "" - -#: py/emitnative.c:1118 py/emitnative.c:1156 -msgid "can't load from '%q'" -msgstr "" - -#: py/emitnative.c:1128 -msgid "can't load with '%q' index" -msgstr "" - -#: py/emitnative.c:1188 -msgid "local '%q' has type '%q' but source is '%q'" -msgstr "" - -#: py/emitnative.c:1289 py/emitnative.c:1379 -msgid "can't store '%q'" -msgstr "" - -#: py/emitnative.c:1358 py/emitnative.c:1419 -msgid "can't store to '%q'" -msgstr "" - -#: py/emitnative.c:1369 -msgid "can't store with '%q' index" -msgstr "" - -#: py/emitnative.c:1540 -msgid "can't implicitly convert '%q' to 'bool'" -msgstr "" - -#: py/emitnative.c:1774 -msgid "unary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1930 -msgid "binary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1951 -msgid "can't do binary op between '%q' and '%q'" -msgstr "" - -#: py/emitnative.c:2126 -msgid "casting" -msgstr "" - -#: py/emitnative.c:2173 -msgid "return expected '%q' but got '%q'" -msgstr "" - -#: py/emitnative.c:2191 -msgid "must raise an object" -msgstr "" - -#: py/emitnative.c:2201 -msgid "native yield" -msgstr "" - -#: py/lexer.c:345 -msgid "unicode name escapes" -msgstr "" - -#: py/modbuiltins.c:162 -msgid "chr() arg not in range(0x110000)" +#: py/sequence.c:264 +msgid "object not in sequence" msgstr "" -#: py/modbuiltins.c:171 -msgid "chr() arg not in range(256)" +#: py/objnamedtuple.c:92 +msgid "can't set attribute" msgstr "" -#: py/modbuiltins.c:285 -msgid "arg is an empty sequence" +#: py/parsenum.c:60 +msgid "int() arg 2 must be >= 2 and <= 36" msgstr "" -#: py/modbuiltins.c:350 -msgid "ord expects a character" +#: py/parsenum.c:151 +msgid "invalid syntax for integer" msgstr "" -#: py/modbuiltins.c:353 +#: py/parsenum.c:155 #, c-format -msgid "ord() expected a character, but string of length %d found" -msgstr "" - -#: py/modbuiltins.c:363 -msgid "3-arg pow() not supported" -msgstr "" - -#: py/modbuiltins.c:517 -msgid "must use keyword argument for key function" -msgstr "" - -#: py/modmath.c:41 shared-bindings/math/__init__.c:53 -msgid "math domain error" -msgstr "" - -#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 -#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 -msgid "division by zero" -msgstr "" - -#: py/modmicropython.c:155 -msgid "schedule stack full" -msgstr "" - -#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 -#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 -#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 -msgid "buffer too small" -msgstr "" - -#: py/modthread.c:240 -msgid "expecting a dict for keyword args" -msgstr "" - -#: py/moduerrno.c:143 py/moduerrno.c:146 -msgid "Permission denied" -msgstr "" - -#: py/moduerrno.c:144 -msgid "No such file/directory" -msgstr "" - -#: py/moduerrno.c:145 -msgid "Input/output error" -msgstr "" - -#: py/moduerrno.c:147 -msgid "File exists" +msgid "invalid syntax for integer with base %d" msgstr "" -#: py/moduerrno.c:148 -msgid "Unsupported operation" +#: py/parsenum.c:339 +msgid "invalid syntax for number" msgstr "" -#: py/moduerrno.c:149 -msgid "Invalid argument" +#: py/parsenum.c:342 +msgid "decimal numbers not supported" msgstr "" -#: py/obj.c:90 -msgid "Traceback (most recent call last):\n" +#: main.c:143 +msgid " output:\n" msgstr "" -#: py/obj.c:94 -msgid " File \"%q\", line %d" +#: main.c:157 main.c:230 +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" msgstr "" - -#: py/obj.c:96 -msgid " File \"%q\"" + +#: main.c:159 +msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: py/obj.c:100 -msgid ", in %q\n" +#: main.c:161 main.c:232 +msgid "Auto-reload is off.\n" msgstr "" -#: py/obj.c:257 -msgid "can't convert to int" +#: main.c:175 +msgid "Running in safe mode! Not running saved code.\n" msgstr "" -#: py/obj.c:260 -#, c-format -msgid "can't convert %s to int" +#: main.c:191 +msgid "WARNING: Your code filename has two extensions\n" msgstr "" -#: py/obj.c:320 -msgid "can't convert to float" +#: main.c:239 +msgid "You requested starting safe mode by " msgstr "" -#: py/obj.c:323 -#, c-format -msgid "can't convert %s to float" +#: main.c:242 +msgid "To exit, please reset the board without " msgstr "" -#: py/obj.c:353 -msgid "can't convert to complex" +#: main.c:249 +msgid "" +"You are running in safe mode which means something really bad happened.\n" msgstr "" -#: py/obj.c:356 -#, c-format -msgid "can't convert %s to complex" +#: main.c:251 +msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" msgstr "" -#: py/obj.c:371 -msgid "expected tuple/list" +#: main.c:252 +msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" msgstr "" -#: py/obj.c:374 -#, c-format -msgid "object '%s' is not a tuple or list" +#: main.c:255 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" msgstr "" -#: py/obj.c:385 -msgid "tuple/list has wrong length" +#: main.c:256 +msgid "" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" msgstr "" -#: py/obj.c:387 -#, c-format -msgid "requested length %d but object has length %d" +#: main.c:260 +msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: py/obj.c:400 -msgid "indices must be integers" +#: main.c:415 +msgid "soft reboot\n" msgstr "" -#: py/obj.c:403 -msgid "%q indices must be integers, not %s" +#: shared-bindings/_stage/Text.c:69 +msgid "font must be 2048 bytes long" msgstr "" -#: py/obj.c:423 -msgid "%q index out of range" +#: shared-bindings/_stage/Text.c:75 shared-bindings/_stage/Layer.c:77 +msgid "palette must be 32 bytes long" msgstr "" -#: py/obj.c:455 -msgid "object has no len" +#: shared-bindings/_stage/Text.c:81 +msgid "chars buffer too small" msgstr "" -#: py/obj.c:458 -#, c-format -msgid "object of type '%s' has no len()" +#: shared-bindings/_stage/Layer.c:71 +msgid "graphic must be 2048 bytes long" msgstr "" -#: py/obj.c:496 -msgid "object does not support item deletion" +#: shared-bindings/_stage/Layer.c:84 +msgid "map buffer too small" msgstr "" -#: py/obj.c:499 -#, c-format -msgid "'%s' object does not support item deletion" +#: shared-bindings/supervisor/__init__.c:93 +msgid "Brightness must be between 0 and 255" msgstr "" -#: py/obj.c:503 -msgid "object is not subscriptable" +#: shared-bindings/supervisor/__init__.c:119 +msgid "Stack size must be at least 256" msgstr "" -#: py/obj.c:506 -#, c-format -msgid "'%s' object is not subscriptable" +#: shared-bindings/i2cslave/I2CSlave.c:98 +msgid "can't convert address to int" msgstr "" -#: py/obj.c:510 -msgid "object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:101 +msgid "address out of bounds" msgstr "" -#: py/obj.c:513 -#, c-format -msgid "'%s' object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:107 +msgid "addresses is empty" msgstr "" -#: py/obj.c:544 -msgid "object with buffer protocol required" +#: shared-bindings/busio/UART.c:98 +msgid "bits must be 7, 8 or 9" msgstr "" -#: py/objarray.c:413 py/objstr.c:427 py/objstrunicode.c:191 py/objtuple.c:187 -#: shared-bindings/nvm/ByteArray.c:85 -msgid "only slices with step=1 (aka None) are supported" +#: shared-bindings/busio/UART.c:110 +msgid "stop must be 1 or 2" msgstr "" -#: py/objarray.c:426 -msgid "lhs and rhs should be compatible" +#: shared-bindings/busio/SPI.c:133 shared-bindings/bitbangio/SPI.c:121 +#: shared-bindings/bitbangio/I2C.c:111 +msgid "Function requires lock" msgstr "" -#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 -msgid "array/bytes required on right side" +#: shared-bindings/busio/SPI.c:168 shared-bindings/bitbangio/SPI.c:151 +msgid "Invalid polarity" msgstr "" -#: py/objcomplex.c:203 -msgid "can't do truncated division of a complex number" +#: shared-bindings/busio/SPI.c:172 shared-bindings/bitbangio/SPI.c:155 +msgid "Invalid phase" msgstr "" -#: py/objcomplex.c:209 -msgid "complex division by zero" +#: shared-bindings/busio/SPI.c:176 shared-bindings/bitbangio/SPI.c:159 +msgid "Invalid number of bits" msgstr "" -#: py/objcomplex.c:237 -msgid "0.0 to a complex power" +#: shared-bindings/busio/SPI.c:341 shared-bindings/bitbangio/SPI.c:284 +msgid "buffer slices must be of equal length" msgstr "" -#: py/objdeque.c:107 -msgid "full" +#: shared-bindings/busio/I2C.c:120 +msgid "Function requires lock." msgstr "" -#: py/objdeque.c:127 -msgid "empty" +#: shared-bindings/busio/I2C.c:210 shared-bindings/bitbangio/I2C.c:195 +msgid "Buffer must be at least length 1" msgstr "" -#: py/objdict.c:314 -msgid "popitem(): dictionary is empty" +#: shared-bindings/pulseio/PWMOut.c:164 +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" msgstr "" -#: py/objdict.c:357 -msgid "dict update sequence has wrong length" +#: shared-bindings/pulseio/PWMOut.c:195 +msgid "" +"PWM frequency not writeable when variable_frequency is False on construction." msgstr "" -#: py/objfloat.c:308 py/parsenum.c:331 -msgid "complex values not supported" +#: shared-bindings/pulseio/PulseOut.c:75 +#: shared-bindings/microcontroller/Pin.c:89 +#: shared-bindings/neopixel_write/__init__.c:67 +msgid "Expected a %q" msgstr "" -#: py/objgenerator.c:108 -msgid "can't send non-None value to a just-started generator" +#: shared-bindings/pulseio/PulseOut.c:134 +msgid "Array must contain halfwords (type 'H')" msgstr "" -#: py/objgenerator.c:126 -msgid "generator already executing" +#: shared-bindings/pulseio/PulseIn.c:275 +msgid "Cannot delete values" msgstr "" -#: py/objgenerator.c:229 -msgid "generator ignored GeneratorExit" +#: shared-bindings/pulseio/PulseIn.c:281 +msgid "Slices not supported" msgstr "" -#: py/objgenerator.c:251 -msgid "can't pend throw to just-started generator" +#: shared-bindings/pulseio/PulseIn.c:287 +msgid "index must be int" msgstr "" -#: py/objint.c:144 -msgid "can't convert inf to int" +#: shared-bindings/pulseio/PulseIn.c:293 +msgid "Read-only" msgstr "" -#: py/objint.c:146 -msgid "can't convert NaN to int" +#: shared-bindings/touchio/TouchIn.c:173 +msgid "threshold must be in the range 0-65536" msgstr "" -#: py/objint.c:163 -msgid "float too big" +#: shared-bindings/microcontroller/__init__.c:126 +msgid "Invalid run mode." msgstr "" -#: py/objint.c:328 -msgid "long int not supported in this build" +#: shared-bindings/microcontroller/Pin.c:100 +msgid "%q in use" msgstr "" -#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 -msgid "small int overflow" +#: shared-bindings/multiterminal/__init__.c:68 +msgid "Stream missing readinto() or write() method." msgstr "" -#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 -msgid "negative power with no float support" +#: shared-bindings/time/__init__.c:80 +msgid "sleep length must be non-negative" msgstr "" -#: py/objint_longlong.c:251 -msgid "ulonglong too large" +#: shared-bindings/time/__init__.c:90 +msgid "time.struct_time() takes exactly 1 argument" msgstr "" -#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 -msgid "negative shift count" +#: shared-bindings/time/__init__.c:93 +msgid "time.struct_time() takes a 9-sequence" msgstr "" -#: py/objint_mpz.c:336 -msgid "pow() with 3 arguments requires integers" +#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 +msgid "Tuple or struct_time argument required" msgstr "" -#: py/objint_mpz.c:347 -msgid "pow() 3rd argument cannot be 0" +#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 +msgid "function takes exactly 9 arguments" msgstr "" -#: py/objint_mpz.c:415 -msgid "overflow converting long int to machine word" +#: shared-bindings/time/__init__.c:192 shared-bindings/rtc/RTC.c:40 +#: shared-bindings/rtc/RTC.c:44 +msgid "RTC is not supported on this board" msgstr "" -#: py/objlist.c:273 -msgid "pop from empty list" +#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 +msgid "timestamp out of range for platform time_t" msgstr "" -#: py/objnamedtuple.c:92 -msgid "can't set attribute" +#: shared-bindings/gamepad/GamePad.c:100 +msgid "too many arguments" msgstr "" -#: py/objobject.c:55 -msgid "__new__ arg must be a user-type" +#: shared-bindings/gamepad/GamePad.c:104 +msgid "expected a DigitalInOut" msgstr "" -#: py/objrange.c:110 -msgid "zero step" +#: shared-bindings/audioio/RawSample.c:98 +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" msgstr "" -#: py/objset.c:371 -msgid "pop from an empty set" +#: shared-bindings/audioio/RawSample.c:104 +msgid "buffer must be a bytes-like object" msgstr "" -#: py/objslice.c:66 -msgid "Length must be an int" +#: shared-bindings/audioio/WaveFile.c:78 +msgid "file must be a file opened in byte mode" msgstr "" -#: py/objslice.c:71 -msgid "Length must be non-negative" +#: shared-bindings/audioio/AudioOut.c:223 +#: shared-bindings/audiobusio/I2SOut.c:225 +msgid "Not playing" msgstr "" -#: py/objslice.c:86 py/sequence.c:57 -msgid "slice step cannot be zero" +#: shared-bindings/storage/__init__.c:77 +msgid "filesystem must provide mount method" msgstr "" -#: py/objslice.c:159 -msgid "Cannot subclass slice" +#: shared-bindings/digitalio/DigitalInOut.c:211 +msgid "Invalid direction." msgstr "" -#: py/objstr.c:261 -msgid "bytes value out of range" +#: shared-bindings/digitalio/DigitalInOut.c:240 +msgid "Cannot set value when direction is input." msgstr "" -#: py/objstr.c:270 -msgid "wrong number of arguments" +#: shared-bindings/digitalio/DigitalInOut.c:266 +#: shared-bindings/digitalio/DigitalInOut.c:281 +msgid "Drive mode not used when direction is input." msgstr "" -#: py/objstr.c:467 -msgid "join expects a list of str/bytes objects consistent with self object" +#: shared-bindings/digitalio/DigitalInOut.c:314 +#: shared-bindings/digitalio/DigitalInOut.c:331 +msgid "Pull not used when direction is output." msgstr "" -#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 -msgid "empty separator" +#: shared-bindings/digitalio/DigitalInOut.c:340 +msgid "Unsupported pull value." msgstr "" -#: py/objstr.c:641 -msgid "rsplit(None,n)" +#: shared-bindings/analogio/AnalogOut.c:118 +msgid "AnalogOut is only 16 bits. Value must be less than 65536." msgstr "" -#: py/objstr.c:713 -msgid "substring not found" +#: shared-bindings/rtc/RTC.c:52 +msgid "RTC calibration is not supported on this board" msgstr "" -#: py/objstr.c:770 -msgid "start/end indices" +#: shared-bindings/audiobusio/PDMIn.c:124 +msgid "Bit depth must be multiple of 8." msgstr "" -#: py/objstr.c:931 -msgid "bad format string" +#: shared-bindings/audiobusio/PDMIn.c:128 +msgid "Oversample must be multiple of 8." msgstr "" -#: py/objstr.c:953 -msgid "single '}' encountered in format string" +#: shared-bindings/audiobusio/PDMIn.c:136 +msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: py/objstr.c:992 -msgid "bad conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:193 +msgid "destination_length must be an int >= 0" msgstr "" -#: py/objstr.c:996 -msgid "end of format while looking for conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:199 +msgid "Cannot record to a file" msgstr "" -#: py/objstr.c:998 -#, c-format -msgid "unknown conversion specifier %c" +#: shared-bindings/audiobusio/PDMIn.c:202 +msgid "Destination capacity is smaller than destination_length." msgstr "" -#: py/objstr.c:1029 -msgid "unmatched '{' in format" +#: shared-bindings/audiobusio/PDMIn.c:206 +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" msgstr "" -#: py/objstr.c:1036 -msgid "expected ':' after format specifier" +#: shared-bindings/audiobusio/PDMIn.c:208 +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" msgstr "" -#: py/objstr.c:1050 +#: shared-bindings/util.c:38 msgid "" -"can't switch from automatic field numbering to manual field specification" +"Object has been deinitialized and can no longer be used. Create a new object." msgstr "" -#: py/objstr.c:1055 py/objstr.c:1083 -msgid "tuple index out of range" +#: shared-bindings/os/__init__.c:200 +msgid "No hardware random available" msgstr "" -#: py/objstr.c:1071 -msgid "attributes not supported yet" +#: shared-bindings/nvm/ByteArray.c:99 +msgid "Slice and value different lengths." msgstr "" -#: py/objstr.c:1079 -msgid "" -"can't switch from manual field specification to automatic field numbering" +#: shared-bindings/nvm/ByteArray.c:104 +msgid "Array values should be single bytes." msgstr "" -#: py/objstr.c:1171 -msgid "invalid format specifier" +#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 +msgid "Unable to write to nvm." msgstr "" -#: py/objstr.c:1192 -msgid "sign not allowed in string format specifier" +#: shared-bindings/nvm/ByteArray.c:137 +msgid "Bytes must be between 0 and 255." msgstr "" -#: py/objstr.c:1200 -msgid "sign not allowed with integer format specifier 'c'" +#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 +msgid "stop not reachable from start" msgstr "" -#: py/objstr.c:1259 -#, c-format -msgid "unknown format code '%c' for object of type '%s'" +#: shared-bindings/random/__init__.c:111 +msgid "step must be non-zero" msgstr "" -#: py/objstr.c:1331 -#, c-format -msgid "unknown format code '%c' for object of type 'float'" +#: shared-bindings/random/__init__.c:114 +msgid "invalid step" msgstr "" -#: py/objstr.c:1343 -msgid "'=' alignment not allowed in string format specifier" +#: shared-bindings/random/__init__.c:146 +msgid "empty sequence" msgstr "" -#: py/objstr.c:1367 -#, c-format -msgid "unknown format code '%c' for object of type 'str'" +#: shared-module/bitbangio/SPI.c:45 +msgid "Clock pin init failed." msgstr "" -#: py/objstr.c:1415 -msgid "format requires a dict" +#: shared-module/bitbangio/SPI.c:51 +msgid "MOSI pin init failed." msgstr "" -#: py/objstr.c:1424 -msgid "incomplete format key" +#: shared-module/bitbangio/SPI.c:62 +msgid "MISO pin init failed." msgstr "" -#: py/objstr.c:1482 -msgid "incomplete format" +#: shared-module/bitbangio/SPI.c:122 +msgid "Cannot write without MOSI pin." msgstr "" -#: py/objstr.c:1490 -msgid "not enough arguments for format string" +#: shared-module/bitbangio/SPI.c:177 +msgid "Cannot read without MISO pin." msgstr "" -#: py/objstr.c:1500 -#, c-format -msgid "%%c requires int or char" +#: shared-module/bitbangio/SPI.c:241 +msgid "Cannot transfer without MOSI and MISO pins." msgstr "" -#: py/objstr.c:1507 -msgid "integer required" +#: shared-module/bitbangio/I2C.c:58 +msgid "Clock stretch too long" msgstr "" -#: py/objstr.c:1570 -#, c-format -msgid "unsupported format character '%c' (0x%x) at index %d" +#: shared-module/audioio/WaveFile.c:61 +msgid "Invalid wave file" msgstr "" -#: py/objstr.c:1577 -msgid "not all arguments converted during string formatting" +#: shared-module/audioio/WaveFile.c:69 +msgid "Invalid format chunk size" msgstr "" -#: py/objstr.c:2102 -msgid "can't convert to str implicitly" +#: shared-module/audioio/WaveFile.c:83 +msgid "Unsupported format" msgstr "" -#: py/objstr.c:2106 -msgid "can't convert '%q' object to %q implicitly" +#: shared-module/audioio/WaveFile.c:99 +msgid "Data chunk must follow fmt chunk" msgstr "" -#: py/objstrunicode.c:134 -#, c-format -msgid "string indices must be integers, not %s" +#: shared-module/audioio/WaveFile.c:107 +msgid "Invalid file" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 -msgid "string index out of range" +#: shared-module/audioio/WaveFile.c:117 +msgid "Couldn't allocate first buffer" msgstr "" -#: py/objtype.c:358 -msgid "__init__() should return None" +#: shared-module/audioio/WaveFile.c:123 +msgid "Couldn't allocate second buffer" msgstr "" -#: py/objtype.c:360 -#, c-format -msgid "__init__() should return None, not '%s'" +#: shared-module/struct/__init__.c:39 +msgid "'S' and 'O' are not supported format types" msgstr "" -#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 -msgid "unreadable attribute" +#: shared-module/struct/__init__.c:83 +msgid "too many arguments provided with the given format" msgstr "" -#: py/objtype.c:868 py/runtime.c:653 -msgid "object not callable" +#: lib/embed/abort_.c:8 +msgid "abort() called" msgstr "" -#: py/objtype.c:870 py/runtime.c:655 +#: lib/netutils/netutils.c:83 +msgid "invalid arguments" +msgstr "" + +#: ports/unix/modusocket.c:474 #, c-format -msgid "'%s' object is not callable" +msgid "[addrinfo error %d]" msgstr "" -#: py/objtype.c:978 -msgid "type takes 1 or 3 arguments" +#: ports/unix/modffi.c:138 +msgid "Unknown type" msgstr "" -#: py/objtype.c:989 -msgid "cannot create instance" +#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 +msgid "Error in ffi_prep_cif" msgstr "" -#: py/objtype.c:991 -msgid "cannot create '%q' instances" +#: ports/unix/modffi.c:270 +msgid "ffi_prep_closure_loc" msgstr "" -#: py/objtype.c:1047 -msgid "can't add special method to already-subclassed class" +#: ports/unix/modffi.c:413 +msgid "Don't know how to pass object to native function" msgstr "" -#: py/objtype.c:1091 py/objtype.c:1097 -msgid "type is not an acceptable base type" +#: ports/atmel-samd/audio_dma.c:285 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 +msgid "All sync event channels in use" msgstr "" -#: py/objtype.c:1100 -msgid "type '%q' is not an acceptable base type" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 +#: ports/nrf/common-hal/usb_hid/Device.c:45 +#, c-format +msgid "Buffer incorrect size. Should be %d bytes." msgstr "" -#: py/objtype.c:1137 -msgid "multiple inheritance not supported" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:53 +msgid "USB Busy" msgstr "" -#: py/objtype.c:1164 -msgid "multiple bases have instance lay-out conflict" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:59 +msgid "USB Error" msgstr "" -#: py/objtype.c:1205 -msgid "first argument to super() must be type" +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 +#: ports/atmel-samd/common-hal/busio/UART.c:119 +#: ports/atmel-samd/common-hal/busio/SPI.c:132 +#: ports/atmel-samd/common-hal/busio/I2C.c:78 +#: ports/nrf/common-hal/busio/I2C.c:58 +msgid "Invalid pins" msgstr "" -#: py/objtype.c:1370 -msgid "issubclass() arg 2 must be a class or a tuple of classes" +#: ports/atmel-samd/common-hal/busio/UART.c:66 +msgid "bytes > 8 bits not supported" msgstr "" -#: py/objtype.c:1384 -msgid "issubclass() arg 1 must be a class" +#: ports/atmel-samd/common-hal/busio/UART.c:72 +msgid "tx and rx cannot both be None" msgstr "" -#: py/parse.c:726 -msgid "constant must be an integer" +#: ports/atmel-samd/common-hal/busio/UART.c:139 +msgid "Failed to allocate RX buffer" msgstr "" -#: py/parse.c:868 -msgid "Unable to init parser" +#: ports/atmel-samd/common-hal/busio/UART.c:147 +msgid "Could not initialize UART" msgstr "" -#: py/parse.c:1170 -msgid "unexpected indent" +#: ports/atmel-samd/common-hal/busio/UART.c:234 +msgid "No RX pin" msgstr "" -#: py/parse.c:1173 -msgid "unindent does not match any outer indentation level" +#: ports/atmel-samd/common-hal/busio/UART.c:284 +msgid "No TX pin" msgstr "" -#: py/parsenum.c:60 -msgid "int() arg 2 must be >= 2 and <= 36" +#: ports/atmel-samd/common-hal/busio/I2C.c:71 +msgid "Not enough pins available" msgstr "" -#: py/parsenum.c:151 -msgid "invalid syntax for integer" +#: ports/atmel-samd/common-hal/busio/I2C.c:101 +msgid "SDA or SCL needs a pull up" +msgstr "" + +#: ports/atmel-samd/common-hal/busio/I2C.c:121 +msgid "Unsupported baudrate" msgstr "" -#: py/parsenum.c:155 -#, c-format -msgid "invalid syntax for integer with base %d" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:80 +msgid "Frequency captured is above capability. Capture Paused." msgstr "" -#: py/parsenum.c:339 -msgid "invalid syntax for number" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:115 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 +msgid "No hardware support on pin" msgstr "" -#: py/parsenum.c:342 -msgid "decimal numbers not supported" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:126 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 +msgid "EXTINT channel already in use" msgstr "" -#: py/persistentcode.c:223 -msgid "" -"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" -"mpy-update for more info." +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:139 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:187 +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:111 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:174 +msgid "All timers in use" msgstr "" -#: py/persistentcode.c:326 -msgid "can only save bytecode" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:303 +msgid "An error occurred in measuring the frequency. (FREQM peripheral usage.)" msgstr "" -#: py/runtime.c:206 -msgid "name not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:117 +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:77 +msgid "Invalid pin" msgstr "" -#: py/runtime.c:209 -msgid "name '%q' is not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:121 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:367 +#: ports/nrf/common-hal/pulseio/PWMOut.c:227 +msgid "Invalid PWM frequency" msgstr "" -#: py/runtime.c:304 py/runtime.c:611 -msgid "unsupported type for operator" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:185 +msgid "All timers for this pin are in use" msgstr "" -#: py/runtime.c:307 -msgid "unsupported type for %q: '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:179 +msgid "Another send is already active" msgstr "" -#: py/runtime.c:614 -msgid "unsupported types for %q: '%s', '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 +#, c-format +msgid "Failed to allocate RX buffer of %d bytes" msgstr "" -#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 -msgid "wrong number of values to unpack" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 +msgid "pop from an empty PulseIn" msgstr "" -#: py/runtime.c:883 py/runtime.c:947 -#, c-format -msgid "need more than %d values to unpack" +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 +msgid "No free GCLKs" msgstr "" -#: py/runtime.c:890 -#, c-format -msgid "too many values to unpack (expected %d)" +#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 +#: ports/esp8266/common-hal/microcontroller/__init__.c:64 +msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: py/runtime.c:984 -msgid "argument has wrong type" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:70 +msgid "DAC already in use" msgstr "" -#: py/runtime.c:986 -msgid "argument should be a '%q' not a '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:74 +msgid "Right channel unsupported" msgstr "" -#: py/runtime.c:1123 py/runtime.c:1197 -msgid "no such attribute" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:85 +msgid "Invalid pin for left channel" msgstr "" -#: py/runtime.c:1128 -msgid "type object '%q' has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:89 +msgid "Invalid pin for right channel" msgstr "" -#: py/runtime.c:1132 py/runtime.c:1200 -msgid "'%s' object has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:92 +msgid "Cannot output both channels on the same pin" msgstr "" -#: py/runtime.c:1238 -msgid "object not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:216 +msgid "All event channels in use" msgstr "" -#: py/runtime.c:1241 -#, c-format -msgid "'%s' object is not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:327 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 +msgid "No DMA channel found" msgstr "" -#: py/runtime.c:1260 py/runtime.c:1296 -msgid "object not an iterator" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:329 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 +msgid "Unable to allocate buffers for signed conversion" msgstr "" -#: py/runtime.c:1262 py/runtime.c:1298 -#, c-format -msgid "'%s' object is not an iterator" +#: ports/atmel-samd/common-hal/storage/__init__.c:48 +msgid "Cannot remount '/' when USB is active." msgstr "" -#: py/runtime.c:1401 -msgid "exceptions must derive from BaseException" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 +msgid "Both pins must support hardware interrupts" msgstr "" -#: py/runtime.c:1430 -msgid "cannot import name %q" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 +msgid "A hardware interrupt channel is already in use" msgstr "" -#: py/runtime.c:1535 -msgid "memory allocation failed, heap is locked" +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 +#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 +msgid "Cannot get pull while in output mode" msgstr "" -#: py/runtime.c:1539 -#, c-format -msgid "memory allocation failed, allocating %u bytes" +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 +#: ports/nrf/common-hal/analogio/AnalogIn.c:39 +msgid "Pin does not have ADC capabilities" msgstr "" -#: py/runtime.c:1609 -msgid "maximum recursion depth exceeded" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 +msgid "No DAC on chip" msgstr "" -#: py/sequence.c:264 -msgid "object not in sequence" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 +msgid "AnalogOut not supported on given pin" msgstr "" -#: py/stream.c:96 -msgid "stream operation not supported" +#: ports/atmel-samd/common-hal/rtc/RTC.c:101 +msgid "calibration value out of range +/-127" msgstr "" -#: py/vm.c:255 -msgid "local variable referenced before assignment" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 +msgid "Invalid clock pin" msgstr "" -#: py/vm.c:1142 -msgid "no active exception to reraise" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 +msgid "Invalid data pin" msgstr "" -#: py/vm.c:1284 -msgid "byte code not implemented" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 +msgid "Only 8 or 16 bit mono with " msgstr "" -#: shared-bindings/_stage/Layer.c:71 -msgid "graphic must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 +msgid "Serializer in use" msgstr "" -#: shared-bindings/_stage/Layer.c:77 shared-bindings/_stage/Text.c:75 -msgid "palette must be 32 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 +msgid "sampling rate out of range" msgstr "" -#: shared-bindings/_stage/Layer.c:84 -msgid "map buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 +msgid "Unable to find free GCLK" msgstr "" -#: shared-bindings/_stage/Text.c:69 -msgid "font must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 +msgid "Invalid bit clock pin" msgstr "" -#: shared-bindings/_stage/Text.c:81 -msgid "chars buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 +msgid "Bit clock and word select must share a clock unit" msgstr "" -#: shared-bindings/analogio/AnalogOut.c:118 -msgid "AnalogOut is only 16 bits. Value must be less than 65536." +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 +msgid "Clock unit in use" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c:225 -#: shared-bindings/audioio/AudioOut.c:223 -msgid "Not playing" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 +msgid "Too many channels in sample." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:124 -msgid "Bit depth must be multiple of 8." +#: ports/atmel-samd/board_busses.c:39 +msgid "No default I2C bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:128 -msgid "Oversample must be multiple of 8." +#: ports/atmel-samd/board_busses.c:64 +msgid "No default SPI bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:136 -msgid "Microphone startup delay must be in range 0.0 to 1.0" +#: ports/atmel-samd/board_busses.c:91 +msgid "No default UART bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:193 -msgid "destination_length must be an int >= 0" +#: ports/atmel-samd/bindings/samd/Clock.c:135 +msgid "calibration is read only" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:199 -msgid "Cannot record to a file" +#: ports/atmel-samd/bindings/samd/Clock.c:137 +msgid "calibration is out of range" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:202 -msgid "Destination capacity is smaller than destination_length." +#: ports/nrf/drivers/bluetooth/ble_drv.c:199 +msgid "Cannot apply GAP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:206 -msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +#: ports/nrf/drivers/bluetooth/ble_drv.c:213 +msgid "Cannot set PPCP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:208 -msgid "" -"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +#: ports/nrf/drivers/bluetooth/ble_drv.c:245 +msgid "Can not query for the device address." msgstr "" -#: shared-bindings/audioio/RawSample.c:98 -msgid "" -"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " -"'B'" +#: ports/nrf/drivers/bluetooth/ble_drv.c:264 +msgid "Can not add Vendor Specific 128-bit UUID." msgstr "" -#: shared-bindings/audioio/RawSample.c:104 -msgid "buffer must be a bytes-like object" +#: ports/nrf/drivers/bluetooth/ble_drv.c:284 +#: ports/nrf/drivers/bluetooth/ble_drv.c:298 +msgid "Can not add Service." msgstr "" -#: shared-bindings/audioio/WaveFile.c:78 -msgid "file must be a file opened in byte mode" +#: ports/nrf/drivers/bluetooth/ble_drv.c:373 +msgid "Can not add Characteristic." msgstr "" -#: shared-bindings/bitbangio/I2C.c:111 shared-bindings/bitbangio/SPI.c:121 -#: shared-bindings/busio/SPI.c:133 -msgid "Function requires lock" +#: ports/nrf/drivers/bluetooth/ble_drv.c:400 +msgid "Can not apply device name in the stack." msgstr "" -#: shared-bindings/bitbangio/I2C.c:195 shared-bindings/busio/I2C.c:210 -msgid "Buffer must be at least length 1" +#: ports/nrf/drivers/bluetooth/ble_drv.c:464 +#: ports/nrf/drivers/bluetooth/ble_drv.c:514 +msgid "Can not encode UUID, to check length." msgstr "" -#: shared-bindings/bitbangio/SPI.c:151 shared-bindings/busio/SPI.c:168 -msgid "Invalid polarity" +#: ports/nrf/drivers/bluetooth/ble_drv.c:470 +#: ports/nrf/drivers/bluetooth/ble_drv.c:520 +msgid "Can encode UUID into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:155 shared-bindings/busio/SPI.c:172 -msgid "Invalid phase" +#: ports/nrf/drivers/bluetooth/ble_drv.c:545 +msgid "Can not fit data into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:159 shared-bindings/busio/SPI.c:176 -msgid "Invalid number of bits" +#: ports/nrf/drivers/bluetooth/ble_drv.c:558 +#: ports/nrf/drivers/bluetooth/ble_drv.c:604 +#, c-format +msgid "Can not apply advertisment data. status: 0x%02x" msgstr "" -#: shared-bindings/bitbangio/SPI.c:284 shared-bindings/busio/SPI.c:341 -msgid "buffer slices must be of equal length" +#: ports/nrf/drivers/bluetooth/ble_drv.c:614 +#, c-format +msgid "Can not start advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/I2C.c:120 -msgid "Function requires lock." +#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#, c-format +msgid "Can not stop advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:98 -msgid "bits must be 7, 8 or 9" +#: ports/nrf/drivers/bluetooth/ble_drv.c:650 +#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#, c-format +msgid "Can not read attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:110 -msgid "stop must be 1 or 2" +#: ports/nrf/drivers/bluetooth/ble_drv.c:667 +#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#, c-format +msgid "Can not write attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:211 -msgid "Invalid direction." +#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#, c-format +msgid "Can not notify attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:240 -msgid "Cannot set value when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#, c-format +msgid "Can not start scanning. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:266 -#: shared-bindings/digitalio/DigitalInOut.c:281 -msgid "Drive mode not used when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#, c-format +msgid "Can not connect. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:314 -#: shared-bindings/digitalio/DigitalInOut.c:331 -msgid "Pull not used when direction is output." +#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 +#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 +#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 +#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:88 +msgid "busio.UART not yet implemented" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:340 -msgid "Unsupported pull value." +#: ports/nrf/common-hal/pulseio/FrequencyIn.c:32 +#: ports/esp8266/common-hal/pulseio/FrequencyIn.c:33 +msgid "No hardware support for FrequencyIn." msgstr "" -#: shared-bindings/gamepad/GamePad.c:100 -msgid "too many arguments" +#: ports/nrf/common-hal/microcontroller/Processor.c:49 +#, c-format +msgid "Can not get temperature. status: 0x%02x" msgstr "" -#: shared-bindings/gamepad/GamePad.c:104 -msgid "expected a DigitalInOut" +#: ports/nrf/common-hal/analogio/AnalogOut.c:37 +msgid "AnalogOut functionality not supported" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:98 -msgid "can't convert address to int" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 +msgid "Invalid Service type" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:101 -msgid "address out of bounds" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 +#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 +#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 +msgid "Invalid UUID parameter" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:107 -msgid "addresses is empty" +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 +msgid "Invalid UUID string length" msgstr "" -#: shared-bindings/microcontroller/Pin.c:89 -#: shared-bindings/neopixel_write/__init__.c:67 -#: shared-bindings/pulseio/PulseOut.c:75 -msgid "Expected a %q" +#: ports/esp8266/modmachine.c:63 +msgid "frequency can only be either 80Mhz or 160MHz" msgstr "" -#: shared-bindings/microcontroller/Pin.c:100 -msgid "%q in use" +#: ports/esp8266/esp_mphal.c:154 +msgid "C-level assert" msgstr "" -#: shared-bindings/microcontroller/__init__.c:126 -msgid "Invalid run mode." +#: ports/esp8266/modnetwork.c:61 +msgid "STA required" msgstr "" -#: shared-bindings/multiterminal/__init__.c:68 -msgid "Stream missing readinto() or write() method." +#: ports/esp8266/modnetwork.c:61 +msgid "AP required" msgstr "" -#: shared-bindings/nvm/ByteArray.c:99 -msgid "Slice and value different lengths." +#: ports/esp8266/modnetwork.c:87 +msgid "Cannot update i/f status" msgstr "" -#: shared-bindings/nvm/ByteArray.c:104 -msgid "Array values should be single bytes." +#: ports/esp8266/modnetwork.c:142 +msgid "Cannot set STA config" msgstr "" -#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 -msgid "Unable to write to nvm." +#: ports/esp8266/modnetwork.c:144 +msgid "Cannot connect to AP" msgstr "" -#: shared-bindings/nvm/ByteArray.c:137 -msgid "Bytes must be between 0 and 255." +#: ports/esp8266/modnetwork.c:152 +msgid "Cannot disconnect from AP" msgstr "" -#: shared-bindings/os/__init__.c:200 -msgid "No hardware random available" +#: ports/esp8266/modnetwork.c:173 +msgid "unknown status param" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:164 -msgid "" -"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +#: ports/esp8266/modnetwork.c:222 +msgid "STA must be active" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:195 -msgid "" -"PWM frequency not writeable when variable_frequency is False on construction." +#: ports/esp8266/modnetwork.c:239 +msgid "scan failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:275 -msgid "Cannot delete values" +#: ports/esp8266/modnetwork.c:306 +msgid "wifi_set_ip_info() failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:281 -msgid "Slices not supported" +#: ports/esp8266/modnetwork.c:319 +msgid "either pos or kw args are allowed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:287 -msgid "index must be int" +#: ports/esp8266/modnetwork.c:329 +msgid "can't get STA config" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:293 -msgid "Read-only" +#: ports/esp8266/modnetwork.c:331 +msgid "can't get AP config" msgstr "" -#: shared-bindings/pulseio/PulseOut.c:134 -msgid "Array must contain halfwords (type 'H')" +#: ports/esp8266/modnetwork.c:346 +msgid "invalid buffer length" msgstr "" -#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 -msgid "stop not reachable from start" +#: ports/esp8266/modnetwork.c:405 +msgid "can't set STA config" msgstr "" -#: shared-bindings/random/__init__.c:111 -msgid "step must be non-zero" +#: ports/esp8266/modnetwork.c:407 +msgid "can't set AP config" msgstr "" -#: shared-bindings/random/__init__.c:114 -msgid "invalid step" +#: ports/esp8266/modnetwork.c:416 +msgid "can query only one param" msgstr "" -#: shared-bindings/random/__init__.c:146 -msgid "empty sequence" +#: ports/esp8266/modnetwork.c:469 +msgid "unknown config param" msgstr "" -#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 -#: shared-bindings/time/__init__.c:192 -msgid "RTC is not supported on this board" +#: ports/esp8266/modesp.c:119 +msgid "len must be multiple of 4" msgstr "" -#: shared-bindings/rtc/RTC.c:52 -msgid "RTC calibration is not supported on this board" +#: ports/esp8266/modesp.c:274 +#, c-format +msgid "memory allocation failed, allocating %u bytes for native code" msgstr "" -#: shared-bindings/storage/__init__.c:77 -msgid "filesystem must provide mount method" +#: ports/esp8266/modesp.c:317 +msgid "flash location must be below 1MByte" msgstr "" -#: shared-bindings/supervisor/__init__.c:93 -msgid "Brightness must be between 0 and 255" +#: ports/esp8266/common-hal/busio/UART.c:45 +msgid "Only tx supported on UART1 (GPIO2)." msgstr "" -#: shared-bindings/supervisor/__init__.c:119 -msgid "Stack size must be at least 256" +#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 +msgid "invalid data bits" msgstr "" -#: shared-bindings/time/__init__.c:80 -msgid "sleep length must be non-negative" +#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 +msgid "invalid stop bits" msgstr "" -#: shared-bindings/time/__init__.c:90 -msgid "time.struct_time() takes exactly 1 argument" +#: ports/esp8266/common-hal/busio/SPI.c:72 +msgid "Pins not valid for SPI" msgstr "" -#: shared-bindings/time/__init__.c:93 -msgid "time.struct_time() takes a 9-sequence" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 +#, c-format +msgid "Maximum PWM frequency is %dhz." msgstr "" -#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 -msgid "Tuple or struct_time argument required" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 +msgid "Minimum PWM frequency is 1hz." msgstr "" -#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 -msgid "function takes exactly 9 arguments" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 +#, c-format +msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgstr "" -#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 -msgid "timestamp out of range for platform time_t" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#, c-format +msgid "PWM not supported on pin %d" msgstr "" -#: shared-bindings/touchio/TouchIn.c:173 -msgid "threshold must be in the range 0-65536" +#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 +msgid "No PulseIn support for %q" msgstr "" -#: shared-bindings/util.c:38 -msgid "" -"Object has been deinitialized and can no longer be used. Create a new object." +#: ports/esp8266/common-hal/microcontroller/__init__.c:66 +msgid "ESP8226 does not support safe mode." msgstr "" -#: shared-module/audioio/WaveFile.c:61 -msgid "Invalid wave file" +#: ports/esp8266/common-hal/storage/__init__.c:34 +msgid "Unable to remount filesystem" msgstr "" -#: shared-module/audioio/WaveFile.c:69 -msgid "Invalid format chunk size" +#: ports/esp8266/common-hal/storage/__init__.c:38 +msgid "Use esptool to erase flash and re-upload Python instead" msgstr "" -#: shared-module/audioio/WaveFile.c:83 -msgid "Unsupported format" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 +msgid "ESP8266 does not support pull down." msgstr "" -#: shared-module/audioio/WaveFile.c:99 -msgid "Data chunk must follow fmt chunk" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 +msgid "GPIO16 does not support pull up." msgstr "" -#: shared-module/audioio/WaveFile.c:107 -msgid "Invalid file" +#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 +msgid "Pin %q does not have ADC capabilities" msgstr "" -#: shared-module/audioio/WaveFile.c:117 -msgid "Couldn't allocate first buffer" +#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 +msgid "No hardware support for analog out." msgstr "" -#: shared-module/audioio/WaveFile.c:123 -msgid "Couldn't allocate second buffer" +#: ports/esp8266/machine_adc.c:57 +#, c-format +msgid "not a valid ADC Channel: %d" msgstr "" -#: shared-module/bitbangio/I2C.c:58 -msgid "Clock stretch too long" +#: ports/esp8266/machine_rtc.c:185 +msgid "buffer too long" msgstr "" -#: shared-module/bitbangio/SPI.c:45 -msgid "Clock pin init failed." +#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 +#: ports/esp8266/machine_rtc.c:246 +msgid "invalid alarm" msgstr "" -#: shared-module/bitbangio/SPI.c:51 -msgid "MOSI pin init failed." +#: ports/esp8266/machine_pin.c:129 +msgid "expecting a pin" msgstr "" -#: shared-module/bitbangio/SPI.c:62 -msgid "MISO pin init failed." +#: ports/esp8266/machine_pin.c:284 +msgid "Pin(16) doesn't support pull" msgstr "" -#: shared-module/bitbangio/SPI.c:122 -msgid "Cannot write without MOSI pin." +#: ports/esp8266/machine_pin.c:323 +msgid "invalid pin" msgstr "" -#: shared-module/bitbangio/SPI.c:177 -msgid "Cannot read without MISO pin." +#: ports/esp8266/machine_pin.c:389 +msgid "pin does not have IRQ capabilities" msgstr "" -#: shared-module/bitbangio/SPI.c:241 -msgid "Cannot transfer without MOSI and MISO pins." +#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 +msgid "impossible baudrate" msgstr "" -#: shared-module/struct/__init__.c:39 -msgid "'S' and 'O' are not supported format types" +#: ports/esp8266/machine_uart.c:169 +#, c-format +msgid "UART(%d) does not exist" msgstr "" -#: shared-module/struct/__init__.c:83 -msgid "too many arguments provided with the given format" +#: ports/esp8266/machine_uart.c:219 +msgid "UART(1) can't read" msgstr "" diff --git a/locale/en_US.po b/locale/en_US.po index 256278256c568..dd94380f41fb7 100644 --- a/locale/en_US.po +++ b/locale/en_US.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-20 09:37-0700\n" +"POT-Creation-Date: 2018-08-23 02:28+0000\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -17,18 +17,64 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.1.1\n" -#: extmod/machine_i2c.c:299 -msgid "invalid I2C peripheral" +#: extmod/modutimeq.c:131 +msgid "queue overflow" msgstr "" -#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 -#: extmod/machine_i2c.c:392 -msgid "I2C operation not supported" +#: extmod/modutimeq.c:147 extmod/modutimeq.c:172 extmod/moduheapq.c:86 +msgid "empty heap" msgstr "" -#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 -#, c-format -msgid "address %08x is not aligned to %d bytes" +#: extmod/moductypes.c:122 +msgid "syntax error in uctypes descriptor" +msgstr "" + +#: extmod/moductypes.c:219 +msgid "Cannot unambiguously get sizeof scalar" +msgstr "" + +#: extmod/moductypes.c:397 +msgid "struct: no fields" +msgstr "" + +#: extmod/moductypes.c:530 +msgid "struct: cannot index" +msgstr "" + +#: extmod/moductypes.c:544 +msgid "struct: index out of range" +msgstr "" + +#: extmod/moduheapq.c:38 +msgid "heap must be a list" +msgstr "" + +#: extmod/modussl_axtls.c:81 +msgid "invalid key" +msgstr "" + +#: extmod/modussl_axtls.c:87 +msgid "invalid cert" +msgstr "" + +#: extmod/modujson.c:281 +msgid "syntax error in JSON" +msgstr "" + +#: extmod/vfs_fat.c:426 py/moduerrno.c:150 +msgid "Read-only filesystem" +msgstr "" + +#: extmod/moduzlib.c:97 +msgid "compression header" +msgstr "" + +#: extmod/modframebuf.c:299 +msgid "invalid format" +msgstr "" + +#: extmod/uos_dupterm.c:120 +msgid "invalid dupterm index" msgstr "" #: extmod/machine_spi.c:57 @@ -51,10 +97,6 @@ msgstr "" msgid "must specify all of sck/mosi/miso" msgstr "" -#: extmod/modframebuf.c:299 -msgid "invalid format" -msgstr "" - #: extmod/modubinascii.c:38 extmod/moduhashlib.c:102 msgid "a bytes-like object is required" msgstr "" @@ -71,849 +113,937 @@ msgstr "" msgid "incorrect padding" msgstr "" -#: extmod/moductypes.c:122 -msgid "syntax error in uctypes descriptor" -msgstr "" - -#: extmod/moductypes.c:219 -msgid "Cannot unambiguously get sizeof scalar" +#: extmod/machine_i2c.c:299 +msgid "invalid I2C peripheral" msgstr "" -#: extmod/moductypes.c:397 -msgid "struct: no fields" +#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 +#: extmod/machine_i2c.c:392 +msgid "I2C operation not supported" msgstr "" -#: extmod/moductypes.c:530 -msgid "struct: cannot index" +#: extmod/vfs_posix_file.c:48 py/objstringio.c:43 ports/unix/file.c:50 +msgid "I/O operation on closed file" msgstr "" -#: extmod/moductypes.c:544 -msgid "struct: index out of range" +#: extmod/modure.c:161 +msgid "Splitting with sub-captures" msgstr "" -#: extmod/moduheapq.c:38 -msgid "heap must be a list" +#: extmod/modure.c:207 +msgid "Error in regex" msgstr "" -#: extmod/moduheapq.c:86 extmod/modutimeq.c:147 extmod/modutimeq.c:172 -msgid "empty heap" +#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 +#, c-format +msgid "address %08x is not aligned to %d bytes" msgstr "" -#: extmod/modujson.c:281 -msgid "syntax error in JSON" +#: py/vm.c:255 +msgid "local variable referenced before assignment" msgstr "" -#: extmod/modure.c:161 -msgid "Splitting with sub-captures" +#: py/vm.c:1142 +msgid "no active exception to reraise" msgstr "" -#: extmod/modure.c:207 -msgid "Error in regex" +#: py/vm.c:1284 +msgid "byte code not implemented" msgstr "" -#: extmod/modussl_axtls.c:81 -msgid "invalid key" +#: py/builtinimport.c:253 lib/utils/pyexec.c:97 +msgid "script compilation not supported" msgstr "" -#: extmod/modussl_axtls.c:87 -msgid "invalid cert" +#: py/builtinimport.c:338 +msgid "cannot perform relative import" msgstr "" -#: extmod/modutimeq.c:131 -msgid "queue overflow" +#: py/builtinimport.c:422 py/builtinimport.c:534 +msgid "module not found" msgstr "" -#: extmod/moduzlib.c:97 -msgid "compression header" +#: py/builtinimport.c:425 py/builtinimport.c:537 +msgid "no module named '%q'" msgstr "" -#: extmod/uos_dupterm.c:120 -msgid "invalid dupterm index" +#: py/builtinimport.c:512 +msgid "relative import" msgstr "" -#: extmod/vfs_fat.c:426 py/moduerrno.c:150 -msgid "Read-only filesystem" +#: py/moduerrno.c:143 py/moduerrno.c:146 +msgid "Permission denied" msgstr "" -#: extmod/vfs_posix_file.c:48 ports/unix/file.c:50 py/objstringio.c:43 -msgid "I/O operation on closed file" +#: py/moduerrno.c:144 +msgid "No such file/directory" msgstr "" -#: lib/embed/abort_.c:8 -msgid "abort() called" +#: py/moduerrno.c:145 +msgid "Input/output error" msgstr "" -#: lib/netutils/netutils.c:83 -msgid "invalid arguments" +#: py/moduerrno.c:147 +msgid "File exists" msgstr "" -#: lib/utils/pyexec.c:97 py/builtinimport.c:253 -msgid "script compilation not supported" +#: py/moduerrno.c:148 +msgid "Unsupported operation" msgstr "" -#: main.c:143 -msgid " output:\n" +#: py/moduerrno.c:149 +msgid "Invalid argument" msgstr "" -#: main.c:157 main.c:230 +#: py/persistentcode.c:223 msgid "" -"Auto-reload is on. Simply save files over USB to run them or enter REPL to " -"disable.\n" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." msgstr "" -#: main.c:159 -msgid "Running in safe mode! Auto-reload is off.\n" +#: py/persistentcode.c:326 +msgid "can only save bytecode" msgstr "" -#: main.c:161 main.c:232 -msgid "Auto-reload is off.\n" +#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 +#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 +#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 +msgid "buffer too small" msgstr "" -#: main.c:175 -msgid "Running in safe mode! Not running saved code.\n" +#: py/objlist.c:273 +msgid "pop from empty list" msgstr "" -#: main.c:191 -msgid "WARNING: Your code filename has two extensions\n" +#: py/objrange.c:110 +msgid "zero step" msgstr "" -#: main.c:239 -msgid "You requested starting safe mode by " +#: py/objgenerator.c:108 +msgid "can't send non-None value to a just-started generator" msgstr "" -#: main.c:242 -msgid "To exit, please reset the board without " +#: py/objgenerator.c:126 +msgid "generator already executing" msgstr "" -#: main.c:249 -msgid "" -"You are running in safe mode which means something really bad happened.\n" +#: py/objgenerator.c:229 +msgid "generator ignored GeneratorExit" msgstr "" -#: main.c:251 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#: py/objgenerator.c:251 +msgid "can't pend throw to just-started generator" msgstr "" -#: main.c:252 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#: py/parse.c:726 +msgid "constant must be an integer" msgstr "" -#: main.c:255 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" +#: py/parse.c:868 +msgid "Unable to init parser" msgstr "" -#: main.c:256 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" +#: py/parse.c:1170 +msgid "unexpected indent" msgstr "" -#: main.c:260 -msgid "Press any key to enter the REPL. Use CTRL-D to reload." +#: py/parse.c:1173 +msgid "unindent does not match any outer indentation level" msgstr "" -#: main.c:415 -msgid "soft reboot\n" +#: py/parse.c:1176 py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 +#: py/compile.c:2742 +msgid "invalid syntax" msgstr "" -#: ports/atmel-samd/audio_dma.c:285 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 -msgid "All sync event channels in use" +#: py/obj.c:90 +msgid "Traceback (most recent call last):\n" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:135 -msgid "calibration is read only" +#: py/obj.c:94 +msgid " File \"%q\", line %d" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:137 -msgid "calibration is out of range" +#: py/obj.c:96 +msgid " File \"%q\"" msgstr "" -#: ports/atmel-samd/board_busses.c:39 -msgid "No default I2C bus" +#: py/obj.c:100 +msgid ", in %q\n" msgstr "" -#: ports/atmel-samd/board_busses.c:64 -msgid "No default SPI bus" +#: py/obj.c:257 +msgid "can't convert to int" msgstr "" -#: ports/atmel-samd/board_busses.c:91 -msgid "No default UART bus" +#: py/obj.c:260 +#, c-format +msgid "can't convert %s to int" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 -#: ports/nrf/common-hal/analogio/AnalogIn.c:39 -msgid "Pin does not have ADC capabilities" +#: py/obj.c:320 +msgid "can't convert to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 -msgid "No DAC on chip" +#: py/obj.c:323 +#, c-format +msgid "can't convert %s to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 -msgid "AnalogOut not supported on given pin" +#: py/obj.c:353 +msgid "can't convert to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 -msgid "Invalid bit clock pin" +#: py/obj.c:356 +#, c-format +msgid "can't convert %s to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 -msgid "Bit clock and word select must share a clock unit" +#: py/obj.c:371 +msgid "expected tuple/list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 -msgid "Invalid data pin" +#: py/obj.c:374 +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 -msgid "Serializer in use" +#: py/obj.c:385 +msgid "tuple/list has wrong length" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 -msgid "Clock unit in use" +#: py/obj.c:387 +#, c-format +msgid "requested length %d but object has length %d" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 -msgid "Unable to find free GCLK" +#: py/obj.c:400 +msgid "indices must be integers" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 -msgid "Too many channels in sample." +#: py/obj.c:403 +msgid "%q indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:326 -msgid "No DMA channel found" +#: py/obj.c:420 ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 +msgid "index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:328 -msgid "Unable to allocate buffers for signed conversion" +#: py/obj.c:423 +msgid "%q index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 -msgid "Invalid clock pin" +#: py/obj.c:455 +msgid "object has no len" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 -msgid "Only 8 or 16 bit mono with " +#: py/obj.c:458 +#, c-format +msgid "object of type '%s' has no len()" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 -msgid "sampling rate out of range" +#: py/obj.c:496 +msgid "object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:69 -msgid "DAC already in use" +#: py/obj.c:499 +#, c-format +msgid "'%s' object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:73 -msgid "Right channel unsupported" +#: py/obj.c:503 +msgid "object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:76 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:116 -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 -msgid "Invalid pin" +#: py/obj.c:506 +#, c-format +msgid "'%s' object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:84 -msgid "Invalid pin for left channel" +#: py/obj.c:510 +msgid "object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:88 -msgid "Invalid pin for right channel" +#: py/obj.c:513 +#, c-format +msgid "'%s' object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:91 -msgid "Cannot output both channels on the same pin" +#: py/obj.c:544 +msgid "object with buffer protocol required" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:173 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:186 -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:110 -msgid "All timers in use" +#: py/objslice.c:66 +msgid "Length must be an int" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:215 -msgid "All event channels in use" +#: py/objslice.c:71 +msgid "Length must be non-negative" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:71 -msgid "Not enough pins available" +#: py/objslice.c:86 py/sequence.c:57 +msgid "slice step cannot be zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:78 -#: ports/atmel-samd/common-hal/busio/SPI.c:132 -#: ports/atmel-samd/common-hal/busio/UART.c:119 -#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 -#: ports/nrf/common-hal/busio/I2C.c:58 -msgid "Invalid pins" +#: py/objslice.c:159 +msgid "Cannot subclass slice" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:101 -msgid "SDA or SCL needs a pull up" +#: py/objdeque.c:107 +msgid "full" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:121 -msgid "Unsupported baudrate" +#: py/objdeque.c:127 +msgid "empty" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:66 -msgid "bytes > 8 bits not supported" +#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 +msgid "negative power with no float support" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:72 -msgid "tx and rx cannot both be None" +#: py/objint_longlong.c:222 py/objfloat.c:270 py/modmath.c:196 +#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 +msgid "division by zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:139 -msgid "Failed to allocate RX buffer" +#: py/objint_longlong.c:251 +msgid "ulonglong too large" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:147 -msgid "Could not initialize UART" +#: py/objstrunicode.c:134 +#, c-format +msgid "string indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:234 -msgid "No RX pin" +#: py/objstrunicode.c:145 py/objstrunicode.c:164 +msgid "string index out of range" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:284 -msgid "No TX pin" +#: py/objstrunicode.c:191 py/objtuple.c:187 py/objstr.c:427 py/objarray.c:413 +#: shared-bindings/nvm/ByteArray.c:85 +msgid "only slices with step=1 (aka None) are supported" msgstr "" -#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 -#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 -msgid "Cannot get pull while in output mode" +#: py/argcheck.c:44 +msgid "function does not take keyword arguments" msgstr "" -#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 -#: ports/esp8266/common-hal/microcontroller/__init__.c:64 -msgid "Cannot reset into bootloader because no bootloader is present." +#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 +#, c-format +msgid "function takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:120 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:366 -#: ports/nrf/common-hal/pulseio/PWMOut.c:227 -msgid "Invalid PWM frequency" +#: py/argcheck.c:64 +#, c-format +msgid "function missing %d required positional arguments" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:184 -msgid "All timers for this pin are in use" +#: py/argcheck.c:72 +#, c-format +msgid "function expected at most %d arguments, got %d" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 -msgid "No hardware support on pin" +#: py/argcheck.c:97 +msgid "'%q' argument required" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 -msgid "EXTINT channel already in use" +#: py/argcheck.c:122 +msgid "extra positional arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 -#, c-format -msgid "Failed to allocate RX buffer of %d bytes" +#: py/argcheck.c:130 +msgid "extra keyword arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 -msgid "pop from an empty PulseIn" +#: py/argcheck.c:142 +msgid "argument num/types mismatch" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 -msgid "index out of range" +#: py/argcheck.c:147 +msgid "keyword argument(s) not yet implemented - use normal args instead" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:178 -msgid "Another send is already active" +#: py/objfloat.c:308 py/parsenum.c:331 +msgid "complex values not supported" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 -msgid "Both pins must support hardware interrupts" +#: py/bc.c:88 py/objnamedtuple.c:108 +msgid "%q() takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 -msgid "A hardware interrupt channel is already in use" +#: py/bc.c:197 py/bc.c:215 +msgid "unexpected keyword argument" msgstr "" -#: ports/atmel-samd/common-hal/rtc/RTC.c:101 -msgid "calibration value out of range +/-127" +#: py/bc.c:199 +msgid "keywords must be strings" msgstr "" -#: ports/atmel-samd/common-hal/storage/__init__.c:48 -msgid "Cannot remount '/' when USB is active." +#: py/bc.c:206 py/objnamedtuple.c:138 +msgid "function got multiple values for argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 -msgid "No free GCLKs" +#: py/bc.c:218 py/objnamedtuple.c:130 +msgid "unexpected keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 -#: ports/nrf/common-hal/usb_hid/Device.c:45 +#: py/bc.c:244 #, c-format -msgid "Buffer incorrect size. Should be %d bytes." +msgid "function missing required positional argument #%d" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:53 -msgid "USB Busy" +#: py/bc.c:260 +msgid "function missing required keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:59 -msgid "USB Error" +#: py/bc.c:269 +msgid "function missing keyword-only argument" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 -msgid "Pin %q does not have ADC capabilities" +#: py/emitinlinextensa.c:86 +msgid "can only have up to 4 parameters to Xtensa assembly" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 -msgid "No hardware support for analog out." +#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 +msgid "parameters must be registers in sequence a2 to a5" msgstr "" -#: ports/esp8266/common-hal/busio/SPI.c:72 -msgid "Pins not valid for SPI" +#: py/emitinlinextensa.c:162 +#, c-format +msgid "'%s' expects a register" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:45 -msgid "Only tx supported on UART1 (GPIO2)." +#: py/emitinlinextensa.c:169 +#, c-format +msgid "'%s' expects an integer" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 -msgid "invalid data bits" +#: py/emitinlinextensa.c:174 +#, c-format +msgid "'%s' integer %d is not within range %d..%d" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 -msgid "invalid stop bits" +#: py/emitinlinextensa.c:182 +#, c-format +msgid "'%s' expects a label" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 -msgid "ESP8266 does not support pull down." +#: py/emitinlinextensa.c:193 +msgid "label '%q' not defined" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 -msgid "GPIO16 does not support pull up." +#: py/emitinlinextensa.c:327 +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c:66 -msgid "ESP8226 does not support safe mode." +#: py/modthread.c:240 +msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 -#, c-format -msgid "Maximum PWM frequency is %dhz." +#: py/objset.c:371 +msgid "pop from an empty set" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 -msgid "Minimum PWM frequency is 1hz." +#: py/modbuiltins.c:162 +msgid "chr() arg not in range(0x110000)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#: py/modbuiltins.c:171 +msgid "chr() arg not in range(256)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#: py/modbuiltins.c:285 +msgid "arg is an empty sequence" +msgstr "" + +#: py/modbuiltins.c:350 +msgid "ord expects a character" +msgstr "" + +#: py/modbuiltins.c:353 #, c-format -msgid "PWM not supported on pin %d" +msgid "ord() expected a character, but string of length %d found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 -msgid "No PulseIn support for %q" +#: py/modbuiltins.c:363 +msgid "3-arg pow() not supported" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:34 -msgid "Unable to remount filesystem" +#: py/modbuiltins.c:517 +msgid "must use keyword argument for key function" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:38 -msgid "Use esptool to erase flash and re-upload Python instead" +#: py/objobject.c:55 +msgid "__new__ arg must be a user-type" msgstr "" -#: ports/esp8266/esp_mphal.c:154 -msgid "C-level assert" +#: py/lexer.c:345 +msgid "unicode name escapes" msgstr "" -#: ports/esp8266/machine_adc.c:57 +#: py/modmath.c:41 shared-bindings/math/__init__.c:53 +msgid "math domain error" +msgstr "" + +#: py/objtype.c:358 +msgid "__init__() should return None" +msgstr "" + +#: py/objtype.c:360 #, c-format -msgid "not a valid ADC Channel: %d" +msgid "__init__() should return None, not '%s'" msgstr "" -#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 -msgid "impossible baudrate" +#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 +msgid "unreadable attribute" msgstr "" -#: ports/esp8266/machine_pin.c:129 -msgid "expecting a pin" +#: py/objtype.c:868 py/runtime.c:653 +msgid "object not callable" msgstr "" -#: ports/esp8266/machine_pin.c:284 -msgid "Pin(16) doesn't support pull" +#: py/objtype.c:870 py/runtime.c:655 +#, c-format +msgid "'%s' object is not callable" msgstr "" -#: ports/esp8266/machine_pin.c:323 -msgid "invalid pin" +#: py/objtype.c:978 +msgid "type takes 1 or 3 arguments" msgstr "" -#: ports/esp8266/machine_pin.c:389 -msgid "pin does not have IRQ capabilities" +#: py/objtype.c:989 +msgid "cannot create instance" msgstr "" -#: ports/esp8266/machine_rtc.c:185 -msgid "buffer too long" +#: py/objtype.c:991 +msgid "cannot create '%q' instances" msgstr "" -#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 -#: ports/esp8266/machine_rtc.c:246 -msgid "invalid alarm" +#: py/objtype.c:1047 +msgid "can't add special method to already-subclassed class" msgstr "" -#: ports/esp8266/machine_uart.c:169 -#, c-format -msgid "UART(%d) does not exist" +#: py/objtype.c:1091 py/objtype.c:1097 +msgid "type is not an acceptable base type" msgstr "" -#: ports/esp8266/machine_uart.c:219 -msgid "UART(1) can't read" +#: py/objtype.c:1100 +msgid "type '%q' is not an acceptable base type" msgstr "" -#: ports/esp8266/modesp.c:119 -msgid "len must be multiple of 4" +#: py/objtype.c:1137 +msgid "multiple inheritance not supported" msgstr "" -#: ports/esp8266/modesp.c:274 -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" +#: py/objtype.c:1164 +msgid "multiple bases have instance lay-out conflict" msgstr "" -#: ports/esp8266/modesp.c:317 -msgid "flash location must be below 1MByte" +#: py/objtype.c:1205 +msgid "first argument to super() must be type" msgstr "" -#: ports/esp8266/modmachine.c:63 -msgid "frequency can only be either 80Mhz or 160MHz" +#: py/objtype.c:1370 +msgid "issubclass() arg 2 must be a class or a tuple of classes" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "STA required" +#: py/objtype.c:1384 +msgid "issubclass() arg 1 must be a class" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "AP required" +#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 +msgid "negative shift count" msgstr "" -#: ports/esp8266/modnetwork.c:87 -msgid "Cannot update i/f status" +#: py/objint_mpz.c:336 +msgid "pow() with 3 arguments requires integers" msgstr "" -#: ports/esp8266/modnetwork.c:142 -msgid "Cannot set STA config" +#: py/objint_mpz.c:347 +msgid "pow() 3rd argument cannot be 0" msgstr "" -#: ports/esp8266/modnetwork.c:144 -msgid "Cannot connect to AP" +#: py/objint_mpz.c:415 +msgid "overflow converting long int to machine word" msgstr "" -#: ports/esp8266/modnetwork.c:152 -msgid "Cannot disconnect from AP" +#: py/objint.c:144 +msgid "can't convert inf to int" msgstr "" -#: ports/esp8266/modnetwork.c:173 -msgid "unknown status param" +#: py/objint.c:146 +msgid "can't convert NaN to int" msgstr "" -#: ports/esp8266/modnetwork.c:222 -msgid "STA must be active" +#: py/objint.c:163 +msgid "float too big" msgstr "" -#: ports/esp8266/modnetwork.c:239 -msgid "scan failed" +#: py/objint.c:328 +msgid "long int not supported in this build" msgstr "" -#: ports/esp8266/modnetwork.c:306 -msgid "wifi_set_ip_info() failed" +#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 +msgid "small int overflow" msgstr "" -#: ports/esp8266/modnetwork.c:319 -msgid "either pos or kw args are allowed" +#: py/builtinevex.c:99 +msgid "bad compile mode" msgstr "" -#: ports/esp8266/modnetwork.c:329 -msgid "can't get STA config" +#: py/emitnative.c:183 +msgid "unknown type '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:331 -msgid "can't get AP config" +#: py/emitnative.c:260 +msgid "Viper functions don't currently support more than 4 arguments" msgstr "" -#: ports/esp8266/modnetwork.c:346 -msgid "invalid buffer length" +#: py/emitnative.c:742 +msgid "conversion to object" msgstr "" -#: ports/esp8266/modnetwork.c:405 -msgid "can't set STA config" +#: py/emitnative.c:921 +msgid "local '%q' used before type known" msgstr "" -#: ports/esp8266/modnetwork.c:407 -msgid "can't set AP config" +#: py/emitnative.c:1118 py/emitnative.c:1156 +msgid "can't load from '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:416 -msgid "can query only one param" +#: py/emitnative.c:1128 +msgid "can't load with '%q' index" msgstr "" -#: ports/esp8266/modnetwork.c:469 -msgid "unknown config param" +#: py/emitnative.c:1188 +msgid "local '%q' has type '%q' but source is '%q'" msgstr "" -#: ports/nrf/common-hal/analogio/AnalogOut.c:37 -msgid "AnalogOut functionality not supported" +#: py/emitnative.c:1289 py/emitnative.c:1379 +msgid "can't store '%q'" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 -#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 -#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 -#: ports/nrf/common-hal/busio/UART.c:88 -msgid "busio.UART not yet implemented" +#: py/emitnative.c:1358 py/emitnative.c:1419 +msgid "can't store to '%q'" msgstr "" -#: ports/nrf/common-hal/microcontroller/Processor.c:49 -#, c-format -msgid "Can not get temperature. status: 0x%02x" +#: py/emitnative.c:1369 +msgid "can't store with '%q' index" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:199 -msgid "Cannot apply GAP parameters." +#: py/emitnative.c:1540 +msgid "can't implicitly convert '%q' to 'bool'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:213 -msgid "Cannot set PPCP parameters." +#: py/emitnative.c:1774 +msgid "unary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:245 -msgid "Can not query for the device address." +#: py/emitnative.c:1930 +msgid "binary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:264 -msgid "Can not add Vendor Specific 128-bit UUID." +#: py/emitnative.c:1951 +msgid "can't do binary op between '%q' and '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:284 -#: ports/nrf/drivers/bluetooth/ble_drv.c:298 -msgid "Can not add Service." +#: py/emitnative.c:2126 +msgid "casting" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:373 -msgid "Can not add Characteristic." +#: py/emitnative.c:2173 +msgid "return expected '%q' but got '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:400 -msgid "Can not apply device name in the stack." +#: py/emitnative.c:2191 +msgid "must raise an object" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:464 -#: ports/nrf/drivers/bluetooth/ble_drv.c:514 -msgid "Can not encode UUID, to check length." +#: py/emitnative.c:2201 +msgid "native yield" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:470 -#: ports/nrf/drivers/bluetooth/ble_drv.c:520 -msgid "Can encode UUID into the advertisment packet." +#: py/stream.c:96 +msgid "stream operation not supported" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:545 -msgid "Can not fit data into the advertisment packet." +#: py/binary.c:112 +msgid "bad typecode" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:558 -#: ports/nrf/drivers/bluetooth/ble_drv.c:604 -#, c-format -msgid "Can not apply advertisment data. status: 0x%02x" +#: py/objstr.c:261 +msgid "bytes value out of range" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:614 -#, c-format -msgid "Can not start advertisment. status: 0x%02x" +#: py/objstr.c:270 +msgid "wrong number of arguments" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#: py/objstr.c:467 +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "" + +#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 +msgid "empty separator" +msgstr "" + +#: py/objstr.c:641 +msgid "rsplit(None,n)" +msgstr "" + +#: py/objstr.c:713 +msgid "substring not found" +msgstr "" + +#: py/objstr.c:770 +msgid "start/end indices" +msgstr "" + +#: py/objstr.c:931 +msgid "bad format string" +msgstr "" + +#: py/objstr.c:953 +msgid "single '}' encountered in format string" +msgstr "" + +#: py/objstr.c:992 +msgid "bad conversion specifier" +msgstr "" + +#: py/objstr.c:996 +msgid "end of format while looking for conversion specifier" +msgstr "" + +#: py/objstr.c:998 #, c-format -msgid "Can not stop advertisment. status: 0x%02x" +msgid "unknown conversion specifier %c" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:650 -#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#: py/objstr.c:1029 +msgid "unmatched '{' in format" +msgstr "" + +#: py/objstr.c:1036 +msgid "expected ':' after format specifier" +msgstr "" + +#: py/objstr.c:1050 +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "" + +#: py/objstr.c:1055 py/objstr.c:1083 +msgid "tuple index out of range" +msgstr "" + +#: py/objstr.c:1071 +msgid "attributes not supported yet" +msgstr "" + +#: py/objstr.c:1079 +msgid "" +"can't switch from manual field specification to automatic field numbering" +msgstr "" + +#: py/objstr.c:1171 +msgid "invalid format specifier" +msgstr "" + +#: py/objstr.c:1192 +msgid "sign not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1200 +msgid "sign not allowed with integer format specifier 'c'" +msgstr "" + +#: py/objstr.c:1259 #, c-format -msgid "Can not read attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:667 -#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#: py/objstr.c:1331 #, c-format -msgid "Can not write attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#: py/objstr.c:1343 +msgid "'=' alignment not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1367 #, c-format -msgid "Can not notify attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#: py/objstr.c:1415 +msgid "format requires a dict" +msgstr "" + +#: py/objstr.c:1424 +msgid "incomplete format key" +msgstr "" + +#: py/objstr.c:1482 +msgid "incomplete format" +msgstr "" + +#: py/objstr.c:1490 +msgid "not enough arguments for format string" +msgstr "" + +#: py/objstr.c:1500 #, c-format -msgid "Can not start scanning. status: 0x%02x" +msgid "%%c requires int or char" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#: py/objstr.c:1507 +msgid "integer required" +msgstr "" + +#: py/objstr.c:1570 #, c-format -msgid "Can not connect. status: 0x%02x" +msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 -msgid "Invalid UUID parameter" +#: py/objstr.c:1577 +msgid "not all arguments converted during string formatting" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 -msgid "Invalid Service type" +#: py/objstr.c:2102 +msgid "can't convert to str implicitly" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 -msgid "Invalid UUID string length" +#: py/objstr.c:2106 +msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: ports/unix/modffi.c:138 -msgid "Unknown type" +#: py/objcomplex.c:203 +msgid "can't do truncated division of a complex number" msgstr "" -#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 -msgid "Error in ffi_prep_cif" +#: py/objcomplex.c:209 +msgid "complex division by zero" msgstr "" -#: ports/unix/modffi.c:270 -msgid "ffi_prep_closure_loc" +#: py/objcomplex.c:237 +msgid "0.0 to a complex power" msgstr "" -#: ports/unix/modffi.c:413 -msgid "Don't know how to pass object to native function" +#: py/modmicropython.c:155 +msgid "schedule stack full" msgstr "" -#: ports/unix/modusocket.c:474 -#, c-format -msgid "[addrinfo error %d]" +#: py/objdict.c:314 +msgid "popitem(): dictionary is empty" msgstr "" -#: py/argcheck.c:44 -msgid "function does not take keyword arguments" +#: py/objdict.c:357 +msgid "dict update sequence has wrong length" msgstr "" -#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 -#, c-format -msgid "function takes %d positional arguments but %d were given" +#: py/runtime.c:206 +msgid "name not defined" msgstr "" -#: py/argcheck.c:64 -#, c-format -msgid "function missing %d required positional arguments" +#: py/runtime.c:209 +msgid "name '%q' is not defined" msgstr "" -#: py/argcheck.c:72 -#, c-format -msgid "function expected at most %d arguments, got %d" +#: py/runtime.c:304 py/runtime.c:611 +msgid "unsupported type for operator" msgstr "" -#: py/argcheck.c:97 -msgid "'%q' argument required" +#: py/runtime.c:307 +msgid "unsupported type for %q: '%s'" msgstr "" -#: py/argcheck.c:122 -msgid "extra positional arguments given" +#: py/runtime.c:614 +msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: py/argcheck.c:130 -msgid "extra keyword arguments given" +#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 +msgid "wrong number of values to unpack" msgstr "" -#: py/argcheck.c:142 -msgid "argument num/types mismatch" +#: py/runtime.c:883 py/runtime.c:947 +#, c-format +msgid "need more than %d values to unpack" msgstr "" -#: py/argcheck.c:147 -msgid "keyword argument(s) not yet implemented - use normal args instead" +#: py/runtime.c:890 +#, c-format +msgid "too many values to unpack (expected %d)" msgstr "" -#: py/bc.c:88 py/objnamedtuple.c:108 -msgid "%q() takes %d positional arguments but %d were given" +#: py/runtime.c:984 +msgid "argument has wrong type" msgstr "" -#: py/bc.c:197 py/bc.c:215 -msgid "unexpected keyword argument" +#: py/runtime.c:986 +msgid "argument should be a '%q' not a '%q'" +msgstr "" + +#: py/runtime.c:1123 py/runtime.c:1197 +msgid "no such attribute" +msgstr "" + +#: py/runtime.c:1128 +msgid "type object '%q' has no attribute '%q'" msgstr "" -#: py/bc.c:199 -msgid "keywords must be strings" +#: py/runtime.c:1132 py/runtime.c:1200 +msgid "'%s' object has no attribute '%q'" msgstr "" -#: py/bc.c:206 py/objnamedtuple.c:138 -msgid "function got multiple values for argument '%q'" +#: py/runtime.c:1238 +msgid "object not iterable" msgstr "" -#: py/bc.c:218 py/objnamedtuple.c:130 -msgid "unexpected keyword argument '%q'" +#: py/runtime.c:1241 +#, c-format +msgid "'%s' object is not iterable" msgstr "" -#: py/bc.c:244 -#, c-format -msgid "function missing required positional argument #%d" +#: py/runtime.c:1260 py/runtime.c:1296 +msgid "object not an iterator" msgstr "" -#: py/bc.c:260 -msgid "function missing required keyword argument '%q'" +#: py/runtime.c:1262 py/runtime.c:1298 +#, c-format +msgid "'%s' object is not an iterator" msgstr "" -#: py/bc.c:269 -msgid "function missing keyword-only argument" +#: py/runtime.c:1401 +msgid "exceptions must derive from BaseException" msgstr "" -#: py/binary.c:112 -msgid "bad typecode" +#: py/runtime.c:1430 +msgid "cannot import name %q" msgstr "" -#: py/builtinevex.c:99 -msgid "bad compile mode" +#: py/runtime.c:1535 +msgid "memory allocation failed, heap is locked" msgstr "" -#: py/builtinimport.c:338 -msgid "cannot perform relative import" +#: py/runtime.c:1539 +#, c-format +msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: py/builtinimport.c:422 py/builtinimport.c:534 -msgid "module not found" +#: py/runtime.c:1609 +msgid "maximum recursion depth exceeded" msgstr "" -#: py/builtinimport.c:425 py/builtinimport.c:537 -msgid "no module named '%q'" +#: py/objarray.c:426 +msgid "lhs and rhs should be compatible" msgstr "" -#: py/builtinimport.c:512 -msgid "relative import" +#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 +msgid "array/bytes required on right side" msgstr "" #: py/compile.c:397 py/compile.c:542 @@ -996,11 +1126,6 @@ msgstr "" msgid "non-keyword arg after keyword arg" msgstr "" -#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 -#: py/parse.c:1176 -msgid "invalid syntax" -msgstr "" - #: py/compile.c:2465 msgid "expecting key:value for dict" msgstr "" @@ -1061,1185 +1186,1076 @@ msgstr "" msgid "'data' requires integer arguments" msgstr "" -#: py/emitinlinextensa.c:86 -msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "" - -#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 -msgid "parameters must be registers in sequence a2 to a5" -msgstr "" - -#: py/emitinlinextensa.c:162 -#, c-format -msgid "'%s' expects a register" -msgstr "" - -#: py/emitinlinextensa.c:169 -#, c-format -msgid "'%s' expects an integer" -msgstr "" - -#: py/emitinlinextensa.c:174 -#, c-format -msgid "'%s' integer %d is not within range %d..%d" -msgstr "" - -#: py/emitinlinextensa.c:182 -#, c-format -msgid "'%s' expects a label" -msgstr "" - -#: py/emitinlinextensa.c:193 -msgid "label '%q' not defined" -msgstr "" - -#: py/emitinlinextensa.c:327 -#, c-format -msgid "unsupported Xtensa instruction '%s' with %d arguments" -msgstr "" - -#: py/emitnative.c:183 -msgid "unknown type '%q'" -msgstr "" - -#: py/emitnative.c:260 -msgid "Viper functions don't currently support more than 4 arguments" -msgstr "" - -#: py/emitnative.c:742 -msgid "conversion to object" -msgstr "" - -#: py/emitnative.c:921 -msgid "local '%q' used before type known" -msgstr "" - -#: py/emitnative.c:1118 py/emitnative.c:1156 -msgid "can't load from '%q'" -msgstr "" - -#: py/emitnative.c:1128 -msgid "can't load with '%q' index" -msgstr "" - -#: py/emitnative.c:1188 -msgid "local '%q' has type '%q' but source is '%q'" -msgstr "" - -#: py/emitnative.c:1289 py/emitnative.c:1379 -msgid "can't store '%q'" -msgstr "" - -#: py/emitnative.c:1358 py/emitnative.c:1419 -msgid "can't store to '%q'" -msgstr "" - -#: py/emitnative.c:1369 -msgid "can't store with '%q' index" -msgstr "" - -#: py/emitnative.c:1540 -msgid "can't implicitly convert '%q' to 'bool'" -msgstr "" - -#: py/emitnative.c:1774 -msgid "unary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1930 -msgid "binary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1951 -msgid "can't do binary op between '%q' and '%q'" -msgstr "" - -#: py/emitnative.c:2126 -msgid "casting" -msgstr "" - -#: py/emitnative.c:2173 -msgid "return expected '%q' but got '%q'" -msgstr "" - -#: py/emitnative.c:2191 -msgid "must raise an object" -msgstr "" - -#: py/emitnative.c:2201 -msgid "native yield" -msgstr "" - -#: py/lexer.c:345 -msgid "unicode name escapes" -msgstr "" - -#: py/modbuiltins.c:162 -msgid "chr() arg not in range(0x110000)" +#: py/sequence.c:264 +msgid "object not in sequence" msgstr "" -#: py/modbuiltins.c:171 -msgid "chr() arg not in range(256)" +#: py/objnamedtuple.c:92 +msgid "can't set attribute" msgstr "" -#: py/modbuiltins.c:285 -msgid "arg is an empty sequence" +#: py/parsenum.c:60 +msgid "int() arg 2 must be >= 2 and <= 36" msgstr "" -#: py/modbuiltins.c:350 -msgid "ord expects a character" +#: py/parsenum.c:151 +msgid "invalid syntax for integer" msgstr "" -#: py/modbuiltins.c:353 +#: py/parsenum.c:155 #, c-format -msgid "ord() expected a character, but string of length %d found" -msgstr "" - -#: py/modbuiltins.c:363 -msgid "3-arg pow() not supported" -msgstr "" - -#: py/modbuiltins.c:517 -msgid "must use keyword argument for key function" -msgstr "" - -#: py/modmath.c:41 shared-bindings/math/__init__.c:53 -msgid "math domain error" -msgstr "" - -#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 -#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 -msgid "division by zero" -msgstr "" - -#: py/modmicropython.c:155 -msgid "schedule stack full" -msgstr "" - -#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 -#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 -#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 -msgid "buffer too small" -msgstr "" - -#: py/modthread.c:240 -msgid "expecting a dict for keyword args" -msgstr "" - -#: py/moduerrno.c:143 py/moduerrno.c:146 -msgid "Permission denied" -msgstr "" - -#: py/moduerrno.c:144 -msgid "No such file/directory" -msgstr "" - -#: py/moduerrno.c:145 -msgid "Input/output error" -msgstr "" - -#: py/moduerrno.c:147 -msgid "File exists" +msgid "invalid syntax for integer with base %d" msgstr "" -#: py/moduerrno.c:148 -msgid "Unsupported operation" +#: py/parsenum.c:339 +msgid "invalid syntax for number" msgstr "" -#: py/moduerrno.c:149 -msgid "Invalid argument" +#: py/parsenum.c:342 +msgid "decimal numbers not supported" msgstr "" -#: py/obj.c:90 -msgid "Traceback (most recent call last):\n" +#: main.c:143 +msgid " output:\n" msgstr "" -#: py/obj.c:94 -msgid " File \"%q\", line %d" +#: main.c:157 main.c:230 +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" msgstr "" - -#: py/obj.c:96 -msgid " File \"%q\"" + +#: main.c:159 +msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: py/obj.c:100 -msgid ", in %q\n" +#: main.c:161 main.c:232 +msgid "Auto-reload is off.\n" msgstr "" -#: py/obj.c:257 -msgid "can't convert to int" +#: main.c:175 +msgid "Running in safe mode! Not running saved code.\n" msgstr "" -#: py/obj.c:260 -#, c-format -msgid "can't convert %s to int" +#: main.c:191 +msgid "WARNING: Your code filename has two extensions\n" msgstr "" -#: py/obj.c:320 -msgid "can't convert to float" +#: main.c:239 +msgid "You requested starting safe mode by " msgstr "" -#: py/obj.c:323 -#, c-format -msgid "can't convert %s to float" +#: main.c:242 +msgid "To exit, please reset the board without " msgstr "" -#: py/obj.c:353 -msgid "can't convert to complex" +#: main.c:249 +msgid "" +"You are running in safe mode which means something really bad happened.\n" msgstr "" -#: py/obj.c:356 -#, c-format -msgid "can't convert %s to complex" +#: main.c:251 +msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" msgstr "" -#: py/obj.c:371 -msgid "expected tuple/list" +#: main.c:252 +msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" msgstr "" -#: py/obj.c:374 -#, c-format -msgid "object '%s' is not a tuple or list" +#: main.c:255 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" msgstr "" -#: py/obj.c:385 -msgid "tuple/list has wrong length" +#: main.c:256 +msgid "" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" msgstr "" -#: py/obj.c:387 -#, c-format -msgid "requested length %d but object has length %d" +#: main.c:260 +msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: py/obj.c:400 -msgid "indices must be integers" +#: main.c:415 +msgid "soft reboot\n" msgstr "" -#: py/obj.c:403 -msgid "%q indices must be integers, not %s" +#: shared-bindings/_stage/Text.c:69 +msgid "font must be 2048 bytes long" msgstr "" -#: py/obj.c:423 -msgid "%q index out of range" +#: shared-bindings/_stage/Text.c:75 shared-bindings/_stage/Layer.c:77 +msgid "palette must be 32 bytes long" msgstr "" -#: py/obj.c:455 -msgid "object has no len" +#: shared-bindings/_stage/Text.c:81 +msgid "chars buffer too small" msgstr "" -#: py/obj.c:458 -#, c-format -msgid "object of type '%s' has no len()" +#: shared-bindings/_stage/Layer.c:71 +msgid "graphic must be 2048 bytes long" msgstr "" -#: py/obj.c:496 -msgid "object does not support item deletion" +#: shared-bindings/_stage/Layer.c:84 +msgid "map buffer too small" msgstr "" -#: py/obj.c:499 -#, c-format -msgid "'%s' object does not support item deletion" +#: shared-bindings/supervisor/__init__.c:93 +msgid "Brightness must be between 0 and 255" msgstr "" -#: py/obj.c:503 -msgid "object is not subscriptable" +#: shared-bindings/supervisor/__init__.c:119 +msgid "Stack size must be at least 256" msgstr "" -#: py/obj.c:506 -#, c-format -msgid "'%s' object is not subscriptable" +#: shared-bindings/i2cslave/I2CSlave.c:98 +msgid "can't convert address to int" msgstr "" -#: py/obj.c:510 -msgid "object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:101 +msgid "address out of bounds" msgstr "" -#: py/obj.c:513 -#, c-format -msgid "'%s' object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:107 +msgid "addresses is empty" msgstr "" -#: py/obj.c:544 -msgid "object with buffer protocol required" +#: shared-bindings/busio/UART.c:98 +msgid "bits must be 7, 8 or 9" msgstr "" -#: py/objarray.c:413 py/objstr.c:427 py/objstrunicode.c:191 py/objtuple.c:187 -#: shared-bindings/nvm/ByteArray.c:85 -msgid "only slices with step=1 (aka None) are supported" +#: shared-bindings/busio/UART.c:110 +msgid "stop must be 1 or 2" msgstr "" -#: py/objarray.c:426 -msgid "lhs and rhs should be compatible" +#: shared-bindings/busio/SPI.c:133 shared-bindings/bitbangio/SPI.c:121 +#: shared-bindings/bitbangio/I2C.c:111 +msgid "Function requires lock" msgstr "" -#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 -msgid "array/bytes required on right side" +#: shared-bindings/busio/SPI.c:168 shared-bindings/bitbangio/SPI.c:151 +msgid "Invalid polarity" msgstr "" -#: py/objcomplex.c:203 -msgid "can't do truncated division of a complex number" +#: shared-bindings/busio/SPI.c:172 shared-bindings/bitbangio/SPI.c:155 +msgid "Invalid phase" msgstr "" -#: py/objcomplex.c:209 -msgid "complex division by zero" +#: shared-bindings/busio/SPI.c:176 shared-bindings/bitbangio/SPI.c:159 +msgid "Invalid number of bits" msgstr "" -#: py/objcomplex.c:237 -msgid "0.0 to a complex power" +#: shared-bindings/busio/SPI.c:341 shared-bindings/bitbangio/SPI.c:284 +msgid "buffer slices must be of equal length" msgstr "" -#: py/objdeque.c:107 -msgid "full" +#: shared-bindings/busio/I2C.c:120 +msgid "Function requires lock." msgstr "" -#: py/objdeque.c:127 -msgid "empty" +#: shared-bindings/busio/I2C.c:210 shared-bindings/bitbangio/I2C.c:195 +msgid "Buffer must be at least length 1" msgstr "" -#: py/objdict.c:314 -msgid "popitem(): dictionary is empty" +#: shared-bindings/pulseio/PWMOut.c:164 +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" msgstr "" -#: py/objdict.c:357 -msgid "dict update sequence has wrong length" +#: shared-bindings/pulseio/PWMOut.c:195 +msgid "" +"PWM frequency not writeable when variable_frequency is False on construction." msgstr "" -#: py/objfloat.c:308 py/parsenum.c:331 -msgid "complex values not supported" +#: shared-bindings/pulseio/PulseOut.c:75 +#: shared-bindings/microcontroller/Pin.c:89 +#: shared-bindings/neopixel_write/__init__.c:67 +msgid "Expected a %q" msgstr "" -#: py/objgenerator.c:108 -msgid "can't send non-None value to a just-started generator" +#: shared-bindings/pulseio/PulseOut.c:134 +msgid "Array must contain halfwords (type 'H')" msgstr "" -#: py/objgenerator.c:126 -msgid "generator already executing" +#: shared-bindings/pulseio/PulseIn.c:275 +msgid "Cannot delete values" msgstr "" -#: py/objgenerator.c:229 -msgid "generator ignored GeneratorExit" +#: shared-bindings/pulseio/PulseIn.c:281 +msgid "Slices not supported" msgstr "" -#: py/objgenerator.c:251 -msgid "can't pend throw to just-started generator" +#: shared-bindings/pulseio/PulseIn.c:287 +msgid "index must be int" msgstr "" -#: py/objint.c:144 -msgid "can't convert inf to int" +#: shared-bindings/pulseio/PulseIn.c:293 +msgid "Read-only" msgstr "" -#: py/objint.c:146 -msgid "can't convert NaN to int" +#: shared-bindings/touchio/TouchIn.c:173 +msgid "threshold must be in the range 0-65536" msgstr "" -#: py/objint.c:163 -msgid "float too big" +#: shared-bindings/microcontroller/__init__.c:126 +msgid "Invalid run mode." msgstr "" -#: py/objint.c:328 -msgid "long int not supported in this build" +#: shared-bindings/microcontroller/Pin.c:100 +msgid "%q in use" msgstr "" -#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 -msgid "small int overflow" +#: shared-bindings/multiterminal/__init__.c:68 +msgid "Stream missing readinto() or write() method." msgstr "" -#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 -msgid "negative power with no float support" +#: shared-bindings/time/__init__.c:80 +msgid "sleep length must be non-negative" msgstr "" -#: py/objint_longlong.c:251 -msgid "ulonglong too large" +#: shared-bindings/time/__init__.c:90 +msgid "time.struct_time() takes exactly 1 argument" msgstr "" -#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 -msgid "negative shift count" +#: shared-bindings/time/__init__.c:93 +msgid "time.struct_time() takes a 9-sequence" msgstr "" -#: py/objint_mpz.c:336 -msgid "pow() with 3 arguments requires integers" +#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 +msgid "Tuple or struct_time argument required" msgstr "" -#: py/objint_mpz.c:347 -msgid "pow() 3rd argument cannot be 0" +#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 +msgid "function takes exactly 9 arguments" msgstr "" -#: py/objint_mpz.c:415 -msgid "overflow converting long int to machine word" +#: shared-bindings/time/__init__.c:192 shared-bindings/rtc/RTC.c:40 +#: shared-bindings/rtc/RTC.c:44 +msgid "RTC is not supported on this board" msgstr "" -#: py/objlist.c:273 -msgid "pop from empty list" +#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 +msgid "timestamp out of range for platform time_t" msgstr "" -#: py/objnamedtuple.c:92 -msgid "can't set attribute" +#: shared-bindings/gamepad/GamePad.c:100 +msgid "too many arguments" msgstr "" -#: py/objobject.c:55 -msgid "__new__ arg must be a user-type" +#: shared-bindings/gamepad/GamePad.c:104 +msgid "expected a DigitalInOut" msgstr "" -#: py/objrange.c:110 -msgid "zero step" +#: shared-bindings/audioio/RawSample.c:98 +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" msgstr "" -#: py/objset.c:371 -msgid "pop from an empty set" +#: shared-bindings/audioio/RawSample.c:104 +msgid "buffer must be a bytes-like object" msgstr "" -#: py/objslice.c:66 -msgid "Length must be an int" +#: shared-bindings/audioio/WaveFile.c:78 +msgid "file must be a file opened in byte mode" msgstr "" -#: py/objslice.c:71 -msgid "Length must be non-negative" +#: shared-bindings/audioio/AudioOut.c:223 +#: shared-bindings/audiobusio/I2SOut.c:225 +msgid "Not playing" msgstr "" -#: py/objslice.c:86 py/sequence.c:57 -msgid "slice step cannot be zero" +#: shared-bindings/storage/__init__.c:77 +msgid "filesystem must provide mount method" msgstr "" -#: py/objslice.c:159 -msgid "Cannot subclass slice" +#: shared-bindings/digitalio/DigitalInOut.c:211 +msgid "Invalid direction." msgstr "" -#: py/objstr.c:261 -msgid "bytes value out of range" +#: shared-bindings/digitalio/DigitalInOut.c:240 +msgid "Cannot set value when direction is input." msgstr "" -#: py/objstr.c:270 -msgid "wrong number of arguments" +#: shared-bindings/digitalio/DigitalInOut.c:266 +#: shared-bindings/digitalio/DigitalInOut.c:281 +msgid "Drive mode not used when direction is input." msgstr "" -#: py/objstr.c:467 -msgid "join expects a list of str/bytes objects consistent with self object" +#: shared-bindings/digitalio/DigitalInOut.c:314 +#: shared-bindings/digitalio/DigitalInOut.c:331 +msgid "Pull not used when direction is output." msgstr "" -#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 -msgid "empty separator" +#: shared-bindings/digitalio/DigitalInOut.c:340 +msgid "Unsupported pull value." msgstr "" -#: py/objstr.c:641 -msgid "rsplit(None,n)" +#: shared-bindings/analogio/AnalogOut.c:118 +msgid "AnalogOut is only 16 bits. Value must be less than 65536." msgstr "" -#: py/objstr.c:713 -msgid "substring not found" +#: shared-bindings/rtc/RTC.c:52 +msgid "RTC calibration is not supported on this board" msgstr "" -#: py/objstr.c:770 -msgid "start/end indices" +#: shared-bindings/audiobusio/PDMIn.c:124 +msgid "Bit depth must be multiple of 8." msgstr "" -#: py/objstr.c:931 -msgid "bad format string" +#: shared-bindings/audiobusio/PDMIn.c:128 +msgid "Oversample must be multiple of 8." msgstr "" -#: py/objstr.c:953 -msgid "single '}' encountered in format string" +#: shared-bindings/audiobusio/PDMIn.c:136 +msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: py/objstr.c:992 -msgid "bad conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:193 +msgid "destination_length must be an int >= 0" msgstr "" -#: py/objstr.c:996 -msgid "end of format while looking for conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:199 +msgid "Cannot record to a file" msgstr "" -#: py/objstr.c:998 -#, c-format -msgid "unknown conversion specifier %c" +#: shared-bindings/audiobusio/PDMIn.c:202 +msgid "Destination capacity is smaller than destination_length." msgstr "" -#: py/objstr.c:1029 -msgid "unmatched '{' in format" +#: shared-bindings/audiobusio/PDMIn.c:206 +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" msgstr "" -#: py/objstr.c:1036 -msgid "expected ':' after format specifier" +#: shared-bindings/audiobusio/PDMIn.c:208 +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" msgstr "" -#: py/objstr.c:1050 +#: shared-bindings/util.c:38 msgid "" -"can't switch from automatic field numbering to manual field specification" +"Object has been deinitialized and can no longer be used. Create a new object." msgstr "" -#: py/objstr.c:1055 py/objstr.c:1083 -msgid "tuple index out of range" +#: shared-bindings/os/__init__.c:200 +msgid "No hardware random available" msgstr "" -#: py/objstr.c:1071 -msgid "attributes not supported yet" +#: shared-bindings/nvm/ByteArray.c:99 +msgid "Slice and value different lengths." msgstr "" -#: py/objstr.c:1079 -msgid "" -"can't switch from manual field specification to automatic field numbering" +#: shared-bindings/nvm/ByteArray.c:104 +msgid "Array values should be single bytes." msgstr "" -#: py/objstr.c:1171 -msgid "invalid format specifier" +#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 +msgid "Unable to write to nvm." msgstr "" -#: py/objstr.c:1192 -msgid "sign not allowed in string format specifier" +#: shared-bindings/nvm/ByteArray.c:137 +msgid "Bytes must be between 0 and 255." msgstr "" -#: py/objstr.c:1200 -msgid "sign not allowed with integer format specifier 'c'" +#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 +msgid "stop not reachable from start" msgstr "" -#: py/objstr.c:1259 -#, c-format -msgid "unknown format code '%c' for object of type '%s'" +#: shared-bindings/random/__init__.c:111 +msgid "step must be non-zero" msgstr "" -#: py/objstr.c:1331 -#, c-format -msgid "unknown format code '%c' for object of type 'float'" +#: shared-bindings/random/__init__.c:114 +msgid "invalid step" msgstr "" -#: py/objstr.c:1343 -msgid "'=' alignment not allowed in string format specifier" +#: shared-bindings/random/__init__.c:146 +msgid "empty sequence" msgstr "" -#: py/objstr.c:1367 -#, c-format -msgid "unknown format code '%c' for object of type 'str'" +#: shared-module/bitbangio/SPI.c:45 +msgid "Clock pin init failed." msgstr "" -#: py/objstr.c:1415 -msgid "format requires a dict" +#: shared-module/bitbangio/SPI.c:51 +msgid "MOSI pin init failed." msgstr "" -#: py/objstr.c:1424 -msgid "incomplete format key" +#: shared-module/bitbangio/SPI.c:62 +msgid "MISO pin init failed." msgstr "" -#: py/objstr.c:1482 -msgid "incomplete format" +#: shared-module/bitbangio/SPI.c:122 +msgid "Cannot write without MOSI pin." msgstr "" -#: py/objstr.c:1490 -msgid "not enough arguments for format string" +#: shared-module/bitbangio/SPI.c:177 +msgid "Cannot read without MISO pin." msgstr "" -#: py/objstr.c:1500 -#, c-format -msgid "%%c requires int or char" +#: shared-module/bitbangio/SPI.c:241 +msgid "Cannot transfer without MOSI and MISO pins." msgstr "" -#: py/objstr.c:1507 -msgid "integer required" +#: shared-module/bitbangio/I2C.c:58 +msgid "Clock stretch too long" msgstr "" -#: py/objstr.c:1570 -#, c-format -msgid "unsupported format character '%c' (0x%x) at index %d" +#: shared-module/audioio/WaveFile.c:61 +msgid "Invalid wave file" msgstr "" -#: py/objstr.c:1577 -msgid "not all arguments converted during string formatting" +#: shared-module/audioio/WaveFile.c:69 +msgid "Invalid format chunk size" msgstr "" -#: py/objstr.c:2102 -msgid "can't convert to str implicitly" +#: shared-module/audioio/WaveFile.c:83 +msgid "Unsupported format" msgstr "" -#: py/objstr.c:2106 -msgid "can't convert '%q' object to %q implicitly" +#: shared-module/audioio/WaveFile.c:99 +msgid "Data chunk must follow fmt chunk" msgstr "" -#: py/objstrunicode.c:134 -#, c-format -msgid "string indices must be integers, not %s" +#: shared-module/audioio/WaveFile.c:107 +msgid "Invalid file" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 -msgid "string index out of range" +#: shared-module/audioio/WaveFile.c:117 +msgid "Couldn't allocate first buffer" msgstr "" -#: py/objtype.c:358 -msgid "__init__() should return None" +#: shared-module/audioio/WaveFile.c:123 +msgid "Couldn't allocate second buffer" msgstr "" -#: py/objtype.c:360 -#, c-format -msgid "__init__() should return None, not '%s'" +#: shared-module/struct/__init__.c:39 +msgid "'S' and 'O' are not supported format types" msgstr "" -#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 -msgid "unreadable attribute" +#: shared-module/struct/__init__.c:83 +msgid "too many arguments provided with the given format" msgstr "" -#: py/objtype.c:868 py/runtime.c:653 -msgid "object not callable" +#: lib/embed/abort_.c:8 +msgid "abort() called" msgstr "" -#: py/objtype.c:870 py/runtime.c:655 +#: lib/netutils/netutils.c:83 +msgid "invalid arguments" +msgstr "" + +#: ports/unix/modusocket.c:474 #, c-format -msgid "'%s' object is not callable" +msgid "[addrinfo error %d]" msgstr "" -#: py/objtype.c:978 -msgid "type takes 1 or 3 arguments" +#: ports/unix/modffi.c:138 +msgid "Unknown type" msgstr "" -#: py/objtype.c:989 -msgid "cannot create instance" +#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 +msgid "Error in ffi_prep_cif" msgstr "" -#: py/objtype.c:991 -msgid "cannot create '%q' instances" +#: ports/unix/modffi.c:270 +msgid "ffi_prep_closure_loc" msgstr "" -#: py/objtype.c:1047 -msgid "can't add special method to already-subclassed class" +#: ports/unix/modffi.c:413 +msgid "Don't know how to pass object to native function" msgstr "" -#: py/objtype.c:1091 py/objtype.c:1097 -msgid "type is not an acceptable base type" +#: ports/atmel-samd/audio_dma.c:285 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 +msgid "All sync event channels in use" msgstr "" -#: py/objtype.c:1100 -msgid "type '%q' is not an acceptable base type" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 +#: ports/nrf/common-hal/usb_hid/Device.c:45 +#, c-format +msgid "Buffer incorrect size. Should be %d bytes." msgstr "" -#: py/objtype.c:1137 -msgid "multiple inheritance not supported" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:53 +msgid "USB Busy" msgstr "" -#: py/objtype.c:1164 -msgid "multiple bases have instance lay-out conflict" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:59 +msgid "USB Error" msgstr "" -#: py/objtype.c:1205 -msgid "first argument to super() must be type" +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 +#: ports/atmel-samd/common-hal/busio/UART.c:119 +#: ports/atmel-samd/common-hal/busio/SPI.c:132 +#: ports/atmel-samd/common-hal/busio/I2C.c:78 +#: ports/nrf/common-hal/busio/I2C.c:58 +msgid "Invalid pins" msgstr "" -#: py/objtype.c:1370 -msgid "issubclass() arg 2 must be a class or a tuple of classes" +#: ports/atmel-samd/common-hal/busio/UART.c:66 +msgid "bytes > 8 bits not supported" msgstr "" -#: py/objtype.c:1384 -msgid "issubclass() arg 1 must be a class" +#: ports/atmel-samd/common-hal/busio/UART.c:72 +msgid "tx and rx cannot both be None" msgstr "" -#: py/parse.c:726 -msgid "constant must be an integer" +#: ports/atmel-samd/common-hal/busio/UART.c:139 +msgid "Failed to allocate RX buffer" msgstr "" -#: py/parse.c:868 -msgid "Unable to init parser" +#: ports/atmel-samd/common-hal/busio/UART.c:147 +msgid "Could not initialize UART" msgstr "" -#: py/parse.c:1170 -msgid "unexpected indent" +#: ports/atmel-samd/common-hal/busio/UART.c:234 +msgid "No RX pin" msgstr "" -#: py/parse.c:1173 -msgid "unindent does not match any outer indentation level" +#: ports/atmel-samd/common-hal/busio/UART.c:284 +msgid "No TX pin" msgstr "" -#: py/parsenum.c:60 -msgid "int() arg 2 must be >= 2 and <= 36" +#: ports/atmel-samd/common-hal/busio/I2C.c:71 +msgid "Not enough pins available" msgstr "" -#: py/parsenum.c:151 -msgid "invalid syntax for integer" +#: ports/atmel-samd/common-hal/busio/I2C.c:101 +msgid "SDA or SCL needs a pull up" +msgstr "" + +#: ports/atmel-samd/common-hal/busio/I2C.c:121 +msgid "Unsupported baudrate" msgstr "" -#: py/parsenum.c:155 -#, c-format -msgid "invalid syntax for integer with base %d" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:80 +msgid "Frequency captured is above capability. Capture Paused." msgstr "" -#: py/parsenum.c:339 -msgid "invalid syntax for number" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:115 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 +msgid "No hardware support on pin" msgstr "" -#: py/parsenum.c:342 -msgid "decimal numbers not supported" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:126 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 +msgid "EXTINT channel already in use" msgstr "" -#: py/persistentcode.c:223 -msgid "" -"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" -"mpy-update for more info." +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:139 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:187 +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:111 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:174 +msgid "All timers in use" msgstr "" -#: py/persistentcode.c:326 -msgid "can only save bytecode" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:303 +msgid "An error occurred in measuring the frequency. (FREQM peripheral usage.)" msgstr "" -#: py/runtime.c:206 -msgid "name not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:117 +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:77 +msgid "Invalid pin" msgstr "" -#: py/runtime.c:209 -msgid "name '%q' is not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:121 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:367 +#: ports/nrf/common-hal/pulseio/PWMOut.c:227 +msgid "Invalid PWM frequency" msgstr "" -#: py/runtime.c:304 py/runtime.c:611 -msgid "unsupported type for operator" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:185 +msgid "All timers for this pin are in use" msgstr "" -#: py/runtime.c:307 -msgid "unsupported type for %q: '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:179 +msgid "Another send is already active" msgstr "" -#: py/runtime.c:614 -msgid "unsupported types for %q: '%s', '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 +#, c-format +msgid "Failed to allocate RX buffer of %d bytes" msgstr "" -#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 -msgid "wrong number of values to unpack" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 +msgid "pop from an empty PulseIn" msgstr "" -#: py/runtime.c:883 py/runtime.c:947 -#, c-format -msgid "need more than %d values to unpack" +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 +msgid "No free GCLKs" msgstr "" -#: py/runtime.c:890 -#, c-format -msgid "too many values to unpack (expected %d)" +#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 +#: ports/esp8266/common-hal/microcontroller/__init__.c:64 +msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: py/runtime.c:984 -msgid "argument has wrong type" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:70 +msgid "DAC already in use" msgstr "" -#: py/runtime.c:986 -msgid "argument should be a '%q' not a '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:74 +msgid "Right channel unsupported" msgstr "" -#: py/runtime.c:1123 py/runtime.c:1197 -msgid "no such attribute" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:85 +msgid "Invalid pin for left channel" msgstr "" -#: py/runtime.c:1128 -msgid "type object '%q' has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:89 +msgid "Invalid pin for right channel" msgstr "" -#: py/runtime.c:1132 py/runtime.c:1200 -msgid "'%s' object has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:92 +msgid "Cannot output both channels on the same pin" msgstr "" -#: py/runtime.c:1238 -msgid "object not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:216 +msgid "All event channels in use" msgstr "" -#: py/runtime.c:1241 -#, c-format -msgid "'%s' object is not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:327 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 +msgid "No DMA channel found" msgstr "" -#: py/runtime.c:1260 py/runtime.c:1296 -msgid "object not an iterator" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:329 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 +msgid "Unable to allocate buffers for signed conversion" msgstr "" -#: py/runtime.c:1262 py/runtime.c:1298 -#, c-format -msgid "'%s' object is not an iterator" +#: ports/atmel-samd/common-hal/storage/__init__.c:48 +msgid "Cannot remount '/' when USB is active." msgstr "" -#: py/runtime.c:1401 -msgid "exceptions must derive from BaseException" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 +msgid "Both pins must support hardware interrupts" msgstr "" -#: py/runtime.c:1430 -msgid "cannot import name %q" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 +msgid "A hardware interrupt channel is already in use" msgstr "" -#: py/runtime.c:1535 -msgid "memory allocation failed, heap is locked" +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 +#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 +msgid "Cannot get pull while in output mode" msgstr "" -#: py/runtime.c:1539 -#, c-format -msgid "memory allocation failed, allocating %u bytes" +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 +#: ports/nrf/common-hal/analogio/AnalogIn.c:39 +msgid "Pin does not have ADC capabilities" msgstr "" -#: py/runtime.c:1609 -msgid "maximum recursion depth exceeded" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 +msgid "No DAC on chip" msgstr "" -#: py/sequence.c:264 -msgid "object not in sequence" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 +msgid "AnalogOut not supported on given pin" msgstr "" -#: py/stream.c:96 -msgid "stream operation not supported" +#: ports/atmel-samd/common-hal/rtc/RTC.c:101 +msgid "calibration value out of range +/-127" msgstr "" -#: py/vm.c:255 -msgid "local variable referenced before assignment" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 +msgid "Invalid clock pin" msgstr "" -#: py/vm.c:1142 -msgid "no active exception to reraise" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 +msgid "Invalid data pin" msgstr "" -#: py/vm.c:1284 -msgid "byte code not implemented" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 +msgid "Only 8 or 16 bit mono with " msgstr "" -#: shared-bindings/_stage/Layer.c:71 -msgid "graphic must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 +msgid "Serializer in use" msgstr "" -#: shared-bindings/_stage/Layer.c:77 shared-bindings/_stage/Text.c:75 -msgid "palette must be 32 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 +msgid "sampling rate out of range" msgstr "" -#: shared-bindings/_stage/Layer.c:84 -msgid "map buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 +msgid "Unable to find free GCLK" msgstr "" -#: shared-bindings/_stage/Text.c:69 -msgid "font must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 +msgid "Invalid bit clock pin" msgstr "" -#: shared-bindings/_stage/Text.c:81 -msgid "chars buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 +msgid "Bit clock and word select must share a clock unit" msgstr "" -#: shared-bindings/analogio/AnalogOut.c:118 -msgid "AnalogOut is only 16 bits. Value must be less than 65536." +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 +msgid "Clock unit in use" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c:225 -#: shared-bindings/audioio/AudioOut.c:223 -msgid "Not playing" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 +msgid "Too many channels in sample." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:124 -msgid "Bit depth must be multiple of 8." +#: ports/atmel-samd/board_busses.c:39 +msgid "No default I2C bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:128 -msgid "Oversample must be multiple of 8." +#: ports/atmel-samd/board_busses.c:64 +msgid "No default SPI bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:136 -msgid "Microphone startup delay must be in range 0.0 to 1.0" +#: ports/atmel-samd/board_busses.c:91 +msgid "No default UART bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:193 -msgid "destination_length must be an int >= 0" +#: ports/atmel-samd/bindings/samd/Clock.c:135 +msgid "calibration is read only" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:199 -msgid "Cannot record to a file" +#: ports/atmel-samd/bindings/samd/Clock.c:137 +msgid "calibration is out of range" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:202 -msgid "Destination capacity is smaller than destination_length." +#: ports/nrf/drivers/bluetooth/ble_drv.c:199 +msgid "Cannot apply GAP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:206 -msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +#: ports/nrf/drivers/bluetooth/ble_drv.c:213 +msgid "Cannot set PPCP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:208 -msgid "" -"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +#: ports/nrf/drivers/bluetooth/ble_drv.c:245 +msgid "Can not query for the device address." msgstr "" -#: shared-bindings/audioio/RawSample.c:98 -msgid "" -"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " -"'B'" +#: ports/nrf/drivers/bluetooth/ble_drv.c:264 +msgid "Can not add Vendor Specific 128-bit UUID." msgstr "" -#: shared-bindings/audioio/RawSample.c:104 -msgid "buffer must be a bytes-like object" +#: ports/nrf/drivers/bluetooth/ble_drv.c:284 +#: ports/nrf/drivers/bluetooth/ble_drv.c:298 +msgid "Can not add Service." msgstr "" -#: shared-bindings/audioio/WaveFile.c:78 -msgid "file must be a file opened in byte mode" +#: ports/nrf/drivers/bluetooth/ble_drv.c:373 +msgid "Can not add Characteristic." msgstr "" -#: shared-bindings/bitbangio/I2C.c:111 shared-bindings/bitbangio/SPI.c:121 -#: shared-bindings/busio/SPI.c:133 -msgid "Function requires lock" +#: ports/nrf/drivers/bluetooth/ble_drv.c:400 +msgid "Can not apply device name in the stack." msgstr "" -#: shared-bindings/bitbangio/I2C.c:195 shared-bindings/busio/I2C.c:210 -msgid "Buffer must be at least length 1" +#: ports/nrf/drivers/bluetooth/ble_drv.c:464 +#: ports/nrf/drivers/bluetooth/ble_drv.c:514 +msgid "Can not encode UUID, to check length." msgstr "" -#: shared-bindings/bitbangio/SPI.c:151 shared-bindings/busio/SPI.c:168 -msgid "Invalid polarity" +#: ports/nrf/drivers/bluetooth/ble_drv.c:470 +#: ports/nrf/drivers/bluetooth/ble_drv.c:520 +msgid "Can encode UUID into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:155 shared-bindings/busio/SPI.c:172 -msgid "Invalid phase" +#: ports/nrf/drivers/bluetooth/ble_drv.c:545 +msgid "Can not fit data into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:159 shared-bindings/busio/SPI.c:176 -msgid "Invalid number of bits" +#: ports/nrf/drivers/bluetooth/ble_drv.c:558 +#: ports/nrf/drivers/bluetooth/ble_drv.c:604 +#, c-format +msgid "Can not apply advertisment data. status: 0x%02x" msgstr "" -#: shared-bindings/bitbangio/SPI.c:284 shared-bindings/busio/SPI.c:341 -msgid "buffer slices must be of equal length" +#: ports/nrf/drivers/bluetooth/ble_drv.c:614 +#, c-format +msgid "Can not start advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/I2C.c:120 -msgid "Function requires lock." +#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#, c-format +msgid "Can not stop advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:98 -msgid "bits must be 7, 8 or 9" +#: ports/nrf/drivers/bluetooth/ble_drv.c:650 +#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#, c-format +msgid "Can not read attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:110 -msgid "stop must be 1 or 2" +#: ports/nrf/drivers/bluetooth/ble_drv.c:667 +#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#, c-format +msgid "Can not write attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:211 -msgid "Invalid direction." +#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#, c-format +msgid "Can not notify attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:240 -msgid "Cannot set value when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#, c-format +msgid "Can not start scanning. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:266 -#: shared-bindings/digitalio/DigitalInOut.c:281 -msgid "Drive mode not used when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#, c-format +msgid "Can not connect. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:314 -#: shared-bindings/digitalio/DigitalInOut.c:331 -msgid "Pull not used when direction is output." +#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 +#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 +#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 +#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:88 +msgid "busio.UART not yet implemented" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:340 -msgid "Unsupported pull value." +#: ports/nrf/common-hal/pulseio/FrequencyIn.c:32 +#: ports/esp8266/common-hal/pulseio/FrequencyIn.c:33 +msgid "No hardware support for FrequencyIn." msgstr "" -#: shared-bindings/gamepad/GamePad.c:100 -msgid "too many arguments" +#: ports/nrf/common-hal/microcontroller/Processor.c:49 +#, c-format +msgid "Can not get temperature. status: 0x%02x" msgstr "" -#: shared-bindings/gamepad/GamePad.c:104 -msgid "expected a DigitalInOut" +#: ports/nrf/common-hal/analogio/AnalogOut.c:37 +msgid "AnalogOut functionality not supported" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:98 -msgid "can't convert address to int" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 +msgid "Invalid Service type" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:101 -msgid "address out of bounds" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 +#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 +#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 +msgid "Invalid UUID parameter" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:107 -msgid "addresses is empty" +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 +msgid "Invalid UUID string length" msgstr "" -#: shared-bindings/microcontroller/Pin.c:89 -#: shared-bindings/neopixel_write/__init__.c:67 -#: shared-bindings/pulseio/PulseOut.c:75 -msgid "Expected a %q" +#: ports/esp8266/modmachine.c:63 +msgid "frequency can only be either 80Mhz or 160MHz" msgstr "" -#: shared-bindings/microcontroller/Pin.c:100 -msgid "%q in use" +#: ports/esp8266/esp_mphal.c:154 +msgid "C-level assert" msgstr "" -#: shared-bindings/microcontroller/__init__.c:126 -msgid "Invalid run mode." +#: ports/esp8266/modnetwork.c:61 +msgid "STA required" msgstr "" -#: shared-bindings/multiterminal/__init__.c:68 -msgid "Stream missing readinto() or write() method." +#: ports/esp8266/modnetwork.c:61 +msgid "AP required" msgstr "" -#: shared-bindings/nvm/ByteArray.c:99 -msgid "Slice and value different lengths." +#: ports/esp8266/modnetwork.c:87 +msgid "Cannot update i/f status" msgstr "" -#: shared-bindings/nvm/ByteArray.c:104 -msgid "Array values should be single bytes." +#: ports/esp8266/modnetwork.c:142 +msgid "Cannot set STA config" msgstr "" -#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 -msgid "Unable to write to nvm." +#: ports/esp8266/modnetwork.c:144 +msgid "Cannot connect to AP" msgstr "" -#: shared-bindings/nvm/ByteArray.c:137 -msgid "Bytes must be between 0 and 255." +#: ports/esp8266/modnetwork.c:152 +msgid "Cannot disconnect from AP" msgstr "" -#: shared-bindings/os/__init__.c:200 -msgid "No hardware random available" +#: ports/esp8266/modnetwork.c:173 +msgid "unknown status param" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:164 -msgid "" -"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +#: ports/esp8266/modnetwork.c:222 +msgid "STA must be active" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:195 -msgid "" -"PWM frequency not writeable when variable_frequency is False on construction." +#: ports/esp8266/modnetwork.c:239 +msgid "scan failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:275 -msgid "Cannot delete values" +#: ports/esp8266/modnetwork.c:306 +msgid "wifi_set_ip_info() failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:281 -msgid "Slices not supported" +#: ports/esp8266/modnetwork.c:319 +msgid "either pos or kw args are allowed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:287 -msgid "index must be int" +#: ports/esp8266/modnetwork.c:329 +msgid "can't get STA config" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:293 -msgid "Read-only" +#: ports/esp8266/modnetwork.c:331 +msgid "can't get AP config" msgstr "" -#: shared-bindings/pulseio/PulseOut.c:134 -msgid "Array must contain halfwords (type 'H')" +#: ports/esp8266/modnetwork.c:346 +msgid "invalid buffer length" msgstr "" -#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 -msgid "stop not reachable from start" +#: ports/esp8266/modnetwork.c:405 +msgid "can't set STA config" msgstr "" -#: shared-bindings/random/__init__.c:111 -msgid "step must be non-zero" +#: ports/esp8266/modnetwork.c:407 +msgid "can't set AP config" msgstr "" -#: shared-bindings/random/__init__.c:114 -msgid "invalid step" +#: ports/esp8266/modnetwork.c:416 +msgid "can query only one param" msgstr "" -#: shared-bindings/random/__init__.c:146 -msgid "empty sequence" +#: ports/esp8266/modnetwork.c:469 +msgid "unknown config param" msgstr "" -#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 -#: shared-bindings/time/__init__.c:192 -msgid "RTC is not supported on this board" +#: ports/esp8266/modesp.c:119 +msgid "len must be multiple of 4" msgstr "" -#: shared-bindings/rtc/RTC.c:52 -msgid "RTC calibration is not supported on this board" +#: ports/esp8266/modesp.c:274 +#, c-format +msgid "memory allocation failed, allocating %u bytes for native code" msgstr "" -#: shared-bindings/storage/__init__.c:77 -msgid "filesystem must provide mount method" +#: ports/esp8266/modesp.c:317 +msgid "flash location must be below 1MByte" msgstr "" -#: shared-bindings/supervisor/__init__.c:93 -msgid "Brightness must be between 0 and 255" +#: ports/esp8266/common-hal/busio/UART.c:45 +msgid "Only tx supported on UART1 (GPIO2)." msgstr "" -#: shared-bindings/supervisor/__init__.c:119 -msgid "Stack size must be at least 256" +#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 +msgid "invalid data bits" msgstr "" -#: shared-bindings/time/__init__.c:80 -msgid "sleep length must be non-negative" +#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 +msgid "invalid stop bits" msgstr "" -#: shared-bindings/time/__init__.c:90 -msgid "time.struct_time() takes exactly 1 argument" +#: ports/esp8266/common-hal/busio/SPI.c:72 +msgid "Pins not valid for SPI" msgstr "" -#: shared-bindings/time/__init__.c:93 -msgid "time.struct_time() takes a 9-sequence" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 +#, c-format +msgid "Maximum PWM frequency is %dhz." msgstr "" -#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 -msgid "Tuple or struct_time argument required" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 +msgid "Minimum PWM frequency is 1hz." msgstr "" -#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 -msgid "function takes exactly 9 arguments" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 +#, c-format +msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgstr "" -#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 -msgid "timestamp out of range for platform time_t" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#, c-format +msgid "PWM not supported on pin %d" msgstr "" -#: shared-bindings/touchio/TouchIn.c:173 -msgid "threshold must be in the range 0-65536" +#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 +msgid "No PulseIn support for %q" msgstr "" -#: shared-bindings/util.c:38 -msgid "" -"Object has been deinitialized and can no longer be used. Create a new object." +#: ports/esp8266/common-hal/microcontroller/__init__.c:66 +msgid "ESP8226 does not support safe mode." msgstr "" -#: shared-module/audioio/WaveFile.c:61 -msgid "Invalid wave file" +#: ports/esp8266/common-hal/storage/__init__.c:34 +msgid "Unable to remount filesystem" msgstr "" -#: shared-module/audioio/WaveFile.c:69 -msgid "Invalid format chunk size" +#: ports/esp8266/common-hal/storage/__init__.c:38 +msgid "Use esptool to erase flash and re-upload Python instead" msgstr "" -#: shared-module/audioio/WaveFile.c:83 -msgid "Unsupported format" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 +msgid "ESP8266 does not support pull down." msgstr "" -#: shared-module/audioio/WaveFile.c:99 -msgid "Data chunk must follow fmt chunk" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 +msgid "GPIO16 does not support pull up." msgstr "" -#: shared-module/audioio/WaveFile.c:107 -msgid "Invalid file" +#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 +msgid "Pin %q does not have ADC capabilities" msgstr "" -#: shared-module/audioio/WaveFile.c:117 -msgid "Couldn't allocate first buffer" +#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 +msgid "No hardware support for analog out." msgstr "" -#: shared-module/audioio/WaveFile.c:123 -msgid "Couldn't allocate second buffer" +#: ports/esp8266/machine_adc.c:57 +#, c-format +msgid "not a valid ADC Channel: %d" msgstr "" -#: shared-module/bitbangio/I2C.c:58 -msgid "Clock stretch too long" +#: ports/esp8266/machine_rtc.c:185 +msgid "buffer too long" msgstr "" -#: shared-module/bitbangio/SPI.c:45 -msgid "Clock pin init failed." +#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 +#: ports/esp8266/machine_rtc.c:246 +msgid "invalid alarm" msgstr "" -#: shared-module/bitbangio/SPI.c:51 -msgid "MOSI pin init failed." +#: ports/esp8266/machine_pin.c:129 +msgid "expecting a pin" msgstr "" -#: shared-module/bitbangio/SPI.c:62 -msgid "MISO pin init failed." +#: ports/esp8266/machine_pin.c:284 +msgid "Pin(16) doesn't support pull" msgstr "" -#: shared-module/bitbangio/SPI.c:122 -msgid "Cannot write without MOSI pin." +#: ports/esp8266/machine_pin.c:323 +msgid "invalid pin" msgstr "" -#: shared-module/bitbangio/SPI.c:177 -msgid "Cannot read without MISO pin." +#: ports/esp8266/machine_pin.c:389 +msgid "pin does not have IRQ capabilities" msgstr "" -#: shared-module/bitbangio/SPI.c:241 -msgid "Cannot transfer without MOSI and MISO pins." +#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 +msgid "impossible baudrate" msgstr "" -#: shared-module/struct/__init__.c:39 -msgid "'S' and 'O' are not supported format types" +#: ports/esp8266/machine_uart.c:169 +#, c-format +msgid "UART(%d) does not exist" msgstr "" -#: shared-module/struct/__init__.c:83 -msgid "too many arguments provided with the given format" +#: ports/esp8266/machine_uart.c:219 +msgid "UART(1) can't read" msgstr "" diff --git a/locale/es.po b/locale/es.po index 256278256c568..dd94380f41fb7 100644 --- a/locale/es.po +++ b/locale/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-20 09:37-0700\n" +"POT-Creation-Date: 2018-08-23 02:28+0000\n" "PO-Revision-Date: 2018-07-27 11:55-0700\n" "Last-Translator: \n" "Language-Team: \n" @@ -17,18 +17,64 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.1.1\n" -#: extmod/machine_i2c.c:299 -msgid "invalid I2C peripheral" +#: extmod/modutimeq.c:131 +msgid "queue overflow" msgstr "" -#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 -#: extmod/machine_i2c.c:392 -msgid "I2C operation not supported" +#: extmod/modutimeq.c:147 extmod/modutimeq.c:172 extmod/moduheapq.c:86 +msgid "empty heap" msgstr "" -#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 -#, c-format -msgid "address %08x is not aligned to %d bytes" +#: extmod/moductypes.c:122 +msgid "syntax error in uctypes descriptor" +msgstr "" + +#: extmod/moductypes.c:219 +msgid "Cannot unambiguously get sizeof scalar" +msgstr "" + +#: extmod/moductypes.c:397 +msgid "struct: no fields" +msgstr "" + +#: extmod/moductypes.c:530 +msgid "struct: cannot index" +msgstr "" + +#: extmod/moductypes.c:544 +msgid "struct: index out of range" +msgstr "" + +#: extmod/moduheapq.c:38 +msgid "heap must be a list" +msgstr "" + +#: extmod/modussl_axtls.c:81 +msgid "invalid key" +msgstr "" + +#: extmod/modussl_axtls.c:87 +msgid "invalid cert" +msgstr "" + +#: extmod/modujson.c:281 +msgid "syntax error in JSON" +msgstr "" + +#: extmod/vfs_fat.c:426 py/moduerrno.c:150 +msgid "Read-only filesystem" +msgstr "" + +#: extmod/moduzlib.c:97 +msgid "compression header" +msgstr "" + +#: extmod/modframebuf.c:299 +msgid "invalid format" +msgstr "" + +#: extmod/uos_dupterm.c:120 +msgid "invalid dupterm index" msgstr "" #: extmod/machine_spi.c:57 @@ -51,10 +97,6 @@ msgstr "" msgid "must specify all of sck/mosi/miso" msgstr "" -#: extmod/modframebuf.c:299 -msgid "invalid format" -msgstr "" - #: extmod/modubinascii.c:38 extmod/moduhashlib.c:102 msgid "a bytes-like object is required" msgstr "" @@ -71,849 +113,937 @@ msgstr "" msgid "incorrect padding" msgstr "" -#: extmod/moductypes.c:122 -msgid "syntax error in uctypes descriptor" -msgstr "" - -#: extmod/moductypes.c:219 -msgid "Cannot unambiguously get sizeof scalar" +#: extmod/machine_i2c.c:299 +msgid "invalid I2C peripheral" msgstr "" -#: extmod/moductypes.c:397 -msgid "struct: no fields" +#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 +#: extmod/machine_i2c.c:392 +msgid "I2C operation not supported" msgstr "" -#: extmod/moductypes.c:530 -msgid "struct: cannot index" +#: extmod/vfs_posix_file.c:48 py/objstringio.c:43 ports/unix/file.c:50 +msgid "I/O operation on closed file" msgstr "" -#: extmod/moductypes.c:544 -msgid "struct: index out of range" +#: extmod/modure.c:161 +msgid "Splitting with sub-captures" msgstr "" -#: extmod/moduheapq.c:38 -msgid "heap must be a list" +#: extmod/modure.c:207 +msgid "Error in regex" msgstr "" -#: extmod/moduheapq.c:86 extmod/modutimeq.c:147 extmod/modutimeq.c:172 -msgid "empty heap" +#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 +#, c-format +msgid "address %08x is not aligned to %d bytes" msgstr "" -#: extmod/modujson.c:281 -msgid "syntax error in JSON" +#: py/vm.c:255 +msgid "local variable referenced before assignment" msgstr "" -#: extmod/modure.c:161 -msgid "Splitting with sub-captures" +#: py/vm.c:1142 +msgid "no active exception to reraise" msgstr "" -#: extmod/modure.c:207 -msgid "Error in regex" +#: py/vm.c:1284 +msgid "byte code not implemented" msgstr "" -#: extmod/modussl_axtls.c:81 -msgid "invalid key" +#: py/builtinimport.c:253 lib/utils/pyexec.c:97 +msgid "script compilation not supported" msgstr "" -#: extmod/modussl_axtls.c:87 -msgid "invalid cert" +#: py/builtinimport.c:338 +msgid "cannot perform relative import" msgstr "" -#: extmod/modutimeq.c:131 -msgid "queue overflow" +#: py/builtinimport.c:422 py/builtinimport.c:534 +msgid "module not found" msgstr "" -#: extmod/moduzlib.c:97 -msgid "compression header" +#: py/builtinimport.c:425 py/builtinimport.c:537 +msgid "no module named '%q'" msgstr "" -#: extmod/uos_dupterm.c:120 -msgid "invalid dupterm index" +#: py/builtinimport.c:512 +msgid "relative import" msgstr "" -#: extmod/vfs_fat.c:426 py/moduerrno.c:150 -msgid "Read-only filesystem" +#: py/moduerrno.c:143 py/moduerrno.c:146 +msgid "Permission denied" msgstr "" -#: extmod/vfs_posix_file.c:48 ports/unix/file.c:50 py/objstringio.c:43 -msgid "I/O operation on closed file" +#: py/moduerrno.c:144 +msgid "No such file/directory" msgstr "" -#: lib/embed/abort_.c:8 -msgid "abort() called" +#: py/moduerrno.c:145 +msgid "Input/output error" msgstr "" -#: lib/netutils/netutils.c:83 -msgid "invalid arguments" +#: py/moduerrno.c:147 +msgid "File exists" msgstr "" -#: lib/utils/pyexec.c:97 py/builtinimport.c:253 -msgid "script compilation not supported" +#: py/moduerrno.c:148 +msgid "Unsupported operation" msgstr "" -#: main.c:143 -msgid " output:\n" +#: py/moduerrno.c:149 +msgid "Invalid argument" msgstr "" -#: main.c:157 main.c:230 +#: py/persistentcode.c:223 msgid "" -"Auto-reload is on. Simply save files over USB to run them or enter REPL to " -"disable.\n" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." msgstr "" -#: main.c:159 -msgid "Running in safe mode! Auto-reload is off.\n" +#: py/persistentcode.c:326 +msgid "can only save bytecode" msgstr "" -#: main.c:161 main.c:232 -msgid "Auto-reload is off.\n" +#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 +#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 +#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 +msgid "buffer too small" msgstr "" -#: main.c:175 -msgid "Running in safe mode! Not running saved code.\n" +#: py/objlist.c:273 +msgid "pop from empty list" msgstr "" -#: main.c:191 -msgid "WARNING: Your code filename has two extensions\n" +#: py/objrange.c:110 +msgid "zero step" msgstr "" -#: main.c:239 -msgid "You requested starting safe mode by " +#: py/objgenerator.c:108 +msgid "can't send non-None value to a just-started generator" msgstr "" -#: main.c:242 -msgid "To exit, please reset the board without " +#: py/objgenerator.c:126 +msgid "generator already executing" msgstr "" -#: main.c:249 -msgid "" -"You are running in safe mode which means something really bad happened.\n" +#: py/objgenerator.c:229 +msgid "generator ignored GeneratorExit" msgstr "" -#: main.c:251 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +#: py/objgenerator.c:251 +msgid "can't pend throw to just-started generator" msgstr "" -#: main.c:252 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" +#: py/parse.c:726 +msgid "constant must be an integer" msgstr "" -#: main.c:255 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" +#: py/parse.c:868 +msgid "Unable to init parser" msgstr "" -#: main.c:256 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" +#: py/parse.c:1170 +msgid "unexpected indent" msgstr "" -#: main.c:260 -msgid "Press any key to enter the REPL. Use CTRL-D to reload." +#: py/parse.c:1173 +msgid "unindent does not match any outer indentation level" msgstr "" -#: main.c:415 -msgid "soft reboot\n" +#: py/parse.c:1176 py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 +#: py/compile.c:2742 +msgid "invalid syntax" msgstr "" -#: ports/atmel-samd/audio_dma.c:285 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 -msgid "All sync event channels in use" +#: py/obj.c:90 +msgid "Traceback (most recent call last):\n" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:135 -msgid "calibration is read only" +#: py/obj.c:94 +msgid " File \"%q\", line %d" msgstr "" -#: ports/atmel-samd/bindings/samd/Clock.c:137 -msgid "calibration is out of range" +#: py/obj.c:96 +msgid " File \"%q\"" msgstr "" -#: ports/atmel-samd/board_busses.c:39 -msgid "No default I2C bus" +#: py/obj.c:100 +msgid ", in %q\n" msgstr "" -#: ports/atmel-samd/board_busses.c:64 -msgid "No default SPI bus" +#: py/obj.c:257 +msgid "can't convert to int" msgstr "" -#: ports/atmel-samd/board_busses.c:91 -msgid "No default UART bus" +#: py/obj.c:260 +#, c-format +msgid "can't convert %s to int" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 -#: ports/nrf/common-hal/analogio/AnalogIn.c:39 -msgid "Pin does not have ADC capabilities" +#: py/obj.c:320 +msgid "can't convert to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 -msgid "No DAC on chip" +#: py/obj.c:323 +#, c-format +msgid "can't convert %s to float" msgstr "" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 -msgid "AnalogOut not supported on given pin" +#: py/obj.c:353 +msgid "can't convert to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 -msgid "Invalid bit clock pin" +#: py/obj.c:356 +#, c-format +msgid "can't convert %s to complex" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 -msgid "Bit clock and word select must share a clock unit" +#: py/obj.c:371 +msgid "expected tuple/list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 -msgid "Invalid data pin" +#: py/obj.c:374 +#, c-format +msgid "object '%s' is not a tuple or list" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 -msgid "Serializer in use" +#: py/obj.c:385 +msgid "tuple/list has wrong length" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 -msgid "Clock unit in use" +#: py/obj.c:387 +#, c-format +msgid "requested length %d but object has length %d" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 -msgid "Unable to find free GCLK" +#: py/obj.c:400 +msgid "indices must be integers" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 -msgid "Too many channels in sample." +#: py/obj.c:403 +msgid "%q indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:326 -msgid "No DMA channel found" +#: py/obj.c:420 ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 +msgid "index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:328 -msgid "Unable to allocate buffers for signed conversion" +#: py/obj.c:423 +msgid "%q index out of range" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 -msgid "Invalid clock pin" +#: py/obj.c:455 +msgid "object has no len" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 -msgid "Only 8 or 16 bit mono with " +#: py/obj.c:458 +#, c-format +msgid "object of type '%s' has no len()" msgstr "" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 -msgid "sampling rate out of range" +#: py/obj.c:496 +msgid "object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:69 -msgid "DAC already in use" +#: py/obj.c:499 +#, c-format +msgid "'%s' object does not support item deletion" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:73 -msgid "Right channel unsupported" +#: py/obj.c:503 +msgid "object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:76 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:116 -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 -msgid "Invalid pin" +#: py/obj.c:506 +#, c-format +msgid "'%s' object is not subscriptable" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:84 -msgid "Invalid pin for left channel" +#: py/obj.c:510 +msgid "object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:88 -msgid "Invalid pin for right channel" +#: py/obj.c:513 +#, c-format +msgid "'%s' object does not support item assignment" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:91 -msgid "Cannot output both channels on the same pin" +#: py/obj.c:544 +msgid "object with buffer protocol required" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:173 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:186 -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:110 -msgid "All timers in use" +#: py/objslice.c:66 +msgid "Length must be an int" msgstr "" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:215 -msgid "All event channels in use" +#: py/objslice.c:71 +msgid "Length must be non-negative" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:71 -msgid "Not enough pins available" +#: py/objslice.c:86 py/sequence.c:57 +msgid "slice step cannot be zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:78 -#: ports/atmel-samd/common-hal/busio/SPI.c:132 -#: ports/atmel-samd/common-hal/busio/UART.c:119 -#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 -#: ports/nrf/common-hal/busio/I2C.c:58 -msgid "Invalid pins" +#: py/objslice.c:159 +msgid "Cannot subclass slice" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:101 -msgid "SDA or SCL needs a pull up" +#: py/objdeque.c:107 +msgid "full" msgstr "" -#: ports/atmel-samd/common-hal/busio/I2C.c:121 -msgid "Unsupported baudrate" +#: py/objdeque.c:127 +msgid "empty" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:66 -msgid "bytes > 8 bits not supported" +#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 +msgid "negative power with no float support" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:72 -msgid "tx and rx cannot both be None" +#: py/objint_longlong.c:222 py/objfloat.c:270 py/modmath.c:196 +#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 +msgid "division by zero" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:139 -msgid "Failed to allocate RX buffer" +#: py/objint_longlong.c:251 +msgid "ulonglong too large" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:147 -msgid "Could not initialize UART" +#: py/objstrunicode.c:134 +#, c-format +msgid "string indices must be integers, not %s" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:234 -msgid "No RX pin" +#: py/objstrunicode.c:145 py/objstrunicode.c:164 +msgid "string index out of range" msgstr "" -#: ports/atmel-samd/common-hal/busio/UART.c:284 -msgid "No TX pin" +#: py/objstrunicode.c:191 py/objtuple.c:187 py/objstr.c:427 py/objarray.c:413 +#: shared-bindings/nvm/ByteArray.c:85 +msgid "only slices with step=1 (aka None) are supported" msgstr "" -#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 -#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 -msgid "Cannot get pull while in output mode" +#: py/argcheck.c:44 +msgid "function does not take keyword arguments" msgstr "" -#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 -#: ports/esp8266/common-hal/microcontroller/__init__.c:64 -msgid "Cannot reset into bootloader because no bootloader is present." +#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 +#, c-format +msgid "function takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:120 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:366 -#: ports/nrf/common-hal/pulseio/PWMOut.c:227 -msgid "Invalid PWM frequency" +#: py/argcheck.c:64 +#, c-format +msgid "function missing %d required positional arguments" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:184 -msgid "All timers for this pin are in use" +#: py/argcheck.c:72 +#, c-format +msgid "function expected at most %d arguments, got %d" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 -msgid "No hardware support on pin" +#: py/argcheck.c:97 +msgid "'%q' argument required" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 -msgid "EXTINT channel already in use" +#: py/argcheck.c:122 +msgid "extra positional arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 -#, c-format -msgid "Failed to allocate RX buffer of %d bytes" +#: py/argcheck.c:130 +msgid "extra keyword arguments given" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 -msgid "pop from an empty PulseIn" +#: py/argcheck.c:142 +msgid "argument num/types mismatch" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 -msgid "index out of range" +#: py/argcheck.c:147 +msgid "keyword argument(s) not yet implemented - use normal args instead" msgstr "" -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:178 -msgid "Another send is already active" +#: py/objfloat.c:308 py/parsenum.c:331 +msgid "complex values not supported" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 -msgid "Both pins must support hardware interrupts" +#: py/bc.c:88 py/objnamedtuple.c:108 +msgid "%q() takes %d positional arguments but %d were given" msgstr "" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 -msgid "A hardware interrupt channel is already in use" +#: py/bc.c:197 py/bc.c:215 +msgid "unexpected keyword argument" msgstr "" -#: ports/atmel-samd/common-hal/rtc/RTC.c:101 -msgid "calibration value out of range +/-127" +#: py/bc.c:199 +msgid "keywords must be strings" msgstr "" -#: ports/atmel-samd/common-hal/storage/__init__.c:48 -msgid "Cannot remount '/' when USB is active." +#: py/bc.c:206 py/objnamedtuple.c:138 +msgid "function got multiple values for argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 -msgid "No free GCLKs" +#: py/bc.c:218 py/objnamedtuple.c:130 +msgid "unexpected keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 -#: ports/nrf/common-hal/usb_hid/Device.c:45 +#: py/bc.c:244 #, c-format -msgid "Buffer incorrect size. Should be %d bytes." +msgid "function missing required positional argument #%d" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:53 -msgid "USB Busy" +#: py/bc.c:260 +msgid "function missing required keyword argument '%q'" msgstr "" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:59 -msgid "USB Error" +#: py/bc.c:269 +msgid "function missing keyword-only argument" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 -msgid "Pin %q does not have ADC capabilities" +#: py/emitinlinextensa.c:86 +msgid "can only have up to 4 parameters to Xtensa assembly" msgstr "" -#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 -msgid "No hardware support for analog out." +#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 +msgid "parameters must be registers in sequence a2 to a5" msgstr "" -#: ports/esp8266/common-hal/busio/SPI.c:72 -msgid "Pins not valid for SPI" +#: py/emitinlinextensa.c:162 +#, c-format +msgid "'%s' expects a register" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:45 -msgid "Only tx supported on UART1 (GPIO2)." +#: py/emitinlinextensa.c:169 +#, c-format +msgid "'%s' expects an integer" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 -msgid "invalid data bits" +#: py/emitinlinextensa.c:174 +#, c-format +msgid "'%s' integer %d is not within range %d..%d" msgstr "" -#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 -msgid "invalid stop bits" +#: py/emitinlinextensa.c:182 +#, c-format +msgid "'%s' expects a label" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 -msgid "ESP8266 does not support pull down." +#: py/emitinlinextensa.c:193 +msgid "label '%q' not defined" msgstr "" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 -msgid "GPIO16 does not support pull up." +#: py/emitinlinextensa.c:327 +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" msgstr "" -#: ports/esp8266/common-hal/microcontroller/__init__.c:66 -msgid "ESP8226 does not support safe mode." +#: py/modthread.c:240 +msgid "expecting a dict for keyword args" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 -#, c-format -msgid "Maximum PWM frequency is %dhz." +#: py/objset.c:371 +msgid "pop from an empty set" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 -msgid "Minimum PWM frequency is 1hz." +#: py/modbuiltins.c:162 +msgid "chr() arg not in range(0x110000)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#: py/modbuiltins.c:171 +msgid "chr() arg not in range(256)" msgstr "" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#: py/modbuiltins.c:285 +msgid "arg is an empty sequence" +msgstr "" + +#: py/modbuiltins.c:350 +msgid "ord expects a character" +msgstr "" + +#: py/modbuiltins.c:353 #, c-format -msgid "PWM not supported on pin %d" +msgid "ord() expected a character, but string of length %d found" msgstr "" -#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 -msgid "No PulseIn support for %q" +#: py/modbuiltins.c:363 +msgid "3-arg pow() not supported" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:34 -msgid "Unable to remount filesystem" +#: py/modbuiltins.c:517 +msgid "must use keyword argument for key function" msgstr "" -#: ports/esp8266/common-hal/storage/__init__.c:38 -msgid "Use esptool to erase flash and re-upload Python instead" +#: py/objobject.c:55 +msgid "__new__ arg must be a user-type" msgstr "" -#: ports/esp8266/esp_mphal.c:154 -msgid "C-level assert" +#: py/lexer.c:345 +msgid "unicode name escapes" msgstr "" -#: ports/esp8266/machine_adc.c:57 +#: py/modmath.c:41 shared-bindings/math/__init__.c:53 +msgid "math domain error" +msgstr "" + +#: py/objtype.c:358 +msgid "__init__() should return None" +msgstr "" + +#: py/objtype.c:360 #, c-format -msgid "not a valid ADC Channel: %d" +msgid "__init__() should return None, not '%s'" msgstr "" -#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 -msgid "impossible baudrate" +#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 +msgid "unreadable attribute" msgstr "" -#: ports/esp8266/machine_pin.c:129 -msgid "expecting a pin" +#: py/objtype.c:868 py/runtime.c:653 +msgid "object not callable" msgstr "" -#: ports/esp8266/machine_pin.c:284 -msgid "Pin(16) doesn't support pull" +#: py/objtype.c:870 py/runtime.c:655 +#, c-format +msgid "'%s' object is not callable" msgstr "" -#: ports/esp8266/machine_pin.c:323 -msgid "invalid pin" +#: py/objtype.c:978 +msgid "type takes 1 or 3 arguments" msgstr "" -#: ports/esp8266/machine_pin.c:389 -msgid "pin does not have IRQ capabilities" +#: py/objtype.c:989 +msgid "cannot create instance" msgstr "" -#: ports/esp8266/machine_rtc.c:185 -msgid "buffer too long" +#: py/objtype.c:991 +msgid "cannot create '%q' instances" msgstr "" -#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 -#: ports/esp8266/machine_rtc.c:246 -msgid "invalid alarm" +#: py/objtype.c:1047 +msgid "can't add special method to already-subclassed class" msgstr "" -#: ports/esp8266/machine_uart.c:169 -#, c-format -msgid "UART(%d) does not exist" +#: py/objtype.c:1091 py/objtype.c:1097 +msgid "type is not an acceptable base type" msgstr "" -#: ports/esp8266/machine_uart.c:219 -msgid "UART(1) can't read" +#: py/objtype.c:1100 +msgid "type '%q' is not an acceptable base type" msgstr "" -#: ports/esp8266/modesp.c:119 -msgid "len must be multiple of 4" +#: py/objtype.c:1137 +msgid "multiple inheritance not supported" msgstr "" -#: ports/esp8266/modesp.c:274 -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" +#: py/objtype.c:1164 +msgid "multiple bases have instance lay-out conflict" msgstr "" -#: ports/esp8266/modesp.c:317 -msgid "flash location must be below 1MByte" +#: py/objtype.c:1205 +msgid "first argument to super() must be type" msgstr "" -#: ports/esp8266/modmachine.c:63 -msgid "frequency can only be either 80Mhz or 160MHz" +#: py/objtype.c:1370 +msgid "issubclass() arg 2 must be a class or a tuple of classes" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "STA required" +#: py/objtype.c:1384 +msgid "issubclass() arg 1 must be a class" msgstr "" -#: ports/esp8266/modnetwork.c:61 -msgid "AP required" +#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 +msgid "negative shift count" msgstr "" -#: ports/esp8266/modnetwork.c:87 -msgid "Cannot update i/f status" +#: py/objint_mpz.c:336 +msgid "pow() with 3 arguments requires integers" msgstr "" -#: ports/esp8266/modnetwork.c:142 -msgid "Cannot set STA config" +#: py/objint_mpz.c:347 +msgid "pow() 3rd argument cannot be 0" msgstr "" -#: ports/esp8266/modnetwork.c:144 -msgid "Cannot connect to AP" +#: py/objint_mpz.c:415 +msgid "overflow converting long int to machine word" msgstr "" -#: ports/esp8266/modnetwork.c:152 -msgid "Cannot disconnect from AP" +#: py/objint.c:144 +msgid "can't convert inf to int" msgstr "" -#: ports/esp8266/modnetwork.c:173 -msgid "unknown status param" +#: py/objint.c:146 +msgid "can't convert NaN to int" msgstr "" -#: ports/esp8266/modnetwork.c:222 -msgid "STA must be active" +#: py/objint.c:163 +msgid "float too big" msgstr "" -#: ports/esp8266/modnetwork.c:239 -msgid "scan failed" +#: py/objint.c:328 +msgid "long int not supported in this build" msgstr "" -#: ports/esp8266/modnetwork.c:306 -msgid "wifi_set_ip_info() failed" +#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 +msgid "small int overflow" msgstr "" -#: ports/esp8266/modnetwork.c:319 -msgid "either pos or kw args are allowed" +#: py/builtinevex.c:99 +msgid "bad compile mode" msgstr "" -#: ports/esp8266/modnetwork.c:329 -msgid "can't get STA config" +#: py/emitnative.c:183 +msgid "unknown type '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:331 -msgid "can't get AP config" +#: py/emitnative.c:260 +msgid "Viper functions don't currently support more than 4 arguments" msgstr "" -#: ports/esp8266/modnetwork.c:346 -msgid "invalid buffer length" +#: py/emitnative.c:742 +msgid "conversion to object" msgstr "" -#: ports/esp8266/modnetwork.c:405 -msgid "can't set STA config" +#: py/emitnative.c:921 +msgid "local '%q' used before type known" msgstr "" -#: ports/esp8266/modnetwork.c:407 -msgid "can't set AP config" +#: py/emitnative.c:1118 py/emitnative.c:1156 +msgid "can't load from '%q'" msgstr "" -#: ports/esp8266/modnetwork.c:416 -msgid "can query only one param" +#: py/emitnative.c:1128 +msgid "can't load with '%q' index" msgstr "" -#: ports/esp8266/modnetwork.c:469 -msgid "unknown config param" +#: py/emitnative.c:1188 +msgid "local '%q' has type '%q' but source is '%q'" msgstr "" -#: ports/nrf/common-hal/analogio/AnalogOut.c:37 -msgid "AnalogOut functionality not supported" +#: py/emitnative.c:1289 py/emitnative.c:1379 +msgid "can't store '%q'" msgstr "" -#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 -#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 -#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 -#: ports/nrf/common-hal/busio/UART.c:88 -msgid "busio.UART not yet implemented" +#: py/emitnative.c:1358 py/emitnative.c:1419 +msgid "can't store to '%q'" msgstr "" -#: ports/nrf/common-hal/microcontroller/Processor.c:49 -#, c-format -msgid "Can not get temperature. status: 0x%02x" +#: py/emitnative.c:1369 +msgid "can't store with '%q' index" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:199 -msgid "Cannot apply GAP parameters." +#: py/emitnative.c:1540 +msgid "can't implicitly convert '%q' to 'bool'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:213 -msgid "Cannot set PPCP parameters." +#: py/emitnative.c:1774 +msgid "unary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:245 -msgid "Can not query for the device address." +#: py/emitnative.c:1930 +msgid "binary op %q not implemented" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:264 -msgid "Can not add Vendor Specific 128-bit UUID." +#: py/emitnative.c:1951 +msgid "can't do binary op between '%q' and '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:284 -#: ports/nrf/drivers/bluetooth/ble_drv.c:298 -msgid "Can not add Service." +#: py/emitnative.c:2126 +msgid "casting" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:373 -msgid "Can not add Characteristic." +#: py/emitnative.c:2173 +msgid "return expected '%q' but got '%q'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:400 -msgid "Can not apply device name in the stack." +#: py/emitnative.c:2191 +msgid "must raise an object" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:464 -#: ports/nrf/drivers/bluetooth/ble_drv.c:514 -msgid "Can not encode UUID, to check length." +#: py/emitnative.c:2201 +msgid "native yield" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:470 -#: ports/nrf/drivers/bluetooth/ble_drv.c:520 -msgid "Can encode UUID into the advertisment packet." +#: py/stream.c:96 +msgid "stream operation not supported" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:545 -msgid "Can not fit data into the advertisment packet." +#: py/binary.c:112 +msgid "bad typecode" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:558 -#: ports/nrf/drivers/bluetooth/ble_drv.c:604 -#, c-format -msgid "Can not apply advertisment data. status: 0x%02x" +#: py/objstr.c:261 +msgid "bytes value out of range" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:614 -#, c-format -msgid "Can not start advertisment. status: 0x%02x" +#: py/objstr.c:270 +msgid "wrong number of arguments" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#: py/objstr.c:467 +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "" + +#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 +msgid "empty separator" +msgstr "" + +#: py/objstr.c:641 +msgid "rsplit(None,n)" +msgstr "" + +#: py/objstr.c:713 +msgid "substring not found" +msgstr "" + +#: py/objstr.c:770 +msgid "start/end indices" +msgstr "" + +#: py/objstr.c:931 +msgid "bad format string" +msgstr "" + +#: py/objstr.c:953 +msgid "single '}' encountered in format string" +msgstr "" + +#: py/objstr.c:992 +msgid "bad conversion specifier" +msgstr "" + +#: py/objstr.c:996 +msgid "end of format while looking for conversion specifier" +msgstr "" + +#: py/objstr.c:998 #, c-format -msgid "Can not stop advertisment. status: 0x%02x" +msgid "unknown conversion specifier %c" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:650 -#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#: py/objstr.c:1029 +msgid "unmatched '{' in format" +msgstr "" + +#: py/objstr.c:1036 +msgid "expected ':' after format specifier" +msgstr "" + +#: py/objstr.c:1050 +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "" + +#: py/objstr.c:1055 py/objstr.c:1083 +msgid "tuple index out of range" +msgstr "" + +#: py/objstr.c:1071 +msgid "attributes not supported yet" +msgstr "" + +#: py/objstr.c:1079 +msgid "" +"can't switch from manual field specification to automatic field numbering" +msgstr "" + +#: py/objstr.c:1171 +msgid "invalid format specifier" +msgstr "" + +#: py/objstr.c:1192 +msgid "sign not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1200 +msgid "sign not allowed with integer format specifier 'c'" +msgstr "" + +#: py/objstr.c:1259 #, c-format -msgid "Can not read attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type '%s'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:667 -#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#: py/objstr.c:1331 #, c-format -msgid "Can not write attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'float'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#: py/objstr.c:1343 +msgid "'=' alignment not allowed in string format specifier" +msgstr "" + +#: py/objstr.c:1367 #, c-format -msgid "Can not notify attribute value. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'str'" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#: py/objstr.c:1415 +msgid "format requires a dict" +msgstr "" + +#: py/objstr.c:1424 +msgid "incomplete format key" +msgstr "" + +#: py/objstr.c:1482 +msgid "incomplete format" +msgstr "" + +#: py/objstr.c:1490 +msgid "not enough arguments for format string" +msgstr "" + +#: py/objstr.c:1500 #, c-format -msgid "Can not start scanning. status: 0x%02x" +msgid "%%c requires int or char" msgstr "" -#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#: py/objstr.c:1507 +msgid "integer required" +msgstr "" + +#: py/objstr.c:1570 #, c-format -msgid "Can not connect. status: 0x%02x" +msgid "unsupported format character '%c' (0x%x) at index %d" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 -msgid "Invalid UUID parameter" +#: py/objstr.c:1577 +msgid "not all arguments converted during string formatting" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 -msgid "Invalid Service type" +#: py/objstr.c:2102 +msgid "can't convert to str implicitly" msgstr "" -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 -msgid "Invalid UUID string length" +#: py/objstr.c:2106 +msgid "can't convert '%q' object to %q implicitly" msgstr "" -#: ports/unix/modffi.c:138 -msgid "Unknown type" +#: py/objcomplex.c:203 +msgid "can't do truncated division of a complex number" msgstr "" -#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 -msgid "Error in ffi_prep_cif" +#: py/objcomplex.c:209 +msgid "complex division by zero" msgstr "" -#: ports/unix/modffi.c:270 -msgid "ffi_prep_closure_loc" +#: py/objcomplex.c:237 +msgid "0.0 to a complex power" msgstr "" -#: ports/unix/modffi.c:413 -msgid "Don't know how to pass object to native function" +#: py/modmicropython.c:155 +msgid "schedule stack full" msgstr "" -#: ports/unix/modusocket.c:474 -#, c-format -msgid "[addrinfo error %d]" +#: py/objdict.c:314 +msgid "popitem(): dictionary is empty" msgstr "" -#: py/argcheck.c:44 -msgid "function does not take keyword arguments" +#: py/objdict.c:357 +msgid "dict update sequence has wrong length" msgstr "" -#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 -#, c-format -msgid "function takes %d positional arguments but %d were given" +#: py/runtime.c:206 +msgid "name not defined" msgstr "" -#: py/argcheck.c:64 -#, c-format -msgid "function missing %d required positional arguments" +#: py/runtime.c:209 +msgid "name '%q' is not defined" msgstr "" -#: py/argcheck.c:72 -#, c-format -msgid "function expected at most %d arguments, got %d" +#: py/runtime.c:304 py/runtime.c:611 +msgid "unsupported type for operator" msgstr "" -#: py/argcheck.c:97 -msgid "'%q' argument required" +#: py/runtime.c:307 +msgid "unsupported type for %q: '%s'" msgstr "" -#: py/argcheck.c:122 -msgid "extra positional arguments given" +#: py/runtime.c:614 +msgid "unsupported types for %q: '%s', '%s'" msgstr "" -#: py/argcheck.c:130 -msgid "extra keyword arguments given" +#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 +msgid "wrong number of values to unpack" msgstr "" -#: py/argcheck.c:142 -msgid "argument num/types mismatch" +#: py/runtime.c:883 py/runtime.c:947 +#, c-format +msgid "need more than %d values to unpack" msgstr "" -#: py/argcheck.c:147 -msgid "keyword argument(s) not yet implemented - use normal args instead" +#: py/runtime.c:890 +#, c-format +msgid "too many values to unpack (expected %d)" msgstr "" -#: py/bc.c:88 py/objnamedtuple.c:108 -msgid "%q() takes %d positional arguments but %d were given" +#: py/runtime.c:984 +msgid "argument has wrong type" msgstr "" -#: py/bc.c:197 py/bc.c:215 -msgid "unexpected keyword argument" +#: py/runtime.c:986 +msgid "argument should be a '%q' not a '%q'" +msgstr "" + +#: py/runtime.c:1123 py/runtime.c:1197 +msgid "no such attribute" +msgstr "" + +#: py/runtime.c:1128 +msgid "type object '%q' has no attribute '%q'" msgstr "" -#: py/bc.c:199 -msgid "keywords must be strings" +#: py/runtime.c:1132 py/runtime.c:1200 +msgid "'%s' object has no attribute '%q'" msgstr "" -#: py/bc.c:206 py/objnamedtuple.c:138 -msgid "function got multiple values for argument '%q'" +#: py/runtime.c:1238 +msgid "object not iterable" msgstr "" -#: py/bc.c:218 py/objnamedtuple.c:130 -msgid "unexpected keyword argument '%q'" +#: py/runtime.c:1241 +#, c-format +msgid "'%s' object is not iterable" msgstr "" -#: py/bc.c:244 -#, c-format -msgid "function missing required positional argument #%d" +#: py/runtime.c:1260 py/runtime.c:1296 +msgid "object not an iterator" msgstr "" -#: py/bc.c:260 -msgid "function missing required keyword argument '%q'" +#: py/runtime.c:1262 py/runtime.c:1298 +#, c-format +msgid "'%s' object is not an iterator" msgstr "" -#: py/bc.c:269 -msgid "function missing keyword-only argument" +#: py/runtime.c:1401 +msgid "exceptions must derive from BaseException" msgstr "" -#: py/binary.c:112 -msgid "bad typecode" +#: py/runtime.c:1430 +msgid "cannot import name %q" msgstr "" -#: py/builtinevex.c:99 -msgid "bad compile mode" +#: py/runtime.c:1535 +msgid "memory allocation failed, heap is locked" msgstr "" -#: py/builtinimport.c:338 -msgid "cannot perform relative import" +#: py/runtime.c:1539 +#, c-format +msgid "memory allocation failed, allocating %u bytes" msgstr "" -#: py/builtinimport.c:422 py/builtinimport.c:534 -msgid "module not found" +#: py/runtime.c:1609 +msgid "maximum recursion depth exceeded" msgstr "" -#: py/builtinimport.c:425 py/builtinimport.c:537 -msgid "no module named '%q'" +#: py/objarray.c:426 +msgid "lhs and rhs should be compatible" msgstr "" -#: py/builtinimport.c:512 -msgid "relative import" +#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 +msgid "array/bytes required on right side" msgstr "" #: py/compile.c:397 py/compile.c:542 @@ -996,11 +1126,6 @@ msgstr "" msgid "non-keyword arg after keyword arg" msgstr "" -#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 -#: py/parse.c:1176 -msgid "invalid syntax" -msgstr "" - #: py/compile.c:2465 msgid "expecting key:value for dict" msgstr "" @@ -1061,1185 +1186,1076 @@ msgstr "" msgid "'data' requires integer arguments" msgstr "" -#: py/emitinlinextensa.c:86 -msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "" - -#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 -msgid "parameters must be registers in sequence a2 to a5" -msgstr "" - -#: py/emitinlinextensa.c:162 -#, c-format -msgid "'%s' expects a register" -msgstr "" - -#: py/emitinlinextensa.c:169 -#, c-format -msgid "'%s' expects an integer" -msgstr "" - -#: py/emitinlinextensa.c:174 -#, c-format -msgid "'%s' integer %d is not within range %d..%d" -msgstr "" - -#: py/emitinlinextensa.c:182 -#, c-format -msgid "'%s' expects a label" -msgstr "" - -#: py/emitinlinextensa.c:193 -msgid "label '%q' not defined" -msgstr "" - -#: py/emitinlinextensa.c:327 -#, c-format -msgid "unsupported Xtensa instruction '%s' with %d arguments" -msgstr "" - -#: py/emitnative.c:183 -msgid "unknown type '%q'" -msgstr "" - -#: py/emitnative.c:260 -msgid "Viper functions don't currently support more than 4 arguments" -msgstr "" - -#: py/emitnative.c:742 -msgid "conversion to object" -msgstr "" - -#: py/emitnative.c:921 -msgid "local '%q' used before type known" -msgstr "" - -#: py/emitnative.c:1118 py/emitnative.c:1156 -msgid "can't load from '%q'" -msgstr "" - -#: py/emitnative.c:1128 -msgid "can't load with '%q' index" -msgstr "" - -#: py/emitnative.c:1188 -msgid "local '%q' has type '%q' but source is '%q'" -msgstr "" - -#: py/emitnative.c:1289 py/emitnative.c:1379 -msgid "can't store '%q'" -msgstr "" - -#: py/emitnative.c:1358 py/emitnative.c:1419 -msgid "can't store to '%q'" -msgstr "" - -#: py/emitnative.c:1369 -msgid "can't store with '%q' index" -msgstr "" - -#: py/emitnative.c:1540 -msgid "can't implicitly convert '%q' to 'bool'" -msgstr "" - -#: py/emitnative.c:1774 -msgid "unary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1930 -msgid "binary op %q not implemented" -msgstr "" - -#: py/emitnative.c:1951 -msgid "can't do binary op between '%q' and '%q'" -msgstr "" - -#: py/emitnative.c:2126 -msgid "casting" -msgstr "" - -#: py/emitnative.c:2173 -msgid "return expected '%q' but got '%q'" -msgstr "" - -#: py/emitnative.c:2191 -msgid "must raise an object" -msgstr "" - -#: py/emitnative.c:2201 -msgid "native yield" -msgstr "" - -#: py/lexer.c:345 -msgid "unicode name escapes" -msgstr "" - -#: py/modbuiltins.c:162 -msgid "chr() arg not in range(0x110000)" +#: py/sequence.c:264 +msgid "object not in sequence" msgstr "" -#: py/modbuiltins.c:171 -msgid "chr() arg not in range(256)" +#: py/objnamedtuple.c:92 +msgid "can't set attribute" msgstr "" -#: py/modbuiltins.c:285 -msgid "arg is an empty sequence" +#: py/parsenum.c:60 +msgid "int() arg 2 must be >= 2 and <= 36" msgstr "" -#: py/modbuiltins.c:350 -msgid "ord expects a character" +#: py/parsenum.c:151 +msgid "invalid syntax for integer" msgstr "" -#: py/modbuiltins.c:353 +#: py/parsenum.c:155 #, c-format -msgid "ord() expected a character, but string of length %d found" -msgstr "" - -#: py/modbuiltins.c:363 -msgid "3-arg pow() not supported" -msgstr "" - -#: py/modbuiltins.c:517 -msgid "must use keyword argument for key function" -msgstr "" - -#: py/modmath.c:41 shared-bindings/math/__init__.c:53 -msgid "math domain error" -msgstr "" - -#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 -#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 -msgid "division by zero" -msgstr "" - -#: py/modmicropython.c:155 -msgid "schedule stack full" -msgstr "" - -#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 -#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 -#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 -msgid "buffer too small" -msgstr "" - -#: py/modthread.c:240 -msgid "expecting a dict for keyword args" -msgstr "" - -#: py/moduerrno.c:143 py/moduerrno.c:146 -msgid "Permission denied" -msgstr "" - -#: py/moduerrno.c:144 -msgid "No such file/directory" -msgstr "" - -#: py/moduerrno.c:145 -msgid "Input/output error" -msgstr "" - -#: py/moduerrno.c:147 -msgid "File exists" +msgid "invalid syntax for integer with base %d" msgstr "" -#: py/moduerrno.c:148 -msgid "Unsupported operation" +#: py/parsenum.c:339 +msgid "invalid syntax for number" msgstr "" -#: py/moduerrno.c:149 -msgid "Invalid argument" +#: py/parsenum.c:342 +msgid "decimal numbers not supported" msgstr "" -#: py/obj.c:90 -msgid "Traceback (most recent call last):\n" +#: main.c:143 +msgid " output:\n" msgstr "" -#: py/obj.c:94 -msgid " File \"%q\", line %d" +#: main.c:157 main.c:230 +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" msgstr "" - -#: py/obj.c:96 -msgid " File \"%q\"" + +#: main.c:159 +msgid "Running in safe mode! Auto-reload is off.\n" msgstr "" -#: py/obj.c:100 -msgid ", in %q\n" +#: main.c:161 main.c:232 +msgid "Auto-reload is off.\n" msgstr "" -#: py/obj.c:257 -msgid "can't convert to int" +#: main.c:175 +msgid "Running in safe mode! Not running saved code.\n" msgstr "" -#: py/obj.c:260 -#, c-format -msgid "can't convert %s to int" +#: main.c:191 +msgid "WARNING: Your code filename has two extensions\n" msgstr "" -#: py/obj.c:320 -msgid "can't convert to float" +#: main.c:239 +msgid "You requested starting safe mode by " msgstr "" -#: py/obj.c:323 -#, c-format -msgid "can't convert %s to float" +#: main.c:242 +msgid "To exit, please reset the board without " msgstr "" -#: py/obj.c:353 -msgid "can't convert to complex" +#: main.c:249 +msgid "" +"You are running in safe mode which means something really bad happened.\n" msgstr "" -#: py/obj.c:356 -#, c-format -msgid "can't convert %s to complex" +#: main.c:251 +msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" msgstr "" -#: py/obj.c:371 -msgid "expected tuple/list" +#: main.c:252 +msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" msgstr "" -#: py/obj.c:374 -#, c-format -msgid "object '%s' is not a tuple or list" +#: main.c:255 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" msgstr "" -#: py/obj.c:385 -msgid "tuple/list has wrong length" +#: main.c:256 +msgid "" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" msgstr "" -#: py/obj.c:387 -#, c-format -msgid "requested length %d but object has length %d" +#: main.c:260 +msgid "Press any key to enter the REPL. Use CTRL-D to reload." msgstr "" -#: py/obj.c:400 -msgid "indices must be integers" +#: main.c:415 +msgid "soft reboot\n" msgstr "" -#: py/obj.c:403 -msgid "%q indices must be integers, not %s" +#: shared-bindings/_stage/Text.c:69 +msgid "font must be 2048 bytes long" msgstr "" -#: py/obj.c:423 -msgid "%q index out of range" +#: shared-bindings/_stage/Text.c:75 shared-bindings/_stage/Layer.c:77 +msgid "palette must be 32 bytes long" msgstr "" -#: py/obj.c:455 -msgid "object has no len" +#: shared-bindings/_stage/Text.c:81 +msgid "chars buffer too small" msgstr "" -#: py/obj.c:458 -#, c-format -msgid "object of type '%s' has no len()" +#: shared-bindings/_stage/Layer.c:71 +msgid "graphic must be 2048 bytes long" msgstr "" -#: py/obj.c:496 -msgid "object does not support item deletion" +#: shared-bindings/_stage/Layer.c:84 +msgid "map buffer too small" msgstr "" -#: py/obj.c:499 -#, c-format -msgid "'%s' object does not support item deletion" +#: shared-bindings/supervisor/__init__.c:93 +msgid "Brightness must be between 0 and 255" msgstr "" -#: py/obj.c:503 -msgid "object is not subscriptable" +#: shared-bindings/supervisor/__init__.c:119 +msgid "Stack size must be at least 256" msgstr "" -#: py/obj.c:506 -#, c-format -msgid "'%s' object is not subscriptable" +#: shared-bindings/i2cslave/I2CSlave.c:98 +msgid "can't convert address to int" msgstr "" -#: py/obj.c:510 -msgid "object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:101 +msgid "address out of bounds" msgstr "" -#: py/obj.c:513 -#, c-format -msgid "'%s' object does not support item assignment" +#: shared-bindings/i2cslave/I2CSlave.c:107 +msgid "addresses is empty" msgstr "" -#: py/obj.c:544 -msgid "object with buffer protocol required" +#: shared-bindings/busio/UART.c:98 +msgid "bits must be 7, 8 or 9" msgstr "" -#: py/objarray.c:413 py/objstr.c:427 py/objstrunicode.c:191 py/objtuple.c:187 -#: shared-bindings/nvm/ByteArray.c:85 -msgid "only slices with step=1 (aka None) are supported" +#: shared-bindings/busio/UART.c:110 +msgid "stop must be 1 or 2" msgstr "" -#: py/objarray.c:426 -msgid "lhs and rhs should be compatible" +#: shared-bindings/busio/SPI.c:133 shared-bindings/bitbangio/SPI.c:121 +#: shared-bindings/bitbangio/I2C.c:111 +msgid "Function requires lock" msgstr "" -#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 -msgid "array/bytes required on right side" +#: shared-bindings/busio/SPI.c:168 shared-bindings/bitbangio/SPI.c:151 +msgid "Invalid polarity" msgstr "" -#: py/objcomplex.c:203 -msgid "can't do truncated division of a complex number" +#: shared-bindings/busio/SPI.c:172 shared-bindings/bitbangio/SPI.c:155 +msgid "Invalid phase" msgstr "" -#: py/objcomplex.c:209 -msgid "complex division by zero" +#: shared-bindings/busio/SPI.c:176 shared-bindings/bitbangio/SPI.c:159 +msgid "Invalid number of bits" msgstr "" -#: py/objcomplex.c:237 -msgid "0.0 to a complex power" +#: shared-bindings/busio/SPI.c:341 shared-bindings/bitbangio/SPI.c:284 +msgid "buffer slices must be of equal length" msgstr "" -#: py/objdeque.c:107 -msgid "full" +#: shared-bindings/busio/I2C.c:120 +msgid "Function requires lock." msgstr "" -#: py/objdeque.c:127 -msgid "empty" +#: shared-bindings/busio/I2C.c:210 shared-bindings/bitbangio/I2C.c:195 +msgid "Buffer must be at least length 1" msgstr "" -#: py/objdict.c:314 -msgid "popitem(): dictionary is empty" +#: shared-bindings/pulseio/PWMOut.c:164 +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" msgstr "" -#: py/objdict.c:357 -msgid "dict update sequence has wrong length" +#: shared-bindings/pulseio/PWMOut.c:195 +msgid "" +"PWM frequency not writeable when variable_frequency is False on construction." msgstr "" -#: py/objfloat.c:308 py/parsenum.c:331 -msgid "complex values not supported" +#: shared-bindings/pulseio/PulseOut.c:75 +#: shared-bindings/microcontroller/Pin.c:89 +#: shared-bindings/neopixel_write/__init__.c:67 +msgid "Expected a %q" msgstr "" -#: py/objgenerator.c:108 -msgid "can't send non-None value to a just-started generator" +#: shared-bindings/pulseio/PulseOut.c:134 +msgid "Array must contain halfwords (type 'H')" msgstr "" -#: py/objgenerator.c:126 -msgid "generator already executing" +#: shared-bindings/pulseio/PulseIn.c:275 +msgid "Cannot delete values" msgstr "" -#: py/objgenerator.c:229 -msgid "generator ignored GeneratorExit" +#: shared-bindings/pulseio/PulseIn.c:281 +msgid "Slices not supported" msgstr "" -#: py/objgenerator.c:251 -msgid "can't pend throw to just-started generator" +#: shared-bindings/pulseio/PulseIn.c:287 +msgid "index must be int" msgstr "" -#: py/objint.c:144 -msgid "can't convert inf to int" +#: shared-bindings/pulseio/PulseIn.c:293 +msgid "Read-only" msgstr "" -#: py/objint.c:146 -msgid "can't convert NaN to int" +#: shared-bindings/touchio/TouchIn.c:173 +msgid "threshold must be in the range 0-65536" msgstr "" -#: py/objint.c:163 -msgid "float too big" +#: shared-bindings/microcontroller/__init__.c:126 +msgid "Invalid run mode." msgstr "" -#: py/objint.c:328 -msgid "long int not supported in this build" +#: shared-bindings/microcontroller/Pin.c:100 +msgid "%q in use" msgstr "" -#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 -msgid "small int overflow" +#: shared-bindings/multiterminal/__init__.c:68 +msgid "Stream missing readinto() or write() method." msgstr "" -#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 -msgid "negative power with no float support" +#: shared-bindings/time/__init__.c:80 +msgid "sleep length must be non-negative" msgstr "" -#: py/objint_longlong.c:251 -msgid "ulonglong too large" +#: shared-bindings/time/__init__.c:90 +msgid "time.struct_time() takes exactly 1 argument" msgstr "" -#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 -msgid "negative shift count" +#: shared-bindings/time/__init__.c:93 +msgid "time.struct_time() takes a 9-sequence" msgstr "" -#: py/objint_mpz.c:336 -msgid "pow() with 3 arguments requires integers" +#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 +msgid "Tuple or struct_time argument required" msgstr "" -#: py/objint_mpz.c:347 -msgid "pow() 3rd argument cannot be 0" +#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 +msgid "function takes exactly 9 arguments" msgstr "" -#: py/objint_mpz.c:415 -msgid "overflow converting long int to machine word" +#: shared-bindings/time/__init__.c:192 shared-bindings/rtc/RTC.c:40 +#: shared-bindings/rtc/RTC.c:44 +msgid "RTC is not supported on this board" msgstr "" -#: py/objlist.c:273 -msgid "pop from empty list" +#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 +msgid "timestamp out of range for platform time_t" msgstr "" -#: py/objnamedtuple.c:92 -msgid "can't set attribute" +#: shared-bindings/gamepad/GamePad.c:100 +msgid "too many arguments" msgstr "" -#: py/objobject.c:55 -msgid "__new__ arg must be a user-type" +#: shared-bindings/gamepad/GamePad.c:104 +msgid "expected a DigitalInOut" msgstr "" -#: py/objrange.c:110 -msgid "zero step" +#: shared-bindings/audioio/RawSample.c:98 +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" msgstr "" -#: py/objset.c:371 -msgid "pop from an empty set" +#: shared-bindings/audioio/RawSample.c:104 +msgid "buffer must be a bytes-like object" msgstr "" -#: py/objslice.c:66 -msgid "Length must be an int" +#: shared-bindings/audioio/WaveFile.c:78 +msgid "file must be a file opened in byte mode" msgstr "" -#: py/objslice.c:71 -msgid "Length must be non-negative" +#: shared-bindings/audioio/AudioOut.c:223 +#: shared-bindings/audiobusio/I2SOut.c:225 +msgid "Not playing" msgstr "" -#: py/objslice.c:86 py/sequence.c:57 -msgid "slice step cannot be zero" +#: shared-bindings/storage/__init__.c:77 +msgid "filesystem must provide mount method" msgstr "" -#: py/objslice.c:159 -msgid "Cannot subclass slice" +#: shared-bindings/digitalio/DigitalInOut.c:211 +msgid "Invalid direction." msgstr "" -#: py/objstr.c:261 -msgid "bytes value out of range" +#: shared-bindings/digitalio/DigitalInOut.c:240 +msgid "Cannot set value when direction is input." msgstr "" -#: py/objstr.c:270 -msgid "wrong number of arguments" +#: shared-bindings/digitalio/DigitalInOut.c:266 +#: shared-bindings/digitalio/DigitalInOut.c:281 +msgid "Drive mode not used when direction is input." msgstr "" -#: py/objstr.c:467 -msgid "join expects a list of str/bytes objects consistent with self object" +#: shared-bindings/digitalio/DigitalInOut.c:314 +#: shared-bindings/digitalio/DigitalInOut.c:331 +msgid "Pull not used when direction is output." msgstr "" -#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 -msgid "empty separator" +#: shared-bindings/digitalio/DigitalInOut.c:340 +msgid "Unsupported pull value." msgstr "" -#: py/objstr.c:641 -msgid "rsplit(None,n)" +#: shared-bindings/analogio/AnalogOut.c:118 +msgid "AnalogOut is only 16 bits. Value must be less than 65536." msgstr "" -#: py/objstr.c:713 -msgid "substring not found" +#: shared-bindings/rtc/RTC.c:52 +msgid "RTC calibration is not supported on this board" msgstr "" -#: py/objstr.c:770 -msgid "start/end indices" +#: shared-bindings/audiobusio/PDMIn.c:124 +msgid "Bit depth must be multiple of 8." msgstr "" -#: py/objstr.c:931 -msgid "bad format string" +#: shared-bindings/audiobusio/PDMIn.c:128 +msgid "Oversample must be multiple of 8." msgstr "" -#: py/objstr.c:953 -msgid "single '}' encountered in format string" +#: shared-bindings/audiobusio/PDMIn.c:136 +msgid "Microphone startup delay must be in range 0.0 to 1.0" msgstr "" -#: py/objstr.c:992 -msgid "bad conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:193 +msgid "destination_length must be an int >= 0" msgstr "" -#: py/objstr.c:996 -msgid "end of format while looking for conversion specifier" +#: shared-bindings/audiobusio/PDMIn.c:199 +msgid "Cannot record to a file" msgstr "" -#: py/objstr.c:998 -#, c-format -msgid "unknown conversion specifier %c" +#: shared-bindings/audiobusio/PDMIn.c:202 +msgid "Destination capacity is smaller than destination_length." msgstr "" -#: py/objstr.c:1029 -msgid "unmatched '{' in format" +#: shared-bindings/audiobusio/PDMIn.c:206 +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" msgstr "" -#: py/objstr.c:1036 -msgid "expected ':' after format specifier" +#: shared-bindings/audiobusio/PDMIn.c:208 +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" msgstr "" -#: py/objstr.c:1050 +#: shared-bindings/util.c:38 msgid "" -"can't switch from automatic field numbering to manual field specification" +"Object has been deinitialized and can no longer be used. Create a new object." msgstr "" -#: py/objstr.c:1055 py/objstr.c:1083 -msgid "tuple index out of range" +#: shared-bindings/os/__init__.c:200 +msgid "No hardware random available" msgstr "" -#: py/objstr.c:1071 -msgid "attributes not supported yet" +#: shared-bindings/nvm/ByteArray.c:99 +msgid "Slice and value different lengths." msgstr "" -#: py/objstr.c:1079 -msgid "" -"can't switch from manual field specification to automatic field numbering" +#: shared-bindings/nvm/ByteArray.c:104 +msgid "Array values should be single bytes." msgstr "" -#: py/objstr.c:1171 -msgid "invalid format specifier" +#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 +msgid "Unable to write to nvm." msgstr "" -#: py/objstr.c:1192 -msgid "sign not allowed in string format specifier" +#: shared-bindings/nvm/ByteArray.c:137 +msgid "Bytes must be between 0 and 255." msgstr "" -#: py/objstr.c:1200 -msgid "sign not allowed with integer format specifier 'c'" +#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 +msgid "stop not reachable from start" msgstr "" -#: py/objstr.c:1259 -#, c-format -msgid "unknown format code '%c' for object of type '%s'" +#: shared-bindings/random/__init__.c:111 +msgid "step must be non-zero" msgstr "" -#: py/objstr.c:1331 -#, c-format -msgid "unknown format code '%c' for object of type 'float'" +#: shared-bindings/random/__init__.c:114 +msgid "invalid step" msgstr "" -#: py/objstr.c:1343 -msgid "'=' alignment not allowed in string format specifier" +#: shared-bindings/random/__init__.c:146 +msgid "empty sequence" msgstr "" -#: py/objstr.c:1367 -#, c-format -msgid "unknown format code '%c' for object of type 'str'" +#: shared-module/bitbangio/SPI.c:45 +msgid "Clock pin init failed." msgstr "" -#: py/objstr.c:1415 -msgid "format requires a dict" +#: shared-module/bitbangio/SPI.c:51 +msgid "MOSI pin init failed." msgstr "" -#: py/objstr.c:1424 -msgid "incomplete format key" +#: shared-module/bitbangio/SPI.c:62 +msgid "MISO pin init failed." msgstr "" -#: py/objstr.c:1482 -msgid "incomplete format" +#: shared-module/bitbangio/SPI.c:122 +msgid "Cannot write without MOSI pin." msgstr "" -#: py/objstr.c:1490 -msgid "not enough arguments for format string" +#: shared-module/bitbangio/SPI.c:177 +msgid "Cannot read without MISO pin." msgstr "" -#: py/objstr.c:1500 -#, c-format -msgid "%%c requires int or char" +#: shared-module/bitbangio/SPI.c:241 +msgid "Cannot transfer without MOSI and MISO pins." msgstr "" -#: py/objstr.c:1507 -msgid "integer required" +#: shared-module/bitbangio/I2C.c:58 +msgid "Clock stretch too long" msgstr "" -#: py/objstr.c:1570 -#, c-format -msgid "unsupported format character '%c' (0x%x) at index %d" +#: shared-module/audioio/WaveFile.c:61 +msgid "Invalid wave file" msgstr "" -#: py/objstr.c:1577 -msgid "not all arguments converted during string formatting" +#: shared-module/audioio/WaveFile.c:69 +msgid "Invalid format chunk size" msgstr "" -#: py/objstr.c:2102 -msgid "can't convert to str implicitly" +#: shared-module/audioio/WaveFile.c:83 +msgid "Unsupported format" msgstr "" -#: py/objstr.c:2106 -msgid "can't convert '%q' object to %q implicitly" +#: shared-module/audioio/WaveFile.c:99 +msgid "Data chunk must follow fmt chunk" msgstr "" -#: py/objstrunicode.c:134 -#, c-format -msgid "string indices must be integers, not %s" +#: shared-module/audioio/WaveFile.c:107 +msgid "Invalid file" msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 -msgid "string index out of range" +#: shared-module/audioio/WaveFile.c:117 +msgid "Couldn't allocate first buffer" msgstr "" -#: py/objtype.c:358 -msgid "__init__() should return None" +#: shared-module/audioio/WaveFile.c:123 +msgid "Couldn't allocate second buffer" msgstr "" -#: py/objtype.c:360 -#, c-format -msgid "__init__() should return None, not '%s'" +#: shared-module/struct/__init__.c:39 +msgid "'S' and 'O' are not supported format types" msgstr "" -#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 -msgid "unreadable attribute" +#: shared-module/struct/__init__.c:83 +msgid "too many arguments provided with the given format" msgstr "" -#: py/objtype.c:868 py/runtime.c:653 -msgid "object not callable" +#: lib/embed/abort_.c:8 +msgid "abort() called" msgstr "" -#: py/objtype.c:870 py/runtime.c:655 +#: lib/netutils/netutils.c:83 +msgid "invalid arguments" +msgstr "" + +#: ports/unix/modusocket.c:474 #, c-format -msgid "'%s' object is not callable" +msgid "[addrinfo error %d]" msgstr "" -#: py/objtype.c:978 -msgid "type takes 1 or 3 arguments" +#: ports/unix/modffi.c:138 +msgid "Unknown type" msgstr "" -#: py/objtype.c:989 -msgid "cannot create instance" +#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 +msgid "Error in ffi_prep_cif" msgstr "" -#: py/objtype.c:991 -msgid "cannot create '%q' instances" +#: ports/unix/modffi.c:270 +msgid "ffi_prep_closure_loc" msgstr "" -#: py/objtype.c:1047 -msgid "can't add special method to already-subclassed class" +#: ports/unix/modffi.c:413 +msgid "Don't know how to pass object to native function" msgstr "" -#: py/objtype.c:1091 py/objtype.c:1097 -msgid "type is not an acceptable base type" +#: ports/atmel-samd/audio_dma.c:285 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 +msgid "All sync event channels in use" msgstr "" -#: py/objtype.c:1100 -msgid "type '%q' is not an acceptable base type" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 +#: ports/nrf/common-hal/usb_hid/Device.c:45 +#, c-format +msgid "Buffer incorrect size. Should be %d bytes." msgstr "" -#: py/objtype.c:1137 -msgid "multiple inheritance not supported" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:53 +msgid "USB Busy" msgstr "" -#: py/objtype.c:1164 -msgid "multiple bases have instance lay-out conflict" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:59 +msgid "USB Error" msgstr "" -#: py/objtype.c:1205 -msgid "first argument to super() must be type" +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 +#: ports/atmel-samd/common-hal/busio/UART.c:119 +#: ports/atmel-samd/common-hal/busio/SPI.c:132 +#: ports/atmel-samd/common-hal/busio/I2C.c:78 +#: ports/nrf/common-hal/busio/I2C.c:58 +msgid "Invalid pins" msgstr "" -#: py/objtype.c:1370 -msgid "issubclass() arg 2 must be a class or a tuple of classes" +#: ports/atmel-samd/common-hal/busio/UART.c:66 +msgid "bytes > 8 bits not supported" msgstr "" -#: py/objtype.c:1384 -msgid "issubclass() arg 1 must be a class" +#: ports/atmel-samd/common-hal/busio/UART.c:72 +msgid "tx and rx cannot both be None" msgstr "" -#: py/parse.c:726 -msgid "constant must be an integer" +#: ports/atmel-samd/common-hal/busio/UART.c:139 +msgid "Failed to allocate RX buffer" msgstr "" -#: py/parse.c:868 -msgid "Unable to init parser" +#: ports/atmel-samd/common-hal/busio/UART.c:147 +msgid "Could not initialize UART" msgstr "" -#: py/parse.c:1170 -msgid "unexpected indent" +#: ports/atmel-samd/common-hal/busio/UART.c:234 +msgid "No RX pin" msgstr "" -#: py/parse.c:1173 -msgid "unindent does not match any outer indentation level" +#: ports/atmel-samd/common-hal/busio/UART.c:284 +msgid "No TX pin" msgstr "" -#: py/parsenum.c:60 -msgid "int() arg 2 must be >= 2 and <= 36" +#: ports/atmel-samd/common-hal/busio/I2C.c:71 +msgid "Not enough pins available" msgstr "" -#: py/parsenum.c:151 -msgid "invalid syntax for integer" +#: ports/atmel-samd/common-hal/busio/I2C.c:101 +msgid "SDA or SCL needs a pull up" +msgstr "" + +#: ports/atmel-samd/common-hal/busio/I2C.c:121 +msgid "Unsupported baudrate" msgstr "" -#: py/parsenum.c:155 -#, c-format -msgid "invalid syntax for integer with base %d" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:80 +msgid "Frequency captured is above capability. Capture Paused." msgstr "" -#: py/parsenum.c:339 -msgid "invalid syntax for number" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:115 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 +msgid "No hardware support on pin" msgstr "" -#: py/parsenum.c:342 -msgid "decimal numbers not supported" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:126 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 +msgid "EXTINT channel already in use" msgstr "" -#: py/persistentcode.c:223 -msgid "" -"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" -"mpy-update for more info." +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:139 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:187 +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:111 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:174 +msgid "All timers in use" msgstr "" -#: py/persistentcode.c:326 -msgid "can only save bytecode" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:303 +msgid "An error occurred in measuring the frequency. (FREQM peripheral usage.)" msgstr "" -#: py/runtime.c:206 -msgid "name not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:117 +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:77 +msgid "Invalid pin" msgstr "" -#: py/runtime.c:209 -msgid "name '%q' is not defined" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:121 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:367 +#: ports/nrf/common-hal/pulseio/PWMOut.c:227 +msgid "Invalid PWM frequency" msgstr "" -#: py/runtime.c:304 py/runtime.c:611 -msgid "unsupported type for operator" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:185 +msgid "All timers for this pin are in use" msgstr "" -#: py/runtime.c:307 -msgid "unsupported type for %q: '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:179 +msgid "Another send is already active" msgstr "" -#: py/runtime.c:614 -msgid "unsupported types for %q: '%s', '%s'" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 +#, c-format +msgid "Failed to allocate RX buffer of %d bytes" msgstr "" -#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 -msgid "wrong number of values to unpack" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 +msgid "pop from an empty PulseIn" msgstr "" -#: py/runtime.c:883 py/runtime.c:947 -#, c-format -msgid "need more than %d values to unpack" +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 +msgid "No free GCLKs" msgstr "" -#: py/runtime.c:890 -#, c-format -msgid "too many values to unpack (expected %d)" +#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 +#: ports/esp8266/common-hal/microcontroller/__init__.c:64 +msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -#: py/runtime.c:984 -msgid "argument has wrong type" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:70 +msgid "DAC already in use" msgstr "" -#: py/runtime.c:986 -msgid "argument should be a '%q' not a '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:74 +msgid "Right channel unsupported" msgstr "" -#: py/runtime.c:1123 py/runtime.c:1197 -msgid "no such attribute" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:85 +msgid "Invalid pin for left channel" msgstr "" -#: py/runtime.c:1128 -msgid "type object '%q' has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:89 +msgid "Invalid pin for right channel" msgstr "" -#: py/runtime.c:1132 py/runtime.c:1200 -msgid "'%s' object has no attribute '%q'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:92 +msgid "Cannot output both channels on the same pin" msgstr "" -#: py/runtime.c:1238 -msgid "object not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:216 +msgid "All event channels in use" msgstr "" -#: py/runtime.c:1241 -#, c-format -msgid "'%s' object is not iterable" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:327 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 +msgid "No DMA channel found" msgstr "" -#: py/runtime.c:1260 py/runtime.c:1296 -msgid "object not an iterator" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:329 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 +msgid "Unable to allocate buffers for signed conversion" msgstr "" -#: py/runtime.c:1262 py/runtime.c:1298 -#, c-format -msgid "'%s' object is not an iterator" +#: ports/atmel-samd/common-hal/storage/__init__.c:48 +msgid "Cannot remount '/' when USB is active." msgstr "" -#: py/runtime.c:1401 -msgid "exceptions must derive from BaseException" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 +msgid "Both pins must support hardware interrupts" msgstr "" -#: py/runtime.c:1430 -msgid "cannot import name %q" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 +msgid "A hardware interrupt channel is already in use" msgstr "" -#: py/runtime.c:1535 -msgid "memory allocation failed, heap is locked" +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 +#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 +msgid "Cannot get pull while in output mode" msgstr "" -#: py/runtime.c:1539 -#, c-format -msgid "memory allocation failed, allocating %u bytes" +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 +#: ports/nrf/common-hal/analogio/AnalogIn.c:39 +msgid "Pin does not have ADC capabilities" msgstr "" -#: py/runtime.c:1609 -msgid "maximum recursion depth exceeded" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 +msgid "No DAC on chip" msgstr "" -#: py/sequence.c:264 -msgid "object not in sequence" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 +msgid "AnalogOut not supported on given pin" msgstr "" -#: py/stream.c:96 -msgid "stream operation not supported" +#: ports/atmel-samd/common-hal/rtc/RTC.c:101 +msgid "calibration value out of range +/-127" msgstr "" -#: py/vm.c:255 -msgid "local variable referenced before assignment" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 +msgid "Invalid clock pin" msgstr "" -#: py/vm.c:1142 -msgid "no active exception to reraise" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 +msgid "Invalid data pin" msgstr "" -#: py/vm.c:1284 -msgid "byte code not implemented" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 +msgid "Only 8 or 16 bit mono with " msgstr "" -#: shared-bindings/_stage/Layer.c:71 -msgid "graphic must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 +msgid "Serializer in use" msgstr "" -#: shared-bindings/_stage/Layer.c:77 shared-bindings/_stage/Text.c:75 -msgid "palette must be 32 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 +msgid "sampling rate out of range" msgstr "" -#: shared-bindings/_stage/Layer.c:84 -msgid "map buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 +msgid "Unable to find free GCLK" msgstr "" -#: shared-bindings/_stage/Text.c:69 -msgid "font must be 2048 bytes long" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 +msgid "Invalid bit clock pin" msgstr "" -#: shared-bindings/_stage/Text.c:81 -msgid "chars buffer too small" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 +msgid "Bit clock and word select must share a clock unit" msgstr "" -#: shared-bindings/analogio/AnalogOut.c:118 -msgid "AnalogOut is only 16 bits. Value must be less than 65536." +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 +msgid "Clock unit in use" msgstr "" -#: shared-bindings/audiobusio/I2SOut.c:225 -#: shared-bindings/audioio/AudioOut.c:223 -msgid "Not playing" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 +msgid "Too many channels in sample." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:124 -msgid "Bit depth must be multiple of 8." +#: ports/atmel-samd/board_busses.c:39 +msgid "No default I2C bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:128 -msgid "Oversample must be multiple of 8." +#: ports/atmel-samd/board_busses.c:64 +msgid "No default SPI bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:136 -msgid "Microphone startup delay must be in range 0.0 to 1.0" +#: ports/atmel-samd/board_busses.c:91 +msgid "No default UART bus" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:193 -msgid "destination_length must be an int >= 0" +#: ports/atmel-samd/bindings/samd/Clock.c:135 +msgid "calibration is read only" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:199 -msgid "Cannot record to a file" +#: ports/atmel-samd/bindings/samd/Clock.c:137 +msgid "calibration is out of range" msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:202 -msgid "Destination capacity is smaller than destination_length." +#: ports/nrf/drivers/bluetooth/ble_drv.c:199 +msgid "Cannot apply GAP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:206 -msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +#: ports/nrf/drivers/bluetooth/ble_drv.c:213 +msgid "Cannot set PPCP parameters." msgstr "" -#: shared-bindings/audiobusio/PDMIn.c:208 -msgid "" -"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +#: ports/nrf/drivers/bluetooth/ble_drv.c:245 +msgid "Can not query for the device address." msgstr "" -#: shared-bindings/audioio/RawSample.c:98 -msgid "" -"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " -"'B'" +#: ports/nrf/drivers/bluetooth/ble_drv.c:264 +msgid "Can not add Vendor Specific 128-bit UUID." msgstr "" -#: shared-bindings/audioio/RawSample.c:104 -msgid "buffer must be a bytes-like object" +#: ports/nrf/drivers/bluetooth/ble_drv.c:284 +#: ports/nrf/drivers/bluetooth/ble_drv.c:298 +msgid "Can not add Service." msgstr "" -#: shared-bindings/audioio/WaveFile.c:78 -msgid "file must be a file opened in byte mode" +#: ports/nrf/drivers/bluetooth/ble_drv.c:373 +msgid "Can not add Characteristic." msgstr "" -#: shared-bindings/bitbangio/I2C.c:111 shared-bindings/bitbangio/SPI.c:121 -#: shared-bindings/busio/SPI.c:133 -msgid "Function requires lock" +#: ports/nrf/drivers/bluetooth/ble_drv.c:400 +msgid "Can not apply device name in the stack." msgstr "" -#: shared-bindings/bitbangio/I2C.c:195 shared-bindings/busio/I2C.c:210 -msgid "Buffer must be at least length 1" +#: ports/nrf/drivers/bluetooth/ble_drv.c:464 +#: ports/nrf/drivers/bluetooth/ble_drv.c:514 +msgid "Can not encode UUID, to check length." msgstr "" -#: shared-bindings/bitbangio/SPI.c:151 shared-bindings/busio/SPI.c:168 -msgid "Invalid polarity" +#: ports/nrf/drivers/bluetooth/ble_drv.c:470 +#: ports/nrf/drivers/bluetooth/ble_drv.c:520 +msgid "Can encode UUID into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:155 shared-bindings/busio/SPI.c:172 -msgid "Invalid phase" +#: ports/nrf/drivers/bluetooth/ble_drv.c:545 +msgid "Can not fit data into the advertisment packet." msgstr "" -#: shared-bindings/bitbangio/SPI.c:159 shared-bindings/busio/SPI.c:176 -msgid "Invalid number of bits" +#: ports/nrf/drivers/bluetooth/ble_drv.c:558 +#: ports/nrf/drivers/bluetooth/ble_drv.c:604 +#, c-format +msgid "Can not apply advertisment data. status: 0x%02x" msgstr "" -#: shared-bindings/bitbangio/SPI.c:284 shared-bindings/busio/SPI.c:341 -msgid "buffer slices must be of equal length" +#: ports/nrf/drivers/bluetooth/ble_drv.c:614 +#, c-format +msgid "Can not start advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/I2C.c:120 -msgid "Function requires lock." +#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#, c-format +msgid "Can not stop advertisment. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:98 -msgid "bits must be 7, 8 or 9" +#: ports/nrf/drivers/bluetooth/ble_drv.c:650 +#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#, c-format +msgid "Can not read attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/busio/UART.c:110 -msgid "stop must be 1 or 2" +#: ports/nrf/drivers/bluetooth/ble_drv.c:667 +#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#, c-format +msgid "Can not write attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:211 -msgid "Invalid direction." +#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#, c-format +msgid "Can not notify attribute value. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:240 -msgid "Cannot set value when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#, c-format +msgid "Can not start scanning. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:266 -#: shared-bindings/digitalio/DigitalInOut.c:281 -msgid "Drive mode not used when direction is input." +#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#, c-format +msgid "Can not connect. status: 0x%02x" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:314 -#: shared-bindings/digitalio/DigitalInOut.c:331 -msgid "Pull not used when direction is output." +#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 +#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 +#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 +#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:88 +msgid "busio.UART not yet implemented" msgstr "" -#: shared-bindings/digitalio/DigitalInOut.c:340 -msgid "Unsupported pull value." +#: ports/nrf/common-hal/pulseio/FrequencyIn.c:32 +#: ports/esp8266/common-hal/pulseio/FrequencyIn.c:33 +msgid "No hardware support for FrequencyIn." msgstr "" -#: shared-bindings/gamepad/GamePad.c:100 -msgid "too many arguments" +#: ports/nrf/common-hal/microcontroller/Processor.c:49 +#, c-format +msgid "Can not get temperature. status: 0x%02x" msgstr "" -#: shared-bindings/gamepad/GamePad.c:104 -msgid "expected a DigitalInOut" +#: ports/nrf/common-hal/analogio/AnalogOut.c:37 +msgid "AnalogOut functionality not supported" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:98 -msgid "can't convert address to int" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 +msgid "Invalid Service type" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:101 -msgid "address out of bounds" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 +#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 +#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 +msgid "Invalid UUID parameter" msgstr "" -#: shared-bindings/i2cslave/I2CSlave.c:107 -msgid "addresses is empty" +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 +msgid "Invalid UUID string length" msgstr "" -#: shared-bindings/microcontroller/Pin.c:89 -#: shared-bindings/neopixel_write/__init__.c:67 -#: shared-bindings/pulseio/PulseOut.c:75 -msgid "Expected a %q" +#: ports/esp8266/modmachine.c:63 +msgid "frequency can only be either 80Mhz or 160MHz" msgstr "" -#: shared-bindings/microcontroller/Pin.c:100 -msgid "%q in use" +#: ports/esp8266/esp_mphal.c:154 +msgid "C-level assert" msgstr "" -#: shared-bindings/microcontroller/__init__.c:126 -msgid "Invalid run mode." +#: ports/esp8266/modnetwork.c:61 +msgid "STA required" msgstr "" -#: shared-bindings/multiterminal/__init__.c:68 -msgid "Stream missing readinto() or write() method." +#: ports/esp8266/modnetwork.c:61 +msgid "AP required" msgstr "" -#: shared-bindings/nvm/ByteArray.c:99 -msgid "Slice and value different lengths." +#: ports/esp8266/modnetwork.c:87 +msgid "Cannot update i/f status" msgstr "" -#: shared-bindings/nvm/ByteArray.c:104 -msgid "Array values should be single bytes." +#: ports/esp8266/modnetwork.c:142 +msgid "Cannot set STA config" msgstr "" -#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 -msgid "Unable to write to nvm." +#: ports/esp8266/modnetwork.c:144 +msgid "Cannot connect to AP" msgstr "" -#: shared-bindings/nvm/ByteArray.c:137 -msgid "Bytes must be between 0 and 255." +#: ports/esp8266/modnetwork.c:152 +msgid "Cannot disconnect from AP" msgstr "" -#: shared-bindings/os/__init__.c:200 -msgid "No hardware random available" +#: ports/esp8266/modnetwork.c:173 +msgid "unknown status param" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:164 -msgid "" -"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +#: ports/esp8266/modnetwork.c:222 +msgid "STA must be active" msgstr "" -#: shared-bindings/pulseio/PWMOut.c:195 -msgid "" -"PWM frequency not writeable when variable_frequency is False on construction." +#: ports/esp8266/modnetwork.c:239 +msgid "scan failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:275 -msgid "Cannot delete values" +#: ports/esp8266/modnetwork.c:306 +msgid "wifi_set_ip_info() failed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:281 -msgid "Slices not supported" +#: ports/esp8266/modnetwork.c:319 +msgid "either pos or kw args are allowed" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:287 -msgid "index must be int" +#: ports/esp8266/modnetwork.c:329 +msgid "can't get STA config" msgstr "" -#: shared-bindings/pulseio/PulseIn.c:293 -msgid "Read-only" +#: ports/esp8266/modnetwork.c:331 +msgid "can't get AP config" msgstr "" -#: shared-bindings/pulseio/PulseOut.c:134 -msgid "Array must contain halfwords (type 'H')" +#: ports/esp8266/modnetwork.c:346 +msgid "invalid buffer length" msgstr "" -#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 -msgid "stop not reachable from start" +#: ports/esp8266/modnetwork.c:405 +msgid "can't set STA config" msgstr "" -#: shared-bindings/random/__init__.c:111 -msgid "step must be non-zero" +#: ports/esp8266/modnetwork.c:407 +msgid "can't set AP config" msgstr "" -#: shared-bindings/random/__init__.c:114 -msgid "invalid step" +#: ports/esp8266/modnetwork.c:416 +msgid "can query only one param" msgstr "" -#: shared-bindings/random/__init__.c:146 -msgid "empty sequence" +#: ports/esp8266/modnetwork.c:469 +msgid "unknown config param" msgstr "" -#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 -#: shared-bindings/time/__init__.c:192 -msgid "RTC is not supported on this board" +#: ports/esp8266/modesp.c:119 +msgid "len must be multiple of 4" msgstr "" -#: shared-bindings/rtc/RTC.c:52 -msgid "RTC calibration is not supported on this board" +#: ports/esp8266/modesp.c:274 +#, c-format +msgid "memory allocation failed, allocating %u bytes for native code" msgstr "" -#: shared-bindings/storage/__init__.c:77 -msgid "filesystem must provide mount method" +#: ports/esp8266/modesp.c:317 +msgid "flash location must be below 1MByte" msgstr "" -#: shared-bindings/supervisor/__init__.c:93 -msgid "Brightness must be between 0 and 255" +#: ports/esp8266/common-hal/busio/UART.c:45 +msgid "Only tx supported on UART1 (GPIO2)." msgstr "" -#: shared-bindings/supervisor/__init__.c:119 -msgid "Stack size must be at least 256" +#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 +msgid "invalid data bits" msgstr "" -#: shared-bindings/time/__init__.c:80 -msgid "sleep length must be non-negative" +#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 +msgid "invalid stop bits" msgstr "" -#: shared-bindings/time/__init__.c:90 -msgid "time.struct_time() takes exactly 1 argument" +#: ports/esp8266/common-hal/busio/SPI.c:72 +msgid "Pins not valid for SPI" msgstr "" -#: shared-bindings/time/__init__.c:93 -msgid "time.struct_time() takes a 9-sequence" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 +#, c-format +msgid "Maximum PWM frequency is %dhz." msgstr "" -#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 -msgid "Tuple or struct_time argument required" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 +msgid "Minimum PWM frequency is 1hz." msgstr "" -#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 -msgid "function takes exactly 9 arguments" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 +#, c-format +msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." msgstr "" -#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 -msgid "timestamp out of range for platform time_t" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#, c-format +msgid "PWM not supported on pin %d" msgstr "" -#: shared-bindings/touchio/TouchIn.c:173 -msgid "threshold must be in the range 0-65536" +#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 +msgid "No PulseIn support for %q" msgstr "" -#: shared-bindings/util.c:38 -msgid "" -"Object has been deinitialized and can no longer be used. Create a new object." +#: ports/esp8266/common-hal/microcontroller/__init__.c:66 +msgid "ESP8226 does not support safe mode." msgstr "" -#: shared-module/audioio/WaveFile.c:61 -msgid "Invalid wave file" +#: ports/esp8266/common-hal/storage/__init__.c:34 +msgid "Unable to remount filesystem" msgstr "" -#: shared-module/audioio/WaveFile.c:69 -msgid "Invalid format chunk size" +#: ports/esp8266/common-hal/storage/__init__.c:38 +msgid "Use esptool to erase flash and re-upload Python instead" msgstr "" -#: shared-module/audioio/WaveFile.c:83 -msgid "Unsupported format" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 +msgid "ESP8266 does not support pull down." msgstr "" -#: shared-module/audioio/WaveFile.c:99 -msgid "Data chunk must follow fmt chunk" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 +msgid "GPIO16 does not support pull up." msgstr "" -#: shared-module/audioio/WaveFile.c:107 -msgid "Invalid file" +#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 +msgid "Pin %q does not have ADC capabilities" msgstr "" -#: shared-module/audioio/WaveFile.c:117 -msgid "Couldn't allocate first buffer" +#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 +msgid "No hardware support for analog out." msgstr "" -#: shared-module/audioio/WaveFile.c:123 -msgid "Couldn't allocate second buffer" +#: ports/esp8266/machine_adc.c:57 +#, c-format +msgid "not a valid ADC Channel: %d" msgstr "" -#: shared-module/bitbangio/I2C.c:58 -msgid "Clock stretch too long" +#: ports/esp8266/machine_rtc.c:185 +msgid "buffer too long" msgstr "" -#: shared-module/bitbangio/SPI.c:45 -msgid "Clock pin init failed." +#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 +#: ports/esp8266/machine_rtc.c:246 +msgid "invalid alarm" msgstr "" -#: shared-module/bitbangio/SPI.c:51 -msgid "MOSI pin init failed." +#: ports/esp8266/machine_pin.c:129 +msgid "expecting a pin" msgstr "" -#: shared-module/bitbangio/SPI.c:62 -msgid "MISO pin init failed." +#: ports/esp8266/machine_pin.c:284 +msgid "Pin(16) doesn't support pull" msgstr "" -#: shared-module/bitbangio/SPI.c:122 -msgid "Cannot write without MOSI pin." +#: ports/esp8266/machine_pin.c:323 +msgid "invalid pin" msgstr "" -#: shared-module/bitbangio/SPI.c:177 -msgid "Cannot read without MISO pin." +#: ports/esp8266/machine_pin.c:389 +msgid "pin does not have IRQ capabilities" msgstr "" -#: shared-module/bitbangio/SPI.c:241 -msgid "Cannot transfer without MOSI and MISO pins." +#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 +msgid "impossible baudrate" msgstr "" -#: shared-module/struct/__init__.c:39 -msgid "'S' and 'O' are not supported format types" +#: ports/esp8266/machine_uart.c:169 +#, c-format +msgid "UART(%d) does not exist" msgstr "" -#: shared-module/struct/__init__.c:83 -msgid "too many arguments provided with the given format" +#: ports/esp8266/machine_uart.c:219 +msgid "UART(1) can't read" msgstr "" diff --git a/locale/fr.po b/locale/fr.po index 4438e90b545de..4a1110e250994 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-20 09:37-0700\n" +"POT-Creation-Date: 2018-08-23 02:28+0000\n" "PO-Revision-Date: 2018-08-14 11:01+0200\n" "Last-Translator: Pierrick Couturier \n" "Language-Team: fr\n" @@ -16,19 +16,65 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: extmod/machine_i2c.c:299 -msgid "invalid I2C peripheral" -msgstr "périphérique I2C invalide" +#: extmod/modutimeq.c:131 +msgid "queue overflow" +msgstr "dépassement de file" -#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 -#: extmod/machine_i2c.c:392 -msgid "I2C operation not supported" -msgstr "opération sur I2C non supportée" +#: extmod/modutimeq.c:147 extmod/modutimeq.c:172 extmod/moduheapq.c:86 +msgid "empty heap" +msgstr "'heap' vide" -#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 -#, c-format -msgid "address %08x is not aligned to %d bytes" -msgstr "l'adresse %08x n'est pas alignée sur %d octets" +#: extmod/moductypes.c:122 +msgid "syntax error in uctypes descriptor" +msgstr "erreur de syntaxe dans le descripteur d'uctypes" + +#: extmod/moductypes.c:219 +msgid "Cannot unambiguously get sizeof scalar" +msgstr "Impossible d'obtenir la taille du scalaire sans ambigüité" + +#: extmod/moductypes.c:397 +msgid "struct: no fields" +msgstr "struct: aucun champs" + +#: extmod/moductypes.c:530 +msgid "struct: cannot index" +msgstr "struct: indexage impossible" + +#: extmod/moductypes.c:544 +msgid "struct: index out of range" +msgstr "struct: index hors limite" + +#: extmod/moduheapq.c:38 +msgid "heap must be a list" +msgstr "'heap' doit être une liste" + +#: extmod/modussl_axtls.c:81 +msgid "invalid key" +msgstr "clé invalide" + +#: extmod/modussl_axtls.c:87 +msgid "invalid cert" +msgstr "certificat invalide" + +#: extmod/modujson.c:281 +msgid "syntax error in JSON" +msgstr "erreur de syntaxe dans le JSON" + +#: extmod/vfs_fat.c:426 py/moduerrno.c:150 +msgid "Read-only filesystem" +msgstr "Système de fichier en lecture seule" + +#: extmod/moduzlib.c:97 +msgid "compression header" +msgstr "entête de compression" + +#: extmod/modframebuf.c:299 +msgid "invalid format" +msgstr "format invalide" + +#: extmod/uos_dupterm.c:120 +msgid "invalid dupterm index" +msgstr "index invalide pour dupterm" #: extmod/machine_spi.c:57 msgid "invalid SPI peripheral" @@ -50,10 +96,6 @@ msgstr "le 1er bit doit être le MSB" msgid "must specify all of sck/mosi/miso" msgstr "SCK, MOSI et MISO doivent tous être spécifiés" -#: extmod/modframebuf.c:299 -msgid "invalid format" -msgstr "format invalide" - #: extmod/modubinascii.c:38 extmod/moduhashlib.c:102 msgid "a bytes-like object is required" msgstr "un objet 'bytes-like' est requis" @@ -70,37 +112,18 @@ msgstr "digit non-héxadécimale trouvé" msgid "incorrect padding" msgstr "espacement incorrect" -#: extmod/moductypes.c:122 -msgid "syntax error in uctypes descriptor" -msgstr "erreur de syntaxe dans le descripteur d'uctypes" - -#: extmod/moductypes.c:219 -msgid "Cannot unambiguously get sizeof scalar" -msgstr "Impossible d'obtenir la taille du scalaire sans ambigüité" - -#: extmod/moductypes.c:397 -msgid "struct: no fields" -msgstr "struct: aucun champs" - -#: extmod/moductypes.c:530 -msgid "struct: cannot index" -msgstr "struct: indexage impossible" - -#: extmod/moductypes.c:544 -msgid "struct: index out of range" -msgstr "struct: index hors limite" - -#: extmod/moduheapq.c:38 -msgid "heap must be a list" -msgstr "'heap' doit être une liste" +#: extmod/machine_i2c.c:299 +msgid "invalid I2C peripheral" +msgstr "périphérique I2C invalide" -#: extmod/moduheapq.c:86 extmod/modutimeq.c:147 extmod/modutimeq.c:172 -msgid "empty heap" -msgstr "'heap' vide" +#: extmod/machine_i2c.c:340 extmod/machine_i2c.c:354 extmod/machine_i2c.c:368 +#: extmod/machine_i2c.c:392 +msgid "I2C operation not supported" +msgstr "opération sur I2C non supportée" -#: extmod/modujson.c:281 -msgid "syntax error in JSON" -msgstr "erreur de syntaxe dans le JSON" +#: extmod/vfs_posix_file.c:48 py/objstringio.c:43 ports/unix/file.c:50 +msgid "I/O operation on closed file" +msgstr "opération d'E/S sur un fichier fermé" #: extmod/modure.c:161 msgid "Splitting with sub-captures" @@ -110,823 +133,929 @@ msgstr "Fractionnement avec des captures 'sub'" msgid "Error in regex" msgstr "Erreur dans l'expression régulière" -#: extmod/modussl_axtls.c:81 -msgid "invalid key" -msgstr "clé invalide" +#: extmod/machine_mem.c:45 ports/unix/modmachine.c:53 +#, c-format +msgid "address %08x is not aligned to %d bytes" +msgstr "l'adresse %08x n'est pas alignée sur %d octets" -#: extmod/modussl_axtls.c:87 -msgid "invalid cert" -msgstr "certificat invalide" +#: py/vm.c:255 +msgid "local variable referenced before assignment" +msgstr "variable locale référencée avant d'être assignée" -#: extmod/modutimeq.c:131 -msgid "queue overflow" -msgstr "dépassement de file" +#: py/vm.c:1142 +msgid "no active exception to reraise" +msgstr "aucune exception active a relevé" -#: extmod/moduzlib.c:97 -msgid "compression header" -msgstr "entête de compression" +#: py/vm.c:1284 +msgid "byte code not implemented" +msgstr "bytecode non implémenté" -#: extmod/uos_dupterm.c:120 -msgid "invalid dupterm index" -msgstr "index invalide pour dupterm" +#: py/builtinimport.c:253 lib/utils/pyexec.c:97 +msgid "script compilation not supported" +msgstr "compilation du script non supporté" -#: extmod/vfs_fat.c:426 py/moduerrno.c:150 -msgid "Read-only filesystem" -msgstr "Système de fichier en lecture seule" +#: py/builtinimport.c:338 +msgid "cannot perform relative import" +msgstr "ne peut pas réaliser un import relatif" -#: extmod/vfs_posix_file.c:48 ports/unix/file.c:50 py/objstringio.c:43 -msgid "I/O operation on closed file" -msgstr "opération d'E/S sur un fichier fermé" +#: py/builtinimport.c:422 py/builtinimport.c:534 +msgid "module not found" +msgstr "module introuvable" -#: lib/embed/abort_.c:8 -msgid "abort() called" -msgstr "abort() appelé" +#: py/builtinimport.c:425 py/builtinimport.c:537 +msgid "no module named '%q'" +msgstr "pas de module '%q'" -#: lib/netutils/netutils.c:83 -msgid "invalid arguments" -msgstr "arguments invalides" +#: py/builtinimport.c:512 +msgid "relative import" +msgstr "import relatif" -#: lib/utils/pyexec.c:97 py/builtinimport.c:253 -msgid "script compilation not supported" -msgstr "compilation du script non supporté" +#: py/moduerrno.c:143 py/moduerrno.c:146 +msgid "Permission denied" +msgstr "Permission refusée" -#: main.c:143 -msgid " output:\n" -msgstr " sortie:\n" +#: py/moduerrno.c:144 +msgid "No such file/directory" +msgstr "Fichier/dossier introuvable" -#: main.c:157 main.c:230 +#: py/moduerrno.c:145 +msgid "Input/output error" +msgstr "Erreur d'entrée/sortie" + +#: py/moduerrno.c:147 +msgid "File exists" +msgstr "Le fichier existe" + +#: py/moduerrno.c:148 +msgid "Unsupported operation" +msgstr "Opération non supportée" + +#: py/moduerrno.c:149 +msgid "Invalid argument" +msgstr "Argument invalide" + +#: py/persistentcode.c:223 msgid "" -"Auto-reload is on. Simply save files over USB to run them or enter REPL to " -"disable.\n" +"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" +"mpy-update for more info." msgstr "" -"Auto-chargement activé. Copiez simplement les fichiers en USB pour les " -"lancer ou entrez sur REPL pour le désactiver.\n" +"Fichier .mpy incompatible. Merci de mettre à jour tous les .mpy. Voir http://" +"adafru.it/mpy-update pour plus d'informations." -#: main.c:159 -msgid "Running in safe mode! Auto-reload is off.\n" -msgstr "Mode sans-échec. Auto-rechargement désactivé.\n" +#: py/persistentcode.c:326 +msgid "can only save bytecode" +msgstr "ne peut sauvegarder que du bytecode" -#: main.c:161 main.c:232 -msgid "Auto-reload is off.\n" -msgstr "Auto-rechargement désactivé.\n" +#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 +#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 +#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 +msgid "buffer too small" +msgstr "tampon trop petit" -#: main.c:175 -msgid "Running in safe mode! Not running saved code.\n" -msgstr "Mode sans-échec! Le code sauvegardé ne s'éxecute pas.\n" +#: py/objlist.c:273 +msgid "pop from empty list" +msgstr "pop d'une liste vide" -#: main.c:191 -msgid "WARNING: Your code filename has two extensions\n" -msgstr "ATTENTION: le nom de fichier de votre code a deux extensions\n" +#: py/objrange.c:110 +msgid "zero step" +msgstr "'step' nul" -#: main.c:239 -msgid "You requested starting safe mode by " -msgstr "Vous avez demandé à démarrer en mode sans-échec par " +#: py/objgenerator.c:108 +msgid "can't send non-None value to a just-started generator" +msgstr "" +"on ne peut envoyer une valeur différente de None à un générateur fraîchement " +"démarré" -#: main.c:242 -msgid "To exit, please reset the board without " -msgstr "Pour quitter, redémarrez la carte SVP sans " +#: py/objgenerator.c:126 +msgid "generator already executing" +msgstr "générateur déjà en cours d'exécution" -#: main.c:249 -msgid "" -"You are running in safe mode which means something really bad happened.\n" +#: py/objgenerator.c:229 +msgid "generator ignored GeneratorExit" +msgstr "le générateur a ignoré GeneratorExit" + +#: py/objgenerator.c:251 +msgid "can't pend throw to just-started generator" msgstr "" -"Vous êtes en mode sans-échec ce qui signifie que quelque chose demauvais est " -"arrivé.\n" -#: main.c:251 -msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" -msgstr "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" +#: py/parse.c:726 +msgid "constant must be an integer" +msgstr "les constantes doivent être des entiers" -#: main.c:252 -msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" -msgstr "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" +#: py/parse.c:868 +msgid "Unable to init parser" +msgstr "Impossible d'initialiser le parser" -#: main.c:255 -msgid "" -"The microcontroller's power dipped. Please make sure your power supply " -"provides\n" -msgstr "" -"L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " -"alimentation fournit\n" +#: py/parse.c:1170 +msgid "unexpected indent" +msgstr "indentation inattendue" -#: main.c:256 -msgid "" -"enough power for the whole circuit and press reset (after ejecting " -"CIRCUITPY).\n" -msgstr "" -"assez de puissance pour l'ensemble du circuit et appuyez sur 'reset' (après " -"avoir éjecter CIRCUITPY).\n" +#: py/parse.c:1173 +msgid "unindent does not match any outer indentation level" +msgstr "la désindentation ne correspond à aucune indentation" -#: main.c:260 -msgid "Press any key to enter the REPL. Use CTRL-D to reload." -msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." +#: py/parse.c:1176 py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 +#: py/compile.c:2742 +msgid "invalid syntax" +msgstr "syntaxe invalide" -#: main.c:415 -msgid "soft reboot\n" -msgstr "redémarrage logiciel\n" +#: py/obj.c:90 +msgid "Traceback (most recent call last):\n" +msgstr "Trace (appels les plus récents en dernier):\n" -#: ports/atmel-samd/audio_dma.c:285 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 -msgid "All sync event channels in use" -msgstr "Tous les canaux d'événements de synchro sont utilisés" +#: py/obj.c:94 +msgid " File \"%q\", line %d" +msgstr " Fichier \"%q\", ligne %d" -#: ports/atmel-samd/bindings/samd/Clock.c:135 -msgid "calibration is read only" -msgstr "la calibration est en lecture seule" +#: py/obj.c:96 +msgid " File \"%q\"" +msgstr " Fichier \"%q\"" -#: ports/atmel-samd/bindings/samd/Clock.c:137 -msgid "calibration is out of range" -msgstr "la calibration est hors gamme" +#: py/obj.c:100 +msgid ", in %q\n" +msgstr ", dans %q\n" -#: ports/atmel-samd/board_busses.c:39 -msgid "No default I2C bus" -msgstr "Pas de bus I2C par défaut" +#: py/obj.c:257 +msgid "can't convert to int" +msgstr "ne peut convertir en entier int" -#: ports/atmel-samd/board_busses.c:64 -msgid "No default SPI bus" -msgstr "Pas de bus SPI par défaut" +#: py/obj.c:260 +#, c-format +msgid "can't convert %s to int" +msgstr "ne peut convertir %s en entier int" -#: ports/atmel-samd/board_busses.c:91 -msgid "No default UART bus" -msgstr "Pas de bus UART par défaut" +#: py/obj.c:320 +msgid "can't convert to float" +msgstr "ne peut convertir en nombre à virgule flottante (float)" -#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 -#: ports/nrf/common-hal/analogio/AnalogIn.c:39 -msgid "Pin does not have ADC capabilities" -msgstr "la broche ne peut être utilisé pour l'ADC" +#: py/obj.c:323 +#, c-format +msgid "can't convert %s to float" +msgstr "ne peut convertir %s en nombre à virgule flottante (float)" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 -msgid "No DAC on chip" -msgstr "Pas de DAC sur la puce" +#: py/obj.c:353 +msgid "can't convert to complex" +msgstr "ne peut convertir en nombre complexe" -#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 -msgid "AnalogOut not supported on given pin" -msgstr "AnalogOut n'est pas supporté sur cette broche" +#: py/obj.c:356 +#, c-format +msgid "can't convert %s to complex" +msgstr "ne peut convertir %s en nombre complexe" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 -msgid "Invalid bit clock pin" -msgstr "Broche invalide pour 'bit clock'" +#: py/obj.c:371 +msgid "expected tuple/list" +msgstr "un tuple ou une liste est attendu" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 -msgid "Bit clock and word select must share a clock unit" -msgstr "'bit clock' et 'word select' doivent partagé une horloge" +#: py/obj.c:374 +#, c-format +msgid "object '%s' is not a tuple or list" +msgstr "l'objet '%s' n'est pas un tuple ou une liste" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 -msgid "Invalid data pin" -msgstr "Broche de données invalide" +#: py/obj.c:385 +msgid "tuple/list has wrong length" +msgstr "tuple/liste a une mauvaise longueur" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 -msgid "Serializer in use" -msgstr "Sérialiseur en cours d'utilisation" +#: py/obj.c:387 +#, c-format +msgid "requested length %d but object has length %d" +msgstr "la longueur requise est %d mais l'objet est long de %d" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 -msgid "Clock unit in use" -msgstr "Horloge en cours d'utilisation" +#: py/obj.c:400 +msgid "indices must be integers" +msgstr "les indices doivent être des entiers" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 -msgid "Unable to find free GCLK" -msgstr "Impossible de trouver un GCLK libre" +#: py/obj.c:403 +msgid "%q indices must be integers, not %s" +msgstr "les indices %q doivent être des entiers, pas %s" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 -msgid "Too many channels in sample." -msgstr "Trop de canaux dans l'échantillon." +#: py/obj.c:420 ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 +msgid "index out of range" +msgstr "index hors gamme" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:326 -msgid "No DMA channel found" -msgstr "Aucun canal DMA trouvé" +#: py/obj.c:423 +msgid "%q index out of range" +msgstr "index %q hors gamme" -#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:328 -msgid "Unable to allocate buffers for signed conversion" -msgstr "Impossible d'allouer des tampons pour une conversion signée" +#: py/obj.c:455 +msgid "object has no len" +msgstr "l'objet n'a pas de len" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 -msgid "Invalid clock pin" -msgstr "Broche d'horloge invalide" +#: py/obj.c:458 +#, c-format +msgid "object of type '%s' has no len()" +msgstr "l'objet de type '%s' n'a pas de len()" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 -msgid "Only 8 or 16 bit mono with " -msgstr "Uniquement 8 ou 16 bit mono avec " +#: py/obj.c:496 +msgid "object does not support item deletion" +msgstr "l'objet ne supporte pas la suppression d'éléments" -#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 -msgid "sampling rate out of range" -msgstr "taux d'échantillonage hors gamme" +#: py/obj.c:499 +#, c-format +msgid "'%s' object does not support item deletion" +msgstr "l'objet '%s' ne supporte pas la suppression d'éléments" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:69 -msgid "DAC already in use" -msgstr "DAC déjà utilisé" +#: py/obj.c:503 +msgid "object is not subscriptable" +msgstr "l'objet n'est pas sous-scriptable" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:73 -msgid "Right channel unsupported" -msgstr "Canal droit non supporté" +#: py/obj.c:506 +#, c-format +msgid "'%s' object is not subscriptable" +msgstr "l'objet '%s' n'est pas sous-scriptable" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:76 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:116 -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 -msgid "Invalid pin" -msgstr "Broche invalide" +#: py/obj.c:510 +msgid "object does not support item assignment" +msgstr "l'objet ne supporte pas l'assignation d'éléments" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:84 -msgid "Invalid pin for left channel" -msgstr "Broche invalide pour le canal gauche" +#: py/obj.c:513 +#, c-format +msgid "'%s' object does not support item assignment" +msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:88 -msgid "Invalid pin for right channel" -msgstr "Broche invalide pour le canal droit" +#: py/obj.c:544 +msgid "object with buffer protocol required" +msgstr "un objet avec un protocol de tampon est nécessaire" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:91 -msgid "Cannot output both channels on the same pin" -msgstr "On ne peut mettre les deux canaux sur la même broche" +#: py/objslice.c:66 +msgid "Length must be an int" +msgstr "La longueur doit être entière" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:173 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:186 -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:110 -msgid "All timers in use" -msgstr "Tous les timers sont utilisés" +#: py/objslice.c:71 +msgid "Length must be non-negative" +msgstr "La longueur ne doit pas être négative" -#: ports/atmel-samd/common-hal/audioio/AudioOut.c:215 -msgid "All event channels in use" -msgstr "Tous les canaux d'événements sont utilisés" +#: py/objslice.c:86 py/sequence.c:57 +msgid "slice step cannot be zero" +msgstr "le pas 'step' de slice ne peut être zéro" -#: ports/atmel-samd/common-hal/busio/I2C.c:71 -msgid "Not enough pins available" -msgstr "Pas assez de broches disponibles" +#: py/objslice.c:159 +msgid "Cannot subclass slice" +msgstr "On ne peut faire de subclass de slice" -#: ports/atmel-samd/common-hal/busio/I2C.c:78 -#: ports/atmel-samd/common-hal/busio/SPI.c:132 -#: ports/atmel-samd/common-hal/busio/UART.c:119 -#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 -#: ports/nrf/common-hal/busio/I2C.c:58 -msgid "Invalid pins" -msgstr "Broche invalide" +#: py/objdeque.c:107 +msgid "full" +msgstr "plein" -#: ports/atmel-samd/common-hal/busio/I2C.c:101 -msgid "SDA or SCL needs a pull up" -msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')" +#: py/objdeque.c:127 +msgid "empty" +msgstr "vide" -#: ports/atmel-samd/common-hal/busio/I2C.c:121 -msgid "Unsupported baudrate" -msgstr "Débit non supporté" +#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 +msgid "negative power with no float support" +msgstr "puissance négative sans support des nombres flottants" -#: ports/atmel-samd/common-hal/busio/UART.c:66 -msgid "bytes > 8 bits not supported" -msgstr "octets > 8 bits non supporté" +#: py/objint_longlong.c:222 py/objfloat.c:270 py/modmath.c:196 +#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 +msgid "division by zero" +msgstr "division par zéro" -#: ports/atmel-samd/common-hal/busio/UART.c:72 -msgid "tx and rx cannot both be None" -msgstr "TX et RX ne peuvent être None tous les deux" +#: py/objint_longlong.c:251 +msgid "ulonglong too large" +msgstr "ulonglong trop grand" -#: ports/atmel-samd/common-hal/busio/UART.c:139 -msgid "Failed to allocate RX buffer" -msgstr "Echec de l'allocation du tampon RX" +#: py/objstrunicode.c:134 +#, c-format +msgid "string indices must be integers, not %s" +msgstr "les indices de chaîne de caractère doivent être des entiers, pas %s" -#: ports/atmel-samd/common-hal/busio/UART.c:147 -msgid "Could not initialize UART" -msgstr "L'UART n'a pu être initialisé" +#: py/objstrunicode.c:145 py/objstrunicode.c:164 +msgid "string index out of range" +msgstr "index de chaîne hors gamme" -#: ports/atmel-samd/common-hal/busio/UART.c:234 -msgid "No RX pin" -msgstr "Pas de broche RX" +#: py/objstrunicode.c:191 py/objtuple.c:187 py/objstr.c:427 py/objarray.c:413 +#: shared-bindings/nvm/ByteArray.c:85 +msgid "only slices with step=1 (aka None) are supported" +msgstr "seuls les slices avec 'step=1' (cad None) sont supportées" -#: ports/atmel-samd/common-hal/busio/UART.c:284 -msgid "No TX pin" -msgstr "Pas de broche TX" +#: py/argcheck.c:44 +msgid "function does not take keyword arguments" +msgstr "la fonction ne prend pas d'arguments nommés" -#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 -#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 -msgid "Cannot get pull while in output mode" -msgstr "Ne peux être tirer ('pull') en mode 'output'" +#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 +#, c-format +msgid "function takes %d positional arguments but %d were given" +msgstr "la fonction prend %d argument(s) mais %d ont été donné(s)" + +#: py/argcheck.c:64 +#, c-format +msgid "function missing %d required positional arguments" +msgstr "il manque %d arguments obligatoires à la fonction" + +#: py/argcheck.c:72 +#, c-format +msgid "function expected at most %d arguments, got %d" +msgstr "la fonction attendait au plus %d arguments, reçu %d" + +#: py/argcheck.c:97 +msgid "'%q' argument required" +msgstr "'%q' argument requis" + +#: py/argcheck.c:122 +msgid "extra positional arguments given" +msgstr "argument positionnel donné en plus" + +#: py/argcheck.c:130 +msgid "extra keyword arguments given" +msgstr "argument nommé donné en plus" + +#: py/argcheck.c:142 +msgid "argument num/types mismatch" +msgstr "argument num/types ne correspond pas" + +#: py/argcheck.c:147 +msgid "keyword argument(s) not yet implemented - use normal args instead" +msgstr "" +"argument(s) nommé(s) pas encore implémenté - utilisez les arguments normaux" + +#: py/objfloat.c:308 py/parsenum.c:331 +msgid "complex values not supported" +msgstr "valeurs complexes non supportées" + +#: py/bc.c:88 py/objnamedtuple.c:108 +msgid "%q() takes %d positional arguments but %d were given" +msgstr "%q() prend %d arguments mais %d ont été donnés" + +#: py/bc.c:197 py/bc.c:215 +msgid "unexpected keyword argument" +msgstr "argument nommé imprévu" + +#: py/bc.c:199 +msgid "keywords must be strings" +msgstr "les noms doivent être des chaînes de caractère" + +#: py/bc.c:206 py/objnamedtuple.c:138 +msgid "function got multiple values for argument '%q'" +msgstr "la fonction a reçu plusieurs valeurs pour l'argument '%q'" + +#: py/bc.c:218 py/objnamedtuple.c:130 +msgid "unexpected keyword argument '%q'" +msgstr "argument nommé '%q' imprévu" + +#: py/bc.c:244 +#, c-format +msgid "function missing required positional argument #%d" +msgstr "il manque l'argument obligatoire #%d" + +#: py/bc.c:260 +msgid "function missing required keyword argument '%q'" +msgstr "il manque l'argument nommé obligatoire '%q'" + +#: py/bc.c:269 +msgid "function missing keyword-only argument" +msgstr "il manque l'argument nommé obligatoire" -#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 -#: ports/esp8266/common-hal/microcontroller/__init__.c:64 -msgid "Cannot reset into bootloader because no bootloader is present." +#: py/emitinlinextensa.c:86 +msgid "can only have up to 4 parameters to Xtensa assembly" msgstr "" -"Ne peut être redémarré vers le bootloader car il n'y a pas de bootloader." -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:120 -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:366 -#: ports/nrf/common-hal/pulseio/PWMOut.c:227 -msgid "Invalid PWM frequency" -msgstr "Fréquence de PWM invalide" +#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 +msgid "parameters must be registers in sequence a2 to a5" +msgstr "les paramètres doivent être des registres dans la séquence a2 à a5" -#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:184 -msgid "All timers for this pin are in use" -msgstr "Tous les timers pour cette broche sont utilisés" +#: py/emitinlinextensa.c:162 +#, c-format +msgid "'%s' expects a register" +msgstr "'%s' attend un registre" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 -msgid "No hardware support on pin" -msgstr "Pas de support matériel pour cette broche" +#: py/emitinlinextensa.c:169 +#, c-format +msgid "'%s' expects an integer" +msgstr "'%s' attend un entier" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 -msgid "EXTINT channel already in use" -msgstr "Canal EXTINT déjà utilisé" +#: py/emitinlinextensa.c:174 +#, c-format +msgid "'%s' integer %d is not within range %d..%d" +msgstr "'%s' l'entier %d n'est pas dans la gamme %d..%d" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 +#: py/emitinlinextensa.c:182 #, c-format -msgid "Failed to allocate RX buffer of %d bytes" -msgstr "Echec de l'allocation de %d octets du tampon RX" +msgid "'%s' expects a label" +msgstr "'%s' attend un label" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 -msgid "pop from an empty PulseIn" -msgstr "'pop' d'une entrée PulseIn vide" +#: py/emitinlinextensa.c:193 +msgid "label '%q' not defined" +msgstr "label '%q' non supporté" -#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:235 -#: ports/esp8266/common-hal/pulseio/PulseIn.c:182 py/obj.c:420 -msgid "index out of range" -msgstr "index hors gamme" +#: py/emitinlinextensa.c:327 +#, c-format +msgid "unsupported Xtensa instruction '%s' with %d arguments" +msgstr "instruction Xtensa '%s' non supportée avec %d arguments" -#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:178 -msgid "Another send is already active" -msgstr "Un autre envoi est déjà actif" +#: py/modthread.c:240 +msgid "expecting a dict for keyword args" +msgstr "un dict est attendu pour les arguments nommés" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 -msgid "Both pins must support hardware interrupts" -msgstr "Les deux entrées doivent supporter les interruptions" +#: py/objset.c:371 +msgid "pop from an empty set" +msgstr "pop d'un ensemble set vide" -#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 -msgid "A hardware interrupt channel is already in use" -msgstr "Un canal d'interruptions est déjà utilisé" +#: py/modbuiltins.c:162 +msgid "chr() arg not in range(0x110000)" +msgstr "argument de chr() hors de la gamme range(0x11000)" -#: ports/atmel-samd/common-hal/rtc/RTC.c:101 -msgid "calibration value out of range +/-127" -msgstr "valeur de calibration hors gamme +/-127" +#: py/modbuiltins.c:171 +msgid "chr() arg not in range(256)" +msgstr "argument de chr() hors de la gamme range(256)" -#: ports/atmel-samd/common-hal/storage/__init__.c:48 -msgid "Cannot remount '/' when USB is active." -msgstr "'/' ne peut être remonté quand l'USB est actif." +#: py/modbuiltins.c:285 +msgid "arg is an empty sequence" +msgstr "l'argument est une séquence vide" -#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 -msgid "No free GCLKs" -msgstr "Pas de GCLK libre" +#: py/modbuiltins.c:350 +msgid "ord expects a character" +msgstr "ord attend un caractère" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 -#: ports/nrf/common-hal/usb_hid/Device.c:45 +#: py/modbuiltins.c:353 #, c-format -msgid "Buffer incorrect size. Should be %d bytes." -msgstr "Tampon de taille incorrect. Devrait être de %d octets." +msgid "ord() expected a character, but string of length %d found" +msgstr "ord() attend un caractère mais une chaîne de longueur %d a été trouvée" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:53 -msgid "USB Busy" -msgstr "USB occupé" +#: py/modbuiltins.c:363 +msgid "3-arg pow() not supported" +msgstr "pow() avec 3 arguments non supporté" -#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 -#: ports/nrf/common-hal/usb_hid/Device.c:59 -msgid "USB Error" -msgstr "Erreur USB" +#: py/modbuiltins.c:517 +msgid "must use keyword argument for key function" +msgstr "il faut utiliser un argument nommé pour une fonction key" -#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 -msgid "Pin %q does not have ADC capabilities" -msgstr "La broche %q n'a pas de convertisseur analogique-digital" +#: py/objobject.c:55 +msgid "__new__ arg must be a user-type" +msgstr "l'argument __new__ doit être d'un type défini par l'utilisateur" -#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 -msgid "No hardware support for analog out." -msgstr "Pas de support matériel pour une sortie analogique" +#: py/lexer.c:345 +msgid "unicode name escapes" +msgstr "échappement pour nom unicode" -#: ports/esp8266/common-hal/busio/SPI.c:72 -msgid "Pins not valid for SPI" -msgstr "Broche invalide pour le SPI" +#: py/modmath.c:41 shared-bindings/math/__init__.c:53 +msgid "math domain error" +msgstr "erreur de domaine math" -#: ports/esp8266/common-hal/busio/UART.c:45 -msgid "Only tx supported on UART1 (GPIO2)." -msgstr "Seul le TX est supporté sur l'UART1 (GPIO2)." +#: py/objtype.c:358 +msgid "__init__() should return None" +msgstr "__init__() doit retourner None" -#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 -msgid "invalid data bits" -msgstr "bits de données invalides" +#: py/objtype.c:360 +#, c-format +msgid "__init__() should return None, not '%s'" +msgstr "__init__() doit retourner None, pas '%s'" -#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 -msgid "invalid stop bits" -msgstr "bits d'arrêt invalides" +#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 +msgid "unreadable attribute" +msgstr "attribut illisible" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 -msgid "ESP8266 does not support pull down." -msgstr "L'ESP8266 ne supporte pas le rappel (pull-down)" +#: py/objtype.c:868 py/runtime.c:653 +msgid "object not callable" +msgstr "objet non appelable" -#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 -msgid "GPIO16 does not support pull up." -msgstr "le GPIO16 ne supporte pas le tirage (pull-up)" +#: py/objtype.c:870 py/runtime.c:655 +#, c-format +msgid "'%s' object is not callable" +msgstr "objet '%s' non appelable" -#: ports/esp8266/common-hal/microcontroller/__init__.c:66 -msgid "ESP8226 does not support safe mode." -msgstr "l'ESP8266 ne supporte pas le mode sans-échec" +#: py/objtype.c:978 +msgid "type takes 1 or 3 arguments" +msgstr "le type prend 1 ou 3 arguments" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 -#, c-format -msgid "Maximum PWM frequency is %dhz." -msgstr "La fréquence de PWM maximale est %dHz" +#: py/objtype.c:989 +msgid "cannot create instance" +msgstr "ne peut pas créer une instance" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 -#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 -msgid "Minimum PWM frequency is 1hz." -msgstr "La fréquence de PWM minimale est 1Hz" +#: py/objtype.c:991 +msgid "cannot create '%q' instances" +msgstr "ne peut pas créer une instance de '%q'" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 -#, c-format -msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +#: py/objtype.c:1047 +msgid "can't add special method to already-subclassed class" msgstr "" -"Les fréquences multiples de PWM ne sont pas supportées. Déjà réglé à %dHz" +"impossible d'ajouter une méthode spécial à une classe déjà sous-classée" -#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 -#, c-format -msgid "PWM not supported on pin %d" -msgstr "La broche %d ne supporte pas le PWM" +#: py/objtype.c:1091 py/objtype.c:1097 +msgid "type is not an acceptable base type" +msgstr "le type n'est pas un type de base accepté" -#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 -msgid "No PulseIn support for %q" -msgstr "Pas de support de PulseIn pour %q" +#: py/objtype.c:1100 +msgid "type '%q' is not an acceptable base type" +msgstr "le type '%q' n'est pas un type de base accepté" -#: ports/esp8266/common-hal/storage/__init__.c:34 -msgid "Unable to remount filesystem" -msgstr "Impossible de remonter le système de fichiers" +#: py/objtype.c:1137 +msgid "multiple inheritance not supported" +msgstr "héritage multiple non supporté" -#: ports/esp8266/common-hal/storage/__init__.c:38 -msgid "Use esptool to erase flash and re-upload Python instead" -msgstr "" -"Utilisez 'esptool' pour effacer la flash et rechargez Python à la place" +#: py/objtype.c:1164 +msgid "multiple bases have instance lay-out conflict" +msgstr "de multiple bases ont un conflit de lay-out d'instance" -#: ports/esp8266/esp_mphal.c:154 -msgid "C-level assert" +#: py/objtype.c:1205 +msgid "first argument to super() must be type" +msgstr "le premier argument de super() doit être un type" + +#: py/objtype.c:1370 +msgid "issubclass() arg 2 must be a class or a tuple of classes" msgstr "" +"l'argument 2 de issubclass() doit être une classe ou un tuple de classes" -#: ports/esp8266/machine_adc.c:57 -#, c-format -msgid "not a valid ADC Channel: %d" -msgstr "canal ADC non valide : %d" +#: py/objtype.c:1384 +msgid "issubclass() arg 1 must be a class" +msgstr "l'argument 1 de issubclass() doit être une classe" -#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 -msgid "impossible baudrate" -msgstr "débit impossible" +#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 +msgid "negative shift count" +msgstr "compte de décalage négatif" -#: ports/esp8266/machine_pin.c:129 -msgid "expecting a pin" -msgstr "une broche (Pin) est attendue" +#: py/objint_mpz.c:336 +msgid "pow() with 3 arguments requires integers" +msgstr "pow() avec 3 arguments nécessite des entiers" + +#: py/objint_mpz.c:347 +msgid "pow() 3rd argument cannot be 0" +msgstr "le 3e argument de pow() ne peut être 0" + +#: py/objint_mpz.c:415 +msgid "overflow converting long int to machine word" +msgstr "dépassement de capacité en convertissant un entier long en mot machine" + +#: py/objint.c:144 +msgid "can't convert inf to int" +msgstr "on ne peut convertir inf en int" + +#: py/objint.c:146 +msgid "can't convert NaN to int" +msgstr "on ne peut convertir NaN en int" -#: ports/esp8266/machine_pin.c:284 -msgid "Pin(16) doesn't support pull" -msgstr "Pin(16) ne supporte pas le tirage (pull)" +#: py/objint.c:163 +msgid "float too big" +msgstr "nombre flottant trop grand" -#: ports/esp8266/machine_pin.c:323 -msgid "invalid pin" -msgstr "broche invalide" +#: py/objint.c:328 +msgid "long int not supported in this build" +msgstr "entier long non supporté dans cette build" -#: ports/esp8266/machine_pin.c:389 -msgid "pin does not have IRQ capabilities" -msgstr "la broche n'a pas de capacité d'interruption (IRQ)" +#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 +msgid "small int overflow" +msgstr "dépassement de capacité d'un entier court" -#: ports/esp8266/machine_rtc.c:185 -msgid "buffer too long" -msgstr "tampon trop long" +#: py/builtinevex.c:99 +msgid "bad compile mode" +msgstr "mauvais mode de compilation" -#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 -#: ports/esp8266/machine_rtc.c:246 -msgid "invalid alarm" -msgstr "alarme invalide" +#: py/emitnative.c:183 +msgid "unknown type '%q'" +msgstr "type '%q' inconnu" -#: ports/esp8266/machine_uart.c:169 -#, c-format -msgid "UART(%d) does not exist" -msgstr "UART(%d) n'existe pas" +#: py/emitnative.c:260 +msgid "Viper functions don't currently support more than 4 arguments" +msgstr "les fonctions Viper ne supportent pas plus de 4 arguments actuellement" -#: ports/esp8266/machine_uart.c:219 -msgid "UART(1) can't read" -msgstr "UART(1) ne peut pas lire" +#: py/emitnative.c:742 +msgid "conversion to object" +msgstr "conversion en objet" -#: ports/esp8266/modesp.c:119 -msgid "len must be multiple of 4" -msgstr "'len' doit être un multiple de 4" +#: py/emitnative.c:921 +msgid "local '%q' used before type known" +msgstr "'%q' local utilisé avant d'en connaitre le type" -#: ports/esp8266/modesp.c:274 -#, c-format -msgid "memory allocation failed, allocating %u bytes for native code" -msgstr "" -"l'allocation de mémoire a échoué en allouant %u octets pour un code natif" +#: py/emitnative.c:1118 py/emitnative.c:1156 +msgid "can't load from '%q'" +msgstr "impossible de charger depuis '%q'" -#: ports/esp8266/modesp.c:317 -msgid "flash location must be below 1MByte" -msgstr "l'emplacement en mémoire flash doit être inférieure à 1Mo" +#: py/emitnative.c:1128 +msgid "can't load with '%q' index" +msgstr "impossible de charger avec l'index '%q'" -#: ports/esp8266/modmachine.c:63 -msgid "frequency can only be either 80Mhz or 160MHz" -msgstr "la fréquence doit être soit 80MHz soit 160MHz" +#: py/emitnative.c:1188 +msgid "local '%q' has type '%q' but source is '%q'" +msgstr "la variable locale '%q' a le type '%q' mais la source est '%q'" -#: ports/esp8266/modnetwork.c:61 -msgid "STA required" -msgstr "'STA' requis" +#: py/emitnative.c:1289 py/emitnative.c:1379 +msgid "can't store '%q'" +msgstr "impossible de stocker '%q'" -#: ports/esp8266/modnetwork.c:61 -msgid "AP required" -msgstr "'AP' requis" +#: py/emitnative.c:1358 py/emitnative.c:1419 +msgid "can't store to '%q'" +msgstr "imposible de stocker vers '%q'" -#: ports/esp8266/modnetwork.c:87 -msgid "Cannot update i/f status" -msgstr "le status i/f ne peut être mis à jour" +#: py/emitnative.c:1369 +msgid "can't store with '%q' index" +msgstr "impossible de stocker avec un index '%q'" -#: ports/esp8266/modnetwork.c:142 -msgid "Cannot set STA config" -msgstr "Impossible de configurer STA" +#: py/emitnative.c:1540 +msgid "can't implicitly convert '%q' to 'bool'" +msgstr "impossible de convertir implicitement '%q' en 'bool'" -#: ports/esp8266/modnetwork.c:144 -msgid "Cannot connect to AP" -msgstr "Impossible de se connecter à 'AP'" +#: py/emitnative.c:1774 +msgid "unary op %q not implemented" +msgstr "opération unaire '%q' non implémentée" -#: ports/esp8266/modnetwork.c:152 -msgid "Cannot disconnect from AP" -msgstr "Impossible de se déconnecter de 'AP'" +#: py/emitnative.c:1930 +msgid "binary op %q not implemented" +msgstr "opération binaire '%q' non implémentée" -#: ports/esp8266/modnetwork.c:173 -msgid "unknown status param" -msgstr "paramètre de status inconnu" +#: py/emitnative.c:1951 +msgid "can't do binary op between '%q' and '%q'" +msgstr "opération binaire impossible entre '%q' et '%q'" -#: ports/esp8266/modnetwork.c:222 -msgid "STA must be active" -msgstr "'STA' doit être actif" +#: py/emitnative.c:2126 +msgid "casting" +msgstr "typage" -#: ports/esp8266/modnetwork.c:239 -msgid "scan failed" -msgstr "échec du scan" +#: py/emitnative.c:2173 +msgid "return expected '%q' but got '%q'" +msgstr "return attendait '%q' mais a reçu '%q'" -#: ports/esp8266/modnetwork.c:306 -msgid "wifi_set_ip_info() failed" -msgstr "wifi_set_ip_info() a échoué" +#: py/emitnative.c:2191 +msgid "must raise an object" +msgstr "doit lever un objet" -#: ports/esp8266/modnetwork.c:319 -msgid "either pos or kw args are allowed" -msgstr "seuls les arguments 'pos' ou 'kw' sont autorisés" +#: py/emitnative.c:2201 +msgid "native yield" +msgstr "native yield" -#: ports/esp8266/modnetwork.c:329 -msgid "can't get STA config" -msgstr "impossible de récupérer de la config de 'STA'" +#: py/stream.c:96 +msgid "stream operation not supported" +msgstr "opération de flux non supportée" -#: ports/esp8266/modnetwork.c:331 -msgid "can't get AP config" -msgstr "impossible de récupérer de la config de 'AP'" +#: py/binary.c:112 +msgid "bad typecode" +msgstr "mauvais code type" -#: ports/esp8266/modnetwork.c:346 -msgid "invalid buffer length" -msgstr "longueur de tampon invalide" +#: py/objstr.c:261 +msgid "bytes value out of range" +msgstr "valeur des octets hors gamme" -#: ports/esp8266/modnetwork.c:405 -msgid "can't set STA config" -msgstr "impossible de régler la config de 'STA'" +#: py/objstr.c:270 +msgid "wrong number of arguments" +msgstr "mauvais nombres d'arguments" -#: ports/esp8266/modnetwork.c:407 -msgid "can't set AP config" -msgstr "impossible de régler la config de 'AP'" +#: py/objstr.c:467 +msgid "join expects a list of str/bytes objects consistent with self object" +msgstr "join attend une liste d'objets str/bytes cohérent avec l'objet self" -#: ports/esp8266/modnetwork.c:416 -msgid "can query only one param" -msgstr "ne peut demander qu'un seul paramètre" +#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 +msgid "empty separator" +msgstr "separateur vide" -#: ports/esp8266/modnetwork.c:469 -msgid "unknown config param" -msgstr "paramètre de config. inconnu" +#: py/objstr.c:641 +msgid "rsplit(None,n)" +msgstr "rsplit(None,n)" -#: ports/nrf/common-hal/analogio/AnalogOut.c:37 -msgid "AnalogOut functionality not supported" -msgstr "AnalogOut non supporté" +#: py/objstr.c:713 +msgid "substring not found" +msgstr "sous-chaîne non trouvée" -#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 -#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 -#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 -#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 -#: ports/nrf/common-hal/busio/UART.c:88 -msgid "busio.UART not yet implemented" -msgstr "busio.UART pas encore implémenté" +#: py/objstr.c:770 +msgid "start/end indices" +msgstr "indices de début/fin" -#: ports/nrf/common-hal/microcontroller/Processor.c:49 -#, c-format -msgid "Can not get temperature. status: 0x%02x" -msgstr "Impossible de lire la température. status: 0x%02x" +#: py/objstr.c:931 +msgid "bad format string" +msgstr "chaîne mal-formée" -#: ports/nrf/drivers/bluetooth/ble_drv.c:199 -msgid "Cannot apply GAP parameters." -msgstr "Impossible d'appliquer les paramètres GAP" +#: py/objstr.c:953 +msgid "single '}' encountered in format string" +msgstr "'}' seule rencontrée dans une chaîne de format" -#: ports/nrf/drivers/bluetooth/ble_drv.c:213 -msgid "Cannot set PPCP parameters." -msgstr "Impossible d'appliquer les paramètres PPCP" +#: py/objstr.c:992 +msgid "bad conversion specifier" +msgstr "mauvaise spécification de conversion" -#: ports/nrf/drivers/bluetooth/ble_drv.c:245 -msgid "Can not query for the device address." -msgstr "Impossible d'obtenir l'adresse du périphérique" +#: py/objstr.c:996 +msgid "end of format while looking for conversion specifier" +msgstr "fin de format en cherchant une spécification de conversion" -#: ports/nrf/drivers/bluetooth/ble_drv.c:264 -msgid "Can not add Vendor Specific 128-bit UUID." -msgstr "Impossible d'ajouter l'UUID 128bits Vendor Specific" +#: py/objstr.c:998 +#, c-format +msgid "unknown conversion specifier %c" +msgstr "spécification %c de conversion inconnue" -#: ports/nrf/drivers/bluetooth/ble_drv.c:284 -#: ports/nrf/drivers/bluetooth/ble_drv.c:298 -msgid "Can not add Service." -msgstr "Impossible d'ajouter le Service" +#: py/objstr.c:1029 +msgid "unmatched '{' in format" +msgstr "'{' sans correspondance dans le format" -#: ports/nrf/drivers/bluetooth/ble_drv.c:373 -msgid "Can not add Characteristic." -msgstr "Impossible d'ajouter la Characteristic." +#: py/objstr.c:1036 +msgid "expected ':' after format specifier" +msgstr "':' attendu après la spécification de format" -#: ports/nrf/drivers/bluetooth/ble_drv.c:400 -msgid "Can not apply device name in the stack." -msgstr "Impossible d'appliquer le nom de périphérique dans la pile" +#: py/objstr.c:1050 +msgid "" +"can't switch from automatic field numbering to manual field specification" +msgstr "" +"impossible de passer d'une énumération auto des champs à une spécification " +"manuelle" -#: ports/nrf/drivers/bluetooth/ble_drv.c:464 -#: ports/nrf/drivers/bluetooth/ble_drv.c:514 -msgid "Can not encode UUID, to check length." -msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." +#: py/objstr.c:1055 py/objstr.c:1083 +msgid "tuple index out of range" +msgstr "index du tuple hors gamme" -#: ports/nrf/drivers/bluetooth/ble_drv.c:470 -#: ports/nrf/drivers/bluetooth/ble_drv.c:520 -msgid "Can encode UUID into the advertisment packet." -msgstr "" +#: py/objstr.c:1071 +msgid "attributes not supported yet" +msgstr "attribut pas encore supporté" -#: ports/nrf/drivers/bluetooth/ble_drv.c:545 -msgid "Can not fit data into the advertisment packet." +#: py/objstr.c:1079 +msgid "" +"can't switch from manual field specification to automatic field numbering" msgstr "" +"impossible de passer d'une spécification manuelle des champs à une " +"énumération auto" -#: ports/nrf/drivers/bluetooth/ble_drv.c:558 -#: ports/nrf/drivers/bluetooth/ble_drv.c:604 -#, c-format -msgid "Can not apply advertisment data. status: 0x%02x" -msgstr "" +#: py/objstr.c:1171 +msgid "invalid format specifier" +msgstr "spécificationde format invalide" -#: ports/nrf/drivers/bluetooth/ble_drv.c:614 -#, c-format -msgid "Can not start advertisment. status: 0x%02x" -msgstr "" +#: py/objstr.c:1192 +msgid "sign not allowed in string format specifier" +msgstr "signe non autorisé dans les spéc. de formats de chaînes de caractères" -#: ports/nrf/drivers/bluetooth/ble_drv.c:631 -#, c-format -msgid "Can not stop advertisment. status: 0x%02x" -msgstr "" +#: py/objstr.c:1200 +msgid "sign not allowed with integer format specifier 'c'" +msgstr "signe non autorisé avec la spéc. de format d'entier 'c'" -#: ports/nrf/drivers/bluetooth/ble_drv.c:650 -#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#: py/objstr.c:1259 #, c-format -msgid "Can not read attribute value. status: 0x%02x" -msgstr "Impossible de lire la valeur de l'attribut. status: 0x%02x" +msgid "unknown format code '%c' for object of type '%s'" +msgstr "code de format '%c' inconnu pour un objet de type '%s'" -#: ports/nrf/drivers/bluetooth/ble_drv.c:667 -#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#: py/objstr.c:1331 #, c-format -msgid "Can not write attribute value. status: 0x%02x" -msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'float'" +msgstr "code de format '%c' inconnu pour un objet de type 'float'" -#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#: py/objstr.c:1343 +msgid "'=' alignment not allowed in string format specifier" +msgstr "'=' alignement non autorisé dans la spéc. de format de chaîne" + +#: py/objstr.c:1367 #, c-format -msgid "Can not notify attribute value. status: 0x%02x" -msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%02x" +msgid "unknown format code '%c' for object of type 'str'" +msgstr "code de format '%c' inconnu pour un objet de type 'str'" -#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#: py/objstr.c:1415 +msgid "format requires a dict" +msgstr "le format nécessite un dict" + +#: py/objstr.c:1424 +msgid "incomplete format key" +msgstr "clé de format incomplète" + +#: py/objstr.c:1482 +msgid "incomplete format" +msgstr "format incomplet" + +#: py/objstr.c:1490 +msgid "not enough arguments for format string" +msgstr "pas assez d'argument pour la chaîne de format" + +#: py/objstr.c:1500 #, c-format -msgid "Can not start scanning. status: 0x%02x" -msgstr "Impossible de commencer à scanner. status: 0x%02x" +msgid "%%c requires int or char" +msgstr "%%c nécessite un entier int ou un caractère char" -#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#: py/objstr.c:1507 +msgid "integer required" +msgstr "entier requis" + +#: py/objstr.c:1570 #, c-format -msgid "Can not connect. status: 0x%02x" -msgstr "Connection impossible. status: 0x%02x" +msgid "unsupported format character '%c' (0x%x) at index %d" +msgstr "caractère de format '%c' (0x%x) non supporté à l'index %d" -#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 -#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 -msgid "Invalid UUID parameter" -msgstr "Paramètre UUID invalide" +#: py/objstr.c:1577 +msgid "not all arguments converted during string formatting" +msgstr "" +"tous les arguments n'ont pas été convertis pendant le formatage de la chaîne" -#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 -msgid "Invalid Service type" -msgstr "Type de service invalide" +#: py/objstr.c:2102 +msgid "can't convert to str implicitly" +msgstr "impossible de convertir en str implicitement" -#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 -msgid "Invalid UUID string length" -msgstr "Longeur de chaîne UUID invalide" +#: py/objstr.c:2106 +msgid "can't convert '%q' object to %q implicitly" +msgstr "impossible de convertir l'objet '%q' en '%q' implicitement" -#: ports/unix/modffi.c:138 -msgid "Unknown type" -msgstr "Type inconnu" +#: py/objcomplex.c:203 +msgid "can't do truncated division of a complex number" +msgstr "on ne peut pas faire de division tronquée d'un nombre complexe" -#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 -msgid "Error in ffi_prep_cif" -msgstr "Erreur dans ffi_prep_cif" +#: py/objcomplex.c:209 +msgid "complex division by zero" +msgstr "division complexe par zéro" -#: ports/unix/modffi.c:270 -msgid "ffi_prep_closure_loc" -msgstr "" +#: py/objcomplex.c:237 +msgid "0.0 to a complex power" +msgstr "0.0 à une puissance complexe" -#: ports/unix/modffi.c:413 -msgid "Don't know how to pass object to native function" -msgstr "Ne sais pas comment passer un objet à une fonction native" +#: py/modmicropython.c:155 +msgid "schedule stack full" +msgstr "pile de plannification pleine" -#: ports/unix/modusocket.c:474 -#, c-format -msgid "[addrinfo error %d]" -msgstr "" +#: py/objdict.c:314 +msgid "popitem(): dictionary is empty" +msgstr "popitem(): dictionnaire vide" -#: py/argcheck.c:44 -msgid "function does not take keyword arguments" -msgstr "la fonction ne prend pas d'arguments nommés" +#: py/objdict.c:357 +msgid "dict update sequence has wrong length" +msgstr "la séquence de mise à jour de dict a une mauvaise longueur" -#: py/argcheck.c:54 py/bc.c:85 py/objnamedtuple.c:104 -#, c-format -msgid "function takes %d positional arguments but %d were given" -msgstr "la fonction prend %d argument(s) mais %d ont été donné(s)" +#: py/runtime.c:206 +msgid "name not defined" +msgstr "nom non défini" -#: py/argcheck.c:64 -#, c-format -msgid "function missing %d required positional arguments" -msgstr "il manque %d arguments obligatoires à la fonction" +#: py/runtime.c:209 +msgid "name '%q' is not defined" +msgstr "nom '%q' non défini" -#: py/argcheck.c:72 -#, c-format -msgid "function expected at most %d arguments, got %d" -msgstr "la fonction attendait au plus %d arguments, reçu %d" +#: py/runtime.c:304 py/runtime.c:611 +msgid "unsupported type for operator" +msgstr "type non supporté pour l'opérateur" -#: py/argcheck.c:97 -msgid "'%q' argument required" -msgstr "'%q' argument requis" +#: py/runtime.c:307 +msgid "unsupported type for %q: '%s'" +msgstr "type non supporté pour %q: '%s'" -#: py/argcheck.c:122 -msgid "extra positional arguments given" -msgstr "argument positionnel donné en plus" +#: py/runtime.c:614 +msgid "unsupported types for %q: '%s', '%s'" +msgstr "type non supporté pour %q: '%s', '%s'" -#: py/argcheck.c:130 -msgid "extra keyword arguments given" -msgstr "argument nommé donné en plus" +#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 +msgid "wrong number of values to unpack" +msgstr "mauvais nombre de valeurs à dégrouper" -#: py/argcheck.c:142 -msgid "argument num/types mismatch" -msgstr "argument num/types ne correspond pas" +#: py/runtime.c:883 py/runtime.c:947 +#, c-format +msgid "need more than %d values to unpack" +msgstr "nécessite plus de %d valeur à dégrouper" -#: py/argcheck.c:147 -msgid "keyword argument(s) not yet implemented - use normal args instead" -msgstr "" -"argument(s) nommé(s) pas encore implémenté - utilisez les arguments normaux" +#: py/runtime.c:890 +#, c-format +msgid "too many values to unpack (expected %d)" +msgstr "trop de valeur à dégrouper (%d attendues)" -#: py/bc.c:88 py/objnamedtuple.c:108 -msgid "%q() takes %d positional arguments but %d were given" -msgstr "%q() prend %d arguments mais %d ont été donnés" +#: py/runtime.c:984 +msgid "argument has wrong type" +msgstr "l'argument est d'un mauvais type" -#: py/bc.c:197 py/bc.c:215 -msgid "unexpected keyword argument" -msgstr "argument nommé imprévu" +#: py/runtime.c:986 +msgid "argument should be a '%q' not a '%q'" +msgstr "l'argument devrait être un(e) '%q', pas '%q'" -#: py/bc.c:199 -msgid "keywords must be strings" -msgstr "les noms doivent être des chaînes de caractère" +#: py/runtime.c:1123 py/runtime.c:1197 +msgid "no such attribute" +msgstr "pas de tel attribut" -#: py/bc.c:206 py/objnamedtuple.c:138 -msgid "function got multiple values for argument '%q'" -msgstr "la fonction a reçu plusieurs valeurs pour l'argument '%q'" +#: py/runtime.c:1128 +msgid "type object '%q' has no attribute '%q'" +msgstr "l'objet de type '%q' n'a pas d'attribut '%q'" -#: py/bc.c:218 py/objnamedtuple.c:130 -msgid "unexpected keyword argument '%q'" -msgstr "argument nommé '%q' imprévu" +#: py/runtime.c:1132 py/runtime.c:1200 +msgid "'%s' object has no attribute '%q'" +msgstr "l'objet '%s' n'a pas d'attribut '%q'" -#: py/bc.c:244 +#: py/runtime.c:1238 +msgid "object not iterable" +msgstr "objet non itérable" + +#: py/runtime.c:1241 #, c-format -msgid "function missing required positional argument #%d" -msgstr "il manque l'argument obligatoire #%d" +msgid "'%s' object is not iterable" +msgstr "objet '%s' non itérable" -#: py/bc.c:260 -msgid "function missing required keyword argument '%q'" -msgstr "il manque l'argument nommé obligatoire '%q'" +#: py/runtime.c:1260 py/runtime.c:1296 +msgid "object not an iterator" +msgstr "l'objet n'est pas un itérateur" + +#: py/runtime.c:1262 py/runtime.c:1298 +#, c-format +msgid "'%s' object is not an iterator" +msgstr "l'objet '%s' n'est pas un itérateur" -#: py/bc.c:269 -msgid "function missing keyword-only argument" -msgstr "il manque l'argument nommé obligatoire" +#: py/runtime.c:1401 +msgid "exceptions must derive from BaseException" +msgstr "les exception doivent dériver de BaseException" -#: py/binary.c:112 -msgid "bad typecode" -msgstr "mauvais code type" +#: py/runtime.c:1430 +msgid "cannot import name %q" +msgstr "ne peut pas importer le nom %q" -#: py/builtinevex.c:99 -msgid "bad compile mode" -msgstr "mauvais mode de compilation" +#: py/runtime.c:1535 +msgid "memory allocation failed, heap is locked" +msgstr "l'allocation de mémoire a échoué, la pile est vérrouillé" -#: py/builtinimport.c:338 -msgid "cannot perform relative import" -msgstr "ne peut pas réaliser un import relatif" +#: py/runtime.c:1539 +#, c-format +msgid "memory allocation failed, allocating %u bytes" +msgstr "l'allocation de mémoire a échoué en allouant %u octets" -#: py/builtinimport.c:422 py/builtinimport.c:534 -msgid "module not found" -msgstr "module introuvable" +#: py/runtime.c:1609 +msgid "maximum recursion depth exceeded" +msgstr "profondeur maximale de récursivité dépassée" -#: py/builtinimport.c:425 py/builtinimport.c:537 -msgid "no module named '%q'" -msgstr "pas de module '%q'" +#: py/objarray.c:426 +msgid "lhs and rhs should be compatible" +msgstr "Les parties gauches et droites doivent être compatibles" -#: py/builtinimport.c:512 -msgid "relative import" -msgstr "import relatif" +#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 +msgid "array/bytes required on right side" +msgstr "tableau/octets requis à droite" #: py/compile.c:397 py/compile.c:542 msgid "can't assign to expression" @@ -1008,11 +1137,6 @@ msgstr "argument non-nommé après */**" msgid "non-keyword arg after keyword arg" msgstr "argument non-nommé après argument nommé" -#: py/compile.c:2463 py/compile.c:2473 py/compile.c:2712 py/compile.c:2742 -#: py/parse.c:1176 -msgid "invalid syntax" -msgstr "syntaxe invalide" - #: py/compile.c:2465 msgid "expecting key:value for dict" msgstr "couple clef:valeur attendu pour un objet dict" @@ -1073,1209 +1197,1106 @@ msgstr "'data' nécessite au moins 2 arguments" msgid "'data' requires integer arguments" msgstr "'data' nécessite des arguments entiers" -#: py/emitinlinextensa.c:86 -msgid "can only have up to 4 parameters to Xtensa assembly" -msgstr "" - -#: py/emitinlinextensa.c:91 py/emitinlinextensa.c:96 -msgid "parameters must be registers in sequence a2 to a5" -msgstr "les paramètres doivent être des registres dans la séquence a2 à a5" - -#: py/emitinlinextensa.c:162 -#, c-format -msgid "'%s' expects a register" -msgstr "'%s' attend un registre" - -#: py/emitinlinextensa.c:169 -#, c-format -msgid "'%s' expects an integer" -msgstr "'%s' attend un entier" - -#: py/emitinlinextensa.c:174 -#, c-format -msgid "'%s' integer %d is not within range %d..%d" -msgstr "'%s' l'entier %d n'est pas dans la gamme %d..%d" - -#: py/emitinlinextensa.c:182 -#, c-format -msgid "'%s' expects a label" -msgstr "'%s' attend un label" - -#: py/emitinlinextensa.c:193 -msgid "label '%q' not defined" -msgstr "label '%q' non supporté" - -#: py/emitinlinextensa.c:327 -#, c-format -msgid "unsupported Xtensa instruction '%s' with %d arguments" -msgstr "instruction Xtensa '%s' non supportée avec %d arguments" - -#: py/emitnative.c:183 -msgid "unknown type '%q'" -msgstr "type '%q' inconnu" - -#: py/emitnative.c:260 -msgid "Viper functions don't currently support more than 4 arguments" -msgstr "les fonctions Viper ne supportent pas plus de 4 arguments actuellement" - -#: py/emitnative.c:742 -msgid "conversion to object" -msgstr "conversion en objet" - -#: py/emitnative.c:921 -msgid "local '%q' used before type known" -msgstr "'%q' local utilisé avant d'en connaitre le type" - -#: py/emitnative.c:1118 py/emitnative.c:1156 -msgid "can't load from '%q'" -msgstr "impossible de charger depuis '%q'" - -#: py/emitnative.c:1128 -msgid "can't load with '%q' index" -msgstr "impossible de charger avec l'index '%q'" - -#: py/emitnative.c:1188 -msgid "local '%q' has type '%q' but source is '%q'" -msgstr "la variable locale '%q' a le type '%q' mais la source est '%q'" - -#: py/emitnative.c:1289 py/emitnative.c:1379 -msgid "can't store '%q'" -msgstr "impossible de stocker '%q'" - -#: py/emitnative.c:1358 py/emitnative.c:1419 -msgid "can't store to '%q'" -msgstr "imposible de stocker vers '%q'" - -#: py/emitnative.c:1369 -msgid "can't store with '%q' index" -msgstr "impossible de stocker avec un index '%q'" - -#: py/emitnative.c:1540 -msgid "can't implicitly convert '%q' to 'bool'" -msgstr "impossible de convertir implicitement '%q' en 'bool'" - -#: py/emitnative.c:1774 -msgid "unary op %q not implemented" -msgstr "opération unaire '%q' non implémentée" - -#: py/emitnative.c:1930 -msgid "binary op %q not implemented" -msgstr "opération binaire '%q' non implémentée" - -#: py/emitnative.c:1951 -msgid "can't do binary op between '%q' and '%q'" -msgstr "opération binaire impossible entre '%q' et '%q'" - -#: py/emitnative.c:2126 -msgid "casting" -msgstr "typage" - -#: py/emitnative.c:2173 -msgid "return expected '%q' but got '%q'" -msgstr "return attendait '%q' mais a reçu '%q'" - -#: py/emitnative.c:2191 -msgid "must raise an object" -msgstr "doit lever un objet" - -#: py/emitnative.c:2201 -msgid "native yield" -msgstr "native yield" - -#: py/lexer.c:345 -msgid "unicode name escapes" -msgstr "échappement pour nom unicode" - -#: py/modbuiltins.c:162 -msgid "chr() arg not in range(0x110000)" -msgstr "argument de chr() hors de la gamme range(0x11000)" +#: py/sequence.c:264 +msgid "object not in sequence" +msgstr "l'objet n'est pas dans la séquence" -#: py/modbuiltins.c:171 -msgid "chr() arg not in range(256)" -msgstr "argument de chr() hors de la gamme range(256)" +#: py/objnamedtuple.c:92 +msgid "can't set attribute" +msgstr "attribut non modifiable" -#: py/modbuiltins.c:285 -msgid "arg is an empty sequence" -msgstr "l'argument est une séquence vide" +#: py/parsenum.c:60 +msgid "int() arg 2 must be >= 2 and <= 36" +msgstr "l'argument 2 de int() doit être >=2 et <=32" -#: py/modbuiltins.c:350 -msgid "ord expects a character" -msgstr "ord attend un caractère" +#: py/parsenum.c:151 +msgid "invalid syntax for integer" +msgstr "syntaxe invalide pour un entier" -#: py/modbuiltins.c:353 +#: py/parsenum.c:155 #, c-format -msgid "ord() expected a character, but string of length %d found" -msgstr "ord() attend un caractère mais une chaîne de longueur %d a été trouvée" - -#: py/modbuiltins.c:363 -msgid "3-arg pow() not supported" -msgstr "pow() avec 3 arguments non supporté" - -#: py/modbuiltins.c:517 -msgid "must use keyword argument for key function" -msgstr "il faut utiliser un argument nommé pour une fonction key" +msgid "invalid syntax for integer with base %d" +msgstr "syntaxe invalide pour un entier de base %d" -#: py/modmath.c:41 shared-bindings/math/__init__.c:53 -msgid "math domain error" -msgstr "erreur de domaine math" +#: py/parsenum.c:339 +msgid "invalid syntax for number" +msgstr "syntaxe invalide pour un nombre" -#: py/modmath.c:196 py/objfloat.c:270 py/objint_longlong.c:222 -#: py/objint_mpz.c:230 py/runtime.c:619 shared-bindings/math/__init__.c:346 -msgid "division by zero" -msgstr "division par zéro" +#: py/parsenum.c:342 +msgid "decimal numbers not supported" +msgstr "nombres décimaux non supportés" -#: py/modmicropython.c:155 -msgid "schedule stack full" -msgstr "pile de plannification pleine" +#: main.c:143 +msgid " output:\n" +msgstr " sortie:\n" -#: py/modstruct.c:145 py/modstruct.c:153 py/modstruct.c:234 py/modstruct.c:244 -#: shared-bindings/struct/__init__.c:103 shared-bindings/struct/__init__.c:145 -#: shared-module/struct/__init__.c:91 shared-module/struct/__init__.c:175 -msgid "buffer too small" -msgstr "tampon trop petit" +#: main.c:157 main.c:230 +msgid "" +"Auto-reload is on. Simply save files over USB to run them or enter REPL to " +"disable.\n" +msgstr "" +"Auto-chargement activé. Copiez simplement les fichiers en USB pour les " +"lancer ou entrez sur REPL pour le désactiver.\n" -#: py/modthread.c:240 -msgid "expecting a dict for keyword args" -msgstr "un dict est attendu pour les arguments nommés" +#: main.c:159 +msgid "Running in safe mode! Auto-reload is off.\n" +msgstr "Mode sans-échec. Auto-rechargement désactivé.\n" -#: py/moduerrno.c:143 py/moduerrno.c:146 -msgid "Permission denied" -msgstr "Permission refusée" +#: main.c:161 main.c:232 +msgid "Auto-reload is off.\n" +msgstr "Auto-rechargement désactivé.\n" -#: py/moduerrno.c:144 -msgid "No such file/directory" -msgstr "Fichier/dossier introuvable" +#: main.c:175 +msgid "Running in safe mode! Not running saved code.\n" +msgstr "Mode sans-échec! Le code sauvegardé ne s'éxecute pas.\n" -#: py/moduerrno.c:145 -msgid "Input/output error" -msgstr "Erreur d'entrée/sortie" +#: main.c:191 +msgid "WARNING: Your code filename has two extensions\n" +msgstr "ATTENTION: le nom de fichier de votre code a deux extensions\n" -#: py/moduerrno.c:147 -msgid "File exists" -msgstr "Le fichier existe" +#: main.c:239 +msgid "You requested starting safe mode by " +msgstr "Vous avez demandé à démarrer en mode sans-échec par " -#: py/moduerrno.c:148 -msgid "Unsupported operation" -msgstr "Opération non supportée" +#: main.c:242 +msgid "To exit, please reset the board without " +msgstr "Pour quitter, redémarrez la carte SVP sans " -#: py/moduerrno.c:149 -msgid "Invalid argument" -msgstr "Argument invalide" +#: main.c:249 +msgid "" +"You are running in safe mode which means something really bad happened.\n" +msgstr "" +"Vous êtes en mode sans-échec ce qui signifie que quelque chose demauvais est " +"arrivé.\n" -#: py/obj.c:90 -msgid "Traceback (most recent call last):\n" -msgstr "Trace (appels les plus récents en dernier):\n" +#: main.c:251 +msgid "Looks like our core CircuitPython code crashed hard. Whoops!\n" +msgstr "Il semblerait que votre code CircuitPython a durement planté. Oups!\n" -#: py/obj.c:94 -msgid " File \"%q\", line %d" -msgstr " Fichier \"%q\", ligne %d" +#: main.c:252 +msgid "Please file an issue here with the contents of your CIRCUITPY drive:\n" +msgstr "SVP, remontez le problème là avec le contenu du lecteur CIRCUITPY:\n" -#: py/obj.c:96 -msgid " File \"%q\"" -msgstr " Fichier \"%q\"" +#: main.c:255 +msgid "" +"The microcontroller's power dipped. Please make sure your power supply " +"provides\n" +msgstr "" +"L'alimentation du microcontroleur a chuté. Merci de vérifier que votre " +"alimentation fournit\n" -#: py/obj.c:100 -msgid ", in %q\n" -msgstr ", dans %q\n" +#: main.c:256 +msgid "" +"enough power for the whole circuit and press reset (after ejecting " +"CIRCUITPY).\n" +msgstr "" +"assez de puissance pour l'ensemble du circuit et appuyez sur 'reset' (après " +"avoir éjecter CIRCUITPY).\n" -#: py/obj.c:257 -msgid "can't convert to int" -msgstr "ne peut convertir en entier int" +#: main.c:260 +msgid "Press any key to enter the REPL. Use CTRL-D to reload." +msgstr "Appuyez sur une touche pour entrer sur REPL ou CTRL-D pour recharger." -#: py/obj.c:260 -#, c-format -msgid "can't convert %s to int" -msgstr "ne peut convertir %s en entier int" +#: main.c:415 +msgid "soft reboot\n" +msgstr "redémarrage logiciel\n" -#: py/obj.c:320 -msgid "can't convert to float" -msgstr "ne peut convertir en nombre à virgule flottante (float)" +#: shared-bindings/_stage/Text.c:69 +msgid "font must be 2048 bytes long" +msgstr "la fonte doit être longue de 2048 octets" -#: py/obj.c:323 -#, c-format -msgid "can't convert %s to float" -msgstr "ne peut convertir %s en nombre à virgule flottante (float)" +#: shared-bindings/_stage/Text.c:75 shared-bindings/_stage/Layer.c:77 +msgid "palette must be 32 bytes long" +msgstr "la palette doit être longue de 32 octets" -#: py/obj.c:353 -msgid "can't convert to complex" -msgstr "ne peut convertir en nombre complexe" +#: shared-bindings/_stage/Text.c:81 +msgid "chars buffer too small" +msgstr "tampon de caractères trop petit" -#: py/obj.c:356 -#, c-format -msgid "can't convert %s to complex" -msgstr "ne peut convertir %s en nombre complexe" +#: shared-bindings/_stage/Layer.c:71 +msgid "graphic must be 2048 bytes long" +msgstr "le graphic doit être long de 2048 octets" -#: py/obj.c:371 -msgid "expected tuple/list" -msgstr "un tuple ou une liste est attendu" +#: shared-bindings/_stage/Layer.c:84 +msgid "map buffer too small" +msgstr "tampon trop petit" -#: py/obj.c:374 -#, c-format -msgid "object '%s' is not a tuple or list" -msgstr "l'objet '%s' n'est pas un tuple ou une liste" +#: shared-bindings/supervisor/__init__.c:93 +msgid "Brightness must be between 0 and 255" +msgstr "La luminosité doit être entre 0 et 255" -#: py/obj.c:385 -msgid "tuple/list has wrong length" -msgstr "tuple/liste a une mauvaise longueur" +#: shared-bindings/supervisor/__init__.c:119 +msgid "Stack size must be at least 256" +msgstr "La pile doit être au moins de 256" -#: py/obj.c:387 -#, c-format -msgid "requested length %d but object has length %d" -msgstr "la longueur requise est %d mais l'objet est long de %d" +#: shared-bindings/i2cslave/I2CSlave.c:98 +#, fuzzy +msgid "can't convert address to int" +msgstr "ne peut convertir %s en entier int" -#: py/obj.c:400 -msgid "indices must be integers" -msgstr "les indices doivent être des entiers" +#: shared-bindings/i2cslave/I2CSlave.c:101 +msgid "address out of bounds" +msgstr "" -#: py/obj.c:403 -msgid "%q indices must be integers, not %s" -msgstr "les indices %q doivent être des entiers, pas %s" +#: shared-bindings/i2cslave/I2CSlave.c:107 +msgid "addresses is empty" +msgstr "" -#: py/obj.c:423 -msgid "%q index out of range" -msgstr "index %q hors gamme" +#: shared-bindings/busio/UART.c:98 +msgid "bits must be 7, 8 or 9" +msgstr "bits doivent être 7, 8 ou 9" -#: py/obj.c:455 -msgid "object has no len" -msgstr "l'objet n'a pas de len" +#: shared-bindings/busio/UART.c:110 +msgid "stop must be 1 or 2" +msgstr "stop doit être 1 ou 2" -#: py/obj.c:458 -#, c-format -msgid "object of type '%s' has no len()" -msgstr "l'objet de type '%s' n'a pas de len()" +#: shared-bindings/busio/SPI.c:133 shared-bindings/bitbangio/SPI.c:121 +#: shared-bindings/bitbangio/I2C.c:111 +msgid "Function requires lock" +msgstr "La fonction nécessite un verrou" -#: py/obj.c:496 -msgid "object does not support item deletion" -msgstr "l'objet ne supporte pas la suppression d'éléments" +#: shared-bindings/busio/SPI.c:168 shared-bindings/bitbangio/SPI.c:151 +msgid "Invalid polarity" +msgstr "Polarité invalide" -#: py/obj.c:499 -#, c-format -msgid "'%s' object does not support item deletion" -msgstr "l'objet '%s' ne supporte pas la suppression d'éléments" +#: shared-bindings/busio/SPI.c:172 shared-bindings/bitbangio/SPI.c:155 +msgid "Invalid phase" +msgstr "Phase invalide" -#: py/obj.c:503 -msgid "object is not subscriptable" -msgstr "l'objet n'est pas sous-scriptable" +#: shared-bindings/busio/SPI.c:176 shared-bindings/bitbangio/SPI.c:159 +msgid "Invalid number of bits" +msgstr "Nombre de bits invalide" -#: py/obj.c:506 -#, c-format -msgid "'%s' object is not subscriptable" -msgstr "l'objet '%s' n'est pas sous-scriptable" +#: shared-bindings/busio/SPI.c:341 shared-bindings/bitbangio/SPI.c:284 +msgid "buffer slices must be of equal length" +msgstr "les slices de tampon doivent être de longueurs égales" -#: py/obj.c:510 -msgid "object does not support item assignment" -msgstr "l'objet ne supporte pas l'assignation d'éléments" +#: shared-bindings/busio/I2C.c:120 +msgid "Function requires lock." +msgstr "La fonction nécessite un verrou." -#: py/obj.c:513 -#, c-format -msgid "'%s' object does not support item assignment" -msgstr "l'objet '%s' ne supporte pas l'assignation d'éléments" +#: shared-bindings/busio/I2C.c:210 shared-bindings/bitbangio/I2C.c:195 +msgid "Buffer must be at least length 1" +msgstr "Le tampon doit être de longueur au moins 1" -#: py/obj.c:544 -msgid "object with buffer protocol required" -msgstr "un objet avec un protocol de tampon est nécessaire" +#: shared-bindings/pulseio/PWMOut.c:164 +msgid "" +"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" +msgstr "" +"La valeur de cycle PWM doit être entre 0 et 65535 inclus (résolution de 16 " +"bits)" -#: py/objarray.c:413 py/objstr.c:427 py/objstrunicode.c:191 py/objtuple.c:187 -#: shared-bindings/nvm/ByteArray.c:85 -msgid "only slices with step=1 (aka None) are supported" -msgstr "seuls les slices avec 'step=1' (cad None) sont supportées" +#: shared-bindings/pulseio/PWMOut.c:195 +msgid "" +"PWM frequency not writeable when variable_frequency is False on construction." +msgstr "" +"La fréquence de PWM n'est pas modifiable quand variable_frequency est False " +"à laconstruction." -#: py/objarray.c:426 -msgid "lhs and rhs should be compatible" -msgstr "Les parties gauches et droites doivent être compatibles" +#: shared-bindings/pulseio/PulseOut.c:75 +#: shared-bindings/microcontroller/Pin.c:89 +#: shared-bindings/neopixel_write/__init__.c:67 +msgid "Expected a %q" +msgstr "Attendu : %q" -#: py/objarray.c:444 shared-bindings/nvm/ByteArray.c:107 -msgid "array/bytes required on right side" -msgstr "tableau/octets requis à droite" +#: shared-bindings/pulseio/PulseOut.c:134 +msgid "Array must contain halfwords (type 'H')" +msgstr "Le tableau doit contenir des halfwords (type 'H')" -#: py/objcomplex.c:203 -msgid "can't do truncated division of a complex number" -msgstr "on ne peut pas faire de division tronquée d'un nombre complexe" +#: shared-bindings/pulseio/PulseIn.c:275 +msgid "Cannot delete values" +msgstr "Impossible de supprimer les valeurs" -#: py/objcomplex.c:209 -msgid "complex division by zero" -msgstr "division complexe par zéro" +#: shared-bindings/pulseio/PulseIn.c:281 +msgid "Slices not supported" +msgstr "Slices non supportées" -#: py/objcomplex.c:237 -msgid "0.0 to a complex power" -msgstr "0.0 à une puissance complexe" +#: shared-bindings/pulseio/PulseIn.c:287 +msgid "index must be int" +msgstr "l'index doit être un entier" -#: py/objdeque.c:107 -msgid "full" -msgstr "plein" +#: shared-bindings/pulseio/PulseIn.c:293 +msgid "Read-only" +msgstr "Lecture seule" -#: py/objdeque.c:127 -msgid "empty" -msgstr "vide" +#: shared-bindings/touchio/TouchIn.c:173 +msgid "threshold must be in the range 0-65536" +msgstr "le seuil doit être dans la gamme 0-65536" -#: py/objdict.c:314 -msgid "popitem(): dictionary is empty" -msgstr "popitem(): dictionnaire vide" +#: shared-bindings/microcontroller/__init__.c:126 +msgid "Invalid run mode." +msgstr "Mode de lancement invalide" -#: py/objdict.c:357 -msgid "dict update sequence has wrong length" -msgstr "la séquence de mise à jour de dict a une mauvaise longueur" +#: shared-bindings/microcontroller/Pin.c:100 +msgid "%q in use" +msgstr "%q utilisé" -#: py/objfloat.c:308 py/parsenum.c:331 -msgid "complex values not supported" -msgstr "valeurs complexes non supportées" +#: shared-bindings/multiterminal/__init__.c:68 +msgid "Stream missing readinto() or write() method." +msgstr "Il manque une méthode readinto() ou write() au flux." -#: py/objgenerator.c:108 -msgid "can't send non-None value to a just-started generator" -msgstr "" -"on ne peut envoyer une valeur différente de None à un générateur fraîchement " -"démarré" +#: shared-bindings/time/__init__.c:80 +msgid "sleep length must be non-negative" +msgstr "la longueur de sleep ne doit pas être négative" -#: py/objgenerator.c:126 -msgid "generator already executing" -msgstr "générateur déjà en cours d'exécution" +#: shared-bindings/time/__init__.c:90 +msgid "time.struct_time() takes exactly 1 argument" +msgstr "time.struct_time() prend exactement 1 argument" -#: py/objgenerator.c:229 -msgid "generator ignored GeneratorExit" -msgstr "le générateur a ignoré GeneratorExit" +#: shared-bindings/time/__init__.c:93 +msgid "time.struct_time() takes a 9-sequence" +msgstr "time.struct_time() prend une séquence de longueur 9" -#: py/objgenerator.c:251 -msgid "can't pend throw to just-started generator" -msgstr "" +#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 +msgid "Tuple or struct_time argument required" +msgstr "Argument de type tuple ou struct_time nécessaire" -#: py/objint.c:144 -msgid "can't convert inf to int" -msgstr "on ne peut convertir inf en int" +#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 +msgid "function takes exactly 9 arguments" +msgstr "la fonction prend exactement 9 arguments" -#: py/objint.c:146 -msgid "can't convert NaN to int" -msgstr "on ne peut convertir NaN en int" +#: shared-bindings/time/__init__.c:192 shared-bindings/rtc/RTC.c:40 +#: shared-bindings/rtc/RTC.c:44 +msgid "RTC is not supported on this board" +msgstr "RTC non supportée sur cette carte" -#: py/objint.c:163 -msgid "float too big" -msgstr "nombre flottant trop grand" +#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 +msgid "timestamp out of range for platform time_t" +msgstr "timestamp hors gamme pour la plateforme time_t" -#: py/objint.c:328 -msgid "long int not supported in this build" -msgstr "entier long non supporté dans cette build" +#: shared-bindings/gamepad/GamePad.c:100 +msgid "too many arguments" +msgstr "trop d'arguments" -#: py/objint.c:334 py/objint.c:340 py/objint.c:350 py/objint.c:358 -msgid "small int overflow" -msgstr "dépassement de capacité d'un entier court" +#: shared-bindings/gamepad/GamePad.c:104 +msgid "expected a DigitalInOut" +msgstr "un objet DigitalInOut attendu" -#: py/objint_longlong.c:189 py/objint_mpz.c:283 py/runtime.c:486 -msgid "negative power with no float support" -msgstr "puissance négative sans support des nombres flottants" +#: shared-bindings/audioio/RawSample.c:98 +msgid "" +"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " +"'B'" +msgstr "" +"le tampon de sample_source doit être un bytearray ou un tableau de type " +"'h','H', 'b' ou 'B'" -#: py/objint_longlong.c:251 -msgid "ulonglong too large" -msgstr "ulonglong trop grand" +#: shared-bindings/audioio/RawSample.c:104 +msgid "buffer must be a bytes-like object" +msgstr "le tampon doit être un objet bytes-like" -#: py/objint_mpz.c:267 py/runtime.c:396 py/runtime.c:411 -msgid "negative shift count" -msgstr "compte de décalage négatif" +#: shared-bindings/audioio/WaveFile.c:78 +msgid "file must be a file opened in byte mode" +msgstr "le fichier doit être un fichier ouvert en mode byte" -#: py/objint_mpz.c:336 -msgid "pow() with 3 arguments requires integers" -msgstr "pow() avec 3 arguments nécessite des entiers" +#: shared-bindings/audioio/AudioOut.c:223 +#: shared-bindings/audiobusio/I2SOut.c:225 +msgid "Not playing" +msgstr "En pause" -#: py/objint_mpz.c:347 -msgid "pow() 3rd argument cannot be 0" -msgstr "le 3e argument de pow() ne peut être 0" +#: shared-bindings/storage/__init__.c:77 +msgid "filesystem must provide mount method" +msgstr "le system de fichier doit fournir une méthode 'mount'" -#: py/objint_mpz.c:415 -msgid "overflow converting long int to machine word" -msgstr "dépassement de capacité en convertissant un entier long en mot machine" +#: shared-bindings/digitalio/DigitalInOut.c:211 +msgid "Invalid direction." +msgstr "Direction invalide" -#: py/objlist.c:273 -msgid "pop from empty list" -msgstr "pop d'une liste vide" +#: shared-bindings/digitalio/DigitalInOut.c:240 +msgid "Cannot set value when direction is input." +msgstr "Impossible d'affecter une valeur quand la direction est input." -#: py/objnamedtuple.c:92 -msgid "can't set attribute" -msgstr "attribut non modifiable" +#: shared-bindings/digitalio/DigitalInOut.c:266 +#: shared-bindings/digitalio/DigitalInOut.c:281 +msgid "Drive mode not used when direction is input." +msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'" -#: py/objobject.c:55 -msgid "__new__ arg must be a user-type" -msgstr "l'argument __new__ doit être d'un type défini par l'utilisateur" +#: shared-bindings/digitalio/DigitalInOut.c:314 +#: shared-bindings/digitalio/DigitalInOut.c:331 +msgid "Pull not used when direction is output." +msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'" -#: py/objrange.c:110 -msgid "zero step" -msgstr "'step' nul" +#: shared-bindings/digitalio/DigitalInOut.c:340 +msgid "Unsupported pull value." +msgstr "Valeur de 'pull' non supportée" -#: py/objset.c:371 -msgid "pop from an empty set" -msgstr "pop d'un ensemble set vide" +#: shared-bindings/analogio/AnalogOut.c:118 +msgid "AnalogOut is only 16 bits. Value must be less than 65536." +msgstr "" +"AnalogOut est seulement 16 bits. Les valeurs doivent être inférieures à " +"65536." -#: py/objslice.c:66 -msgid "Length must be an int" -msgstr "La longueur doit être entière" +#: shared-bindings/rtc/RTC.c:52 +msgid "RTC calibration is not supported on this board" +msgstr "calibration de la RTC non supportée sur cette carte" -#: py/objslice.c:71 -msgid "Length must be non-negative" -msgstr "La longueur ne doit pas être négative" +#: shared-bindings/audiobusio/PDMIn.c:124 +msgid "Bit depth must be multiple of 8." +msgstr "La profondeur de bit doit être un multiple de 8." -#: py/objslice.c:86 py/sequence.c:57 -msgid "slice step cannot be zero" -msgstr "le pas 'step' de slice ne peut être zéro" +#: shared-bindings/audiobusio/PDMIn.c:128 +msgid "Oversample must be multiple of 8." +msgstr "Le sur-échantillonage doit être un multiple de 8." -#: py/objslice.c:159 -msgid "Cannot subclass slice" -msgstr "On ne peut faire de subclass de slice" +#: shared-bindings/audiobusio/PDMIn.c:136 +msgid "Microphone startup delay must be in range 0.0 to 1.0" +msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0" -#: py/objstr.c:261 -msgid "bytes value out of range" -msgstr "valeur des octets hors gamme" +#: shared-bindings/audiobusio/PDMIn.c:193 +msgid "destination_length must be an int >= 0" +msgstr "destination_length doit être un int >= 0" -#: py/objstr.c:270 -msgid "wrong number of arguments" -msgstr "mauvais nombres d'arguments" +#: shared-bindings/audiobusio/PDMIn.c:199 +msgid "Cannot record to a file" +msgstr "impossible d'enregistrer vers un fichier" -#: py/objstr.c:467 -msgid "join expects a list of str/bytes objects consistent with self object" -msgstr "join attend une liste d'objets str/bytes cohérent avec l'objet self" +#: shared-bindings/audiobusio/PDMIn.c:202 +msgid "Destination capacity is smaller than destination_length." +msgstr "La capacité de la cible est plus petite que destination_length." -#: py/objstr.c:542 py/objstr.c:647 py/objstr.c:1744 -msgid "empty separator" -msgstr "separateur vide" +#: shared-bindings/audiobusio/PDMIn.c:206 +msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +msgstr "" +"le tampon de destination doit être un tableau de type 'H' pour bit_depth = 16" -#: py/objstr.c:641 -msgid "rsplit(None,n)" -msgstr "rsplit(None,n)" +#: shared-bindings/audiobusio/PDMIn.c:208 +msgid "" +"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +msgstr "" +"le tampon de destination doit être un tableau de type 'B' pour bit_depth = 8" -#: py/objstr.c:713 -msgid "substring not found" -msgstr "sous-chaîne non trouvée" +#: shared-bindings/util.c:38 +msgid "" +"Object has been deinitialized and can no longer be used. Create a new object." +msgstr "" +"L'objet a été désinitialisé et ne peut plus être utilisé. Créez un nouvel " +"objet." -#: py/objstr.c:770 -msgid "start/end indices" -msgstr "indices de début/fin" +#: shared-bindings/os/__init__.c:200 +msgid "No hardware random available" +msgstr "Pas de source matérielle d'aléa disponible" -#: py/objstr.c:931 -msgid "bad format string" -msgstr "chaîne mal-formée" +#: shared-bindings/nvm/ByteArray.c:99 +msgid "Slice and value different lengths." +msgstr "Slice et valeur de tailles différentes" -#: py/objstr.c:953 -msgid "single '}' encountered in format string" -msgstr "'}' seule rencontrée dans une chaîne de format" +#: shared-bindings/nvm/ByteArray.c:104 +msgid "Array values should be single bytes." +msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'" -#: py/objstr.c:992 -msgid "bad conversion specifier" -msgstr "mauvaise spécification de conversion" +#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 +msgid "Unable to write to nvm." +msgstr "Impossible d'écrire sur la nvm" -#: py/objstr.c:996 -msgid "end of format while looking for conversion specifier" -msgstr "fin de format en cherchant une spécification de conversion" +#: shared-bindings/nvm/ByteArray.c:137 +msgid "Bytes must be between 0 and 255." +msgstr "Les octets 'bytes' doivent être entre 0 et 255" -#: py/objstr.c:998 -#, c-format -msgid "unknown conversion specifier %c" -msgstr "spécification %c de conversion inconnue" +#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 +msgid "stop not reachable from start" +msgstr "stop n'est pas accessible de start" -#: py/objstr.c:1029 -msgid "unmatched '{' in format" -msgstr "'{' sans correspondance dans le format" +#: shared-bindings/random/__init__.c:111 +msgid "step must be non-zero" +msgstr "le pas 'step' doit être non nul" -#: py/objstr.c:1036 -msgid "expected ':' after format specifier" -msgstr "':' attendu après la spécification de format" +#: shared-bindings/random/__init__.c:114 +msgid "invalid step" +msgstr "pas invalide" -#: py/objstr.c:1050 -msgid "" -"can't switch from automatic field numbering to manual field specification" -msgstr "" -"impossible de passer d'une énumération auto des champs à une spécification " -"manuelle" +#: shared-bindings/random/__init__.c:146 +msgid "empty sequence" +msgstr "séquence vide" + +#: shared-module/bitbangio/SPI.c:45 +msgid "Clock pin init failed." +msgstr "Echec de l'init. de la broche d'horloge" -#: py/objstr.c:1055 py/objstr.c:1083 -msgid "tuple index out of range" -msgstr "index du tuple hors gamme" +#: shared-module/bitbangio/SPI.c:51 +msgid "MOSI pin init failed." +msgstr "Echec de l'init. de la broche MOSI" -#: py/objstr.c:1071 -msgid "attributes not supported yet" -msgstr "attribut pas encore supporté" +#: shared-module/bitbangio/SPI.c:62 +msgid "MISO pin init failed." +msgstr "Echec de l'init. de la broche MISO" -#: py/objstr.c:1079 -msgid "" -"can't switch from manual field specification to automatic field numbering" -msgstr "" -"impossible de passer d'une spécification manuelle des champs à une " -"énumération auto" +#: shared-module/bitbangio/SPI.c:122 +msgid "Cannot write without MOSI pin." +msgstr "Impossible d'écrire sans broche MOSI." -#: py/objstr.c:1171 -msgid "invalid format specifier" -msgstr "spécificationde format invalide" +#: shared-module/bitbangio/SPI.c:177 +msgid "Cannot read without MISO pin." +msgstr "Impossible de lire sans broche MISO." -#: py/objstr.c:1192 -msgid "sign not allowed in string format specifier" -msgstr "signe non autorisé dans les spéc. de formats de chaînes de caractères" +#: shared-module/bitbangio/SPI.c:241 +msgid "Cannot transfer without MOSI and MISO pins." +msgstr "Pas de transfert sans broches MOSI et MISO" -#: py/objstr.c:1200 -msgid "sign not allowed with integer format specifier 'c'" -msgstr "signe non autorisé avec la spéc. de format d'entier 'c'" +#: shared-module/bitbangio/I2C.c:58 +msgid "Clock stretch too long" +msgstr "Période de l'horloge trop longue" -#: py/objstr.c:1259 -#, c-format -msgid "unknown format code '%c' for object of type '%s'" -msgstr "code de format '%c' inconnu pour un objet de type '%s'" +#: shared-module/audioio/WaveFile.c:61 +msgid "Invalid wave file" +msgstr "Fichier WAVE invalide" -#: py/objstr.c:1331 -#, c-format -msgid "unknown format code '%c' for object of type 'float'" -msgstr "code de format '%c' inconnu pour un objet de type 'float'" +#: shared-module/audioio/WaveFile.c:69 +msgid "Invalid format chunk size" +msgstr "Taille de bloc de formatage invalide" -#: py/objstr.c:1343 -msgid "'=' alignment not allowed in string format specifier" -msgstr "'=' alignement non autorisé dans la spéc. de format de chaîne" +#: shared-module/audioio/WaveFile.c:83 +msgid "Unsupported format" +msgstr "Format non supporté" -#: py/objstr.c:1367 -#, c-format -msgid "unknown format code '%c' for object of type 'str'" -msgstr "code de format '%c' inconnu pour un objet de type 'str'" +#: shared-module/audioio/WaveFile.c:99 +msgid "Data chunk must follow fmt chunk" +msgstr "Un bloc de données doit suivre un bloc de format" -#: py/objstr.c:1415 -msgid "format requires a dict" -msgstr "le format nécessite un dict" +#: shared-module/audioio/WaveFile.c:107 +msgid "Invalid file" +msgstr "Fichier invalide" -#: py/objstr.c:1424 -msgid "incomplete format key" -msgstr "clé de format incomplète" +#: shared-module/audioio/WaveFile.c:117 +msgid "Couldn't allocate first buffer" +msgstr "Impossible d'allouer le 1er tampon" -#: py/objstr.c:1482 -msgid "incomplete format" -msgstr "format incomplet" +#: shared-module/audioio/WaveFile.c:123 +msgid "Couldn't allocate second buffer" +msgstr "Impossible d'allouer le 2e tampon" -#: py/objstr.c:1490 -msgid "not enough arguments for format string" -msgstr "pas assez d'argument pour la chaîne de format" +#: shared-module/struct/__init__.c:39 +msgid "'S' and 'O' are not supported format types" +msgstr "'S' et 'O' ne sont pas des types de format supportés" -#: py/objstr.c:1500 -#, c-format -msgid "%%c requires int or char" -msgstr "%%c nécessite un entier int ou un caractère char" +#: shared-module/struct/__init__.c:83 +msgid "too many arguments provided with the given format" +msgstr "trop d'arguments fournis avec ce format" -#: py/objstr.c:1507 -msgid "integer required" -msgstr "entier requis" +#: lib/embed/abort_.c:8 +msgid "abort() called" +msgstr "abort() appelé" -#: py/objstr.c:1570 -#, c-format -msgid "unsupported format character '%c' (0x%x) at index %d" -msgstr "caractère de format '%c' (0x%x) non supporté à l'index %d" +#: lib/netutils/netutils.c:83 +msgid "invalid arguments" +msgstr "arguments invalides" -#: py/objstr.c:1577 -msgid "not all arguments converted during string formatting" +#: ports/unix/modusocket.c:474 +#, c-format +msgid "[addrinfo error %d]" msgstr "" -"tous les arguments n'ont pas été convertis pendant le formatage de la chaîne" -#: py/objstr.c:2102 -msgid "can't convert to str implicitly" -msgstr "impossible de convertir en str implicitement" +#: ports/unix/modffi.c:138 +msgid "Unknown type" +msgstr "Type inconnu" -#: py/objstr.c:2106 -msgid "can't convert '%q' object to %q implicitly" -msgstr "impossible de convertir l'objet '%q' en '%q' implicitement" +#: ports/unix/modffi.c:207 ports/unix/modffi.c:265 +msgid "Error in ffi_prep_cif" +msgstr "Erreur dans ffi_prep_cif" -#: py/objstrunicode.c:134 -#, c-format -msgid "string indices must be integers, not %s" -msgstr "les indices de chaîne de caractère doivent être des entiers, pas %s" +#: ports/unix/modffi.c:270 +msgid "ffi_prep_closure_loc" +msgstr "" -#: py/objstrunicode.c:145 py/objstrunicode.c:164 -msgid "string index out of range" -msgstr "index de chaîne hors gamme" +#: ports/unix/modffi.c:413 +msgid "Don't know how to pass object to native function" +msgstr "Ne sais pas comment passer un objet à une fonction native" -#: py/objtype.c:358 -msgid "__init__() should return None" -msgstr "__init__() doit retourner None" +#: ports/atmel-samd/audio_dma.c:285 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:361 +msgid "All sync event channels in use" +msgstr "Tous les canaux d'événements de synchro sont utilisés" -#: py/objtype.c:360 +#: ports/atmel-samd/common-hal/usb_hid/Device.c:78 +#: ports/nrf/common-hal/usb_hid/Device.c:45 #, c-format -msgid "__init__() should return None, not '%s'" -msgstr "__init__() doit retourner None, pas '%s'" +msgid "Buffer incorrect size. Should be %d bytes." +msgstr "Tampon de taille incorrect. Devrait être de %d octets." -#: py/objtype.c:623 py/objtype.c:1275 py/runtime.c:1065 -msgid "unreadable attribute" -msgstr "attribut illisible" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:53 +msgid "USB Busy" +msgstr "USB occupé" -#: py/objtype.c:868 py/runtime.c:653 -msgid "object not callable" -msgstr "objet non appelable" +#: ports/atmel-samd/common-hal/usb_hid/Device.c:82 +#: ports/nrf/common-hal/usb_hid/Device.c:59 +msgid "USB Error" +msgstr "Erreur USB" -#: py/objtype.c:870 py/runtime.c:655 -#, c-format -msgid "'%s' object is not callable" -msgstr "objet '%s' non appelable" +#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c:45 +#: ports/atmel-samd/common-hal/busio/UART.c:119 +#: ports/atmel-samd/common-hal/busio/SPI.c:132 +#: ports/atmel-samd/common-hal/busio/I2C.c:78 +#: ports/nrf/common-hal/busio/I2C.c:58 +msgid "Invalid pins" +msgstr "Broche invalide" -#: py/objtype.c:978 -msgid "type takes 1 or 3 arguments" -msgstr "le type prend 1 ou 3 arguments" +#: ports/atmel-samd/common-hal/busio/UART.c:66 +msgid "bytes > 8 bits not supported" +msgstr "octets > 8 bits non supporté" -#: py/objtype.c:989 -msgid "cannot create instance" -msgstr "ne peut pas créer une instance" +#: ports/atmel-samd/common-hal/busio/UART.c:72 +msgid "tx and rx cannot both be None" +msgstr "TX et RX ne peuvent être None tous les deux" -#: py/objtype.c:991 -msgid "cannot create '%q' instances" -msgstr "ne peut pas créer une instance de '%q'" +#: ports/atmel-samd/common-hal/busio/UART.c:139 +msgid "Failed to allocate RX buffer" +msgstr "Echec de l'allocation du tampon RX" -#: py/objtype.c:1047 -msgid "can't add special method to already-subclassed class" -msgstr "" -"impossible d'ajouter une méthode spécial à une classe déjà sous-classée" +#: ports/atmel-samd/common-hal/busio/UART.c:147 +msgid "Could not initialize UART" +msgstr "L'UART n'a pu être initialisé" -#: py/objtype.c:1091 py/objtype.c:1097 -msgid "type is not an acceptable base type" -msgstr "le type n'est pas un type de base accepté" +#: ports/atmel-samd/common-hal/busio/UART.c:234 +msgid "No RX pin" +msgstr "Pas de broche RX" -#: py/objtype.c:1100 -msgid "type '%q' is not an acceptable base type" -msgstr "le type '%q' n'est pas un type de base accepté" +#: ports/atmel-samd/common-hal/busio/UART.c:284 +msgid "No TX pin" +msgstr "Pas de broche TX" -#: py/objtype.c:1137 -msgid "multiple inheritance not supported" -msgstr "héritage multiple non supporté" +#: ports/atmel-samd/common-hal/busio/I2C.c:71 +msgid "Not enough pins available" +msgstr "Pas assez de broches disponibles" -#: py/objtype.c:1164 -msgid "multiple bases have instance lay-out conflict" -msgstr "de multiple bases ont un conflit de lay-out d'instance" +#: ports/atmel-samd/common-hal/busio/I2C.c:101 +msgid "SDA or SCL needs a pull up" +msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')" -#: py/objtype.c:1205 -msgid "first argument to super() must be type" -msgstr "le premier argument de super() doit être un type" +#: ports/atmel-samd/common-hal/busio/I2C.c:121 +msgid "Unsupported baudrate" +msgstr "Débit non supporté" -#: py/objtype.c:1370 -msgid "issubclass() arg 2 must be a class or a tuple of classes" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:80 +msgid "Frequency captured is above capability. Capture Paused." msgstr "" -"l'argument 2 de issubclass() doit être une classe ou un tuple de classes" -#: py/objtype.c:1384 -msgid "issubclass() arg 1 must be a class" -msgstr "l'argument 1 de issubclass() doit être une classe" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:115 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:110 +msgid "No hardware support on pin" +msgstr "Pas de support matériel pour cette broche" -#: py/parse.c:726 -msgid "constant must be an integer" -msgstr "les constantes doivent être des entiers" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:126 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:113 +msgid "EXTINT channel already in use" +msgstr "Canal EXTINT déjà utilisé" + +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:139 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:187 +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:111 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:174 +msgid "All timers in use" +msgstr "Tous les timers sont utilisés" -#: py/parse.c:868 -msgid "Unable to init parser" -msgstr "Impossible d'initialiser le parser" +#: ports/atmel-samd/common-hal/pulseio/FrequencyIn.c:303 +msgid "An error occurred in measuring the frequency. (FREQM peripheral usage.)" +msgstr "" -#: py/parse.c:1170 -msgid "unexpected indent" -msgstr "indentation inattendue" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:117 +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:65 +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:77 +msgid "Invalid pin" +msgstr "Broche invalide" -#: py/parse.c:1173 -msgid "unindent does not match any outer indentation level" -msgstr "la désindentation ne correspond à aucune indentation" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:121 +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:367 +#: ports/nrf/common-hal/pulseio/PWMOut.c:227 +msgid "Invalid PWM frequency" +msgstr "Fréquence de PWM invalide" -#: py/parsenum.c:60 -msgid "int() arg 2 must be >= 2 and <= 36" -msgstr "l'argument 2 de int() doit être >=2 et <=32" +#: ports/atmel-samd/common-hal/pulseio/PWMOut.c:185 +msgid "All timers for this pin are in use" +msgstr "Tous les timers pour cette broche sont utilisés" -#: py/parsenum.c:151 -msgid "invalid syntax for integer" -msgstr "syntaxe invalide pour un entier" +#: ports/atmel-samd/common-hal/pulseio/PulseOut.c:179 +msgid "Another send is already active" +msgstr "Un autre envoi est déjà actif" -#: py/parsenum.c:155 +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:118 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:86 #, c-format -msgid "invalid syntax for integer with base %d" -msgstr "syntaxe invalide pour un entier de base %d" +msgid "Failed to allocate RX buffer of %d bytes" +msgstr "Echec de l'allocation de %d octets du tampon RX" -#: py/parsenum.c:339 -msgid "invalid syntax for number" -msgstr "syntaxe invalide pour un nombre" +#: ports/atmel-samd/common-hal/pulseio/PulseIn.c:203 +#: ports/esp8266/common-hal/pulseio/PulseIn.c:151 +msgid "pop from an empty PulseIn" +msgstr "'pop' d'une entrée PulseIn vide" -#: py/parsenum.c:342 -msgid "decimal numbers not supported" -msgstr "nombres décimaux non supportés" +#: ports/atmel-samd/common-hal/touchio/TouchIn.c:75 +msgid "No free GCLKs" +msgstr "Pas de GCLK libre" -#: py/persistentcode.c:223 -msgid "" -"Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/" -"mpy-update for more info." +#: ports/atmel-samd/common-hal/microcontroller/__init__.c:74 +#: ports/esp8266/common-hal/microcontroller/__init__.c:64 +msgid "Cannot reset into bootloader because no bootloader is present." msgstr "" -"Fichier .mpy incompatible. Merci de mettre à jour tous les .mpy. Voir http://" -"adafru.it/mpy-update pour plus d'informations." - -#: py/persistentcode.c:326 -msgid "can only save bytecode" -msgstr "ne peut sauvegarder que du bytecode" - -#: py/runtime.c:206 -msgid "name not defined" -msgstr "nom non défini" +"Ne peut être redémarré vers le bootloader car il n'y a pas de bootloader." -#: py/runtime.c:209 -msgid "name '%q' is not defined" -msgstr "nom '%q' non défini" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:70 +msgid "DAC already in use" +msgstr "DAC déjà utilisé" -#: py/runtime.c:304 py/runtime.c:611 -msgid "unsupported type for operator" -msgstr "type non supporté pour l'opérateur" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:74 +msgid "Right channel unsupported" +msgstr "Canal droit non supporté" -#: py/runtime.c:307 -msgid "unsupported type for %q: '%s'" -msgstr "type non supporté pour %q: '%s'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:85 +msgid "Invalid pin for left channel" +msgstr "Broche invalide pour le canal gauche" -#: py/runtime.c:614 -msgid "unsupported types for %q: '%s', '%s'" -msgstr "type non supporté pour %q: '%s', '%s'" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:89 +msgid "Invalid pin for right channel" +msgstr "Broche invalide pour le canal droit" -#: py/runtime.c:881 py/runtime.c:888 py/runtime.c:945 -msgid "wrong number of values to unpack" -msgstr "mauvais nombre de valeurs à dégrouper" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:92 +msgid "Cannot output both channels on the same pin" +msgstr "On ne peut mettre les deux canaux sur la même broche" -#: py/runtime.c:883 py/runtime.c:947 -#, c-format -msgid "need more than %d values to unpack" -msgstr "nécessite plus de %d valeur à dégrouper" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:216 +msgid "All event channels in use" +msgstr "Tous les canaux d'événements sont utilisés" -#: py/runtime.c:890 -#, c-format -msgid "too many values to unpack (expected %d)" -msgstr "trop de valeur à dégrouper (%d attendues)" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:327 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:305 +msgid "No DMA channel found" +msgstr "Aucun canal DMA trouvé" -#: py/runtime.c:984 -msgid "argument has wrong type" -msgstr "l'argument est d'un mauvais type" +#: ports/atmel-samd/common-hal/audioio/AudioOut.c:329 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:308 +msgid "Unable to allocate buffers for signed conversion" +msgstr "Impossible d'allouer des tampons pour une conversion signée" -#: py/runtime.c:986 -msgid "argument should be a '%q' not a '%q'" -msgstr "l'argument devrait être un(e) '%q', pas '%q'" +#: ports/atmel-samd/common-hal/storage/__init__.c:48 +msgid "Cannot remount '/' when USB is active." +msgstr "'/' ne peut être remonté quand l'USB est actif." -#: py/runtime.c:1123 py/runtime.c:1197 -msgid "no such attribute" -msgstr "pas de tel attribut" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:38 +msgid "Both pins must support hardware interrupts" +msgstr "Les deux entrées doivent supporter les interruptions" -#: py/runtime.c:1128 -msgid "type object '%q' has no attribute '%q'" -msgstr "l'objet de type '%q' n'a pas d'attribut '%q'" +#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c:46 +msgid "A hardware interrupt channel is already in use" +msgstr "Un canal d'interruptions est déjà utilisé" -#: py/runtime.c:1132 py/runtime.c:1200 -msgid "'%s' object has no attribute '%q'" -msgstr "l'objet '%s' n'a pas d'attribut '%q'" +#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c:168 +#: ports/nrf/common-hal/digitalio/DigitalInOut.c:158 +msgid "Cannot get pull while in output mode" +msgstr "Ne peux être tirer ('pull') en mode 'output'" -#: py/runtime.c:1238 -msgid "object not iterable" -msgstr "objet non itérable" +#: ports/atmel-samd/common-hal/analogio/AnalogIn.c:63 +#: ports/nrf/common-hal/analogio/AnalogIn.c:39 +msgid "Pin does not have ADC capabilities" +msgstr "la broche ne peut être utilisé pour l'ADC" -#: py/runtime.c:1241 -#, c-format -msgid "'%s' object is not iterable" -msgstr "objet '%s' non itérable" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:49 +msgid "No DAC on chip" +msgstr "Pas de DAC sur la puce" -#: py/runtime.c:1260 py/runtime.c:1296 -msgid "object not an iterator" -msgstr "l'objet n'est pas un itérateur" +#: ports/atmel-samd/common-hal/analogio/AnalogOut.c:56 +msgid "AnalogOut not supported on given pin" +msgstr "AnalogOut n'est pas supporté sur cette broche" -#: py/runtime.c:1262 py/runtime.c:1298 -#, c-format -msgid "'%s' object is not an iterator" -msgstr "l'objet '%s' n'est pas un itérateur" +#: ports/atmel-samd/common-hal/rtc/RTC.c:101 +msgid "calibration value out of range +/-127" +msgstr "valeur de calibration hors gamme +/-127" -#: py/runtime.c:1401 -msgid "exceptions must derive from BaseException" -msgstr "les exception doivent dériver de BaseException" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:109 +msgid "Invalid clock pin" +msgstr "Broche d'horloge invalide" -#: py/runtime.c:1430 -msgid "cannot import name %q" -msgstr "ne peut pas importer le nom %q" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:130 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:156 +msgid "Invalid data pin" +msgstr "Broche de données invalide" -#: py/runtime.c:1535 -msgid "memory allocation failed, heap is locked" -msgstr "l'allocation de mémoire a échoué, la pile est vérrouillé" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:134 +msgid "Only 8 or 16 bit mono with " +msgstr "Uniquement 8 ou 16 bit mono avec " -#: py/runtime.c:1539 -#, c-format -msgid "memory allocation failed, allocating %u bytes" -msgstr "l'allocation de mémoire a échoué en allouant %u octets" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:145 +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:150 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:169 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:174 +msgid "Serializer in use" +msgstr "Sérialiseur en cours d'utilisation" -#: py/runtime.c:1609 -msgid "maximum recursion depth exceeded" -msgstr "profondeur maximale de récursivité dépassée" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:167 +msgid "sampling rate out of range" +msgstr "taux d'échantillonage hors gamme" -#: py/sequence.c:264 -msgid "object not in sequence" -msgstr "l'objet n'est pas dans la séquence" +#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c:172 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:240 +msgid "Unable to find free GCLK" +msgstr "Impossible de trouver un GCLK libre" -#: py/stream.c:96 -msgid "stream operation not supported" -msgstr "opération de flux non supportée" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:147 +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:150 +msgid "Invalid bit clock pin" +msgstr "Broche invalide pour 'bit clock'" -#: py/vm.c:255 -msgid "local variable referenced before assignment" -msgstr "variable locale référencée avant d'être assignée" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:153 +msgid "Bit clock and word select must share a clock unit" +msgstr "'bit clock' et 'word select' doivent partagé une horloge" -#: py/vm.c:1142 -msgid "no active exception to reraise" -msgstr "aucune exception active a relevé" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:230 +msgid "Clock unit in use" +msgstr "Horloge en cours d'utilisation" -#: py/vm.c:1284 -msgid "byte code not implemented" -msgstr "bytecode non implémenté" +#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c:254 +msgid "Too many channels in sample." +msgstr "Trop de canaux dans l'échantillon." -#: shared-bindings/_stage/Layer.c:71 -msgid "graphic must be 2048 bytes long" -msgstr "le graphic doit être long de 2048 octets" +#: ports/atmel-samd/board_busses.c:39 +msgid "No default I2C bus" +msgstr "Pas de bus I2C par défaut" -#: shared-bindings/_stage/Layer.c:77 shared-bindings/_stage/Text.c:75 -msgid "palette must be 32 bytes long" -msgstr "la palette doit être longue de 32 octets" +#: ports/atmel-samd/board_busses.c:64 +msgid "No default SPI bus" +msgstr "Pas de bus SPI par défaut" -#: shared-bindings/_stage/Layer.c:84 -msgid "map buffer too small" -msgstr "tampon trop petit" +#: ports/atmel-samd/board_busses.c:91 +msgid "No default UART bus" +msgstr "Pas de bus UART par défaut" -#: shared-bindings/_stage/Text.c:69 -msgid "font must be 2048 bytes long" -msgstr "la fonte doit être longue de 2048 octets" +#: ports/atmel-samd/bindings/samd/Clock.c:135 +msgid "calibration is read only" +msgstr "la calibration est en lecture seule" -#: shared-bindings/_stage/Text.c:81 -msgid "chars buffer too small" -msgstr "tampon de caractères trop petit" +#: ports/atmel-samd/bindings/samd/Clock.c:137 +msgid "calibration is out of range" +msgstr "la calibration est hors gamme" -#: shared-bindings/analogio/AnalogOut.c:118 -msgid "AnalogOut is only 16 bits. Value must be less than 65536." -msgstr "" -"AnalogOut est seulement 16 bits. Les valeurs doivent être inférieures à " -"65536." +#: ports/nrf/drivers/bluetooth/ble_drv.c:199 +msgid "Cannot apply GAP parameters." +msgstr "Impossible d'appliquer les paramètres GAP" -#: shared-bindings/audiobusio/I2SOut.c:225 -#: shared-bindings/audioio/AudioOut.c:223 -msgid "Not playing" -msgstr "En pause" +#: ports/nrf/drivers/bluetooth/ble_drv.c:213 +msgid "Cannot set PPCP parameters." +msgstr "Impossible d'appliquer les paramètres PPCP" -#: shared-bindings/audiobusio/PDMIn.c:124 -msgid "Bit depth must be multiple of 8." -msgstr "La profondeur de bit doit être un multiple de 8." +#: ports/nrf/drivers/bluetooth/ble_drv.c:245 +msgid "Can not query for the device address." +msgstr "Impossible d'obtenir l'adresse du périphérique" -#: shared-bindings/audiobusio/PDMIn.c:128 -msgid "Oversample must be multiple of 8." -msgstr "Le sur-échantillonage doit être un multiple de 8." +#: ports/nrf/drivers/bluetooth/ble_drv.c:264 +msgid "Can not add Vendor Specific 128-bit UUID." +msgstr "Impossible d'ajouter l'UUID 128bits Vendor Specific" -#: shared-bindings/audiobusio/PDMIn.c:136 -msgid "Microphone startup delay must be in range 0.0 to 1.0" -msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0" +#: ports/nrf/drivers/bluetooth/ble_drv.c:284 +#: ports/nrf/drivers/bluetooth/ble_drv.c:298 +msgid "Can not add Service." +msgstr "Impossible d'ajouter le Service" -#: shared-bindings/audiobusio/PDMIn.c:193 -msgid "destination_length must be an int >= 0" -msgstr "destination_length doit être un int >= 0" +#: ports/nrf/drivers/bluetooth/ble_drv.c:373 +msgid "Can not add Characteristic." +msgstr "Impossible d'ajouter la Characteristic." -#: shared-bindings/audiobusio/PDMIn.c:199 -msgid "Cannot record to a file" -msgstr "impossible d'enregistrer vers un fichier" +#: ports/nrf/drivers/bluetooth/ble_drv.c:400 +msgid "Can not apply device name in the stack." +msgstr "Impossible d'appliquer le nom de périphérique dans la pile" -#: shared-bindings/audiobusio/PDMIn.c:202 -msgid "Destination capacity is smaller than destination_length." -msgstr "La capacité de la cible est plus petite que destination_length." +#: ports/nrf/drivers/bluetooth/ble_drv.c:464 +#: ports/nrf/drivers/bluetooth/ble_drv.c:514 +msgid "Can not encode UUID, to check length." +msgstr "Impossible d'encoder l'UUID pour vérifier la longueur." -#: shared-bindings/audiobusio/PDMIn.c:206 -msgid "destination buffer must be an array of type 'H' for bit_depth = 16" +#: ports/nrf/drivers/bluetooth/ble_drv.c:470 +#: ports/nrf/drivers/bluetooth/ble_drv.c:520 +msgid "Can encode UUID into the advertisment packet." msgstr "" -"le tampon de destination doit être un tableau de type 'H' pour bit_depth = 16" -#: shared-bindings/audiobusio/PDMIn.c:208 -msgid "" -"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8" +#: ports/nrf/drivers/bluetooth/ble_drv.c:545 +msgid "Can not fit data into the advertisment packet." msgstr "" -"le tampon de destination doit être un tableau de type 'B' pour bit_depth = 8" -#: shared-bindings/audioio/RawSample.c:98 -msgid "" -"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or " -"'B'" +#: ports/nrf/drivers/bluetooth/ble_drv.c:558 +#: ports/nrf/drivers/bluetooth/ble_drv.c:604 +#, c-format +msgid "Can not apply advertisment data. status: 0x%02x" msgstr "" -"le tampon de sample_source doit être un bytearray ou un tableau de type " -"'h','H', 'b' ou 'B'" - -#: shared-bindings/audioio/RawSample.c:104 -msgid "buffer must be a bytes-like object" -msgstr "le tampon doit être un objet bytes-like" - -#: shared-bindings/audioio/WaveFile.c:78 -msgid "file must be a file opened in byte mode" -msgstr "le fichier doit être un fichier ouvert en mode byte" - -#: shared-bindings/bitbangio/I2C.c:111 shared-bindings/bitbangio/SPI.c:121 -#: shared-bindings/busio/SPI.c:133 -msgid "Function requires lock" -msgstr "La fonction nécessite un verrou" - -#: shared-bindings/bitbangio/I2C.c:195 shared-bindings/busio/I2C.c:210 -msgid "Buffer must be at least length 1" -msgstr "Le tampon doit être de longueur au moins 1" - -#: shared-bindings/bitbangio/SPI.c:151 shared-bindings/busio/SPI.c:168 -msgid "Invalid polarity" -msgstr "Polarité invalide" -#: shared-bindings/bitbangio/SPI.c:155 shared-bindings/busio/SPI.c:172 -msgid "Invalid phase" -msgstr "Phase invalide" +#: ports/nrf/drivers/bluetooth/ble_drv.c:614 +#, c-format +msgid "Can not start advertisment. status: 0x%02x" +msgstr "" -#: shared-bindings/bitbangio/SPI.c:159 shared-bindings/busio/SPI.c:176 -msgid "Invalid number of bits" -msgstr "Nombre de bits invalide" +#: ports/nrf/drivers/bluetooth/ble_drv.c:631 +#, c-format +msgid "Can not stop advertisment. status: 0x%02x" +msgstr "" -#: shared-bindings/bitbangio/SPI.c:284 shared-bindings/busio/SPI.c:341 -msgid "buffer slices must be of equal length" -msgstr "les slices de tampon doivent être de longueurs égales" +#: ports/nrf/drivers/bluetooth/ble_drv.c:650 +#: ports/nrf/drivers/bluetooth/ble_drv.c:726 +#, c-format +msgid "Can not read attribute value. status: 0x%02x" +msgstr "Impossible de lire la valeur de l'attribut. status: 0x%02x" -#: shared-bindings/busio/I2C.c:120 -msgid "Function requires lock." -msgstr "La fonction nécessite un verrou." +#: ports/nrf/drivers/bluetooth/ble_drv.c:667 +#: ports/nrf/drivers/bluetooth/ble_drv.c:756 +#, c-format +msgid "Can not write attribute value. status: 0x%02x" +msgstr "Impossible d'écrire la valeur de l'attribut. status: 0x%02x" -#: shared-bindings/busio/UART.c:98 -msgid "bits must be 7, 8 or 9" -msgstr "bits doivent être 7, 8 ou 9" +#: ports/nrf/drivers/bluetooth/ble_drv.c:691 +#, c-format +msgid "Can not notify attribute value. status: 0x%02x" +msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%02x" -#: shared-bindings/busio/UART.c:110 -msgid "stop must be 1 or 2" -msgstr "stop doit être 1 ou 2" +#: ports/nrf/drivers/bluetooth/ble_drv.c:784 +#, c-format +msgid "Can not start scanning. status: 0x%02x" +msgstr "Impossible de commencer à scanner. status: 0x%02x" -#: shared-bindings/digitalio/DigitalInOut.c:211 -msgid "Invalid direction." -msgstr "Direction invalide" +#: ports/nrf/drivers/bluetooth/ble_drv.c:829 +#, c-format +msgid "Can not connect. status: 0x%02x" +msgstr "Connection impossible. status: 0x%02x" -#: shared-bindings/digitalio/DigitalInOut.c:240 -msgid "Cannot set value when direction is input." -msgstr "Impossible d'affecter une valeur quand la direction est input." +#: ports/nrf/common-hal/busio/UART.c:45 ports/nrf/common-hal/busio/UART.c:49 +#: ports/nrf/common-hal/busio/UART.c:53 ports/nrf/common-hal/busio/UART.c:62 +#: ports/nrf/common-hal/busio/UART.c:68 ports/nrf/common-hal/busio/UART.c:73 +#: ports/nrf/common-hal/busio/UART.c:78 ports/nrf/common-hal/busio/UART.c:83 +#: ports/nrf/common-hal/busio/UART.c:88 +msgid "busio.UART not yet implemented" +msgstr "busio.UART pas encore implémenté" -#: shared-bindings/digitalio/DigitalInOut.c:266 -#: shared-bindings/digitalio/DigitalInOut.c:281 -msgid "Drive mode not used when direction is input." -msgstr "Le mode Drive n'est pas utilisé quand la direction est 'input'" +#: ports/nrf/common-hal/pulseio/FrequencyIn.c:32 +#: ports/esp8266/common-hal/pulseio/FrequencyIn.c:33 +#, fuzzy +msgid "No hardware support for FrequencyIn." +msgstr "Pas de support matériel pour cette broche" -#: shared-bindings/digitalio/DigitalInOut.c:314 -#: shared-bindings/digitalio/DigitalInOut.c:331 -msgid "Pull not used when direction is output." -msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'" +#: ports/nrf/common-hal/microcontroller/Processor.c:49 +#, c-format +msgid "Can not get temperature. status: 0x%02x" +msgstr "Impossible de lire la température. status: 0x%02x" -#: shared-bindings/digitalio/DigitalInOut.c:340 -msgid "Unsupported pull value." -msgstr "Valeur de 'pull' non supportée" +#: ports/nrf/common-hal/analogio/AnalogOut.c:37 +msgid "AnalogOut functionality not supported" +msgstr "AnalogOut non supporté" -#: shared-bindings/gamepad/GamePad.c:100 -msgid "too many arguments" -msgstr "trop d'arguments" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:73 +msgid "Invalid Service type" +msgstr "Type de service invalide" -#: shared-bindings/gamepad/GamePad.c:104 -msgid "expected a DigitalInOut" -msgstr "un objet DigitalInOut attendu" +#: ports/nrf/modules/ubluepy/ubluepy_service.c:80 +#: ports/nrf/modules/ubluepy/ubluepy_service.c:132 +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:137 +#: ports/nrf/modules/ubluepy/ubluepy_characteristic.c:68 +msgid "Invalid UUID parameter" +msgstr "Paramètre UUID invalide" -#: shared-bindings/i2cslave/I2CSlave.c:98 -#, fuzzy -msgid "can't convert address to int" -msgstr "ne peut convertir %s en entier int" +#: ports/nrf/modules/ubluepy/ubluepy_uuid.c:127 +msgid "Invalid UUID string length" +msgstr "Longeur de chaîne UUID invalide" -#: shared-bindings/i2cslave/I2CSlave.c:101 -msgid "address out of bounds" -msgstr "" +#: ports/esp8266/modmachine.c:63 +msgid "frequency can only be either 80Mhz or 160MHz" +msgstr "la fréquence doit être soit 80MHz soit 160MHz" -#: shared-bindings/i2cslave/I2CSlave.c:107 -msgid "addresses is empty" +#: ports/esp8266/esp_mphal.c:154 +msgid "C-level assert" msgstr "" -#: shared-bindings/microcontroller/Pin.c:89 -#: shared-bindings/neopixel_write/__init__.c:67 -#: shared-bindings/pulseio/PulseOut.c:75 -msgid "Expected a %q" -msgstr "Attendu : %q" +#: ports/esp8266/modnetwork.c:61 +msgid "STA required" +msgstr "'STA' requis" -#: shared-bindings/microcontroller/Pin.c:100 -msgid "%q in use" -msgstr "%q utilisé" +#: ports/esp8266/modnetwork.c:61 +msgid "AP required" +msgstr "'AP' requis" -#: shared-bindings/microcontroller/__init__.c:126 -msgid "Invalid run mode." -msgstr "Mode de lancement invalide" +#: ports/esp8266/modnetwork.c:87 +msgid "Cannot update i/f status" +msgstr "le status i/f ne peut être mis à jour" -#: shared-bindings/multiterminal/__init__.c:68 -msgid "Stream missing readinto() or write() method." -msgstr "Il manque une méthode readinto() ou write() au flux." +#: ports/esp8266/modnetwork.c:142 +msgid "Cannot set STA config" +msgstr "Impossible de configurer STA" -#: shared-bindings/nvm/ByteArray.c:99 -msgid "Slice and value different lengths." -msgstr "Slice et valeur de tailles différentes" +#: ports/esp8266/modnetwork.c:144 +msgid "Cannot connect to AP" +msgstr "Impossible de se connecter à 'AP'" -#: shared-bindings/nvm/ByteArray.c:104 -msgid "Array values should be single bytes." -msgstr "Les valeurs du tableau doivent être des octets simples 'bytes'" +#: ports/esp8266/modnetwork.c:152 +msgid "Cannot disconnect from AP" +msgstr "Impossible de se déconnecter de 'AP'" -#: shared-bindings/nvm/ByteArray.c:111 shared-bindings/nvm/ByteArray.c:141 -msgid "Unable to write to nvm." -msgstr "Impossible d'écrire sur la nvm" +#: ports/esp8266/modnetwork.c:173 +msgid "unknown status param" +msgstr "paramètre de status inconnu" -#: shared-bindings/nvm/ByteArray.c:137 -msgid "Bytes must be between 0 and 255." -msgstr "Les octets 'bytes' doivent être entre 0 et 255" +#: ports/esp8266/modnetwork.c:222 +msgid "STA must be active" +msgstr "'STA' doit être actif" -#: shared-bindings/os/__init__.c:200 -msgid "No hardware random available" -msgstr "Pas de source matérielle d'aléa disponible" +#: ports/esp8266/modnetwork.c:239 +msgid "scan failed" +msgstr "échec du scan" -#: shared-bindings/pulseio/PWMOut.c:164 -msgid "" -"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)" -msgstr "" -"La valeur de cycle PWM doit être entre 0 et 65535 inclus (résolution de 16 " -"bits)" +#: ports/esp8266/modnetwork.c:306 +msgid "wifi_set_ip_info() failed" +msgstr "wifi_set_ip_info() a échoué" -#: shared-bindings/pulseio/PWMOut.c:195 -msgid "" -"PWM frequency not writeable when variable_frequency is False on construction." -msgstr "" -"La fréquence de PWM n'est pas modifiable quand variable_frequency est False " -"à laconstruction." +#: ports/esp8266/modnetwork.c:319 +msgid "either pos or kw args are allowed" +msgstr "seuls les arguments 'pos' ou 'kw' sont autorisés" -#: shared-bindings/pulseio/PulseIn.c:275 -msgid "Cannot delete values" -msgstr "Impossible de supprimer les valeurs" +#: ports/esp8266/modnetwork.c:329 +msgid "can't get STA config" +msgstr "impossible de récupérer de la config de 'STA'" -#: shared-bindings/pulseio/PulseIn.c:281 -msgid "Slices not supported" -msgstr "Slices non supportées" +#: ports/esp8266/modnetwork.c:331 +msgid "can't get AP config" +msgstr "impossible de récupérer de la config de 'AP'" -#: shared-bindings/pulseio/PulseIn.c:287 -msgid "index must be int" -msgstr "l'index doit être un entier" +#: ports/esp8266/modnetwork.c:346 +msgid "invalid buffer length" +msgstr "longueur de tampon invalide" -#: shared-bindings/pulseio/PulseIn.c:293 -msgid "Read-only" -msgstr "Lecture seule" +#: ports/esp8266/modnetwork.c:405 +msgid "can't set STA config" +msgstr "impossible de régler la config de 'STA'" -#: shared-bindings/pulseio/PulseOut.c:134 -msgid "Array must contain halfwords (type 'H')" -msgstr "Le tableau doit contenir des halfwords (type 'H')" +#: ports/esp8266/modnetwork.c:407 +msgid "can't set AP config" +msgstr "impossible de régler la config de 'AP'" -#: shared-bindings/random/__init__.c:92 shared-bindings/random/__init__.c:100 -msgid "stop not reachable from start" -msgstr "stop n'est pas accessible de start" +#: ports/esp8266/modnetwork.c:416 +msgid "can query only one param" +msgstr "ne peut demander qu'un seul paramètre" -#: shared-bindings/random/__init__.c:111 -msgid "step must be non-zero" -msgstr "le pas 'step' doit être non nul" +#: ports/esp8266/modnetwork.c:469 +msgid "unknown config param" +msgstr "paramètre de config. inconnu" -#: shared-bindings/random/__init__.c:114 -msgid "invalid step" -msgstr "pas invalide" +#: ports/esp8266/modesp.c:119 +msgid "len must be multiple of 4" +msgstr "'len' doit être un multiple de 4" -#: shared-bindings/random/__init__.c:146 -msgid "empty sequence" -msgstr "séquence vide" +#: ports/esp8266/modesp.c:274 +#, c-format +msgid "memory allocation failed, allocating %u bytes for native code" +msgstr "" +"l'allocation de mémoire a échoué en allouant %u octets pour un code natif" -#: shared-bindings/rtc/RTC.c:40 shared-bindings/rtc/RTC.c:44 -#: shared-bindings/time/__init__.c:192 -msgid "RTC is not supported on this board" -msgstr "RTC non supportée sur cette carte" +#: ports/esp8266/modesp.c:317 +msgid "flash location must be below 1MByte" +msgstr "l'emplacement en mémoire flash doit être inférieure à 1Mo" -#: shared-bindings/rtc/RTC.c:52 -msgid "RTC calibration is not supported on this board" -msgstr "calibration de la RTC non supportée sur cette carte" +#: ports/esp8266/common-hal/busio/UART.c:45 +msgid "Only tx supported on UART1 (GPIO2)." +msgstr "Seul le TX est supporté sur l'UART1 (GPIO2)." -#: shared-bindings/storage/__init__.c:77 -msgid "filesystem must provide mount method" -msgstr "le system de fichier doit fournir une méthode 'mount'" +#: ports/esp8266/common-hal/busio/UART.c:67 ports/esp8266/machine_uart.c:108 +msgid "invalid data bits" +msgstr "bits de données invalides" -#: shared-bindings/supervisor/__init__.c:93 -msgid "Brightness must be between 0 and 255" -msgstr "La luminosité doit être entre 0 et 255" +#: ports/esp8266/common-hal/busio/UART.c:91 ports/esp8266/machine_uart.c:144 +msgid "invalid stop bits" +msgstr "bits d'arrêt invalides" -#: shared-bindings/supervisor/__init__.c:119 -msgid "Stack size must be at least 256" -msgstr "La pile doit être au moins de 256" +#: ports/esp8266/common-hal/busio/SPI.c:72 +msgid "Pins not valid for SPI" +msgstr "Broche invalide pour le SPI" -#: shared-bindings/time/__init__.c:80 -msgid "sleep length must be non-negative" -msgstr "la longueur de sleep ne doit pas être négative" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:54 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:113 +#, c-format +msgid "Maximum PWM frequency is %dhz." +msgstr "La fréquence de PWM maximale est %dHz" -#: shared-bindings/time/__init__.c:90 -msgid "time.struct_time() takes exactly 1 argument" -msgstr "time.struct_time() prend exactement 1 argument" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:57 +#: ports/esp8266/common-hal/pulseio/PWMOut.c:116 +msgid "Minimum PWM frequency is 1hz." +msgstr "La fréquence de PWM minimale est 1Hz" -#: shared-bindings/time/__init__.c:93 -msgid "time.struct_time() takes a 9-sequence" -msgstr "time.struct_time() prend une séquence de longueur 9" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:68 +#, c-format +msgid "Multiple PWM frequencies not supported. PWM already set to %dhz." +msgstr "" +"Les fréquences multiples de PWM ne sont pas supportées. Déjà réglé à %dHz" -#: shared-bindings/time/__init__.c:171 shared-bindings/time/__init__.c:252 -msgid "Tuple or struct_time argument required" -msgstr "Argument de type tuple ou struct_time nécessaire" +#: ports/esp8266/common-hal/pulseio/PWMOut.c:77 ports/esp8266/machine_pwm.c:70 +#, c-format +msgid "PWM not supported on pin %d" +msgstr "La broche %d ne supporte pas le PWM" -#: shared-bindings/time/__init__.c:176 shared-bindings/time/__init__.c:257 -msgid "function takes exactly 9 arguments" -msgstr "la fonction prend exactement 9 arguments" +#: ports/esp8266/common-hal/pulseio/PulseIn.c:78 +msgid "No PulseIn support for %q" +msgstr "Pas de support de PulseIn pour %q" -#: shared-bindings/time/__init__.c:228 shared-bindings/time/__init__.c:261 -msgid "timestamp out of range for platform time_t" -msgstr "timestamp hors gamme pour la plateforme time_t" +#: ports/esp8266/common-hal/microcontroller/__init__.c:66 +msgid "ESP8226 does not support safe mode." +msgstr "l'ESP8266 ne supporte pas le mode sans-échec" -#: shared-bindings/touchio/TouchIn.c:173 -msgid "threshold must be in the range 0-65536" -msgstr "le seuil doit être dans la gamme 0-65536" +#: ports/esp8266/common-hal/storage/__init__.c:34 +msgid "Unable to remount filesystem" +msgstr "Impossible de remonter le système de fichiers" -#: shared-bindings/util.c:38 -msgid "" -"Object has been deinitialized and can no longer be used. Create a new object." +#: ports/esp8266/common-hal/storage/__init__.c:38 +msgid "Use esptool to erase flash and re-upload Python instead" msgstr "" -"L'objet a été désinitialisé et ne peut plus être utilisé. Créez un nouvel " -"objet." - -#: shared-module/audioio/WaveFile.c:61 -msgid "Invalid wave file" -msgstr "Fichier WAVE invalide" +"Utilisez 'esptool' pour effacer la flash et rechargez Python à la place" -#: shared-module/audioio/WaveFile.c:69 -msgid "Invalid format chunk size" -msgstr "Taille de bloc de formatage invalide" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:200 +msgid "ESP8266 does not support pull down." +msgstr "L'ESP8266 ne supporte pas le rappel (pull-down)" -#: shared-module/audioio/WaveFile.c:83 -msgid "Unsupported format" -msgstr "Format non supporté" +#: ports/esp8266/common-hal/digitalio/DigitalInOut.c:210 +msgid "GPIO16 does not support pull up." +msgstr "le GPIO16 ne supporte pas le tirage (pull-up)" -#: shared-module/audioio/WaveFile.c:99 -msgid "Data chunk must follow fmt chunk" -msgstr "Un bloc de données doit suivre un bloc de format" +#: ports/esp8266/common-hal/analogio/AnalogIn.c:43 +msgid "Pin %q does not have ADC capabilities" +msgstr "La broche %q n'a pas de convertisseur analogique-digital" -#: shared-module/audioio/WaveFile.c:107 -msgid "Invalid file" -msgstr "Fichier invalide" +#: ports/esp8266/common-hal/analogio/AnalogOut.c:39 +msgid "No hardware support for analog out." +msgstr "Pas de support matériel pour une sortie analogique" -#: shared-module/audioio/WaveFile.c:117 -msgid "Couldn't allocate first buffer" -msgstr "Impossible d'allouer le 1er tampon" +#: ports/esp8266/machine_adc.c:57 +#, c-format +msgid "not a valid ADC Channel: %d" +msgstr "canal ADC non valide : %d" -#: shared-module/audioio/WaveFile.c:123 -msgid "Couldn't allocate second buffer" -msgstr "Impossible d'allouer le 2e tampon" +#: ports/esp8266/machine_rtc.c:185 +msgid "buffer too long" +msgstr "tampon trop long" -#: shared-module/bitbangio/I2C.c:58 -msgid "Clock stretch too long" -msgstr "Période de l'horloge trop longue" +#: ports/esp8266/machine_rtc.c:209 ports/esp8266/machine_rtc.c:223 +#: ports/esp8266/machine_rtc.c:246 +msgid "invalid alarm" +msgstr "alarme invalide" -#: shared-module/bitbangio/SPI.c:45 -msgid "Clock pin init failed." -msgstr "Echec de l'init. de la broche d'horloge" +#: ports/esp8266/machine_pin.c:129 +msgid "expecting a pin" +msgstr "une broche (Pin) est attendue" -#: shared-module/bitbangio/SPI.c:51 -msgid "MOSI pin init failed." -msgstr "Echec de l'init. de la broche MOSI" +#: ports/esp8266/machine_pin.c:284 +msgid "Pin(16) doesn't support pull" +msgstr "Pin(16) ne supporte pas le tirage (pull)" -#: shared-module/bitbangio/SPI.c:62 -msgid "MISO pin init failed." -msgstr "Echec de l'init. de la broche MISO" +#: ports/esp8266/machine_pin.c:323 +msgid "invalid pin" +msgstr "broche invalide" -#: shared-module/bitbangio/SPI.c:122 -msgid "Cannot write without MOSI pin." -msgstr "Impossible d'écrire sans broche MOSI." +#: ports/esp8266/machine_pin.c:389 +msgid "pin does not have IRQ capabilities" +msgstr "la broche n'a pas de capacité d'interruption (IRQ)" -#: shared-module/bitbangio/SPI.c:177 -msgid "Cannot read without MISO pin." -msgstr "Impossible de lire sans broche MISO." +#: ports/esp8266/machine_hspi.c:131 ports/esp8266/machine_hspi.c:137 +msgid "impossible baudrate" +msgstr "débit impossible" -#: shared-module/bitbangio/SPI.c:241 -msgid "Cannot transfer without MOSI and MISO pins." -msgstr "Pas de transfert sans broches MOSI et MISO" +#: ports/esp8266/machine_uart.c:169 +#, c-format +msgid "UART(%d) does not exist" +msgstr "UART(%d) n'existe pas" -#: shared-module/struct/__init__.c:39 -msgid "'S' and 'O' are not supported format types" -msgstr "'S' et 'O' ne sont pas des types de format supportés" +#: ports/esp8266/machine_uart.c:219 +msgid "UART(1) can't read" +msgstr "UART(1) ne peut pas lire" -#: shared-module/struct/__init__.c:83 -msgid "too many arguments provided with the given format" -msgstr "trop d'arguments fournis avec ce format" +#, fuzzy +#~ msgid "FrequencyIn is not supported on this board" +#~ msgstr "RTC non supportée sur cette carte" diff --git a/ports/atmel-samd/Makefile b/ports/atmel-samd/Makefile index e1634a1b9bd7c..a93a790a3375a 100644 --- a/ports/atmel-samd/Makefile +++ b/ports/atmel-samd/Makefile @@ -250,6 +250,7 @@ SRC_C = \ flash_api.c \ mphalport.c \ reset.c \ + timer_handler.c \ peripherals/samd/clocks.c \ peripherals/samd/dma.c \ peripherals/samd/events.c \ @@ -332,6 +333,7 @@ SRC_COMMON_HAL = \ pulseio/PulseIn.c \ pulseio/PulseOut.c \ pulseio/PWMOut.c \ + pulseio/FrequencyIn.c \ usb_hid/__init__.c \ usb_hid/Device.c \ touchio/__init__.c \ diff --git a/ports/atmel-samd/asf4 b/ports/atmel-samd/asf4 index 4007ba846bc93..82fe3aa05bc3b 160000 --- a/ports/atmel-samd/asf4 +++ b/ports/atmel-samd/asf4 @@ -1 +1 @@ -Subproject commit 4007ba846bc937410f7eb8350e62e0f5fe9ed8f5 +Subproject commit 82fe3aa05bc3b9f4956ee775c748a3885443f66b diff --git a/ports/atmel-samd/common-hal/audioio/AudioOut.c b/ports/atmel-samd/common-hal/audioio/AudioOut.c index 7df328a6a81aa..0f237e8d33ca6 100644 --- a/ports/atmel-samd/common-hal/audioio/AudioOut.c +++ b/ports/atmel-samd/common-hal/audioio/AudioOut.c @@ -46,6 +46,7 @@ #endif #include "audio_dma.h" +#include "timer_handler.h" #include "samd/dma.h" #include "samd/events.h" @@ -181,7 +182,7 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self, tc_gclk = 1; #endif - turn_on_clocks(true, tc_index, tc_gclk); + turn_on_clocks(true, tc_index, tc_gclk, TC_HANDLER_NO_INTERRUPT); // Don't bother setting the period. We set it before you playback anything. tc_set_enable(t, false); diff --git a/ports/atmel-samd/common-hal/pulseio/FrequencyIn.c b/ports/atmel-samd/common-hal/pulseio/FrequencyIn.c new file mode 100755 index 0000000000000..2835555ebd069 --- /dev/null +++ b/ports/atmel-samd/common-hal/pulseio/FrequencyIn.c @@ -0,0 +1,382 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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 + +#include "hal/include/hal_gpio.h" +#include "atmel_start_pins.h" +#include "supervisor/shared/translate.h" + +#include "mpconfigport.h" +#include "py/runtime.h" +#include "timer_handler.h" + +#include "samd/clocks.h" +#include "samd/timers.h" +#include "samd/events.h" +#include "samd/pins.h" +#include "samd/external_interrupts.h" + +#include "shared-bindings/pulseio/FrequencyIn.h" +#include "peripheral_clk_config.h" +#include "hpl_gclk_config.h" + +#ifdef SAMD21 +#include "hpl/gclk/hpl_gclk_base.h" +#endif + +static pulseio_frequencyin_obj_t *active_frequencyins[TC_INST_NUM]; + +// Current TC clocks are all 48MHz; lockup is occurring past a capture of 512kHz +// 48MHz / 512kHz = 93.75 +static uint8_t MAX_FREQUENCY = 93; + +void frequencyin_emergency_cancel_capture(uint8_t index) { + pulseio_frequencyin_obj_t* self = active_frequencyins[index]; + + NVIC_DisableIRQ(self->TC_IRQ); + NVIC_ClearPendingIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_DisableIRQ(EIC_IRQn); + NVIC_ClearPendingIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_DisableIRQ(EIC_0_IRQn + self->channel); + NVIC_ClearPendingIRQ(EIC_0_IRQn + self->channel); + #endif + + common_hal_pulseio_frequencyin_pause(self); // pause any further captures + + NVIC_EnableIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_EnableIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_EnableIRQ(EIC_0_IRQn + self->channel); + #endif + mp_raise_RuntimeError(translate("Frequency captured is above capability. Capture Paused.")); +} + +void frequencyin_interrupt_handler(uint8_t index) { + Tc* tc = tc_insts[index]; + + if (!tc->COUNT16.INTFLAG.bit.MC0) return; // false trigger + + pulseio_frequencyin_obj_t* self = active_frequencyins[index]; + + // since we use EVACT.PPW, the Period is put into the CC[0] register + // and that's all we need. CC[1] will contain the Pulse Width. + uint16_t freq = tc->COUNT16.CC[0].bit.CC; + self->frequency = freq; + + // we'll read CC[1] to make sure the INTFLAG.MCOx register is + // also cleared. CC[1] will contain the Pulse Width measurement, which + // we won't use. + self->pulse_width = tc->COUNT16.CC[1].bit.CC; + // SAMD51 Errata includes a CCBUFFx error that says to clear it twice + // In Capture mode, CCBUFFx is cleared by reading CCx, so we read it one more time + #ifdef SAMD51 + self->pulse_width = tc->COUNT16.CC[0].bit.CC; + self->pulse_width = tc->COUNT16.CC[1].bit.CC; + #endif + + // Check if we've reached the upper limit of detection (~512kHz) + if (freq < MAX_FREQUENCY && freq > 0){ + frequencyin_emergency_cancel_capture(index); + } +} + +void common_hal_pulseio_frequencyin_construct(pulseio_frequencyin_obj_t* self, const mcu_pin_obj_t* pin) { + + if (!pin->has_extint) { + mp_raise_RuntimeError(translate("No hardware support on pin")); + } + + uint32_t mask = 1 << pin->extint_channel; + if (eic_get_enable() == 1 && +#ifdef SAMD21 + ((EIC->INTENSET.vec.EXTINT & mask) != 0 || (EIC->EVCTRL.vec.EXTINTEO & mask) != 0)) { +#endif +#ifdef SAMD51 + ((EIC->INTENSET.bit.EXTINT & mask) != 0 || (EIC->EVCTRL.bit.EXTINTEO & mask) != 0)) { +#endif + mp_raise_RuntimeError(translate("EXTINT channel already in use")); + } + + Tc *tc = NULL; + int8_t index = TC_INST_NUM - 1; + for (; index >= 0; index--) { + if (tc_insts[index]->COUNT16.CTRLA.bit.ENABLE == 0) { + tc = tc_insts[index]; + break; + } + } + + if (tc == NULL) { + mp_raise_RuntimeError(translate("All timers in use")); + } + + self->tc_index = index; + self->pin = pin->number; + self->channel = pin->extint_channel; + self->base_clock = 48000000; + #ifdef SAMD21 + self->TC_IRQ = TC3_IRQn + index; + #endif + #ifdef SAMD51 + self->TC_IRQ = TC0_IRQn + index; + #endif + + active_frequencyins[index] = self; + + // We use GCLK0 for SAMD21 and GCLK1 for SAMD51 because they both run at 48mhz making our + // math the same across the boards. + #ifdef SAMD21 + turn_on_clocks(true, index, 0, TC_HANDLER_FREQUENCYIN); + #endif + #ifdef SAMD51 + turn_on_clocks(true, index, 1, TC_HANDLER_FREQUENCYIN); + #endif + + // Ensure EIC is on + if (eic_get_enable() == 0) { + turn_on_external_interrupt_controller(); // enables EIC, so disable it after + } + eic_set_enable(false); + + uint8_t sense_setting = EIC_CONFIG_SENSE0_HIGH_Val; //EIC_CONFIG_FILTEN0 | EIC_CONFIG_SENSE0_HIGH_Val; + uint8_t config_index = self->channel / 8; + uint8_t position = (self->channel % 8) * 4; + uint32_t masked_value = EIC->CONFIG[config_index].reg & ~(0xf << position); + EIC->CONFIG[config_index].reg = masked_value | (sense_setting << position); + + #ifdef SAMD21 + masked_value = EIC->EVCTRL.vec.EXTINTEO; + EIC->EVCTRL.vec.EXTINTEO = masked_value | (1 << self->channel); + #endif + #ifdef SAMD51 + masked_value = EIC->EVCTRL.bit.EXTINTEO; + EIC->EVCTRL.bit.EXTINTEO = masked_value | (1 << self->channel); + EIC->ASYNCH.bit.ASYNCH = 1; + #endif + + turn_on_cpu_interrupt(self->channel); + + eic_set_enable(true); + + #ifdef SAMD21 + tc_set_enable(tc, false); + tc_reset(tc); + tc->COUNT16.CTRLA.reg = TC_CTRLA_MODE_COUNT16 | + TC_CTRLA_PRESCALER_DIV1 | + TC_CTRLA_WAVEGEN_NFRQ; + + // Setup TC capture registers. + tc->COUNT16.EVCTRL.bit.TCEI = 1; + tc->COUNT16.EVCTRL.bit.EVACT = TC_EVCTRL_EVACT_PPW_Val; + tc->COUNT16.CTRLC.bit.CPTEN0 = 1; + tc->COUNT16.INTENSET.bit.MC0 = 1; + #endif + + #ifdef SAMD51 + tc_set_enable(tc, false); + tc_reset(tc); + + // setup capture registers. + tc->COUNT16.EVCTRL.reg = TC_EVCTRL_EVACT(TC_EVCTRL_EVACT_PPW_Val) | TC_EVCTRL_TCEI; + tc->COUNT16.WAVE.reg = TC_WAVE_WAVEGEN_NFRQ; + tc->COUNT16.CTRLA.reg = TC_CTRLA_MODE_COUNT16 | + TC_CTRLA_PRESCALER_DIV1 | + (1 << TC_CTRLA_CAPTEN0_Pos); + tc->COUNT16.INTENSET.bit.MC0 = 1; + #endif + + NVIC_EnableIRQ(self->TC_IRQ); + + // Turn on EVSYS + turn_on_event_system(); + uint8_t evsys_channel = find_async_event_channel(); + #ifdef SAMD21 + connect_event_user_to_channel((EVSYS_ID_USER_TC3_EVU + index), evsys_channel); + #endif + #ifdef SAMD51 + connect_event_user_to_channel((EVSYS_ID_USER_TC0_EVU + index), evsys_channel); + #endif + init_async_event_channel(evsys_channel, (EVSYS_ID_GEN_EIC_EXTINT_0 + self->channel)); + self->event_channel = evsys_channel; + + gpio_set_pin_function(pin->number, GPIO_PIN_FUNCTION_A); + + tc_set_enable(tc, true); + #ifdef SAMD51 + // setup the FREQM peripheral since DFLL is in open loop and may not be running + // at exactly 48MHz. FREQM uses a free GCLK sourced from OSCULP32K (@ 32kHz) for the + // reference clock, and GCLK1 as the DFLL clock to measure. + freqm_init(GCLK_PCHCTRL_GEN_GCLK1_Val, 2); + #endif +} + +bool common_hal_pulseio_frequencyin_deinited(pulseio_frequencyin_obj_t* self) { + return self->pin == NO_PIN; +} + +void common_hal_pulseio_frequencyin_deinit(pulseio_frequencyin_obj_t* self) { + if (common_hal_pulseio_frequencyin_deinited(self)) { + return; + } + reset_pin(self->pin); + + // turn off EIC & EVSYS utilized by this TC + disable_event_channel(self->event_channel); + #ifdef SAMD21 + disable_event_user(EVSYS_ID_USER_TC3_EVU + self->tc_index); + uint32_t masked_value = EIC->EVCTRL.vec.EXTINTEO; + EIC->EVCTRL.vec.EXTINTEO = masked_value | (0 << self->channel); + #endif + #ifdef SAMD51 + disable_event_user(EVSYS_ID_USER_TC0_EVU + self->tc_index); + uint32_t masked_value = EIC->EVCTRL.bit.EXTINTEO; + EIC->EVCTRL.bit.EXTINTEO = masked_value | (0 << self->channel); + EIC->ASYNCH.bit.ASYNCH = 0; + NVIC_DisableIRQ(EIC_0_IRQn + self->channel); + NVIC_ClearPendingIRQ(EIC_0_IRQn + self->channel); + freqm_deinit(); + #endif + + // check if any other objects are using the EIC; if not, turn it off + if (EIC->EVCTRL.reg == 0 && EIC->INTENSET.reg == 0) { + turn_off_external_interrupt_controller(); + #ifdef SAMD21 + NVIC_DisableIRQ(EIC_IRQn); + NVIC_ClearPendingIRQ(EIC_IRQn); + #endif + } + + // turn off the TC we were using + Tc *tc = tc_insts[self->tc_index]; + tc_set_enable(tc, false); + tc_reset(tc); + NVIC_DisableIRQ(self->TC_IRQ); + NVIC_ClearPendingIRQ(self->TC_IRQ); + + active_frequencyins[self->tc_index] = NULL; + self->tc_index = 0xff; + self->pin = NO_PIN; + self->TC_IRQ = 0; + self->channel = 0; +} + +uint32_t common_hal_pulseio_frequencyin_get_item(pulseio_frequencyin_obj_t* self) { + NVIC_DisableIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_DisableIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_DisableIRQ(EIC_0_IRQn + self->channel); + + // get the current clock speed of DFLL48MHz using FREQM + self->base_clock = freqm_read(); + if (self->base_clock < 0) { + mp_raise_RuntimeError(translate("An error occurred in measuring the frequency." + " (FREQM peripheral usage.)")); + } + #endif + + uint32_t value = self->base_clock / self->frequency; + + NVIC_ClearPendingIRQ(self->TC_IRQ); + NVIC_EnableIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_ClearPendingIRQ(EIC_IRQn); + NVIC_EnableIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_ClearPendingIRQ(EIC_0_IRQn + self->channel); + NVIC_EnableIRQ(EIC_0_IRQn + self->channel); + #endif + + return value; +} + +void common_hal_pulseio_frequencyin_pause(pulseio_frequencyin_obj_t* self) { + Tc *tc = tc_insts[self->tc_index]; + if (!tc->COUNT16.EVCTRL.bit.TCEI) { + return; + } + tc->COUNT16.EVCTRL.bit.TCEI = 0; + + #ifdef SAMD21 + uint32_t masked_value = EIC->EVCTRL.vec.EXTINTEO; + EIC->EVCTRL.vec.EXTINTEO = masked_value | (0 << self->channel); + #endif + #ifdef SAMD51 + uint32_t masked_value = EIC->EVCTRL.bit.EXTINTEO; + EIC->EVCTRL.bit.EXTINTEO = masked_value | (0 << self->channel); + #endif + return; +} + +void common_hal_pulseio_frequencyin_resume(pulseio_frequencyin_obj_t* self) { + Tc *tc = tc_insts[self->tc_index]; + if (tc->COUNT16.EVCTRL.bit.TCEI) { + return; + } + tc->COUNT16.EVCTRL.bit.TCEI = 1; + + #ifdef SAMD21 + uint32_t masked_value = EIC->EVCTRL.vec.EXTINTEO; + EIC->EVCTRL.vec.EXTINTEO = masked_value | (1 << self->channel); + #endif + #ifdef SAMD51 + uint32_t masked_value = EIC->EVCTRL.bit.EXTINTEO; + EIC->EVCTRL.bit.EXTINTEO = masked_value | (1 << self->channel); + #endif + return; +} + +void common_hal_pulseio_frequencyin_clear(pulseio_frequencyin_obj_t* self) { + NVIC_DisableIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_DisableIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_DisableIRQ(EIC_0_IRQn + self->channel); + #endif + + self->frequency = 0; + self->pulse_width = 0; + + NVIC_ClearPendingIRQ(self->TC_IRQ); + NVIC_EnableIRQ(self->TC_IRQ); + #ifdef SAMD21 + NVIC_ClearPendingIRQ(EIC_IRQn); + NVIC_EnableIRQ(EIC_IRQn); + #endif + #ifdef SAMD51 + NVIC_ClearPendingIRQ(EIC_0_IRQn + self->channel); + NVIC_EnableIRQ(EIC_0_IRQn + self->channel); + #endif +} diff --git a/ports/atmel-samd/common-hal/pulseio/FrequencyIn.h b/ports/atmel-samd/common-hal/pulseio/FrequencyIn.h new file mode 100755 index 0000000000000..9925702702c2c --- /dev/null +++ b/ports/atmel-samd/common-hal/pulseio/FrequencyIn.h @@ -0,0 +1,50 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 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. + */ + +#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PULSEIO_FREQUENCYIN_H +#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PULSEIO_FREQUENCYIN_H + +#include "common-hal/microcontroller/Pin.h" + +#include "py/obj.h" + +typedef struct { + mp_obj_base_t base; + uint8_t tc_index; + uint8_t pin; + uint8_t channel; + uint8_t event_channel; + uint16_t frequency; + uint16_t pulse_width; + uint8_t TC_IRQ; + uint32_t base_clock; +} pulseio_frequencyin_obj_t; + +void frequencyin_interrupt_handler(uint8_t index); +void frequencyin_emergency_cancel_capture(uint8_t index); + + +#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PULSEIO_FREQUENCYIN_H diff --git a/ports/atmel-samd/common-hal/pulseio/PWMOut.c b/ports/atmel-samd/common-hal/pulseio/PWMOut.c index 4e1b61d787e82..782d189715eb3 100644 --- a/ports/atmel-samd/common-hal/pulseio/PWMOut.c +++ b/ports/atmel-samd/common-hal/pulseio/PWMOut.c @@ -31,6 +31,7 @@ #include "common-hal/pulseio/PWMOut.h" #include "shared-bindings/pulseio/PWMOut.h" #include "shared-bindings/microcontroller/Processor.h" +#include "timer_handler.h" #include "atmel_start_pins.h" #include "hal/utils/include/utils_repeat_macro.h" @@ -208,7 +209,7 @@ void common_hal_pulseio_pwmout_construct(pulseio_pwmout_obj_t* self, } // We use the zeroeth clock on either port to go full speed. - turn_on_clocks(timer->is_tc, timer->index, 0); + turn_on_clocks(timer->is_tc, timer->index, 0, TC_HANDLER_NO_INTERRUPT); if (timer->is_tc) { tc_periods[timer->index] = top; diff --git a/ports/atmel-samd/common-hal/pulseio/PulseOut.c b/ports/atmel-samd/common-hal/pulseio/PulseOut.c index 8c9f28eb841bd..68f5d8fff94c5 100644 --- a/ports/atmel-samd/common-hal/pulseio/PulseOut.c +++ b/ports/atmel-samd/common-hal/pulseio/PulseOut.c @@ -37,6 +37,7 @@ #include "py/runtime.h" #include "shared-bindings/pulseio/PulseOut.h" #include "supervisor/shared/translate.h" +#include "timer_handler.h" // This timer is shared amongst all PulseOut objects under the assumption that // the code is single threaded. @@ -115,10 +116,10 @@ void common_hal_pulseio_pulseout_construct(pulseio_pulseout_obj_t* self, // We use GCLK0 for SAMD21 and GCLK1 for SAMD51 because they both run at 48mhz making our // math the same across the boards. #ifdef SAMD21 - turn_on_clocks(true, index, 0); + turn_on_clocks(true, index, 0, TC_HANDLER_PULSEOUT); #endif #ifdef SAMD51 - turn_on_clocks(true, index, 1); + turn_on_clocks(true, index, 1, TC_HANDLER_PULSEOUT); #endif diff --git a/ports/atmel-samd/peripherals b/ports/atmel-samd/peripherals index 156279784cb3d..78e6dd9758279 160000 --- a/ports/atmel-samd/peripherals +++ b/ports/atmel-samd/peripherals @@ -1 +1 @@ -Subproject commit 156279784cb3d22f7f8a8d93b4bb55e2d912a5f8 +Subproject commit 78e6dd9758279b1d439267ce76ef4e46f229eb30 diff --git a/ports/atmel-samd/timer_handler.c b/ports/atmel-samd/timer_handler.c new file mode 100755 index 0000000000000..bb0d248b555f6 --- /dev/null +++ b/ports/atmel-samd/timer_handler.c @@ -0,0 +1,52 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2017 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 +#include + +#include "timer_handler.h" + +#include "common-hal/pulseio/PulseOut.h" +#include "common-hal/pulseio/FrequencyIn.h" + +static uint8_t tc_handler[TC_INST_NUM]; + +void set_timer_handler(uint8_t index, uint8_t timer_handler) { + tc_handler[index] = timer_handler; +} + +void shared_timer_handler(bool is_tc, uint8_t index) { + // Add calls to interrupt handlers for specific functionality here. + // Make sure to add the handler #define to timer_handler.h + if (is_tc) { + uint8_t handler = tc_handler[index]; + if (handler == TC_HANDLER_PULSEOUT) { + pulseout_interrupt_handler(index); + } else if (handler == TC_HANDLER_FREQUENCYIN) { + frequencyin_interrupt_handler(index); + } + } +} diff --git a/ports/atmel-samd/timer_handler.h b/ports/atmel-samd/timer_handler.h new file mode 100755 index 0000000000000..3243740e24e5d --- /dev/null +++ b/ports/atmel-samd/timer_handler.h @@ -0,0 +1,36 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 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. + */ +#ifndef MICROPY_INCLUDED_ATMEL_SAMD_TIMER_HANDLER_H +#define MICROPY_INCLUDED_ATMEL_SAMD_TIMER_HANDLER_H + +#define TC_HANDLER_NO_INTERRUPT 0x0 +#define TC_HANDLER_PULSEOUT 0x1 +#define TC_HANDLER_FREQUENCYIN 0x2 + +void set_timer_handler(uint8_t index, uint8_t timer_handler); +void shared_timer_handler(bool is_tc, uint8_t index); + +#endif // MICROPY_INCLUDED_ATMEL_SAMD_TIMER_HANDLER_H diff --git a/ports/esp8266/Makefile b/ports/esp8266/Makefile index 3b6cc1fb4872c..5e0b22af5fc53 100644 --- a/ports/esp8266/Makefile +++ b/ports/esp8266/Makefile @@ -113,6 +113,7 @@ SRC_COMMON_HAL = \ pulseio/PulseIn.c \ pulseio/PulseOut.c \ pulseio/PWMOut.c \ + pulseio/FrequencyIn.c \ busio/__init__.c \ busio/SPI.c \ busio/UART.c \ diff --git a/ports/esp8266/common-hal/pulseio/FrequencyIn.c b/ports/esp8266/common-hal/pulseio/FrequencyIn.c new file mode 100755 index 0000000000000..dce623cec33b2 --- /dev/null +++ b/ports/esp8266/common-hal/pulseio/FrequencyIn.c @@ -0,0 +1,54 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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 + +#include "py/runtime.h" +#include "shared-bindings/pulseio/FrequencyIn.h" + +void common_hal_pulseio_frequencyin_construct(pulseio_frequencyin_obj_t* self, const mcu_pin_obj_t* pin) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, translate("No hardware support for FrequencyIn."))); +} + +bool common_hal_pulseio_frequencyin_deinited(pulseio_frequencyin_obj_t* self) { + return true; +} + +void common_hal_pulseio_frequencyin_deinit(pulseio_frequencyin_obj_t* self) { +} + +uint32_t common_hal_pulseio_frequencyin_get_item(pulseio_frequencyin_obj_t* self) { + return 0; +} + +void common_hal_pulseio_frequencyin_pause(pulseio_frequencyin_obj_t* self) { +} + +void common_hal_pulseio_frequencyin_resume(pulseio_frequencyin_obj_t* self) { +} + +void common_hal_pulseio_frequencyin_clear(pulseio_frequencyin_obj_t* self) { +} diff --git a/ports/esp8266/common-hal/pulseio/FrequencyIn.h b/ports/esp8266/common-hal/pulseio/FrequencyIn.h new file mode 100755 index 0000000000000..de47d342b01a8 --- /dev/null +++ b/ports/esp8266/common-hal/pulseio/FrequencyIn.h @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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. + */ + +#ifndef MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_FREQUENCYIN_H +#define MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_FREQUENCYIN_H + +#include "common-hal/microcontroller/Pin.h" + +#include "py/obj.h" + +typedef struct { + mp_obj_base_t base; +} pulseio_frequencyin_obj_t; + +#endif // MICROPY_INCLUDED_ESP8266_COMMON_HAL_PULSEIO_FREQUENCYIN_H diff --git a/ports/nrf/Makefile b/ports/nrf/Makefile index f3cc0e35ba19b..ca40549bc4132 100755 --- a/ports/nrf/Makefile +++ b/ports/nrf/Makefile @@ -154,6 +154,7 @@ SRC_COMMON_HAL += \ pulseio/PulseIn.c \ pulseio/PulseOut.c \ pulseio/PWMOut.c \ + pulseio/FrequencyIn.c \ storage/__init__.c \ supervisor/__init__.c \ supervisor/Runtime.c \ diff --git a/ports/nrf/common-hal/pulseio/FrequencyIn.c b/ports/nrf/common-hal/pulseio/FrequencyIn.c new file mode 100755 index 0000000000000..71d1ccd4665df --- /dev/null +++ b/ports/nrf/common-hal/pulseio/FrequencyIn.c @@ -0,0 +1,53 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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 + +#include "py/runtime.h" +#include "common-hal/pulseio/FrequencyIn.h" +void common_hal_pulseio_frequencyin_construct(pulseio_frequencyin_obj_t* self, const mcu_pin_obj_t* pin) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, translate("No hardware support for FrequencyIn."))); +} + +bool common_hal_pulseio_frequencyin_deinited(pulseio_frequencyin_obj_t* self) { + return true; +} + +void common_hal_pulseio_frequencyin_deinit(pulseio_frequencyin_obj_t* self) { +} + +uint32_t common_hal_pulseio_frequencyin_get_item(pulseio_frequencyin_obj_t* self) { + return 0; +} + +void common_hal_pulseio_frequencyin_pause(pulseio_frequencyin_obj_t* self) { +} + +void common_hal_pulseio_frequencyin_resume(pulseio_frequencyin_obj_t* self) { +} + +void common_hal_pulseio_frequencyin_clear(pulseio_frequencyin_obj_t* self) { +} diff --git a/ports/nrf/common-hal/pulseio/FrequencyIn.h b/ports/nrf/common-hal/pulseio/FrequencyIn.h new file mode 100755 index 0000000000000..e380f329d603b --- /dev/null +++ b/ports/nrf/common-hal/pulseio/FrequencyIn.h @@ -0,0 +1,38 @@ +/* + * This file is part of the MicroPython project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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. + */ + +#ifndef MICROPY_INCLUDED_NRF_COMMON_HAL_PULSEIO_FREQUENCYIN_H +#define MICROPY_INCLUDED_NRF_COMMON_HAL_PULSEIO_FREQUENCYIN_H + +#include "common-hal/microcontroller/Pin.h" + +#include "py/obj.h" + +typedef struct { + mp_obj_base_t base; +} pulseio_frequencyin_obj_t; + +#endif // MICROPY_INCLUDED_NRF_COMMON_HAL_PULSEIO_FREQUENCYIN_H diff --git a/shared-bindings/pulseio/FrequencyIn.c b/shared-bindings/pulseio/FrequencyIn.c new file mode 100755 index 0000000000000..635817384ebe0 --- /dev/null +++ b/shared-bindings/pulseio/FrequencyIn.c @@ -0,0 +1,191 @@ +/* + * This file is part of the Micro Python project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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 + +#include "lib/utils/context_manager_helpers.h" +#include "py/objproperty.h" +#include "py/runtime.h" +#include "py/runtime0.h" +#include "shared-bindings/microcontroller/Pin.h" +#include "shared-bindings/pulseio/FrequencyIn.h" +#include "shared-bindings/util.h" +#include "supervisor/shared/translate.h" + +//| .. currentmodule:: pulseio +//| +//| :class:`FrequencyIn` -- Read a frequency signal +//| ======================================================== +//| +//| FrequencyIn is used to measure the frequency, in hertz, of a digital signal +//| on an incoming pin. Accuracy has shown to be within 1kHz, if not better. +//| Current maximum detectable frequency is ~512kHz. +//| It will not determine pulse width (use ``PulseIn``). +//| +//| .. class:: FrequencyIn(pin) +//| +//| Create a FrequencyIn object associated with the given pin. +//| +//| :param ~microcontroller.Pin pin: Pin to read frequency from. +//| +//| Read the incoming frequency from a pin:: +//| +//| import pulseio +//| import board +//| +//| frequency = pulseio.FrequencyIn(board.D11) +//| +//| # Loop while printing the detected frequency +//| while True: +//| print(frequency.value) +//| +//| # Optional clear() will reset the value +//| # to zero. Without this, if the incoming +//| # signal stops, the last reading will remain +//| # as the value. +//| frequency.clear() +//| +STATIC mp_obj_t pulseio_frequencyin_make_new(const mp_obj_type_t *type, mp_uint_t n_args, + mp_uint_t n_kw, const mp_obj_t *args) { + mp_arg_check_num(n_args, n_kw, 1, 1, true); + + pulseio_frequencyin_obj_t *self = m_new_obj(pulseio_frequencyin_obj_t); + self->base.type = &pulseio_frequencyin_type; + + assert_pin(args[0], false); + mcu_pin_obj_t *pin = MP_OBJ_TO_PTR(args[0]); + assert_pin_free(pin); + + common_hal_pulseio_frequencyin_construct(self, pin); + + return MP_OBJ_FROM_PTR(self); +} + +//| .. method:: deinit() +//| +//| Deinitialises the FrequencyIn and releases any hardware resources for reuse. +//| +STATIC mp_obj_t pulseio_frequencyin_deinit(mp_obj_t self_in) { + pulseio_frequencyin_obj_t *self = MP_OBJ_TO_PTR(self_in); + common_hal_pulseio_frequencyin_deinit(self); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(pulseio_frequencyin_deinit_obj, pulseio_frequencyin_deinit); + +//| .. method:: __enter__() +//| +//| No-op used by Context Managers. +//| +// Provided by context manager helper. + +//| .. method:: __exit__() +//| +//| Automatically deinitializes the hardware when exiting a context. See +//| :ref:`lifetime-and-contextmanagers` for more info. +//| +STATIC mp_obj_t pulseio_frequencyin_obj___exit__(size_t n_args, const mp_obj_t *args) { + (void)n_args; + common_hal_pulseio_frequencyin_deinit(args[0]); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pulseio_frequencyin___exit___obj, 4, 4, pulseio_frequencyin_obj___exit__); + +//| .. method:: pause() +//| +//| Pause frequency capture. +//| +STATIC mp_obj_t pulseio_frequencyin_obj_pause(mp_obj_t self_in) { + pulseio_frequencyin_obj_t *self = MP_OBJ_TO_PTR(self_in); + raise_error_if_deinited(common_hal_pulseio_frequencyin_deinited(self)); + + common_hal_pulseio_frequencyin_pause(self); + return mp_const_none; +} +MP_DEFINE_CONST_FUN_OBJ_1(pulseio_frequencyin_pause_obj, pulseio_frequencyin_obj_pause); + +//| .. method:: resume() +//| +//| Resumes frequency capture. +//| +STATIC mp_obj_t pulseio_frequencyin_obj_resume(mp_obj_t self_in) { + pulseio_frequencyin_obj_t *self = MP_OBJ_TO_PTR(self_in); + raise_error_if_deinited(common_hal_pulseio_frequencyin_deinited(self)); + + common_hal_pulseio_frequencyin_resume(self); + return mp_const_none; +} +MP_DEFINE_CONST_FUN_OBJ_1(pulseio_frequencyin_resume_obj, pulseio_frequencyin_obj_resume); + +//| .. method:: clear() +//| +//| Clears the last detected frequency capture value. +//| +STATIC mp_obj_t pulseio_frequencyin_obj_clear(mp_obj_t self_in) { + pulseio_frequencyin_obj_t *self = MP_OBJ_TO_PTR(self_in); + raise_error_if_deinited(common_hal_pulseio_frequencyin_deinited(self)); + + common_hal_pulseio_frequencyin_clear(self); + return mp_const_none; +} +MP_DEFINE_CONST_FUN_OBJ_1(pulseio_frequencyin_clear_obj, pulseio_frequencyin_obj_clear); + +//| .. method:: __get__(index) +//| +//| Returns the value of the last frequency captured. +//| +STATIC mp_obj_t pulseio_frequencyin_obj_get_value(mp_obj_t self_in) { + pulseio_frequencyin_obj_t *self = MP_OBJ_TO_PTR(self_in); + raise_error_if_deinited(common_hal_pulseio_frequencyin_deinited(self)); + + return MP_OBJ_NEW_SMALL_INT(common_hal_pulseio_frequencyin_get_item(self)); +} +MP_DEFINE_CONST_FUN_OBJ_1(pulseio_frequencyin_get_value_obj, pulseio_frequencyin_obj_get_value); + +const mp_obj_property_t pulseio_frequencyin_value_obj = { + .base.type = &mp_type_property, + .proxy = {(mp_obj_t)&pulseio_frequencyin_get_value_obj, + (mp_obj_t)&mp_const_none_obj, + (mp_obj_t)&mp_const_none_obj}, +}; + +STATIC const mp_rom_map_elem_t pulseio_frequencyin_locals_dict_table[] = { + // Methods + { MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&pulseio_frequencyin_deinit_obj) }, + { MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) }, + { MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&pulseio_frequencyin___exit___obj) }, + { MP_ROM_QSTR(MP_QSTR_value), MP_ROM_PTR(&pulseio_frequencyin_value_obj) }, + { MP_ROM_QSTR(MP_QSTR_pause), MP_ROM_PTR(&pulseio_frequencyin_pause_obj) }, + { MP_ROM_QSTR(MP_QSTR_resume), MP_ROM_PTR(&pulseio_frequencyin_resume_obj) }, + { MP_ROM_QSTR(MP_QSTR_clear), MP_ROM_PTR(&pulseio_frequencyin_clear_obj) }, +}; +STATIC MP_DEFINE_CONST_DICT(pulseio_frequencyin_locals_dict, pulseio_frequencyin_locals_dict_table); + +const mp_obj_type_t pulseio_frequencyin_type = { + { &mp_type_type }, + .name = MP_QSTR_frequencyin, + .make_new = pulseio_frequencyin_make_new, + .locals_dict = (mp_obj_dict_t*)&pulseio_frequencyin_locals_dict, +}; diff --git a/shared-bindings/pulseio/FrequencyIn.h b/shared-bindings/pulseio/FrequencyIn.h new file mode 100755 index 0000000000000..724907ae3bc5f --- /dev/null +++ b/shared-bindings/pulseio/FrequencyIn.h @@ -0,0 +1,44 @@ +/* + * This file is part of the Micro Python project, http://micropython.org/ + * + * The MIT License (MIT) + * + * Copyright (c) 2018 Michael Schroeder + * + * 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. + */ + +#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_PULSEIO_FREQUENCYIN_H +#define MICROPY_INCLUDED_SHARED_BINDINGS_PULSEIO_FREQUENCYIN_H + +#include "common-hal/microcontroller/Pin.h" +#include "common-hal/pulseio/FrequencyIn.h" + +extern const mp_obj_type_t pulseio_frequencyin_type; + +extern void common_hal_pulseio_frequencyin_construct(pulseio_frequencyin_obj_t* self, + const mcu_pin_obj_t* pin); +extern void common_hal_pulseio_frequencyin_deinit(pulseio_frequencyin_obj_t* self); +extern bool common_hal_pulseio_frequencyin_deinited(pulseio_frequencyin_obj_t* self); +extern void common_hal_pulseio_frequencyin_pause(pulseio_frequencyin_obj_t* self); +extern void common_hal_pulseio_frequencyin_resume(pulseio_frequencyin_obj_t* self); +extern void common_hal_pulseio_frequencyin_clear(pulseio_frequencyin_obj_t* self); +extern uint32_t common_hal_pulseio_frequencyin_get_item(pulseio_frequencyin_obj_t* self); + +#endif // MICROPY_INCLUDED_SHARED_BINDINGS_PULSEIO_FREQUENCYIN_H diff --git a/shared-bindings/pulseio/__init__.c b/shared-bindings/pulseio/__init__.c index 1114b604b254a..3d5026d20dbdf 100644 --- a/shared-bindings/pulseio/__init__.c +++ b/shared-bindings/pulseio/__init__.c @@ -34,13 +34,14 @@ #include "shared-bindings/pulseio/PulseIn.h" #include "shared-bindings/pulseio/PulseOut.h" #include "shared-bindings/pulseio/PWMOut.h" +#include "shared-bindings/pulseio/FrequencyIn.h" //| :mod:`pulseio` --- Support for pulse based protocols //| ===================================================== //| //| .. module:: pulseio //| :synopsis: Support for pulse based protocols -//| :platform: SAMD21, ESP8266 +//| :platform: SAMD, ESP8266 //| //| The `pulseio` module contains classes to provide access to basic pulse IO. //| @@ -52,6 +53,7 @@ //| PulseIn //| PulseOut //| PWMOut +//| FrequencyIn (SAMD Only) //| //| .. warning:: This module is not available in some SAMD21 builds. See the @@ -85,6 +87,7 @@ STATIC const mp_rom_map_elem_t pulseio_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_PulseIn), MP_ROM_PTR(&pulseio_pulsein_type) }, { MP_ROM_QSTR(MP_QSTR_PulseOut), MP_ROM_PTR(&pulseio_pulseout_type) }, { MP_ROM_QSTR(MP_QSTR_PWMOut), MP_ROM_PTR(&pulseio_pwmout_type) }, + { MP_ROM_QSTR(MP_QSTR_FrequencyIn), MP_ROM_PTR(&pulseio_frequencyin_type) }, }; STATIC MP_DEFINE_CONST_DICT(pulseio_module_globals, pulseio_module_globals_table);