summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2020-03-05 17:47:01 -0500
committerDan Halbert <halbert@halwitz.org>2020-03-05 17:47:01 -0500
commit210c3274e5b91b603dad6ddeadd3ba2b743b24ae (patch)
treeff1a56e4cbca38068db152aea994b382c45cdaa8
parent817b5be320b36b9cac59b195b1c19359783fe032 (diff)
parent4fa90261a37f0f729b52289cf54492ec7108e16b (diff)
Merge remote-tracking branch 'adafruit/master' into assert_pin-and-mp_const_none-cleanup
-rw-r--r--.github/workflows/build.yml10
-rw-r--r--.gitmodules5
m---------extmod/ulab0
-rw-r--r--lib/libm/erf_lgamma.c1
-rw-r--r--lib/libm/log1pf.c2
-rw-r--r--lib/libm/math.c3
-rw-r--r--lib/oofatfs/ff.c6
-rw-r--r--lib/oofatfs/ffconf.h6
-rw-r--r--locale/ID.po224
-rw-r--r--locale/circuitpython.pot224
-rw-r--r--locale/de_DE.po224
-rw-r--r--locale/en_US.po224
-rw-r--r--locale/en_x_pirate.po224
-rw-r--r--locale/es.po224
-rw-r--r--locale/fil.po224
-rw-r--r--locale/fr.po224
-rw-r--r--locale/it_IT.po224
-rw-r--r--locale/ko.po224
-rw-r--r--locale/pl.po224
-rw-r--r--locale/pt_BR.po224
-rw-r--r--locale/zh_Latn_pinyin.po229
-rw-r--r--mpy-cross/.gitignore1
-rw-r--r--mpy-cross/Makefile.fuzz6
-rw-r--r--ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk2
-rw-r--r--ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk2
-rw-r--r--ports/atmel-samd/mpconfigport.mk6
-rwxr-xr-xports/nrf/Makefile1
-rw-r--r--ports/nrf/mpconfigport.mk1
-rw-r--r--ports/nrf/supervisor/qspi_flash.c43
-rw-r--r--ports/stm32f4/common-hal/pulseio/PWMOut.c2
-rw-r--r--ports/stm32f4/common-hal/pulseio/PulseOut.c163
-rw-r--r--ports/stm32f4/common-hal/pulseio/PulseOut.h2
-rw-r--r--ports/stm32f4/peripherals/stm32f4/periph.h7
-rw-r--r--ports/stm32f4/peripherals/stm32f4/stm32f405xx/gpio.c6
-rw-r--r--ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c6
-rw-r--r--ports/stm32f4/supervisor/port.c2
-rw-r--r--ports/unix/Makefile12
-rw-r--r--ports/unix/mpconfigport.h3
-rw-r--r--ports/unix/mpconfigport.mk2
-rw-r--r--py/builtin.h7
-rw-r--r--py/builtinimport.c30
-rw-r--r--py/circuitpy_defns.mk13
-rw-r--r--py/circuitpy_mpconfig.h6
-rw-r--r--py/compile.c17
-rwxr-xr-xpy/gc_long_lived.c2
-rwxr-xr-xpy/mpconfig.h4
-rw-r--r--py/objmodule.c15
-rw-r--r--py/parse.c3
-rw-r--r--py/py.mk16
-rw-r--r--shared-bindings/audiocore/RawSample.c2
-rw-r--r--shared-bindings/ulab/__init__.rst450
-rwxr-xr-xtests/run-tests2
-rw-r--r--tools/build_board_info.py19
-rwxr-xr-xtools/upload_release_files.py35
54 files changed, 3703 insertions, 135 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 118135850..32c949a3a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -273,13 +273,3 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
if: github.event_name == 'push' || (github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested'))
- - name: Install upload deps
- run: |
- pip install uritemplate
- - name: Upload to Release
- run: "[ -z \"$ADABOT_GITHUB_ACCESS_TOKEN\" ] || python3 -u upload_release_files.py"
- working-directory: tools
- env:
- UPLOAD_URL: ${{ github.event.release.upload_url }}
- ADABOT_GITHUB_ACCESS_TOKEN: ${{ secrets.BLINKA_GITHUB_ACCESS_TOKEN }}
- if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'rerequested')
diff --git a/.gitmodules b/.gitmodules
index 74ba714b2..9130593f2 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -114,9 +114,12 @@
[submodule "frozen/Adafruit_CircuitPython_Register"]
path = frozen/Adafruit_CircuitPython_Register
url = https://github.com/adafruit/Adafruit_CircuitPython_Register.git
+[submodule "extmod/ulab"]
+ path = extmod/ulab
+ url = https://github.com/adafruit/circuitpython-ulab
[submodule "frozen/Adafruit_CircuitPython_ESP32SPI"]
path = frozen/Adafruit_CircuitPython_ESP32SPI
url = https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI
[submodule "frozen/Adafruit_CircuitPython_Requests"]
path = frozen/Adafruit_CircuitPython_Requests
- url = https://github.com/adafruit/Adafruit_CircuitPython_Requests
+ url = https://github.com/adafruit/Adafruit_CircuitPython_Requests \ No newline at end of file
diff --git a/extmod/ulab b/extmod/ulab
new file mode 160000
+Subproject 42d831e1e65b1c75ed90de11b87a1c4a0ebe615
diff --git a/lib/libm/erf_lgamma.c b/lib/libm/erf_lgamma.c
index 877816a0c..fcb1d0a0c 100644
--- a/lib/libm/erf_lgamma.c
+++ b/lib/libm/erf_lgamma.c
@@ -24,6 +24,7 @@
*/
#include "fdlibm.h"
+#pragma GCC diagnostic ignored "-Wfloat-equal"
#define __ieee754_logf logf
diff --git a/lib/libm/log1pf.c b/lib/libm/log1pf.c
index 0d32b0a2f..89ed250b0 100644
--- a/lib/libm/log1pf.c
+++ b/lib/libm/log1pf.c
@@ -18,6 +18,8 @@
#include "libm.h"
+#pragma GCC diagnostic ignored "-Wfloat-equal"
+
static const float
ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
diff --git a/lib/libm/math.c b/lib/libm/math.c
index 39c6a68a5..0e53563bc 100644
--- a/lib/libm/math.c
+++ b/lib/libm/math.c
@@ -50,6 +50,9 @@ float copysignf(float x, float y) {
static const float _M_LN10 = 2.30258509299404; // 0x40135d8e
float log10f(float x) { return logf(x) / (float)_M_LN10; }
+#undef _M_LN2
+static const float _M_LN2 = 0.6931472;
+float log2f(float x) { return logf(x) / (float)_M_LN2; }
float tanhf(float x) {
if (isinf(x)) {
diff --git a/lib/oofatfs/ff.c b/lib/oofatfs/ff.c
index 71bd19702..e961c789d 100644
--- a/lib/oofatfs/ff.c
+++ b/lib/oofatfs/ff.c
@@ -3382,11 +3382,7 @@ FRESULT f_read (
if (!sect) ABORT(fs, FR_INT_ERR);
sect += csect;
cc = btr / SS(fs); /* When remaining bytes >= sector size, */
- if (cc
-#if _FS_DISK_READ_ALIGNED
- && (((int)rbuff & 3) == 0)
-#endif
- ) {/* Read maximum contiguous sectors directly */
+ if (cc) {/* Read maximum contiguous sectors directly */
if (csect + cc > fs->csize) { /* Clip at cluster boundary */
cc = fs->csize - csect;
}
diff --git a/lib/oofatfs/ffconf.h b/lib/oofatfs/ffconf.h
index a3795fa3f..214311b4c 100644
--- a/lib/oofatfs/ffconf.h
+++ b/lib/oofatfs/ffconf.h
@@ -343,12 +343,6 @@
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
/ included somewhere in the scope of ff.h. */
-// Set to nonzero if buffers passed to disk_read have a word alignment
-// restriction
-#ifndef _FS_DISK_READ_ALIGNED
-#define _FS_DISK_READ_ALIGNED 0
-#endif
-
/* #include <windows.h> // O/S definitions */
diff --git a/locale/ID.po b/locale/ID.po
index 01f461392..4325ac322 100644
--- a/locale/ID.po
+++ b/locale/ID.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -185,6 +185,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' membutuhkan 1 argumen"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' diluar fungsi"
@@ -684,6 +688,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -906,10 +914,13 @@ msgstr "Pin untuk channel kanan tidak valid"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Pin-pin tidak valid"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -999,6 +1010,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1133,6 +1148,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1176,7 +1192,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1593,6 +1609,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr ""
@@ -1606,6 +1626,10 @@ msgstr "argumen num/types tidak cocok"
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1614,6 +1638,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "mode compile buruk"
@@ -1857,6 +1893,10 @@ msgstr ""
msgid "cannot perform relative import"
msgstr "tidak dapat melakukan relative import"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1913,6 +1953,30 @@ msgstr ""
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1938,6 +2002,10 @@ msgstr ""
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1951,6 +2019,10 @@ msgstr ""
msgid "empty heap"
msgstr "heap kosong"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -2017,6 +2089,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2025,6 +2101,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr "bit pertama(firstbit) harus berupa MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr ""
@@ -2041,6 +2125,10 @@ msgstr ""
msgid "full"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "fungsi tidak dapat mengambil argumen keyword"
@@ -2117,6 +2205,10 @@ msgstr ""
msgid "incorrect padding"
msgstr "lapisan (padding) tidak benar"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2127,10 +2219,46 @@ msgstr "index keluar dari jangkauan"
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler harus sebuah fungsi"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2209,6 +2337,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2265,6 +2401,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2288,6 +2428,10 @@ msgstr ""
msgid "module not found"
msgstr "modul tidak ditemukan"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "perkalian *x dalam assignment"
@@ -2312,6 +2456,10 @@ msgstr "harus menentukan semua pin sck/mosi/miso"
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2398,6 +2546,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2457,6 +2613,14 @@ msgstr "modul tidak ditemukan"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2466,6 +2630,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2541,6 +2721,10 @@ msgstr ""
msgid "queue overflow"
msgstr "antrian meluap (overflow)"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "relative import"
@@ -2558,6 +2742,10 @@ msgstr "anotasi return harus sebuah identifier"
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2580,6 +2768,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr "kompilasi script tidak didukung"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2592,6 +2784,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2608,6 +2804,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr "memulai ulang software(soft reboot)\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2698,12 +2898,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2834,6 +3038,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2842,6 +3054,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot
index 354dbc4ba..5494ed932 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: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -184,6 +184,10 @@ msgid "'align' requires 1 argument"
msgstr ""
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr ""
@@ -673,6 +677,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -895,10 +903,13 @@ msgstr ""
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr ""
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -988,6 +999,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1121,6 +1136,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1162,7 +1178,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1570,6 +1586,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr ""
@@ -1583,6 +1603,10 @@ msgstr ""
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1591,6 +1615,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1833,6 +1869,10 @@ msgstr ""
msgid "cannot perform relative import"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1889,6 +1929,30 @@ msgstr ""
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1914,6 +1978,10 @@ msgstr ""
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1927,6 +1995,10 @@ msgstr ""
msgid "empty heap"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -1993,6 +2065,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2001,6 +2077,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr ""
@@ -2017,6 +2101,10 @@ msgstr ""
msgid "full"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr ""
@@ -2093,6 +2181,10 @@ msgstr ""
msgid "incorrect padding"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2103,10 +2195,46 @@ msgstr ""
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2185,6 +2313,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2241,6 +2377,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2264,6 +2404,10 @@ msgstr ""
msgid "module not found"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr ""
@@ -2288,6 +2432,10 @@ msgstr ""
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2374,6 +2522,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2432,6 +2588,14 @@ msgstr ""
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2441,6 +2605,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2516,6 +2696,10 @@ msgstr ""
msgid "queue overflow"
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr ""
@@ -2533,6 +2717,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2555,6 +2743,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2567,6 +2759,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2583,6 +2779,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2672,12 +2872,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2808,6 +3012,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2816,6 +3028,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/de_DE.po b/locale/de_DE.po
index 056f56d74..9f0ff3a43 100644
--- a/locale/de_DE.po
+++ b/locale/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: Pascal Deneaux\n"
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' erfordert genau ein Argument"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' außerhalb einer Funktion"
@@ -677,6 +681,10 @@ msgstr "Habe ein Tupel der Länge %d erwartet aber %d erhalten"
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr "Kommando nicht gesendet."
@@ -903,10 +911,13 @@ msgstr "Ungültiger Pin für rechten Kanal"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Ungültige Pins"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Ungültige Polarität"
@@ -997,6 +1008,10 @@ msgstr "Muss eine %q Unterklasse sein."
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1136,6 +1151,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1179,7 +1195,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1598,6 +1614,10 @@ msgstr "adresses ist leer"
msgid "arg is an empty sequence"
msgstr "arg ist eine leere Sequenz"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "Argument hat falschen Typ"
@@ -1611,6 +1631,10 @@ msgstr "Anzahl/Type der Argumente passen nicht"
msgid "argument should be a '%q' not a '%q'"
msgstr "Argument sollte '%q' sein, nicht '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "Array/Bytes auf der rechten Seite erforderlich"
@@ -1619,6 +1643,18 @@ msgstr "Array/Bytes auf der rechten Seite erforderlich"
msgid "attributes not supported yet"
msgstr "Attribute werden noch nicht unterstützt"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1861,6 +1897,10 @@ msgstr "Name %q kann nicht importiert werden"
msgid "cannot perform relative import"
msgstr "kann keinen relativen Import durchführen"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1918,6 +1958,30 @@ msgstr "constant muss ein integer sein"
msgid "conversion to object"
msgstr "Umwandlung zu Objekt"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "Dezimalzahlen nicht unterstützt"
@@ -1943,6 +2007,10 @@ msgstr "destination_length muss ein int >= 0 sein"
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1956,6 +2024,10 @@ msgstr "leer"
msgid "empty heap"
msgstr "leerer heap"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "leeres Trennzeichen"
@@ -2022,6 +2094,10 @@ msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
msgid "filesystem must provide mount method"
msgstr "Das Dateisystem muss eine Mount-Methode bereitstellen"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "Das erste Argument für super() muss type sein"
@@ -2030,6 +2106,14 @@ msgstr "Das erste Argument für super() muss type sein"
msgid "firstbit must be MSB"
msgstr "Erstes Bit muss das höchstwertigste Bit (MSB) sein"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "float zu groß"
@@ -2046,6 +2130,10 @@ msgstr ""
msgid "full"
msgstr "voll"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "Funktion akzeptiert keine Keyword-Argumente"
@@ -2123,6 +2211,10 @@ msgstr "unvollständiger Formatschlüssel"
msgid "incorrect padding"
msgstr "padding ist inkorrekt"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2133,10 +2225,46 @@ msgstr "index außerhalb der Reichweite"
msgid "indices must be integers"
msgstr "Indizes müssen ganze Zahlen sein"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler muss eine function sein"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "int() arg 2 muss >= 2 und <= 36 sein"
@@ -2215,6 +2343,14 @@ msgstr "issubclass() arg 1 muss eine Klasse sein"
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() arg 2 muss eine Klasse oder ein Tupel von Klassen sein"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2277,6 +2413,10 @@ msgstr "map buffer zu klein"
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2300,6 +2440,10 @@ msgstr "Speicherzuweisung fehlgeschlagen, der Heap ist gesperrt"
msgid "module not found"
msgstr "Modul nicht gefunden"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "mehrere *x in Zuordnung"
@@ -2324,6 +2468,10 @@ msgstr "sck/mosi/miso müssen alle spezifiziert sein"
msgid "must use keyword argument for key function"
msgstr "muss Schlüsselwortargument für key function verwenden"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "Name '%q' ist nirgends definiert worden (Schreibweise kontrollieren)"
@@ -2410,6 +2558,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2468,6 +2624,14 @@ msgstr "offset außerhalb der Grenzen"
msgid "only bit_depth=16 is supported"
msgstr "nur eine bit_depth=16 wird unterstützt"
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr "nur eine sample_rate=16000 wird unterstützt"
@@ -2477,6 +2641,22 @@ msgstr "nur eine sample_rate=16000 wird unterstützt"
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord erwartet ein Zeichen"
@@ -2554,6 +2734,10 @@ msgstr ""
msgid "queue overflow"
msgstr "Warteschlangenüberlauf"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "relativer Import"
@@ -2571,6 +2755,10 @@ msgstr "return annotation muss ein identifier sein"
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2595,6 +2783,10 @@ msgstr "Der schedule stack ist voll"
msgid "script compilation not supported"
msgstr "kompilieren von Skripten nicht unterstützt"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2607,6 +2799,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2623,6 +2819,10 @@ msgstr "small int Überlauf"
msgid "soft reboot\n"
msgstr "weicher reboot\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "start/end Indizes"
@@ -2713,12 +2913,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2853,6 +3057,14 @@ msgstr "value_count muss größer als 0 sein"
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "falsche Anzahl an Argumenten"
@@ -2861,6 +3073,10 @@ msgstr "falsche Anzahl an Argumenten"
msgid "wrong number of values to unpack"
msgstr "falsche Anzahl zu entpackender Werte"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x Wert außerhalb der Grenzen"
diff --git a/locale/en_US.po b/locale/en_US.po
index 58c798ce4..3ab55e3e3 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: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -184,6 +184,10 @@ msgid "'align' requires 1 argument"
msgstr ""
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr ""
@@ -673,6 +677,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -895,10 +903,13 @@ msgstr ""
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr ""
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -988,6 +999,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1121,6 +1136,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1162,7 +1178,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1570,6 +1586,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr ""
@@ -1583,6 +1603,10 @@ msgstr ""
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1591,6 +1615,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1833,6 +1869,10 @@ msgstr ""
msgid "cannot perform relative import"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1889,6 +1929,30 @@ msgstr ""
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1914,6 +1978,10 @@ msgstr ""
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1927,6 +1995,10 @@ msgstr ""
msgid "empty heap"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -1993,6 +2065,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2001,6 +2077,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr ""
@@ -2017,6 +2101,10 @@ msgstr ""
msgid "full"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr ""
@@ -2093,6 +2181,10 @@ msgstr ""
msgid "incorrect padding"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2103,10 +2195,46 @@ msgstr ""
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2185,6 +2313,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2241,6 +2377,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2264,6 +2404,10 @@ msgstr ""
msgid "module not found"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr ""
@@ -2288,6 +2432,10 @@ msgstr ""
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2374,6 +2522,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2432,6 +2588,14 @@ msgstr ""
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2441,6 +2605,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2516,6 +2696,10 @@ msgstr ""
msgid "queue overflow"
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr ""
@@ -2533,6 +2717,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2555,6 +2743,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2567,6 +2759,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2583,6 +2779,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2672,12 +2872,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2808,6 +3012,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2816,6 +3028,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/en_x_pirate.po b/locale/en_x_pirate.po
index e2ee9c887..6e31f7638 100644
--- a/locale/en_x_pirate.po
+++ b/locale/en_x_pirate.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
"Last-Translator: \n"
"Language-Team: @sommersoft, @MrCertainly\n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr ""
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr ""
@@ -677,6 +681,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -899,10 +907,13 @@ msgstr "Belay that! Invalid pin for starboard-side channel"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr ""
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -992,6 +1003,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1125,6 +1140,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1166,7 +1182,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1574,6 +1590,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr ""
@@ -1587,6 +1607,10 @@ msgstr ""
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1595,6 +1619,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1837,6 +1873,10 @@ msgstr ""
msgid "cannot perform relative import"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1893,6 +1933,30 @@ msgstr ""
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1918,6 +1982,10 @@ msgstr ""
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1931,6 +1999,10 @@ msgstr ""
msgid "empty heap"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -1997,6 +2069,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2005,6 +2081,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr ""
@@ -2021,6 +2105,10 @@ msgstr ""
msgid "full"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr ""
@@ -2097,6 +2185,10 @@ msgstr ""
msgid "incorrect padding"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2107,10 +2199,46 @@ msgstr ""
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2189,6 +2317,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2245,6 +2381,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2268,6 +2408,10 @@ msgstr ""
msgid "module not found"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr ""
@@ -2292,6 +2436,10 @@ msgstr ""
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2378,6 +2526,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2436,6 +2592,14 @@ msgstr ""
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2445,6 +2609,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2520,6 +2700,10 @@ msgstr ""
msgid "queue overflow"
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr ""
@@ -2537,6 +2721,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2559,6 +2747,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2571,6 +2763,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2587,6 +2783,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2676,12 +2876,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2812,6 +3016,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2820,6 +3032,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/es.po b/locale/es.po
index 8d445a469..406d91234 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: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' requiere 1 argumento"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' fuera de la función"
@@ -679,6 +683,10 @@ msgstr "Se esperaba un tuple de %d, se obtuvo %d"
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr "Fallo enviando comando"
@@ -903,10 +911,13 @@ msgstr "Pin inválido para canal derecho"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "pines inválidos"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Polaridad inválida"
@@ -996,6 +1007,10 @@ msgstr "Debe de ser una subclase de %q"
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1135,6 +1150,7 @@ msgstr ""
"PWM frecuencia no esta escrito cuando el variable_frequency es falso en "
"construcion"
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1178,7 +1194,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1594,6 +1610,10 @@ msgstr "addresses esta vacío"
msgid "arg is an empty sequence"
msgstr "argumento es una secuencia vacía"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "el argumento tiene un tipo erroneo"
@@ -1607,6 +1627,10 @@ msgstr "argumento número/tipos no coinciden"
msgid "argument should be a '%q' not a '%q'"
msgstr "argumento deberia ser un '%q' no un '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "array/bytes requeridos en el lado derecho"
@@ -1615,6 +1639,18 @@ msgstr "array/bytes requeridos en el lado derecho"
msgid "attributes not supported yet"
msgstr "atributos aún no soportados"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "modo de compilación erroneo"
@@ -1862,6 +1898,10 @@ msgstr "no se puede importar name '%q'"
msgid "cannot perform relative import"
msgstr "no se puedo realizar importación relativa"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1918,6 +1958,30 @@ msgstr "constant debe ser un entero"
msgid "conversion to object"
msgstr "conversión a objeto"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "números decimales no soportados"
@@ -1945,6 +2009,10 @@ msgstr "destination_length debe ser un int >= 0"
msgid "dict update sequence has wrong length"
msgstr "la secuencia de actualizacion del dict tiene una longitud incorrecta"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1958,6 +2026,10 @@ msgstr "vacío"
msgid "empty heap"
msgstr "heap vacío"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "separator vacío"
@@ -2024,6 +2096,10 @@ msgstr "el archivo deberia ser una archivo abierto en modo byte"
msgid "filesystem must provide mount method"
msgstr "sistema de archivos debe proporcionar método de montaje"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "primer argumento para super() debe ser de tipo"
@@ -2032,6 +2108,14 @@ msgstr "primer argumento para super() debe ser de tipo"
msgid "firstbit must be MSB"
msgstr "firstbit debe ser MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr ""
@@ -2048,6 +2132,10 @@ msgstr "format requiere un dict"
msgid "full"
msgstr "lleno"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "la función no tiene argumentos por palabra clave"
@@ -2124,6 +2212,10 @@ msgstr ""
msgid "incorrect padding"
msgstr "relleno (padding) incorrecto"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2134,10 +2226,46 @@ msgstr "index fuera de rango"
msgid "indices must be integers"
msgstr "indices deben ser enteros"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "ensamblador en línea debe ser una función"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "int() arg 2 debe ser >= 2 y <= 36"
@@ -2216,6 +2344,14 @@ msgstr "issubclass() arg 1 debe ser una clase"
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() arg 2 debe ser una clase o tuple de clases"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2275,6 +2411,10 @@ msgstr "map buffer muy pequeño"
msgid "math domain error"
msgstr "error de dominio matemático"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2298,6 +2438,10 @@ msgstr "la asignación de memoria falló, el heap está bloqueado"
msgid "module not found"
msgstr "módulo no encontrado"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "múltiples *x en la asignación"
@@ -2322,6 +2466,10 @@ msgstr "se deben de especificar sck/mosi/miso"
msgid "must use keyword argument for key function"
msgstr "debe utilizar argumento de palabra clave para la función clave"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "name '%q' no esta definido"
@@ -2411,6 +2559,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr "no suficientes argumentos para format string"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2470,6 +2626,14 @@ msgstr "address fuera de límites"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2479,6 +2643,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr "solo se admiten segmentos con step=1 (alias None)"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord espera un carácter"
@@ -2554,6 +2734,10 @@ msgstr "pow() con 3 argumentos requiere enteros"
msgid "queue overflow"
msgstr "desbordamiento de cola(queue)"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "import relativo"
@@ -2571,6 +2755,10 @@ msgstr "la anotación de retorno debe ser un identificador"
msgid "return expected '%q' but got '%q'"
msgstr "retorno esperado '%q' pero se obtuvo '%q'"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
@@ -2595,6 +2783,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr "script de compilación no soportado"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "signo no permitido en el espeficador de string format"
@@ -2607,6 +2799,10 @@ msgstr "signo no permitido con el especificador integer format 'c'"
msgid "single '}' encountered in format string"
msgstr "un solo '}' encontrado en format string"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "la longitud de sleep no puede ser negativa"
@@ -2623,6 +2819,10 @@ msgstr "pequeño int desbordamiento"
msgid "soft reboot\n"
msgstr "reinicio suave\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "índices inicio/final"
@@ -2713,12 +2913,16 @@ msgstr "timestamp fuera de rango para plataform time_t"
msgid "too many arguments provided with the given format"
msgstr "demasiados argumentos provistos con el formato dado"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "demasiados valores para descomprimir (%d esperado)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "tuple index fuera de rango"
@@ -2849,6 +3053,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "numero erroneo de argumentos"
@@ -2857,6 +3069,10 @@ msgstr "numero erroneo de argumentos"
msgid "wrong number of values to unpack"
msgstr "numero erroneo de valores a descomprimir"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"
diff --git a/locale/fil.po b/locale/fil.po
index b8b61d723..2c79dfe5c 100644
--- a/locale/fil.po
+++ b/locale/fil.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n"
@@ -187,6 +187,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' kailangan ng 1 argument"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' sa labas ng function"
@@ -687,6 +691,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -911,10 +919,13 @@ msgstr "Mali ang pin para sa kanang channel"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Mali ang pins"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Mali ang polarity"
@@ -1004,6 +1015,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1141,6 +1156,7 @@ msgid ""
msgstr ""
"PWM frequency hindi writable kapag variable_frequency ay False sa pag buo."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1184,7 +1200,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1603,6 +1619,10 @@ msgstr "walang laman ang address"
msgid "arg is an empty sequence"
msgstr "arg ay walang laman na sequence"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "may maling type ang argument"
@@ -1616,6 +1636,10 @@ msgstr "hindi tugma ang argument num/types"
msgid "argument should be a '%q' not a '%q'"
msgstr "argument ay dapat na '%q' hindi '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "array/bytes kinakailangan sa kanang bahagi"
@@ -1624,6 +1648,18 @@ msgstr "array/bytes kinakailangan sa kanang bahagi"
msgid "attributes not supported yet"
msgstr "attributes hindi sinusuportahan"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "masamang mode ng compile"
@@ -1873,6 +1909,10 @@ msgstr "hindi ma-import ang name %q"
msgid "cannot perform relative import"
msgstr "hindi maaring isagawa ang relative import"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr "casting"
@@ -1929,6 +1969,30 @@ msgstr "constant ay dapat na integer"
msgid "conversion to object"
msgstr "kombersyon to object"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "decimal numbers hindi sinusuportahan"
@@ -1958,6 +2022,10 @@ msgstr "ang destination_length ay dapat na isang int >= 0"
msgid "dict update sequence has wrong length"
msgstr "may mali sa haba ng dict update sequence"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1971,6 +2039,10 @@ msgstr "walang laman"
msgid "empty heap"
msgstr "walang laman ang heap"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "walang laman na separator"
@@ -2038,6 +2110,10 @@ msgstr "file ay dapat buksan sa byte mode"
msgid "filesystem must provide mount method"
msgstr "ang filesystem dapat mag bigay ng mount method"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "unang argument ng super() ay dapat type"
@@ -2046,6 +2122,14 @@ msgstr "unang argument ng super() ay dapat type"
msgid "firstbit must be MSB"
msgstr "firstbit ay dapat MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "masyadong malaki ang float"
@@ -2062,6 +2146,10 @@ msgstr "kailangan ng format ng dict"
msgid "full"
msgstr "puno"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "ang function ay hindi kumukuha ng mga argumento ng keyword"
@@ -2139,6 +2227,10 @@ msgstr "hindi kumpleto ang format key"
msgid "incorrect padding"
msgstr "mali ang padding"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2149,10 +2241,46 @@ msgstr "index wala sa sakop"
msgid "indices must be integers"
msgstr "ang mga indeks ay dapat na integer"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler ay dapat na function"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "int() arg 2 ay dapat >=2 at <= 36"
@@ -2231,6 +2359,14 @@ msgstr "issubclass() arg 1 ay dapat na class"
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() arg 2 ay dapat na class o tuple ng classes"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2291,6 +2427,10 @@ msgstr "masyadong maliit ang buffer map"
msgid "math domain error"
msgstr "may pagkakamali sa math domain"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2314,6 +2454,10 @@ msgstr "abigo ang paglalaan ng memorya, ang heap ay naka-lock"
msgid "module not found"
msgstr "module hindi nakita"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "maramihang *x sa assignment"
@@ -2338,6 +2482,10 @@ msgstr "dapat tukuyin lahat ng SCK/MOSI/MISO"
msgid "must use keyword argument for key function"
msgstr "dapat gumamit ng keyword argument para sa key function"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "name '%q' ay hindi defined"
@@ -2424,6 +2572,14 @@ msgstr "hindi lahat ng arguments na i-convert habang string formatting"
msgid "not enough arguments for format string"
msgstr "kulang sa arguments para sa format string"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2483,6 +2639,14 @@ msgstr "wala sa sakop ang address"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2492,6 +2656,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr "ang mga slices lamang na may hakbang = 1 (aka None) ang sinusuportahan"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord umaasa ng character"
@@ -2568,6 +2748,10 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
msgid "queue overflow"
msgstr "puno na ang pila (overflow)"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "relative import"
@@ -2585,6 +2769,10 @@ msgstr "return annotation ay dapat na identifier"
msgid "return expected '%q' but got '%q'"
msgstr "return umasa ng '%q' pero ang nakuha ay ‘%q’"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
@@ -2609,6 +2797,10 @@ msgstr "puno na ang schedule stack"
msgid "script compilation not supported"
msgstr "script kompilasyon hindi supportado"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "sign hindi maaring string format specifier"
@@ -2621,6 +2813,10 @@ msgstr "sign hindi maari sa integer format specifier 'c'"
msgid "single '}' encountered in format string"
msgstr "isang '}' nasalubong sa format string"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "sleep length ay dapat hindi negatibo"
@@ -2637,6 +2833,10 @@ msgstr "small int overflow"
msgid "soft reboot\n"
msgstr "malambot na reboot\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "start/end indeks"
@@ -2728,12 +2928,16 @@ msgstr "wala sa sakop ng timestamp ang platform time_t"
msgid "too many arguments provided with the given format"
msgstr "masyadong maraming mga argumento na ibinigay sa ibinigay na format"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "masyadong maraming values para i-unpact (umaasa ng %d)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "indeks ng tuple wala sa sakop"
@@ -2864,6 +3068,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "mali ang bilang ng argumento"
@@ -2872,6 +3084,10 @@ msgstr "mali ang bilang ng argumento"
msgid "wrong number of values to unpack"
msgstr "maling number ng value na i-unpack"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"
diff --git a/locale/fr.po b/locale/fr.po
index 625b4e91a..220b66de8 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
"Language-Team: fr\n"
@@ -188,6 +188,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' nécessite 1 argument"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' en dehors d'une fonction"
@@ -690,6 +694,10 @@ msgstr "Tuple de longueur %d attendu, obtenu %d"
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -917,10 +925,13 @@ msgstr "Broche invalide pour le canal droit"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Broches invalides"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Polarité invalide"
@@ -1011,6 +1022,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1155,6 +1170,7 @@ msgstr ""
"La fréquence de PWM n'est pas modifiable quand variable_frequency est False "
"à la construction."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1197,7 +1213,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1620,6 +1636,10 @@ msgstr "adresses vides"
msgid "arg is an empty sequence"
msgstr "l'argument est une séquence vide"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "l'argument est d'un mauvais type"
@@ -1633,6 +1653,10 @@ msgstr "argument num/types ne correspond pas"
msgid "argument should be a '%q' not a '%q'"
msgstr "l'argument devrait être un(e) '%q', pas '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "tableau/octets requis à droite"
@@ -1641,6 +1665,18 @@ msgstr "tableau/octets requis à droite"
msgid "attributes not supported yet"
msgstr "attribut pas encore supporté"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "mauvais mode de compilation"
@@ -1896,6 +1932,10 @@ msgstr "ne peut pas importer le nom %q"
msgid "cannot perform relative import"
msgstr "ne peut pas réaliser un import relatif"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr "typage"
@@ -1956,6 +1996,30 @@ msgstr "constante doit être un entier"
msgid "conversion to object"
msgstr "conversion en objet"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "nombres décimaux non supportés"
@@ -1983,6 +2047,10 @@ msgstr "destination_length doit être un entier >= 0"
msgid "dict update sequence has wrong length"
msgstr "la séquence de mise à jour de dict a une mauvaise longueur"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1996,6 +2064,10 @@ msgstr "vide"
msgid "empty heap"
msgstr "tas vide"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "séparateur vide"
@@ -2063,6 +2135,10 @@ msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
msgid "filesystem must provide mount method"
msgstr "le system de fichier doit fournir une méthode 'mount'"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "le premier argument de super() doit être un type"
@@ -2071,6 +2147,14 @@ msgstr "le premier argument de super() doit être un type"
msgid "firstbit must be MSB"
msgstr "le 1er bit doit être le MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "nombre à virgule flottante trop grand"
@@ -2087,6 +2171,10 @@ msgstr "le format nécessite un dict"
msgid "full"
msgstr "plein"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "la fonction ne prend pas d'arguments nommés"
@@ -2163,6 +2251,10 @@ msgstr "clé de format incomplète"
msgid "incorrect padding"
msgstr "espacement incorrect"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2173,10 +2265,46 @@ msgstr "index hors gamme"
msgid "indices must be integers"
msgstr "les indices doivent être des entiers"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "l'assembleur doit être une fonction"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "l'argument 2 de int() doit être >=2 et <=36"
@@ -2256,6 +2384,14 @@ 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"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2315,6 +2451,10 @@ msgstr "tampon trop petit"
msgid "math domain error"
msgstr "erreur de domaine math"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2338,6 +2478,10 @@ msgstr "l'allocation de mémoire a échoué, le tas est vérrouillé"
msgid "module not found"
msgstr "module introuvable"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "*x multiple dans l'assignement"
@@ -2362,6 +2506,10 @@ msgstr "sck, mosi et miso doivent tous être spécifiés"
msgid "must use keyword argument for key function"
msgstr "doit utiliser un argument nommé pour une fonction key"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "nom '%q' non défini"
@@ -2451,6 +2599,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr "pas assez d'arguments pour la chaîne de format"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2510,6 +2666,14 @@ msgstr "adresse hors limites"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2519,6 +2683,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr "seules les tranches avec 'step=1' (cad None) sont supportées"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord attend un caractère"
@@ -2600,6 +2780,10 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
msgid "queue overflow"
msgstr "dépassement de file"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "import relatif"
@@ -2617,6 +2801,10 @@ msgstr "l'annotation de return doit être un identifiant"
msgid "return expected '%q' but got '%q'"
msgstr "return attendait '%q' mais a reçu '%q'"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2641,6 +2829,10 @@ msgstr "pile de planification pleine"
msgid "script compilation not supported"
msgstr "compilation de script non supportée"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "signe non autorisé dans les spéc. de formats de chaînes de caractères"
@@ -2653,6 +2845,10 @@ msgstr "signe non autorisé avec la spéc. de format d'entier 'c'"
msgid "single '}' encountered in format string"
msgstr "'}' seule rencontrée dans une chaîne de format"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "la longueur de sleep ne doit pas être négative"
@@ -2669,6 +2865,10 @@ msgstr "dépassement de capacité d'un entier court"
msgid "soft reboot\n"
msgstr "redémarrage logiciel\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "indices de début/fin"
@@ -2761,12 +2961,16 @@ msgstr "'timestamp' hors bornes pour 'time_t' de la plateforme"
msgid "too many arguments provided with the given format"
msgstr "trop d'arguments fournis avec ce format"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "trop de valeur à dégrouper (%d attendues)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "index du tuple hors gamme"
@@ -2898,6 +3102,14 @@ msgstr "'value_count' doit être > 0"
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "mauvais nombres d'arguments"
@@ -2906,6 +3118,10 @@ msgstr "mauvais nombres d'arguments"
msgid "wrong number of values to unpack"
msgstr "mauvais nombre de valeurs à dégrouper"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"
diff --git a/locale/it_IT.po b/locale/it_IT.po
index 93af9bdb8..19162faf5 100644
--- a/locale/it_IT.po
+++ b/locale/it_IT.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' richiede 1 argomento"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' al di fuori della funzione"
@@ -687,6 +691,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -913,10 +921,13 @@ msgstr "Pin non valido per il canale destro"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Pin non validi"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Polarità non valida"
@@ -1008,6 +1019,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1150,6 +1165,7 @@ msgstr ""
"frequenza PWM frequency non è scrivibile quando variable_frequency è "
"impostato nel costruttore a False."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1193,7 +1209,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1606,6 +1622,10 @@ msgstr "gli indirizzi sono vuoti"
msgid "arg is an empty sequence"
msgstr "l'argomento è una sequenza vuota"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "il tipo dell'argomento è errato"
@@ -1619,6 +1639,10 @@ msgstr "discrepanza di numero/tipo di argomenti"
msgid "argument should be a '%q' not a '%q'"
msgstr "l'argomento dovrebbe essere un '%q' e non un '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1627,6 +1651,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr "attributi non ancora supportati"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1873,6 +1909,10 @@ msgstr "impossibile imporate il nome %q"
msgid "cannot perform relative import"
msgstr "impossibile effettuare l'importazione relativa"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr "casting"
@@ -1931,6 +1971,30 @@ msgstr "la costante deve essere un intero"
msgid "conversion to object"
msgstr "conversione in oggetto"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "numeri decimali non supportati"
@@ -1959,6 +2023,10 @@ msgstr "destination_length deve essere un int >= 0"
msgid "dict update sequence has wrong length"
msgstr "sequanza di aggiornamento del dizionario ha la lunghezza errata"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1972,6 +2040,10 @@ msgstr "vuoto"
msgid "empty heap"
msgstr "heap vuoto"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "separatore vuoto"
@@ -2039,6 +2111,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr "il filesystem deve fornire un metodo di mount"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2047,6 +2123,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr "il primo bit deve essere il più significativo (MSB)"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "float troppo grande"
@@ -2063,6 +2147,10 @@ msgstr "la formattazione richiede un dict"
msgid "full"
msgstr "pieno"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "la funzione non prende argomenti nominati"
@@ -2140,6 +2228,10 @@ msgstr ""
msgid "incorrect padding"
msgstr "padding incorretto"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2150,10 +2242,46 @@ msgstr "indice fuori intervallo"
msgid "indices must be integers"
msgstr "gli indici devono essere interi"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "inline assembler deve essere una funzione"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "il secondo argomanto di int() deve essere >= 2 e <= 36"
@@ -2234,6 +2362,14 @@ msgstr ""
"il secondo argomento di issubclass() deve essere una classe o una tupla di "
"classi"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2293,6 +2429,10 @@ msgstr "map buffer troppo piccolo"
msgid "math domain error"
msgstr "errore di dominio matematico"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2316,6 +2456,10 @@ msgstr "allocazione di memoria fallita, l'heap è bloccato"
msgid "module not found"
msgstr "modulo non trovato"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "*x multipli nell'assegnamento"
@@ -2340,6 +2484,10 @@ msgstr "è necessario specificare tutte le sck/mosi/miso"
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "nome '%q'non definito"
@@ -2429,6 +2577,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr "argomenti non sufficienti per la stringa di formattazione"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2488,6 +2644,14 @@ msgstr "indirizzo fuori limite"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2497,6 +2661,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr "solo slice con step=1 (aka None) sono supportate"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord() aspetta un carattere"
@@ -2575,6 +2755,10 @@ msgstr "pow() con 3 argomenti richiede interi"
msgid "queue overflow"
msgstr "overflow della coda"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "importazione relativa"
@@ -2592,6 +2776,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr "return aspettava '%q' ma ha ottenuto '%q'"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2616,6 +2804,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr "compilazione dello scrip non suportata"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "segno non permesso nello spcificatore di formato della stringa"
@@ -2628,6 +2820,10 @@ msgstr "segno non permesso nello spcificatore di formato 'c' della stringa"
msgid "single '}' encountered in format string"
msgstr "'}' singolo presente nella stringa di formattazione"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "la lunghezza di sleed deve essere non negativa"
@@ -2644,6 +2840,10 @@ msgstr "small int overflow"
msgid "soft reboot\n"
msgstr "soft reboot\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2735,12 +2935,16 @@ msgstr "timestamp è fuori intervallo per il time_t della piattaforma"
msgid "too many arguments provided with the given format"
msgstr "troppi argomenti forniti con il formato specificato"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "troppi valori da scompattare (%d attesi)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "indice della tupla fuori intervallo"
@@ -2871,6 +3075,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "numero di argomenti errato"
@@ -2879,6 +3091,10 @@ msgstr "numero di argomenti errato"
msgid "wrong number of values to unpack"
msgstr "numero di valori da scompattare non corretto"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
#, fuzzy
msgid "x value out of bounds"
diff --git a/locale/ko.po b/locale/ko.po
index 04ab849d4..067d3491f 100644
--- a/locale/ko.po
+++ b/locale/ko.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2019-05-06 14:22-0700\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' 에는 1 개의 독립변수가 필요합니다"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' 는 펑크션 외부에 있습니다"
@@ -677,6 +681,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -899,10 +907,13 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "핀이 유효하지 않습니다"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -992,6 +1003,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1125,6 +1140,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1166,7 +1182,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1575,6 +1591,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr ""
@@ -1588,6 +1608,10 @@ msgstr ""
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1596,6 +1620,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1838,6 +1874,10 @@ msgstr ""
msgid "cannot perform relative import"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1894,6 +1934,30 @@ msgstr ""
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1919,6 +1983,10 @@ msgstr ""
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1932,6 +2000,10 @@ msgstr ""
msgid "empty heap"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -1998,6 +2070,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2006,6 +2082,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "float이 너무 큽니다"
@@ -2022,6 +2106,10 @@ msgstr ""
msgid "full"
msgstr "완전한(full)"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr ""
@@ -2098,6 +2186,10 @@ msgstr ""
msgid "incorrect padding"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2108,10 +2200,46 @@ msgstr ""
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2190,6 +2318,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2246,6 +2382,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2269,6 +2409,10 @@ msgstr ""
msgid "module not found"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr ""
@@ -2293,6 +2437,10 @@ msgstr ""
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2379,6 +2527,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2437,6 +2593,14 @@ msgstr ""
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2446,6 +2610,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2521,6 +2701,10 @@ msgstr ""
msgid "queue overflow"
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr ""
@@ -2538,6 +2722,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2560,6 +2748,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2572,6 +2764,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2588,6 +2784,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2677,12 +2877,16 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2813,6 +3017,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2821,6 +3033,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/pl.po b/locale/pl.po
index d76619182..a1d47caa6 100644
--- a/locale/pl.po
+++ b/locale/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
"Language-Team: pl\n"
@@ -185,6 +185,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' wymaga 1 argumentu"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' poza funkcją"
@@ -676,6 +680,10 @@ msgstr "Oczekiwano krotkę długości %d, otrzymano %d"
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr ""
@@ -900,10 +908,13 @@ msgstr "Zła nóżka dla prawego kanału"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Złe nóżki"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Zła polaryzacja"
@@ -993,6 +1004,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1126,6 +1141,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr "Nie można zmienić częstotliwości PWM gdy variable_frequency=False."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1167,7 +1183,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1578,6 +1594,10 @@ msgstr "adres jest pusty"
msgid "arg is an empty sequence"
msgstr "arg jest puste"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "argument ma zły typ"
@@ -1591,6 +1611,10 @@ msgstr "zła liczba lub typ argumentów"
msgid "argument should be a '%q' not a '%q'"
msgstr "argument powinien być '%q' a nie '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "tablica/bytes wymagane po prawej stronie"
@@ -1599,6 +1623,18 @@ msgstr "tablica/bytes wymagane po prawej stronie"
msgid "attributes not supported yet"
msgstr "atrybuty nie są jeszcze obsługiwane"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "zły tryb kompilacji"
@@ -1841,6 +1877,10 @@ msgstr "nie można zaimportować nazwy %q"
msgid "cannot perform relative import"
msgstr "nie można wykonać relatywnego importu"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr "rzutowanie"
@@ -1897,6 +1937,30 @@ msgstr "stała musi być liczbą całkowitą"
msgid "conversion to object"
msgstr "konwersja do obiektu"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "liczby dziesiętne nieobsługiwane"
@@ -1923,6 +1987,10 @@ msgstr "destination_length musi być nieujemną liczbą całkowitą"
msgid "dict update sequence has wrong length"
msgstr "sekwencja ma złą długość"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1936,6 +2004,10 @@ msgstr "puste"
msgid "empty heap"
msgstr "pusta sterta"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "pusty separator"
@@ -2002,6 +2074,10 @@ msgstr "file musi być otwarte w trybie bajtowym"
msgid "filesystem must provide mount method"
msgstr "system plików musi mieć metodę mount"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "pierwszy argument super() musi być typem"
@@ -2010,6 +2086,14 @@ msgstr "pierwszy argument super() musi być typem"
msgid "firstbit must be MSB"
msgstr "firstbit musi być MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "float zbyt wielki"
@@ -2026,6 +2110,10 @@ msgstr "format wymaga słownika"
msgid "full"
msgstr "pełny"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "funkcja nie bierze argumentów nazwanych"
@@ -2102,6 +2190,10 @@ msgstr "niepełny klucz formatu"
msgid "incorrect padding"
msgstr "złe wypełnienie"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2112,10 +2204,46 @@ msgstr "indeks poza zakresem"
msgid "indices must be integers"
msgstr "indeksy muszą być całkowite"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "wtrącony asembler musi być funkcją"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "argument 2 do int() busi być pomiędzy 2 a 36"
@@ -2194,6 +2322,14 @@ msgstr "argument 1 dla issubclass() musi być klasą"
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "argument 2 dla issubclass() musi być klasą lub krotką klas"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr "join oczekuje listy str/bytes zgodnych z self"
@@ -2250,6 +2386,10 @@ msgstr "bufor mapy zbyt mały"
msgid "math domain error"
msgstr "błąd domeny"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2273,6 +2413,10 @@ msgstr "alokacja pamięci nie powiodła się, sterta zablokowana"
msgid "module not found"
msgstr "brak modułu"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "wiele *x w przypisaniu"
@@ -2297,6 +2441,10 @@ msgstr "sck/mosi/miso muszą być podane"
msgid "must use keyword argument for key function"
msgstr "funkcja key musi być podana jako argument nazwany"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "nazwa '%q' niezdefiniowana"
@@ -2383,6 +2531,14 @@ msgstr "nie wszystkie argumenty wykorzystane w formatowaniu"
msgid "not enough arguments for format string"
msgstr "nie dość argumentów przy formatowaniu"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2441,6 +2597,14 @@ msgstr "offset poza zakresem"
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2450,6 +2614,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr "tylko fragmenty ze step=1 (lub None) są wspierane"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord oczekuje znaku"
@@ -2526,6 +2706,10 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
msgid "queue overflow"
msgstr "przepełnienie kolejki"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "relatywny import"
@@ -2543,6 +2727,10 @@ msgstr "anotacja wartości musi być identyfikatorem"
msgid "return expected '%q' but got '%q'"
msgstr "return oczekiwał '%q', a jest '%q'"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr "rsplit(None,n)"
@@ -2566,6 +2754,10 @@ msgstr "stos planu pełen"
msgid "script compilation not supported"
msgstr "kompilowanie skryptów nieobsługiwane"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "znak jest niedopuszczalny w specyfikacji formatu łańcucha"
@@ -2578,6 +2770,10 @@ msgstr "znak jest niedopuszczalny w specyfikacji 'c'"
msgid "single '}' encountered in format string"
msgstr "pojedynczy '}' w specyfikacji formatu"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "okres snu musi być nieujemny"
@@ -2594,6 +2790,10 @@ msgstr "przepełnienie small int"
msgid "soft reboot\n"
msgstr "programowy reset\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "początkowe/końcowe indeksy"
@@ -2683,12 +2883,16 @@ msgstr "timestamp poza zakresem dla time_t na tej platformie"
msgid "too many arguments provided with the given format"
msgstr "zbyt wiele argumentów podanych dla tego formatu"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "zbyt wiele wartości do rozpakowania (oczekiwano %d)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "indeks krotki poza zakresem"
@@ -2819,6 +3023,14 @@ msgstr "value_count musi być > 0"
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "zła liczba argumentów"
@@ -2827,6 +3039,10 @@ msgstr "zła liczba argumentów"
msgid "wrong number of values to unpack"
msgstr "zła liczba wartości do rozpakowania"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x poza zakresem"
diff --git a/locale/pt_BR.po b/locale/pt_BR.po
index b948003a1..f37d75050 100644
--- a/locale/pt_BR.po
+++ b/locale/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -186,6 +186,10 @@ msgid "'align' requires 1 argument"
msgstr ""
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr ""
@@ -682,6 +686,10 @@ msgstr ""
msgid "Extended advertisements with scan response not supported."
msgstr ""
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr "Falha ao enviar comando."
@@ -906,10 +914,13 @@ msgstr "Pino inválido para canal direito"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Pinos inválidos"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr ""
@@ -1000,6 +1011,10 @@ msgstr ""
msgid "Must provide MISO or MOSI pin"
msgstr ""
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr ""
@@ -1136,6 +1151,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr ""
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@@ -1178,7 +1194,7 @@ msgid "PulseIn not yet supported"
msgstr ""
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
+msgid "PulseOut not supported on this chip"
msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
@@ -1588,6 +1604,10 @@ msgstr ""
msgid "arg is an empty sequence"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "argumento tem tipo errado"
@@ -1601,6 +1621,10 @@ msgstr ""
msgid "argument should be a '%q' not a '%q'"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr ""
@@ -1609,6 +1633,18 @@ msgstr ""
msgid "attributes not supported yet"
msgstr "atributos ainda não suportados"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr ""
@@ -1854,6 +1890,10 @@ msgstr "não pode importar nome %q"
msgid "cannot perform relative import"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr ""
@@ -1910,6 +1950,30 @@ msgstr "constante deve ser um inteiro"
msgid "conversion to object"
msgstr ""
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@@ -1935,6 +1999,10 @@ msgstr "destination_length deve ser um int >= 0"
msgid "dict update sequence has wrong length"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1948,6 +2016,10 @@ msgstr "vazio"
msgid "empty heap"
msgstr "heap vazia"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr ""
@@ -2015,6 +2087,10 @@ msgstr ""
msgid "filesystem must provide mount method"
msgstr "sistema de arquivos deve fornecer método de montagem"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr ""
@@ -2023,6 +2099,14 @@ msgstr ""
msgid "firstbit must be MSB"
msgstr "firstbit devem ser MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "float muito grande"
@@ -2039,6 +2123,10 @@ msgstr ""
msgid "full"
msgstr "cheio"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "função não aceita argumentos de palavras-chave"
@@ -2115,6 +2203,10 @@ msgstr ""
msgid "incorrect padding"
msgstr "preenchimento incorreto"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2125,10 +2217,46 @@ msgstr "Índice fora do intervalo"
msgid "indices must be integers"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr ""
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr ""
@@ -2207,6 +2335,14 @@ msgstr ""
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2263,6 +2399,10 @@ msgstr ""
msgid "math domain error"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2286,6 +2426,10 @@ msgstr ""
msgid "module not found"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr ""
@@ -2310,6 +2454,10 @@ msgstr "deve especificar todos sck/mosi/miso"
msgid "must use keyword argument for key function"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr ""
@@ -2396,6 +2544,14 @@ msgstr ""
msgid "not enough arguments for format string"
msgstr ""
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2454,6 +2610,14 @@ msgstr ""
msgid "only bit_depth=16 is supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr ""
@@ -2463,6 +2627,22 @@ msgstr ""
msgid "only slices with step=1 (aka None) are supported"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr ""
@@ -2538,6 +2718,10 @@ msgstr ""
msgid "queue overflow"
msgstr "estouro de fila"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr ""
@@ -2555,6 +2739,10 @@ msgstr ""
msgid "return expected '%q' but got '%q'"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2577,6 +2765,10 @@ msgstr ""
msgid "script compilation not supported"
msgstr "compilação de script não suportada"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@@ -2589,6 +2781,10 @@ msgstr ""
msgid "single '}' encountered in format string"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr ""
@@ -2605,6 +2801,10 @@ msgstr ""
msgid "soft reboot\n"
msgstr ""
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr ""
@@ -2696,12 +2896,16 @@ msgstr "timestamp fora do intervalo para a plataforma time_t"
msgid "too many arguments provided with the given format"
msgstr "Muitos argumentos fornecidos com o formato dado"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr ""
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr ""
@@ -2832,6 +3036,14 @@ msgstr ""
msgid "window must be <= interval"
msgstr ""
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr ""
@@ -2840,6 +3052,10 @@ msgstr ""
msgid "wrong number of values to unpack"
msgstr ""
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr ""
diff --git a/locale/zh_Latn_pinyin.po b/locale/zh_Latn_pinyin.po
index 9a9473436..465920d5d 100644
--- a/locale/zh_Latn_pinyin.po
+++ b/locale/zh_Latn_pinyin.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-02-19 08:44+0000\n"
+"POT-Creation-Date: 2020-03-03 20:13-0600\n"
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
"Last-Translator: hexthat\n"
"Language-Team: Chinese Hanyu Pinyin\n"
@@ -191,6 +191,10 @@ msgid "'align' requires 1 argument"
msgstr "'align' xūyào 1 gè cānshù"
#: py/compile.c
+msgid "'async for' or 'async with' outside async function"
+msgstr ""
+
+#: py/compile.c
msgid "'await' outside function"
msgstr "'await' wàibù gōngnéng"
@@ -684,6 +688,10 @@ msgstr "Qīwàng de chángdù wèi %d de yuán zǔ, dédào %d"
msgid "Extended advertisements with scan response not supported."
msgstr "Bù zhīchí dài yǒu sǎomiáo xiǎngyìng de kuòzhǎn guǎngbò."
+#: extmod/ulab/code/fft.c
+msgid "FFT is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/ps2io/Ps2.c
msgid "Failed sending command."
msgstr "Fāsòng mìnglìng shībài."
@@ -908,10 +916,13 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
#: ports/atmel-samd/common-hal/i2cslave/I2CSlave.c
#: ports/cxd56/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/SPI.c
#: ports/cxd56/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
-#: ports/stm32f4/common-hal/pulseio/PWMOut.c
msgid "Invalid pins"
msgstr "Wúxiào de yǐn jiǎo"
+#: ports/stm32f4/common-hal/pulseio/PWMOut.c
+msgid "Invalid pins for PWMOut"
+msgstr ""
+
#: shared-bindings/bitbangio/SPI.c shared-bindings/busio/SPI.c
msgid "Invalid polarity"
msgstr "Wúxiào liǎng jí zhí"
@@ -1001,6 +1012,10 @@ msgstr "Bìxū shì %q zi lèi."
msgid "Must provide MISO or MOSI pin"
msgstr "Bìxū tígōng MISO huò MOSI yǐn jiǎo"
+#: py/parse.c
+msgid "Name too long"
+msgstr ""
+
#: shared-bindings/_pixelbuf/PixelBuf.c
msgid "Negative step not supported"
msgstr "Bù zhīchí fù bù"
@@ -1140,6 +1155,7 @@ msgid ""
"PWM frequency not writable when variable_frequency is False on construction."
msgstr "Dāng biànliàng_pínlǜ shì False zài jiànzhú shí PWM pínlǜ bùkě xiě."
+#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/stm32f4/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "Shàng bù zhīchí ParallelBus"
@@ -1181,8 +1197,8 @@ msgid "PulseIn not yet supported"
msgstr "Shàng bù zhīchí PulseIn"
#: ports/stm32f4/common-hal/pulseio/PulseOut.c
-msgid "PulseOut not yet supported"
-msgstr "Shàng bù zhīchí PulseOut"
+msgid "PulseOut not supported on this chip"
+msgstr ""
#: ports/stm32f4/common-hal/os/__init__.c
msgid "RNG DeInit Error"
@@ -1603,6 +1619,10 @@ msgstr "dìzhǐ wèi kōng"
msgid "arg is an empty sequence"
msgstr "cānshù shì yīgè kōng de xùliè"
+#: extmod/ulab/code/numerical.c
+msgid "argsort argument must be an ndarray"
+msgstr ""
+
#: py/runtime.c
msgid "argument has wrong type"
msgstr "cānshù lèixíng cuòwù"
@@ -1616,6 +1636,10 @@ msgstr "cānshù biānhào/lèixíng bù pǐpèi"
msgid "argument should be a '%q' not a '%q'"
msgstr "cānshù yīnggāi shì '%q', 'bùshì '%q'"
+#: extmod/ulab/code/linalg.c
+msgid "arguments must be ndarrays"
+msgstr ""
+
#: py/objarray.c shared-bindings/nvm/ByteArray.c
msgid "array/bytes required on right side"
msgstr "yòu cè xūyào shùzǔ/zì jié"
@@ -1624,6 +1648,18 @@ msgstr "yòu cè xūyào shùzǔ/zì jié"
msgid "attributes not supported yet"
msgstr "shǔxìng shàngwèi zhīchí"
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, None, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be -1, 0, or 1"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "axis must be None, 0, or 1"
+msgstr ""
+
#: py/builtinevex.c
msgid "bad compile mode"
msgstr "biānyì móshì cuòwù"
@@ -1866,6 +1902,10 @@ msgstr "wúfǎ dǎorù míngchēng %q"
msgid "cannot perform relative import"
msgstr "wúfǎ zhíxíng xiāngguān dǎorù"
+#: extmod/ulab/code/ndarray.c
+msgid "cannot reshape array (incompatible input/output shape)"
+msgstr ""
+
#: py/emitnative.c
msgid "casting"
msgstr "tóuyǐng"
@@ -1925,6 +1965,30 @@ msgstr "chángshù bìxū shì yīgè zhěngshù"
msgid "conversion to object"
msgstr "zhuǎnhuàn wèi duìxiàng"
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be linear arrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must be ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/filter.c
+msgid "convolve arguments must not be empty"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "could not broadast input array from shape"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "could not invert Vandermonde matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "ddof must be smaller than length of data set"
+msgstr ""
+
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "bù zhīchí xiǎoshù shù"
@@ -1951,6 +2015,10 @@ msgstr "mùbiāo chángdù bìxū shì > = 0 de zhěngshù"
msgid "dict update sequence has wrong length"
msgstr "yǔfǎ gēngxīn xùliè de chángdù cuòwù"
+#: extmod/ulab/code/numerical.c
+msgid "diff argument must be an ndarray"
+msgstr ""
+
#: py/modmath.c py/objfloat.c py/objint_longlong.c py/objint_mpz.c py/runtime.c
#: shared-bindings/math/__init__.c
msgid "division by zero"
@@ -1964,6 +2032,10 @@ msgstr "kòngxián"
msgid "empty heap"
msgstr "kōng yīn yīnxiào"
+#: extmod/ulab/code/ndarray.c
+msgid "empty index range"
+msgstr ""
+
#: py/objstr.c
msgid "empty separator"
msgstr "kōng fēngé fú"
@@ -2030,6 +2102,10 @@ msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
msgid "filesystem must provide mount method"
msgstr "wénjiàn xìtǒng bìxū tígōng guà zài fāngfǎ"
+#: extmod/ulab/code/ndarray.c
+msgid "first argument must be an iterable"
+msgstr ""
+
#: py/objtype.c
msgid "first argument to super() must be type"
msgstr "chāojí () de dì yī gè cānshù bìxū shì lèixíng"
@@ -2038,6 +2114,14 @@ msgstr "chāojí () de dì yī gè cānshù bìxū shì lèixíng"
msgid "firstbit must be MSB"
msgstr "dì yī wèi bìxū shì MSB"
+#: extmod/ulab/code/ndarray.c
+msgid "flattening order must be either 'C', or 'F'"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "flip argument must be an ndarray"
+msgstr ""
+
#: py/objint.c
msgid "float too big"
msgstr "fú diǎn tài dà"
@@ -2054,6 +2138,10 @@ msgstr "géshì yāoqiú yīgè yǔjù"
msgid "full"
msgstr "chōngfèn"
+#: extmod/ulab/code/linalg.c
+msgid "function defined for ndarrays only"
+msgstr ""
+
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "hánshù méiyǒu guānjiàn cí cānshù"
@@ -2130,6 +2218,10 @@ msgstr "géshì bù wánzhěng de mì yào"
msgid "incorrect padding"
msgstr "bù zhèngquè de tiánchōng"
+#: extmod/ulab/code/ndarray.c
+msgid "index is out of bounds"
+msgstr ""
+
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
#: ports/cxd56/common-hal/pulseio/PulseIn.c
#: ports/nrf/common-hal/pulseio/PulseIn.c py/obj.c
@@ -2140,10 +2232,46 @@ msgstr "suǒyǐn chāochū fànwéi"
msgid "indices must be integers"
msgstr "suǒyǐn bìxū shì zhěngshù"
+#: extmod/ulab/code/ndarray.c
+msgid "indices must be integers, slices, or Boolean lists"
+msgstr ""
+
#: py/compile.c
msgid "inline assembler must be a function"
msgstr "nèi lián jíhé bìxū shì yīgè hánshù"
+#: extmod/ulab/code/create.c
+msgid "input argument must be an integer or a 2-tuple"
+msgstr ""
+
+#: extmod/ulab/code/fft.c
+msgid "input array length must be power of 2"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input data must be an iterable"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is asymmetric"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input matrix is singular"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "input must be square matrix"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "input must be tuple, list, range, or ndarray"
+msgstr ""
+
+#: extmod/ulab/code/poly.c
+msgid "input vectors must be of equal length"
+msgstr ""
+
#: py/parsenum.c
msgid "int() arg 2 must be >= 2 and <= 36"
msgstr "zhěngshù() cānshù 2 bìxū > = 2 qiě <= 36"
@@ -2222,6 +2350,14 @@ msgstr "issubclass() cānshù 1 bìxū shì yīgè lèi"
msgid "issubclass() arg 2 must be a class or a tuple of classes"
msgstr "issubclass() cānshù 2 bìxū shì lèi de lèi huò yuán zǔ"
+#: extmod/ulab/code/ndarray.c
+msgid "iterables are not of the same length"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "iterations did not converge"
+msgstr ""
+
#: py/objstr.c
msgid "join expects a list of str/bytes objects consistent with self object"
msgstr ""
@@ -2279,6 +2415,10 @@ msgstr "dìtú huǎnchōng qū tài xiǎo"
msgid "math domain error"
msgstr "shùxué yù cuòwù"
+#: extmod/ulab/code/linalg.c
+msgid "matrix dimensions do not match"
+msgstr ""
+
#: ports/nrf/common-hal/_bleio/Characteristic.c
#: ports/nrf/common-hal/_bleio/Descriptor.c
#, c-format
@@ -2302,6 +2442,10 @@ msgstr "jìyì tǐ fēnpèi shībài, duī bèi suǒdìng"
msgid "module not found"
msgstr "zhǎo bù dào mókuài"
+#: extmod/ulab/code/poly.c
+msgid "more degrees of freedom than data points"
+msgstr ""
+
#: py/compile.c
msgid "multiple *x in assignment"
msgstr "duō gè*x zài zuòyè zhōng"
@@ -2326,6 +2470,10 @@ msgstr "bìxū zhǐdìng suǒyǒu sck/mosi/misco"
msgid "must use keyword argument for key function"
msgstr "bìxū shǐyòng guānjiàn cí cānshù"
+#: extmod/ulab/code/numerical.c
+msgid "n must be between 0, and 9"
+msgstr ""
+
#: py/runtime.c
msgid "name '%q' is not defined"
msgstr "míngchēng '%q' wèi dìngyì"
@@ -2413,6 +2561,14 @@ msgstr "bùshì zì chuàn géshì huà guòchéng zhōng zhuǎnhuàn de suǒyǒ
msgid "not enough arguments for format string"
msgstr "géshì zìfú chuàn cān shǔ bùzú"
+#: extmod/ulab/code/poly.c
+msgid "number of arguments must be 2, or 3"
+msgstr ""
+
+#: extmod/ulab/code/create.c
+msgid "number of points must be at least 2"
+msgstr ""
+
#: py/obj.c
#, c-format
msgid "object '%s' is not a tuple or list"
@@ -2471,6 +2627,14 @@ msgstr "piānlí biānjiè"
msgid "only bit_depth=16 is supported"
msgstr "Jǐn zhīchí wèi shēndù = 16"
+#: extmod/ulab/code/linalg.c
+msgid "only ndarray objects can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/linalg.c
+msgid "only ndarrays can be inverted"
+msgstr ""
+
#: ports/nrf/common-hal/audiobusio/PDMIn.c
msgid "only sample_rate=16000 is supported"
msgstr "Jǐn zhīchí cǎiyàng lǜ = 16000"
@@ -2480,6 +2644,22 @@ msgstr "Jǐn zhīchí cǎiyàng lǜ = 16000"
msgid "only slices with step=1 (aka None) are supported"
msgstr "jǐn zhīchí bù zhǎng = 1(jí wú) de qiēpiàn"
+#: extmod/ulab/code/linalg.c
+msgid "only square matrices can be inverted"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operands could not be broadcast together"
+msgstr ""
+
+#: extmod/ulab/code/numerical.c
+msgid "operation is not implemented on ndarrays"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "operation is not supported for given type"
+msgstr ""
+
#: py/modbuiltins.c
msgid "ord expects a character"
msgstr "ord yùqí zìfú"
@@ -2555,6 +2735,10 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
msgid "queue overflow"
msgstr "duìliè yìchū"
+#: extmod/ulab/code/fft.c
+msgid "real and imaginary parts must be of equal length"
+msgstr ""
+
#: py/builtinimport.c
msgid "relative import"
msgstr "xiāngduì dǎorù"
@@ -2572,6 +2756,10 @@ msgstr "fǎnhuí zhùshì bìxū shì biāozhì fú"
msgid "return expected '%q' but got '%q'"
msgstr "fǎnhuí yùqí de '%q' dàn huòdéle '%q'"
+#: extmod/ulab/code/ndarray.c
+msgid "right hand side must be an ndarray, or a scalar"
+msgstr ""
+
#: py/objstr.c
msgid "rsplit(None,n)"
msgstr ""
@@ -2596,6 +2784,10 @@ msgstr "jìhuà duīzhàn yǐ mǎn"
msgid "script compilation not supported"
msgstr "bù zhīchí jiǎoběn biānyì"
+#: extmod/ulab/code/ndarray.c
+msgid "shape must be a 2-tuple"
+msgstr ""
+
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "zìfú chuàn géshì shuōmíng fú zhōng bù yǔnxǔ shǐyòng fúhào"
@@ -2608,6 +2800,10 @@ msgstr "zhěngshù géshì shuōmíng fú 'c' bù yǔnxǔ shǐyòng fúhào"
msgid "single '}' encountered in format string"
msgstr "zài géshì zìfú chuàn zhōng yù dào de dāngè '}'"
+#: extmod/ulab/code/linalg.c
+msgid "size is defined for ndarrays only"
+msgstr ""
+
#: shared-bindings/time/__init__.c
msgid "sleep length must be non-negative"
msgstr "shuìmián chángdù bìxū shìfēi fùshù"
@@ -2624,6 +2820,10 @@ msgstr "xiǎo zhěngshù yìchū"
msgid "soft reboot\n"
msgstr "ruǎn chóngqǐ\n"
+#: extmod/ulab/code/numerical.c
+msgid "sort argument must be an ndarray"
+msgstr ""
+
#: py/objstr.c
msgid "start/end indices"
msgstr "kāishǐ/jiéshù zhǐshù"
@@ -2713,12 +2913,16 @@ msgstr "time_t shíjiān chuō chāochū píngtái fànwéi"
msgid "too many arguments provided with the given format"
msgstr "tígōng jǐ dìng géshì de cānshù tài duō"
+#: extmod/ulab/code/ndarray.c
+msgid "too many indices"
+msgstr ""
+
#: py/runtime.c
#, c-format
msgid "too many values to unpack (expected %d)"
msgstr "dǎkāi tài duō zhí (yùqí %d)"
-#: py/objstr.c
+#: extmod/ulab/code/linalg.c py/objstr.c
msgid "tuple index out of range"
msgstr "yuán zǔ suǒyǐn chāochū fànwéi"
@@ -2849,6 +3053,14 @@ msgstr "zhí jìshù bìxū wèi > 0"
msgid "window must be <= interval"
msgstr "Chuāngkǒu bìxū shì <= jiàngé"
+#: extmod/ulab/code/linalg.c
+msgid "wrong argument type"
+msgstr ""
+
+#: extmod/ulab/code/ndarray.c
+msgid "wrong input type"
+msgstr ""
+
#: py/objstr.c
msgid "wrong number of arguments"
msgstr "cānshù shù cuòwù"
@@ -2857,6 +3069,10 @@ msgstr "cānshù shù cuòwù"
msgid "wrong number of values to unpack"
msgstr "wúfǎ jiě bāo de zhí shù"
+#: extmod/ulab/code/ndarray.c
+msgid "wrong operand type on the right hand side"
+msgstr ""
+
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x zhí chāochū biānjiè"
@@ -3081,6 +3297,9 @@ msgstr "líng bù"
#~ msgid "Pixel beyond bounds of buffer"
#~ msgstr "Xiàngsù chāochū huǎnchōng qū biānjiè"
+#~ msgid "PulseOut not yet supported"
+#~ msgstr "Shàng bù zhīchí PulseOut"
+
#~ msgid "Range out of bounds"
#~ msgstr "Fànwéi chāochū biānjiè"
diff --git a/mpy-cross/.gitignore b/mpy-cross/.gitignore
index 0681b685f..80d7acd42 100644
--- a/mpy-cross/.gitignore
+++ b/mpy-cross/.gitignore
@@ -3,4 +3,5 @@
/mpy-cross.static
/mpy-cross.static.exe
/mpy-cross.static-raspbian
+/mpy-cross.fuzz
/pitools
diff --git a/mpy-cross/Makefile.fuzz b/mpy-cross/Makefile.fuzz
new file mode 100644
index 000000000..ca59788f4
--- /dev/null
+++ b/mpy-cross/Makefile.fuzz
@@ -0,0 +1,6 @@
+
+PROG=mpy-cross.fuzz
+BUILD=build-static
+STATIC_BUILD=1
+CC=afl-clang-fast
+include mpy-cross.mk
diff --git a/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk
index df1a2d8eb..eb3c81485 100644
--- a/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/kicksat-sprite/mpconfigboard.mk
@@ -15,3 +15,5 @@ CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_NETWORK = 0
CIRCUITPY_PS2IO = 0
CIRCUITPY_AUDIOMP3 = 0
+
+MICROPY_PY_ULAB = 0
diff --git a/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk b/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk
index a0449d7bb..b1f916ec2 100644
--- a/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/winterbloom_sol/mpconfigboard.mk
@@ -6,6 +6,7 @@ USB_PID = 0x8062
USB_PRODUCT = "Sol"
USB_MANUFACTURER = "Winterbloom"
USB_INTERFACE_NAME = "Sol"
+USB_DEVICES = "CDC,MSC,AUDIO"
CHIP_VARIANT = SAMD51J20A
CHIP_FAMILY = samd51
@@ -25,6 +26,7 @@ CIRCUITPY_I2CSLAVE = 0
CIRCUITPY_NETWORK = 0
CIRCUITPY_TOUCHIO = 0
CIRCUITPY_PS2IO = 0
+CIRCUITPY_USB_HID = 0
# Enable micropython.native
CIRCUITPY_ENABLE_MPY_NATIVE = 1
diff --git a/ports/atmel-samd/mpconfigport.mk b/ports/atmel-samd/mpconfigport.mk
index 354745a2c..7565e41a4 100644
--- a/ports/atmel-samd/mpconfigport.mk
+++ b/ports/atmel-samd/mpconfigport.mk
@@ -62,6 +62,12 @@ ifndef CIRCUITPY_SAMD
CIRCUITPY_SAMD = 1
endif
+ifndef MICROPY_PY_ULAB
+ifneq ($(CIRCUITPY_SMALL_BUILD),1)
+MICROPY_PY_ULAB = 1
+endif
+endif
+
endif # samd51
INTERNAL_LIBM = 1
diff --git a/ports/nrf/Makefile b/ports/nrf/Makefile
index 47a5b8653..89d88ce36 100755
--- a/ports/nrf/Makefile
+++ b/ports/nrf/Makefile
@@ -102,7 +102,6 @@ CFLAGS += -Wno-undef
CFLAGS += -Wno-cast-align
NRF_DEFINES += -DCONFIG_GPIO_AS_PINRESET
-NRF_DEFINES += -D_FS_DISK_READ_ALIGNED=1
CFLAGS += $(NRF_DEFINES)
CFLAGS += \
diff --git a/ports/nrf/mpconfigport.mk b/ports/nrf/mpconfigport.mk
index 9b738d4b3..db1b6b03e 100644
--- a/ports/nrf/mpconfigport.mk
+++ b/ports/nrf/mpconfigport.mk
@@ -69,4 +69,5 @@ NRF_DEFINES += -DNRF52840_XXAA -DNRF52840
# Defined here because system_nrf52840.c doesn't #include any of our own include files.
CFLAGS += -DCONFIG_NFCT_PINS_AS_GPIOS
+MICROPY_PY_ULAB = 1
endif
diff --git a/ports/nrf/supervisor/qspi_flash.c b/ports/nrf/supervisor/qspi_flash.c
index bb449d881..90260b091 100644
--- a/ports/nrf/supervisor/qspi_flash.c
+++ b/ports/nrf/supervisor/qspi_flash.c
@@ -83,11 +83,52 @@ bool spi_flash_sector_command(uint8_t command, uint32_t address) {
}
bool spi_flash_write_data(uint32_t address, uint8_t* data, uint32_t length) {
+ // TODO: In theory, this also needs to handle unaligned data and
+ // non-multiple-of-4 length. (in practice, I don't think the fat layer
+ // generates such writes)
return nrfx_qspi_write(data, length, address) == NRFX_SUCCESS;
}
bool spi_flash_read_data(uint32_t address, uint8_t* data, uint32_t length) {
- return nrfx_qspi_read(data, length, address) == NRFX_SUCCESS;
+ int misaligned = ((intptr_t)data) & 3;
+ // If the data is misaligned, we need to read 4 bytes
+ // into an aligned buffer, and then copy 1, 2, or 3 bytes from the aligned
+ // buffer to data.
+ if(misaligned) {
+ int sz = 4 - misaligned;
+ __attribute__((aligned(4))) uint8_t buf[4];
+
+ if(nrfx_qspi_read(buf, 4, address) != NRFX_SUCCESS) {
+ return false;
+ }
+ memcpy(data, buf, sz);
+ data += sz;
+ address += sz;
+ length -= sz;
+ }
+
+ // nrfx_qspi_read works in 4 byte increments, though it doesn't
+ // signal an error if sz is not a multiple of 4. Read (directly into data)
+ // all but the last 1, 2, or 3 bytes depending on the (remaining) length.
+ uint32_t sz = length & ~(uint32_t)3;
+ if(nrfx_qspi_read(data, sz, address) != NRFX_SUCCESS) {
+ return false;
+ }
+ data += sz;
+ address += sz;
+ length -= sz;
+
+ // Now, if we have any bytes left over, we must do a final read of 4
+ // bytes and copy 1, 2, or 3 bytes to data.
+ if(length) {
+ __attribute__((aligned(4))) uint8_t buf[4];
+ if(nrfx_qspi_read(buf, 4, address) != NRFX_SUCCESS) {
+ return false;
+ }
+ memcpy(data, buf, length);
+ }
+
+ return true;
}
void spi_flash_init(void) {
diff --git a/ports/stm32f4/common-hal/pulseio/PWMOut.c b/ports/stm32f4/common-hal/pulseio/PWMOut.c
index c23fa7462..d62ee2a38 100644
--- a/ports/stm32f4/common-hal/pulseio/PWMOut.c
+++ b/ports/stm32f4/common-hal/pulseio/PWMOut.c
@@ -163,7 +163,7 @@ pwmout_result_t common_hal_pulseio_pwmout_construct(pulseio_pwmout_obj_t* self,
} else if (var_freq_mismatch) {
mp_raise_ValueError(translate("Cannot vary frequency on a timer that is already in use"));
} else {
- mp_raise_ValueError(translate("Invalid pins"));
+ mp_raise_ValueError(translate("Invalid pins for PWMOut"));
}
}
diff --git a/ports/stm32f4/common-hal/pulseio/PulseOut.c b/ports/stm32f4/common-hal/pulseio/PulseOut.c
index d393afc5c..d82525ea1 100644
--- a/ports/stm32f4/common-hal/pulseio/PulseOut.c
+++ b/ports/stm32f4/common-hal/pulseio/PulseOut.c
@@ -35,21 +35,180 @@
#include "shared-bindings/pulseio/PWMOut.h"
#include "supervisor/shared/translate.h"
+#include "stm32f4xx_hal.h"
+#include "common-hal/microcontroller/Pin.h"
+#include "tick.h"
+
+// A single timer is shared amongst all PulseOut objects under the assumption that
+// the code is single threaded.
+STATIC uint8_t refcount = 0;
+
+STATIC uint16_t *pulse_array = NULL;
+STATIC volatile uint16_t pulse_array_index = 0;
+STATIC uint16_t pulse_array_length;
+
+//Timer is shared, must be accessible by interrupt
+STATIC TIM_HandleTypeDef t7_handle;
+pulseio_pulseout_obj_t *curr_pulseout = NULL;
+
+STATIC void turn_on(pulseio_pulseout_obj_t *pulseout) {
+ // Turn on PWM
+ HAL_TIM_PWM_Start(&(pulseout->pwmout->handle), pulseout->pwmout->channel);
+}
+
+STATIC void turn_off(pulseio_pulseout_obj_t *pulseout) {
+ // Turn off PWM
+ HAL_TIM_PWM_Stop(&(pulseout->pwmout->handle), pulseout->pwmout->channel);
+ // Make sure pin is low.
+ HAL_GPIO_WritePin(pin_port(pulseout->pwmout->tim->pin->port),
+ pin_mask(pulseout->pwmout->tim->pin->number), 0);
+}
+
+STATIC void start_timer(void) {
+ // Set the new period
+ t7_handle.Init.Period = pulse_array[pulse_array_index] - 1;
+ HAL_TIM_Base_Init(&t7_handle);
+
+ // TIM7 has limited HAL support, set registers manually
+ t7_handle.Instance->SR = 0; // Prevent the SR from triggering an interrupt
+ t7_handle.Instance->CR1 |= TIM_CR1_CEN; // Resume timer
+ t7_handle.Instance->CR1 |= TIM_CR1_URS; // Disable non-overflow interrupts
+ __HAL_TIM_ENABLE_IT(&t7_handle, TIM_IT_UPDATE);
+
+}
+
+STATIC void pulseout_event_handler(void) {
+ if (curr_pulseout->pwmout == NULL) {
+ return; //invalid interrupt
+ }
+
+ HAL_GPIO_WritePin(pin_port(2),pin_mask(6), 1);
+ HAL_GPIO_WritePin(pin_port(2),pin_mask(6), 0);
+
+ pulse_array_index++;
+
+ // No more pulses. Turn off output and don't restart.
+ if (pulse_array_index >= pulse_array_length) {
+ turn_off(curr_pulseout);
+ return;
+ }
+
+ // Alternate on and off, starting with on.
+ if (pulse_array_index % 2 == 0) {
+ turn_on(curr_pulseout);
+ } else {
+ turn_off(curr_pulseout);
+ }
+
+ // Count up to the next given value.
+ start_timer();
+}
void pulseout_reset() {
+ #if HAS_BASIC_TIM
+ __HAL_RCC_TIM7_CLK_DISABLE();
+ refcount = 0;
+ #endif
}
void common_hal_pulseio_pulseout_construct(pulseio_pulseout_obj_t* self,
const pulseio_pwmout_obj_t* carrier) {
- mp_raise_NotImplementedError(translate("PulseOut not yet supported"));
+#if !(HAS_BASIC_TIM)
+ mp_raise_NotImplementedError(translate("PulseOut not supported on this chip"));
+#else
+ // Add to active PulseOuts
+ refcount++;
+
+ // Calculate a 1 ms period
+ uint32_t source, clk_div;
+ source = HAL_RCC_GetPCLK1Freq(); // TIM7 is on APB1
+ clk_div = RCC->CFGR & RCC_CFGR_PPRE1;
+ // APB quirk, see See DM00031020 Rev 4, page 115.
+ if (clk_div != 0) {
+ // APB prescaler for this timer is > 1
+ source *= 2;
+ }
+
+ uint32_t prescaler = source/1000000; //1us intervals
+
+ __HAL_RCC_TIM7_CLK_ENABLE();
+ HAL_NVIC_SetPriority(TIM7_IRQn, 4, 0);
+ HAL_NVIC_EnableIRQ(TIM7_IRQn);
+
+ // Timers 6 and 7 have no pins, so using them doesn't affect PWM availability
+ t7_handle.Instance = TIM7;
+ t7_handle.Init.Period = 100; //immediately replaced.
+ t7_handle.Init.Prescaler = prescaler - 1;
+ t7_handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ t7_handle.Init.CounterMode = TIM_COUNTERMODE_UP;
+ t7_handle.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+
+ HAL_TIM_Base_Init(&t7_handle);
+ t7_handle.Instance->SR = 0;
+
+ // The HAL can't work with const, recast required.
+ self->pwmout = (pulseio_pwmout_obj_t*)carrier;
+
+ turn_off(self);
+#endif
}
bool common_hal_pulseio_pulseout_deinited(pulseio_pulseout_obj_t* self) {
- return true;
+ return self->pwmout == NULL;
}
void common_hal_pulseio_pulseout_deinit(pulseio_pulseout_obj_t* self) {
+ if (common_hal_pulseio_pulseout_deinited(self)) {
+ return;
+ }
+ turn_on(self);
+ self->pwmout = NULL;
+
+ refcount--;
+ if (refcount == 0) {
+ #if HAS_BASIC_TIM
+ __HAL_RCC_TIM7_CLK_DISABLE();
+ #endif
+ }
}
void common_hal_pulseio_pulseout_send(pulseio_pulseout_obj_t* self, uint16_t* pulses, uint16_t length) {
+ pulse_array = pulses;
+ pulse_array_index = 0;
+ pulse_array_length = length;
+ curr_pulseout = self;
+
+ turn_on(self);
+
+ // Count up to the next given value.
+ start_timer();
+
+ // Use when debugging, or issues are irrecoverable
+ // uint32_t starttime = supervisor_ticks_ms64();
+ // uint32_t timeout = 10000;
+ while(pulse_array_index < length) {
+ // Do other things while we wait. The interrupts will handle sending the
+ // signal.
+ RUN_BACKGROUND_TASKS;
+
+ // Use when debugging, or issues are irrecoverable
+ // if ((supervisor_ticks_ms64() - starttime ) > timeout ) {
+ // mp_raise_RuntimeError(translate("Error: Send Timeout"));
+ // }
+ }
+ //turn off timer counter.
+ t7_handle.Instance->CR1 &= ~TIM_CR1_CEN;
+}
+
+void TIM7_IRQHandler(void)
+{
+ // Detect TIM Update event
+ if (__HAL_TIM_GET_FLAG(&t7_handle, TIM_FLAG_UPDATE) != RESET)
+ {
+ if (__HAL_TIM_GET_IT_SOURCE(&t7_handle, TIM_IT_UPDATE) != RESET)
+ {
+ __HAL_TIM_CLEAR_IT(&t7_handle, TIM_IT_UPDATE);
+ pulseout_event_handler();
+ }
+ }
}
diff --git a/ports/stm32f4/common-hal/pulseio/PulseOut.h b/ports/stm32f4/common-hal/pulseio/PulseOut.h
index 45823d28a..aa97396d0 100644
--- a/ports/stm32f4/common-hal/pulseio/PulseOut.h
+++ b/ports/stm32f4/common-hal/pulseio/PulseOut.h
@@ -34,7 +34,7 @@
typedef struct {
mp_obj_base_t base;
- const pulseio_pwmout_obj_t *pwmout;
+ pulseio_pwmout_obj_t *pwmout;
} pulseio_pulseout_obj_t;
void pulseout_reset(void);
diff --git a/ports/stm32f4/peripherals/stm32f4/periph.h b/ports/stm32f4/peripherals/stm32f4/periph.h
index 969a8e79b..d311afe4a 100644
--- a/ports/stm32f4/peripherals/stm32f4/periph.h
+++ b/ports/stm32f4/peripherals/stm32f4/periph.h
@@ -138,23 +138,26 @@ typedef struct {
.pin = tim_pin, \
}
-//Starter Lines
+//Access Lines
#ifdef STM32F401xE
#define HAS_DAC 0
#define HAS_TRNG 0
+#define HAS_BASIC_TIM 0
#include "stm32f401xe/periph.h"
#endif
#ifdef STM32F411xE
#define HAS_DAC 0
#define HAS_TRNG 0
+#define HAS_BASIC_TIM 0
#include "stm32f411xe/periph.h"
#endif
#ifdef STM32F412Zx
#define HAS_DAC 0
#define HAS_TRNG 1
+#define HAS_BASIC_TIM 1
#include "stm32f412zx/periph.h"
#endif
@@ -163,12 +166,14 @@ typedef struct {
#ifdef STM32F405xx
#define HAS_DAC 1
#define HAS_TRNG 1
+#define HAS_BASIC_TIM 1
#include "stm32f405xx/periph.h"
#endif
#ifdef STM32F407xx
#define HAS_DAC 1
#define HAS_TRNG 1
+#define HAS_BASIC_TIM 1
#include "stm32f407xx/periph.h"
#endif
diff --git a/ports/stm32f4/peripherals/stm32f4/stm32f405xx/gpio.c b/ports/stm32f4/peripherals/stm32f4/stm32f405xx/gpio.c
index f9be3b4ec..d1eaa90d1 100644
--- a/ports/stm32f4/peripherals/stm32f4/stm32f405xx/gpio.c
+++ b/ports/stm32f4/peripherals/stm32f4/stm32f405xx/gpio.c
@@ -30,9 +30,13 @@
void stm32f4_peripherals_gpio_init(void) {
//Enable all GPIO for now
- __HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
//Never reset pins
never_reset_pin_number(2,13); //PC13 anti tamp
diff --git a/ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c b/ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c
index f9be3b4ec..d1eaa90d1 100644
--- a/ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c
+++ b/ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c
@@ -30,9 +30,13 @@
void stm32f4_peripherals_gpio_init(void) {
//Enable all GPIO for now
- __HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_GPIOD_CLK_ENABLE();
+ __HAL_RCC_GPIOE_CLK_ENABLE();
+ __HAL_RCC_GPIOF_CLK_ENABLE();
+ __HAL_RCC_GPIOG_CLK_ENABLE();
//Never reset pins
never_reset_pin_number(2,13); //PC13 anti tamp
diff --git a/ports/stm32f4/supervisor/port.c b/ports/stm32f4/supervisor/port.c
index e9e4720d7..ecb4d3d15 100644
--- a/ports/stm32f4/supervisor/port.c
+++ b/ports/stm32f4/supervisor/port.c
@@ -35,6 +35,7 @@
#include "common-hal/busio/SPI.h"
#include "common-hal/busio/UART.h"
#include "common-hal/pulseio/PWMOut.h"
+#include "common-hal/pulseio/PulseOut.h"
#include "stm32f4/clocks.h"
#include "stm32f4/gpio.h"
@@ -60,6 +61,7 @@ void reset_port(void) {
spi_reset();
uart_reset();
pwmout_reset();
+ pulseout_reset();
}
void reset_to_bootloader(void) {
diff --git a/ports/unix/Makefile b/ports/unix/Makefile
index 7ffa0fd08..63c4980c3 100644
--- a/ports/unix/Makefile
+++ b/ports/unix/Makefile
@@ -277,6 +277,18 @@ coverage_test: coverage
coverage_clean:
$(MAKE) V=2 BUILD=build-coverage PROG=micropython_coverage clean
+# build an interpreter for fuzzing
+fuzz:
+ $(MAKE) \
+ CC=afl-clang-fast DEBUG=1 \
+ CFLAGS_EXTRA='$(CFLAGS_EXTRA) -ffunction-sections' \
+ LDFLAGS_EXTRA='$(LDFLAGS_EXTRA)' \
+ BUILD=build-fuzz PROG=micropython_fuzz
+
+fuzz_clean:
+ $(MAKE) V=2 BUILD=build-fuzz PROG=micropython_fuzz clean
+
+
# Value of configure's --host= option (required for cross-compilation).
# Deduce it from CROSS_COMPILE by default, but can be overridden.
ifneq ($(CROSS_COMPILE),)
diff --git a/ports/unix/mpconfigport.h b/ports/unix/mpconfigport.h
index e0f9d9995..3ac7ceaf2 100644
--- a/ports/unix/mpconfigport.h
+++ b/ports/unix/mpconfigport.h
@@ -323,3 +323,6 @@ void mp_unix_mark_exec(void);
// For debugging purposes, make printf() available to any source file.
#include <stdio.h>
#endif
+
+#define MICROPY_PY_BUILTINS_HELP (1)
+#define MICROPY_PY_BUILTINS_HELP_MODULES (1)
diff --git a/ports/unix/mpconfigport.mk b/ports/unix/mpconfigport.mk
index f0aa955c0..4cb1804d4 100644
--- a/ports/unix/mpconfigport.mk
+++ b/ports/unix/mpconfigport.mk
@@ -40,3 +40,5 @@ MICROPY_PY_JNI = 0
# Avoid using system libraries, use copies bundled with MicroPython
# as submodules (currently affects only libffi).
MICROPY_STANDALONE = 0
+
+MICROPY_PY_ULAB = 1
diff --git a/py/builtin.h b/py/builtin.h
index 84b99a8a4..6e0d5d9be 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -117,6 +117,13 @@ extern const mp_obj_module_t mp_module_websocket;
extern const mp_obj_module_t mp_module_webrepl;
extern const mp_obj_module_t mp_module_framebuf;
extern const mp_obj_module_t mp_module_btree;
+extern const mp_obj_module_t ulab_user_cmodule;
+extern mp_obj_module_t ulab_fft_module;
+extern mp_obj_module_t ulab_filter_module;
+extern mp_obj_module_t ulab_linalg_module;
+extern mp_obj_module_t ulab_numerical_module;
+extern mp_obj_module_t ulab_poly_module;
+
extern const char MICROPY_PY_BUILTINS_HELP_TEXT[];
diff --git a/py/builtinimport.c b/py/builtinimport.c
index 6ed0a7594..2be779c6c 100644
--- a/py/builtinimport.c
+++ b/py/builtinimport.c
@@ -400,21 +400,31 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) {
DEBUG_printf("Current path: %.*s\n", vstr_len(&path), vstr_str(&path));
if (stat == MP_IMPORT_STAT_NO_EXIST) {
- #if MICROPY_MODULE_WEAK_LINKS
- // check if there is a weak link to this module
- if (i == mod_len) {
- mp_map_elem_t *el = mp_map_lookup((mp_map_t*)&mp_builtin_module_weak_links_map, MP_OBJ_NEW_QSTR(mod_name), MP_MAP_LOOKUP);
+ // This is just the module name after the previous .
+ qstr current_module_name = qstr_from_strn(mod_str + last, i - last);
+ mp_map_elem_t *el = NULL;
+ if (outer_module_obj == MP_OBJ_NULL) {
+ el = mp_map_lookup((mp_map_t*)&mp_builtin_module_map,
+ MP_OBJ_NEW_QSTR(current_module_name),
+ MP_MAP_LOOKUP);
+ #if MICROPY_MODULE_WEAK_LINKS
+ // check if there is a weak link to this module
if (el == NULL) {
- goto no_exist;
+ el = mp_map_lookup((mp_map_t*)&mp_builtin_module_weak_links_map,
+ MP_OBJ_NEW_QSTR(current_module_name),
+ MP_MAP_LOOKUP);
}
- // found weak linked module
+ #endif
+ } else {
+ el = mp_map_lookup(&((mp_obj_module_t*) outer_module_obj)->globals->map,
+ MP_OBJ_NEW_QSTR(current_module_name),
+ MP_MAP_LOOKUP);
+ }
+
+ if (el != NULL && MP_OBJ_IS_TYPE(el->value, &mp_type_module)) {
module_obj = el->value;
mp_module_call_init(mod_name, module_obj);
} else {
- no_exist:
- #else
- {
- #endif
// couldn't find the file, so fail
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
mp_raise_ImportError(translate("module not found"));
diff --git a/py/circuitpy_defns.mk b/py/circuitpy_defns.mk
index 68fa25d8d..92021d0d0 100644
--- a/py/circuitpy_defns.mk
+++ b/py/circuitpy_defns.mk
@@ -431,6 +431,19 @@ $(addprefix lib/,\
libm/atanf.c \
libm/atan2f.c \
)
+ifeq ($(MICROPY_PY_ULAB),1)
+SRC_LIBM += \
+$(addprefix lib/,\
+ libm/acoshf.c \
+ libm/asinhf.c \
+ libm/atanhf.c \
+ libm/erf_lgamma.c \
+ libm/log1pf.c \
+ libm/sf_erf.c \
+ libm/wf_lgamma.c \
+ libm/wf_tgamma.c \
+ )
+endif
endif
ifdef LD_TEMPLATE_FILE
diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h
index 53cd7b0bb..61dd901ed 100644
--- a/py/circuitpy_mpconfig.h
+++ b/py/circuitpy_mpconfig.h
@@ -578,6 +578,12 @@ extern const struct _mp_obj_module_t ustack_module;
#define JSON_MODULE
#endif
+#if defined(MICROPY_PY_ULAB) && MICROPY_PY_ULAB
+#define ULAB_MODULE \
+ { MP_ROM_QSTR(MP_QSTR_ulab), MP_ROM_PTR(&ulab_user_cmodule) },
+#else
+#define ULAB_MODULE
+#endif
#if MICROPY_PY_URE
#define RE_MODULE { MP_ROM_QSTR(MP_QSTR_re), MP_ROM_PTR(&mp_module_ure) },
#else
diff --git a/py/compile.c b/py/compile.c
index 77715d3fe..d5fae0299 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -1711,6 +1711,16 @@ STATIC void compile_yield_from(compiler_t *comp) {
}
#if MICROPY_PY_ASYNC_AWAIT
+STATIC bool compile_require_async_context(compiler_t *comp, mp_parse_node_struct_t *pns) {
+ int scope_flags = comp->scope_cur->scope_flags;
+ if(scope_flags & MP_SCOPE_FLAG_GENERATOR) {
+ return true;
+ }
+ compile_syntax_error(comp, (mp_parse_node_t)pns,
+ translate("'async for' or 'async with' outside async function"));
+ return false;
+}
+
STATIC void compile_await_object_method(compiler_t *comp, qstr method) {
EMIT_ARG(load_method, method, false);
EMIT_ARG(call_method, 0, 0, 0);
@@ -1720,6 +1730,10 @@ STATIC void compile_await_object_method(compiler_t *comp, qstr method) {
STATIC void compile_async_for_stmt(compiler_t *comp, mp_parse_node_struct_t *pns) {
// comp->break_label |= MP_EMIT_BREAK_FROM_FOR;
+ if(!compile_require_async_context(comp, pns)) {
+ return;
+ }
+
qstr context = MP_PARSE_NODE_LEAF_ARG(pns->nodes[1]);
uint while_else_label = comp_next_label(comp);
uint try_exception_label = comp_next_label(comp);
@@ -1857,6 +1871,9 @@ STATIC void compile_async_with_stmt_helper(compiler_t *comp, int n, mp_parse_nod
}
STATIC void compile_async_with_stmt(compiler_t *comp, mp_parse_node_struct_t *pns) {
+ if(!compile_require_async_context(comp, pns)) {
+ return;
+ }
// get the nodes for the pre-bit of the with (the a as b, c as d, ... bit)
mp_parse_node_t *nodes;
int n = mp_parse_node_extract_list(&pns->nodes[0], PN_with_stmt_list, &nodes);
diff --git a/py/gc_long_lived.c b/py/gc_long_lived.c
index 01c22a7af..0e94390e9 100755
--- a/py/gc_long_lived.c
+++ b/py/gc_long_lived.c
@@ -89,7 +89,7 @@ mp_obj_dict_t *make_dict_long_lived(mp_obj_dict_t *dict, uint8_t max_depth) {
#ifndef MICROPY_ENABLE_GC
return dict;
#endif
- if (dict == NULL || max_depth == 0 || dict == &MP_STATE_VM(dict_main)) {
+ if (dict == NULL || max_depth == 0 || dict == &MP_STATE_VM(dict_main) || dict->map.is_fixed) {
return dict;
}
// Don't recurse unnecessarily. Return immediately if we've already seen this dict.
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 1512c7d3a..8f78ade5c 100755
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -1173,6 +1173,10 @@ typedef double mp_float_t;
#define MICROPY_PY_UJSON (0)
#endif
+#ifndef MICROPY_PY_ULAB
+#define MICROPY_PY_ULAB (0)
+#endif
+
#ifndef MICROPY_PY_URE
#define MICROPY_PY_URE (0)
#endif
diff --git a/py/objmodule.c b/py/objmodule.c
index 627ba79e8..7405a6919 100644
--- a/py/objmodule.c
+++ b/py/objmodule.c
@@ -69,6 +69,13 @@ STATIC void module_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) {
// delete/store attribute
mp_obj_dict_t *dict = self->globals;
if (dict->map.is_fixed) {
+ mp_map_elem_t *elem = mp_map_lookup(&dict->map, MP_OBJ_NEW_QSTR(attr), MP_MAP_LOOKUP);
+ // Return success if the given value is already in the dictionary. This is the case for
+ // native packages with native submodules.
+ if (elem != NULL && elem->value == dest[1]) {
+ dest[0] = MP_OBJ_NULL; // indicate success
+ return;
+ } else
#if MICROPY_CAN_OVERRIDE_BUILTINS
if (dict == &mp_module_builtins_globals) {
if (MP_STATE_VM(mp_module_builtins_override_dict) == NULL) {
@@ -206,6 +213,14 @@ STATIC const mp_rom_map_elem_t mp_builtin_module_table[] = {
{ MP_ROM_QSTR(MP_QSTR_ujson), MP_ROM_PTR(&mp_module_ujson) },
#endif
#endif
+#if MICROPY_PY_ULAB
+#if CIRCUITPY
+// CircuitPython: Defined in MICROPY_PORT_BUILTIN_MODULES, so not defined here.
+// TODO: move to shared-bindings/
+#else
+ { MP_ROM_QSTR(MP_QSTR_ulab), MP_ROM_PTR(&ulab_user_cmodule) },
+#endif
+#endif
#if MICROPY_PY_URE
#if CIRCUITPY
// CircuitPython: Defined in MICROPY_PORT_BUILTIN_MODULES, so not defined here.
diff --git a/py/parse.c b/py/parse.c
index 911b891e0..864528470 100644
--- a/py/parse.c
+++ b/py/parse.c
@@ -477,6 +477,9 @@ STATIC void push_result_token(parser_t *parser, uint8_t rule_id) {
mp_parse_node_t pn;
mp_lexer_t *lex = parser->lexer;
if (lex->tok_kind == MP_TOKEN_NAME) {
+ if(lex->vstr.len >= (1 << (8 * MICROPY_QSTR_BYTES_IN_LEN))) {
+ mp_raise_msg(&mp_type_SyntaxError, translate("Name too long"));
+ }
qstr id = qstr_from_strn(lex->vstr.buf, lex->vstr.len);
#if MICROPY_COMP_CONST
// if name is a standalone identifier, look it up in the table of dynamic constants
diff --git a/py/py.mk b/py/py.mk
index a73b47f37..5e044947a 100644
--- a/py/py.mk
+++ b/py/py.mk
@@ -105,6 +105,22 @@ $(BUILD)/$(BTREE_DIR)/%.o: CFLAGS += -Wno-old-style-definition -Wno-sign-compare
$(BUILD)/extmod/modbtree.o: CFLAGS += $(BTREE_DEFS)
endif
+ifeq ($(MICROPY_PY_ULAB),1)
+SRC_MOD += $(addprefix extmod/ulab/code/, \
+create.c \
+fft.c \
+filter.c \
+linalg.c \
+ndarray.c \
+numerical.c \
+poly.c \
+ulab.c \
+vectorise.c \
+ )
+CFLAGS_MOD += -DMICROPY_PY_ULAB=1 -DMODULE_ULAB_ENABLED=1
+$(BUILD)/extmod/ulab/code/%.o: CFLAGS += -Wno-sign-compare -Wno-missing-prototypes -Wno-unused-parameter -Wno-missing-declarations -Wno-error -Wno-shadow -Wno-maybe-uninitialized -DCIRCUITPY
+endif
+
# External modules written in C.
ifneq ($(USER_C_MODULES),)
# pre-define USERMOD variables as expanded so that variables are immediate
diff --git a/shared-bindings/audiocore/RawSample.c b/shared-bindings/audiocore/RawSample.c
index 87d410ea1..96af58a4f 100644
--- a/shared-bindings/audiocore/RawSample.c
+++ b/shared-bindings/audiocore/RawSample.c
@@ -49,7 +49,7 @@
//| first sample will be for channel 1, the second sample will be for channel two, the third for
//| channel 1 and so on.
//|
-//| :param array buffer: An `array.array` with samples
+//| :param array.array buffer: An `array.array` with samples
//| :param int channel_count: The number of channels in the buffer
//| :param int sample_rate: The desired playback sample rate
//|
diff --git a/shared-bindings/ulab/__init__.rst b/shared-bindings/ulab/__init__.rst
new file mode 100644
index 000000000..b2933be79
--- /dev/null
+++ b/shared-bindings/ulab/__init__.rst
@@ -0,0 +1,450 @@
+
+:mod:`ulab` --- Manipulate numeric data similar to numpy
+========================================================
+
+.. module:: ulab
+ :synopsis: Manipulate numeric data similar to numpy
+
+`ulab` is a numpy-like module for micropython, meant to simplify and
+speed up common mathematical operations on arrays. The primary goal was to
+implement a small subset of numpy that might be useful in the context of a
+microcontroller. This means low-level data processing of linear (array) and
+two-dimensional (matrix) data.
+
+`ulab` is adapted from micropython-ulab, and the original project's
+documentation can be found at
+https://micropython-ulab.readthedocs.io/en/latest/
+
+`ulab` is modeled after numpy, and aims to be a compatible subset where
+possible. Numpy's documentation can be found at
+https://docs.scipy.org/doc/numpy/index.html
+
+.. contents::
+
+.. attribute:: __version__
+
+The closest corresponding version of micropython-ulab
+
+ulab.array -- 1- and 2- dimensional array
+-----------------------------------------
+
+.. class:: ulab.array(values, \*, dtype=float)
+
+ :param sequence values: Sequence giving the initial content of the array.
+ :param dtype: The type of array values, ``int8``, ``uint8``, ``int16``, ``uint16``, or ``float``
+
+ The `values` sequence can either be a sequence of numbers (in which case a
+ 1-dimensional array is created), or a sequence where each subsequence has
+ the same length (in which case a 2-dimensional array is created).
+
+ In many cases, it is more convenient to create an array from a function
+ like `zeros` or `linspace`.
+
+ `ulab.array` implements the buffer protocol, so it can be used in many
+ places an `array.array` can be used.
+
+ .. attribute:: shape
+
+ The size of the array, a tuple of length 1 or 2
+
+ .. attribute:: size
+
+ The number of elements in the array
+
+ .. attribute:: itemsize
+
+ The number of elements in the array
+
+ .. method:: flatten(\*, order='C')
+
+ :param order: Whether to flatten by rows ('C') or columns ('F')
+
+ Returns a new `ulab.array` object which is always 1 dimensional.
+ If order is 'C' (the default", then the data is ordered in rows;
+ If it is 'F', then the data is ordered in columns. "C" and "F" refer
+ to the typical storage organization of the C and Fortran languages.
+
+ .. method:: sort(\*, axis=1)
+
+ :param axis: Whether to sort elements within rows (0), columns (1), or elements (None)
+
+ .. method:: transpose()
+
+ Swap the rows and columns of a 2-dimensional array
+
+ .. method:: __add__()
+
+ Adds corresponding elements of the two arrays, or adds a number to all
+ elements of the array. A number must be on the right hand side. If
+ both arguments are arrays, their sizes must match.
+
+ .. method:: __sub__()
+
+ Subtracts corresponding elements of the two arrays, or subtracts a
+ number from all elements of the array. A number must be on the right
+ hand side. If both arguments are arrays, their sizes must match.
+
+ .. method:: __mul__()
+
+ Multiplies corresponding elements of the two arrays, or multiplies
+ all elements of the array by a number. A number must be on the right
+ hand side. If both arguments are arrays, their sizes must match.
+
+ .. method:: __div__()
+
+ Multiplies corresponding elements of the two arrays, or divides
+ all elements of the array by a number. A number must be on the right
+ hand side. If both arguments are arrays, their sizes must match.
+
+ .. method:: __getitem__()
+
+ Retrieve an element of the array.
+
+ .. method:: __setitem__()
+
+ Set an element of the array.
+
+Array type codes
+----------------
+.. attribute:: int8
+
+ Type code for signed integers in the range -128 .. 127 inclusive, like the 'b' typecode of `array.array`
+
+.. attribute:: int16
+
+ Type code for signed integers in the range -32768 .. 32767 inclusive, like the 'h' typecode of `array.array`
+
+.. attribute:: float
+
+ Type code for floating point values, like the 'f' typecode of `array.array`
+
+.. attribute:: uint8
+
+ Type code for unsigned integers in the range 0 .. 255 inclusive, like the 'H' typecode of `array.array`
+
+.. attribute:: uint8
+
+ Type code for unsigned integers in the range 0 .. 65535 inclusive, like the 'h' typecode of `array.array`
+
+
+Basic Array defining functions
+------------------------------
+
+.. method:: ones(shape, \*, dtype=float)
+
+ .. param: shape
+ Shape of the array, either an integer (for a 1-D array) or a tuple of 2 integers (for a 2-D array)
+
+ .. param: dtype
+ Type of values in the array
+
+ Return a new array of the given shape with all elements set to 1.
+
+.. method:: zeros
+
+ .. param: shape
+ Shape of the array, either an integer (for a 1-D array) or a tuple of 2 integers (for a 2-D array)
+
+ .. param: dtype
+ Type of values in the array
+
+ Return a new array of the given shape with all elements set to 0.
+
+
+.. method:: eye(size, \*, dtype=float)
+
+ Return a new square array of size, with the diagonal elements set to 1
+ and the other elements set to 0.
+
+.. method:: linspace(start, stop, \*, dtype=float, num=50, endpoint=True)
+
+ .. param: start
+
+ First value in the array
+
+ .. param: stop
+
+ Final value in the array
+
+ .. param int: num
+
+ Count of values in the array
+
+ .. param: dtype
+
+ Type of values in the array
+
+ .. param bool: endpoint
+
+ Whether the ``stop`` value is included. Note that even when
+ endpoint=True, the exact ``stop`` value may not be included due to the
+ inaccuracy of floating point arithmetic.
+
+ Return a new 1-D array with ``num`` elements ranging from ``start`` to ``stop`` linearly.
+
+
+
+:mod:`ulab.vector` --- Element-by-element functions
+===================================================
+
+.. module:: ulab.vector
+
+These functions can operate on numbers, 1-D arrays, or 2-D arrays by
+applying the function to every element in the array. This is typically
+much more efficient than expressing the same operation as a Python loop.
+
+.. method:: acos
+
+ Computes the inverse cosine function
+
+.. method:: acosh
+
+ Computes the inverse hyperbolic cosine function
+
+.. method:: asin
+
+ Computes the inverse sine function
+
+.. method:: asinh
+
+ Computes the inverse hyperbolic sine function
+
+.. method:: atan
+
+ Computes the inverse tangent function
+
+.. method:: atanh
+
+ Computes the inverse hyperbolic tangent function
+
+.. method:: ceil
+
+ Rounds numbers up to the next whole number
+
+.. method:: cos
+
+ Computes the cosine function
+
+.. method:: erf
+
+ Computes the error function, which has applications in statistics
+
+.. method:: erfc
+
+ Computes the complementary error function, which has applications in statistics
+
+.. method:: exp
+
+ Computes the exponent function.
+
+.. method:: expm1
+
+ Computes $e^x-1$. In certain applications, using this function preserves numeric accuracy better than the `exp` function.
+
+.. method:: floor
+
+ Rounds numbers up to the next whole number
+
+.. method:: gamma
+
+ Computes the gamma function
+
+.. method:: lgamma
+
+ Computes the natural log of the gamma function
+
+.. method:: log
+
+ Computes the natural log
+
+.. method:: log10
+
+ Computes the log base 10
+
+.. method:: log2
+
+ Computes the log base 2
+
+.. method:: sin
+
+ Computes the sine
+
+.. method:: sinh
+
+ Computes the hyperbolic sine
+
+.. method:: sqrt
+
+ Computes the square root
+
+.. method:: tan
+
+ Computes the tangent
+
+.. method:: tanh
+
+ Computes the hyperbolic tangent
+
+:mod:`ulab.linalg` - Linear algebra functions
+=============================================
+
+.. module:: ulab.linalg
+
+.. method:: det
+
+ :param: m, a square matrix
+ :return float: The determinant of the matrix
+
+ Computes the eigenvalues and eigenvectors of a square matrix
+
+.. method:: dot(m1, m2)
+
+ :param ~ulab.array m1: a matrix
+ :param ~ulab.array m2: a matrix
+
+ Computes the matrix product of two matrices
+
+ **WARNING:** Unlike ``numpy``, this function cannot be used to compute the dot product of two vectors
+
+.. method:: eig(m)
+
+ :param m: a square matrix
+ :return tuple (eigenvectors, eigenvalues):
+
+ Computes the eigenvalues and eigenvectors of a square matrix
+
+.. method:: inv(m)
+
+ :param ~ulab.array m: a square matrix
+ :return: The inverse of the matrix, if it exists
+ :raises ValueError: if the matrix is not invertible
+
+ Computes the inverse of a square matrix
+
+.. method:: size(array)
+
+ Return the total number of elements in the array, as an integer.
+
+:mod:`ulab.filter` --- Filtering functions
+==========================================
+
+.. module:: ulab.filter
+
+.. method:: convolve(r, c=None)
+
+ :param ulab.array a:
+ :param ulab.array v:
+
+ Returns the discrete, linear convolution of two one-dimensional sequences.
+ The result is always an array of float. Only the ``full`` mode is supported,
+ and the ``mode`` named parameter of numpy is not accepted. Note that all other
+ modes can be had by slicing a ``full`` result.
+
+ Convolution filters can implement high pass, low pass, band pass, etc.,
+ filtering operations. Convolution filters are typically constructed ahead
+ of time. This can be done using desktop python with scipy, or on web pages
+ such as https://fiiir.com/
+
+ Convolution is most time-efficient when both inputs are of float type.
+
+:mod:`ulab.fft` --- Frequency-domain functions
+==============================================
+
+.. module:: ulab.fft
+
+.. method:: fft(r, c=None)
+
+ :param ulab.array r: A 1-dimension array of values whose size is a power of 2
+ :param ulab.array c: An optional 1-dimension array of values whose size is a power of 2, giving the complex part of the value
+ :return tuple (r, c): The real and complex parts of the FFT
+
+ Perform a Fast Fourier Transform from the time domain into the frequency domain
+
+.. method:: ifft(r, c=None)
+
+ :param ulab.array r: A 1-dimension array of values whose size is a power of 2
+ :param ulab.array c: An optional 1-dimension array of values whose size is a power of 2, giving the complex part of the value
+ :return tuple (r, c): The real and complex parts of the inverse FFT
+
+ Perform an Inverse Fast Fourier Transform from the frequeny domain into the time domain
+
+.. method:: spectrum(r):
+
+ :param ulab.array r: A 1-dimension array of values whose size is a power of 2
+
+ Computes the spectrum of the input signal. This is the absolute value of the (complex-valued) fft of the signal.
+
+:mod:`ulab.numerical` --- Numerical and Statistical functions
+=============================================================
+
+.. module:: ulab.numerical
+
+Most of these functions take an "axis" argument, which indicates whether to
+operate over the flattened array (None), rows (0), or columns (1).
+
+.. method:: argmax(array, \*, axis=None)
+
+ Return the index of the maximum element of the 1D array, as an array with 1 element
+
+.. method:: argmin(array, \*, axis=None)
+
+ Return the index of the minimum element of the 1D array, as an array with 1 element
+
+.. method:: argsort(array, \*, axis=None)
+
+ Returns an array which gives indices into the input array from least to greatest.
+
+.. method:: diff(array, \*, axis=1)
+
+ Return the numerical derivative of successive elements of the array, as
+ an array. axis=None is not supported.
+
+.. method:: flip(array, \*, axis=None)
+
+ Returns a new array that reverses the order of the elements along the
+ given axis, or along all axes if axis is None.
+
+.. method:: max(array, \*, axis=None)
+
+ Return the maximum element of the 1D array, as an array with 1 element
+
+.. method:: mean(array, \*, axis=None)
+
+ Return the mean element of the 1D array, as a number if axis is None, otherwise as an array.
+
+.. method:: min(array, \*, axis=None)
+
+ Return the minimum element of the 1D array, as an array with 1 element
+
+.. method:: roll(array, distance, \*, axis=None)
+
+ Shift the content of a vector by the positions given as the second
+ argument. If the ``axis`` keyword is supplied, the shift is applied to
+ the given axis. The array is modified in place.
+
+.. method:: std(array, \*, axis=None)
+
+ Return the standard deviation of the array, as a number if axis is None, otherwise as an array.
+
+.. method:: sum(array, \*, axis=None)
+
+ Return the sum of the array, as a number if axis is None, otherwise as an array.
+
+.. method:: sort(array, \*, axis=0)
+
+ Sort the array along the given axis, or along all axes if axis is None.
+ The array is modified in place.
+
+:mod:`ulab.poly` --- Polynomial functions
+=========================================
+
+.. module:: ulab.poly
+
+.. method:: polyfit([x, ] y, degree)
+
+ Return a polynomial of given degree that approximates the function
+ f(x)=y. If x is not supplied, it is the range(len(y)).
+
+.. method:: polyval(p, x)
+
+ Evaluate the polynomial p at the points x. x must be an array.
diff --git a/tests/run-tests b/tests/run-tests
index 94e1591e8..f6c727a8a 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -579,7 +579,7 @@ the last matching regex is used:
# run PC tests
test_dirs = (
'basics', 'micropython', 'float', 'import', 'io', 'misc',
- 'stress', 'unicode', 'extmod', 'unix', 'cmdline',
+ 'stress', 'unicode', 'extmod', '../extmod/ulab/tests', 'unix', 'cmdline',
)
else:
# run tests from these directories
diff --git a/tools/build_board_info.py b/tools/build_board_info.py
index 1f074dddf..3c8f44f74 100644
--- a/tools/build_board_info.py
+++ b/tools/build_board_info.py
@@ -21,6 +21,10 @@ HEX = ('hex',)
HEX_UF2 = ('hex', 'uf2')
SPK = ('spk',)
+# Example:
+# https://downloads.circuitpython.org/bin/trinket_m0/en_US/adafruit-circuitpython-trinket_m0-en_US-5.0.0-rc.0.uf2
+DOWNLOAD_BASE_URL = "https://downloads.circuitpython.org/bin"
+
# Default extensions
extension_by_port = {
"nrf": UF2,
@@ -33,8 +37,10 @@ extension_by_port = {
# Per board overrides
extension_by_board = {
# samd
- "arduino_mkr1300": BIN,
- "arduino_zero": BIN,
+ "arduino_mkr1300": BIN_UF2,
+ "arduino_mkrzero": BIN_UF2,
+ "arduino_nano_33_iot": BIN_UF2,
+ "arduino_zero": BIN_UF2,
"feather_m0_adalogger": BIN_UF2,
"feather_m0_basic": BIN_UF2,
"feather_m0_rfm69": BIN_UF2,
@@ -275,7 +281,14 @@ def generate_download_info():
files = []
new_version["files"][language] = files
for extension in board_info["extensions"]:
- files.append("https://github.com/adafruit/circuitpython/releases/download/{tag}/adafruit-circuitpython-{alias}-{language}-{tag}.{extension}".format(tag=new_tag, alias=alias, language=language, extension=extension))
+ files.append(
+ "{base_url}/{alias}/{language}/adafruit-circuitpython-{alias}-{language}-{tag}.{extension}"
+ .format(
+ base_url=DOWNLOAD_BASE_URL,
+ tag=new_tag,
+ alias=alias,
+ language=language,
+ extension=extension))
current_info[alias]["downloads"] = alias_info["download_count"]
current_info[alias]["versions"].append(new_version)
diff --git a/tools/upload_release_files.py b/tools/upload_release_files.py
deleted file mode 100755
index 4f193a8be..000000000
--- a/tools/upload_release_files.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /usr/bin/env python3
-
-import os
-import os.path
-import sys
-import uritemplate
-
-sys.path.append("adabot")
-import adabot.github_requests as github
-
-exit_status = 0
-
-for dirpath, dirnames, filenames in os.walk("../bin"):
- if not filenames:
- continue
- for filename in filenames:
- full_filename = os.path.join(dirpath, filename)
- label = filename.replace("adafruit-circuitpython-", "")
- url_vars = {}
- url_vars["name"] = filename
- url_vars["label"] = label
- url = uritemplate.expand(os.environ["UPLOAD_URL"], url_vars)
- headers = {"content-type": "application/octet-stream"}
- print(url)
- with open(full_filename, "rb") as f:
- response = github.post(url, data=f, headers=headers)
- if not response.ok:
- if response.status_code == 422 and response.json().get("errors", [{"code":""}])[0]["code"] == "already_exists":
- print("File already uploaded. Skipping.")
- continue
- print("Upload of {} failed with {}.".format(filename, response.status_code))
- print(response.text)
- sys.exit(response.status_code)
-
-sys.exit(exit_status)