MLBEDSW-6982: Move to setup.cfg and pyproject.toml

- Move all static information from setup.py to newly added
  pyproject.toml
- Add setup.cfg used for static information that cannot be added to
  pyproject.toml due to it still being in beta.
- Modify mlw_codec to to throw a real python exception when importing
  NumPy arrays instead of just printing them to stdout.
- Surround mlw_codec import with try catch statement to catch NumPy C
  API mismatch errors and throw them again with a more detailed message.
- Update README.md with documentation about known issue with changing
  used NumPy version after installing ethos-u-vela.

Change-Id: I1eeee5536be7c1744e30d6088f7069fbb1403e06
Signed-off-by: Raul Farkas <raul.farkas@arm.com>
diff --git a/ethosu/mlw_codec/mlw_codecmodule.c b/ethosu/mlw_codec/mlw_codecmodule.c
index 61ae6a4..8c540d6 100644
--- a/ethosu/mlw_codec/mlw_codecmodule.c
+++ b/ethosu/mlw_codec/mlw_codecmodule.c
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: Copyright 2020-2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ * SPDX-FileCopyrightText: Copyright 2020-2021, 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 #define PY_SSIZE_T_CLEAN
 #include <Python.h>
 #include <numpy/ndarrayobject.h>
@@ -307,7 +306,19 @@
 
 PyMODINIT_FUNC PyInit_mlw_codec(void)
 {
+    PyObject *ptype, *pvalue, *ptraceback;
     PyObject* ret = PyModule_Create(&mlw_codecmodule);
-    import_array();
+    if (_import_array() < 0)
+    {
+      // Fetch currently set error
+      PyErr_Fetch(&ptype, &pvalue, &ptraceback);
+      // Extract the error message
+      const char *pStrErrorMessage = PyUnicode_AsUTF8(pvalue);
+      // Re-format error message to start with "mlw_codec Error: " so it is
+      // clearer it comes from mlw_codec.
+      PyErr_Format(PyExc_RuntimeError, "mlw_codec error: %s", pStrErrorMessage);
+      return NULL;
+    }
+
     return ret;
 }