diff --git a/src/App/ApplicationPy.cpp b/src/App/ApplicationPy.cpp
index 850efb7724..d37c296809 100644
--- a/src/App/ApplicationPy.cpp
+++ b/src/App/ApplicationPy.cpp
@@ -29,6 +29,7 @@
#include
#include
#include
+#include
#include
#include "Application.h"
@@ -250,10 +251,11 @@ PyObject* Application::sOpenDocument(PyObject * /*self*/, PyObject *args, PyObje
{
char* Name;
PyObject *hidden = Py_False;
- static char *kwlist[] = {"name", "hidden", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwd, "et|O!", kwlist,
- "utf-8", &Name, &PyBool_Type, &hidden))
+ static const std::array kwlist {"name", "hidden", nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwd, "et|O!", kwlist,
+ "utf-8", &Name, &PyBool_Type, &hidden)) {
return nullptr;
+ }
std::string EncodedName = std::string(Name);
PyMem_Free(Name);
try {
@@ -277,10 +279,11 @@ PyObject* Application::sNewDocument(PyObject * /*self*/, PyObject *args, PyObjec
char *usrName = nullptr;
PyObject *hidden = Py_False;
PyObject *temp = Py_False;
- static char *kwlist[] = {"name", "label", "hidden", "temp", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwd, "|etetO!O!", kwlist,
- "utf-8", &docName, "utf-8", &usrName, &PyBool_Type, &hidden, &PyBool_Type, &temp))
+ static const std::array kwlist {"name", "label", "hidden", "temp", nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwd, "|etetO!O!", kwlist,
+ "utf-8", &docName, "utf-8", &usrName, &PyBool_Type, &hidden, &PyBool_Type, &temp)) {
return nullptr;
+ }
PY_TRY {
App::Document* doc = GetApplication().newDocument(docName, usrName, !Base::asBoolean(hidden), Base::asBoolean(temp));
diff --git a/src/App/DocumentObjectPyImp.cpp b/src/App/DocumentObjectPyImp.cpp
index 21854f7c50..8c5d6d5628 100644
--- a/src/App/DocumentObjectPyImp.cpp
+++ b/src/App/DocumentObjectPyImp.cpp
@@ -24,6 +24,7 @@
#include
#include
+#include
#include "DocumentObject.h"
#include "Document.h"
@@ -432,12 +433,13 @@ PyObject* DocumentObjectPy::getSubObject(PyObject *args, PyObject *keywds)
PyObject *doTransform = Py_True;
short depth = 0;
- static char *kwlist[] = {"subname", "retType", "matrix", "transform", "depth", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, keywds, "O|hO!O!h", kwlist,
- &obj, &retType, &Base::MatrixPy::Type, &pyMat, &PyBool_Type, &doTransform, &depth))
+ static const std::array kwlist {"subname", "retType", "matrix", "transform", "depth", nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, keywds, "O|hO!O!h", kwlist, &obj, &retType, &Base::MatrixPy::Type,
+ &pyMat, &PyBool_Type, &doTransform, &depth)) {
return nullptr;
+ }
- if (retType < 0 || retType > 6) {
+ if (retType < 0 || static_cast (retType) > kwlist.size()) {
PyErr_SetString(PyExc_ValueError, "invalid retType, can only be integer 0~6");
return nullptr;
}
@@ -576,10 +578,11 @@ PyObject* DocumentObjectPy::getLinkedObject(PyObject *args, PyObject *keywds)
PyObject *pyMat = Py_None;
PyObject *transform = Py_True;
short depth = 0;
- static char *kwlist[] = {"recursive","matrix","transform","depth", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, keywds, "|O!OO!h", kwlist,
- &PyBool_Type,&recursive,&pyMat,&PyBool_Type,&transform,&depth))
+ static const std::array kwlist {"recursive","matrix","transform","depth", nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, keywds, "|O!OO!h", kwlist,
+ &PyBool_Type, &recursive, &pyMat, &PyBool_Type, &transform, &depth)) {
return nullptr;
+ }
PY_TRY {
Base::PyTypeCheck(&pyMat, &Base::MatrixPy::Type, "expect argument 'matrix' to be of type Base.Matrix");
diff --git a/src/App/DocumentPyImp.cpp b/src/App/DocumentPyImp.cpp
index 359833017c..3f07e7455e 100644
--- a/src/App/DocumentPyImp.cpp
+++ b/src/App/DocumentPyImp.cpp
@@ -36,6 +36,7 @@
#include "DocumentPy.h"
#include "DocumentPy.cpp"
#include
+#include
using namespace App;
@@ -254,14 +255,16 @@ PyObject* DocumentPy::exportGraphviz(PyObject * args)
PyObject* DocumentPy::addObject(PyObject *args, PyObject *kwd)
{
- char *sType,*sName=nullptr,*sViewType=nullptr;
- PyObject* obj=nullptr;
- PyObject* view=nullptr;
- PyObject *attach=Py_False;
- static char *kwlist[] = {"type","name","objProxy","viewProxy","attach","viewType",nullptr};
- if (!PyArg_ParseTupleAndKeywords(args,kwd,"s|sOOO!s",
- kwlist, &sType,&sName,&obj,&view,&PyBool_Type,&attach,&sViewType))
+ char *sType, *sName = nullptr, *sViewType = nullptr;
+ PyObject *obj = nullptr;
+ PyObject *view = nullptr;
+ PyObject *attach = Py_False;
+ static const std::array kwlist{"type", "name", "objProxy", "viewProxy", "attach", "viewType",
+ nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwd, "s|sOOO!s",
+ kwlist, &sType, &sName, &obj, &view, &PyBool_Type, &attach, &sViewType)) {
return nullptr;
+ }
DocumentObject *pcFtr = nullptr;
@@ -658,10 +661,10 @@ PyObject* DocumentPy::getObjectsByLabel(PyObject *args)
PyObject* DocumentPy::findObjects(PyObject *args, PyObject *kwds)
{
const char *sType = "App::DocumentObject", *sName = nullptr, *sLabel = nullptr;
- static char *kwlist[] = {"Type", "Name", "Label", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|sss",
- kwlist, &sType, &sName, &sLabel))
+ static const std::array kwlist{"Type", "Name", "Label", nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwds, "|sss", kwlist, &sType, &sName, &sLabel)) {
return nullptr;
+ }
Base::Type type = Base::Type::getTypeIfDerivedFrom(sType, App::DocumentObject::getClassTypeId(), true);
if (type.isBad()) {
diff --git a/src/App/MaterialPyImp.cpp b/src/App/MaterialPyImp.cpp
index e758cdac83..1cff45cd24 100644
--- a/src/App/MaterialPyImp.cpp
+++ b/src/App/MaterialPyImp.cpp
@@ -26,6 +26,7 @@
// inclusion of the generated files (generated out of MaterialPy.xml)
#include "MaterialPy.h"
#include "MaterialPy.cpp"
+#include
using namespace App;
@@ -44,11 +45,13 @@ int MaterialPy::PyInit(PyObject* args, PyObject* kwds)
PyObject* emissive = nullptr;
PyObject* shininess = nullptr;
PyObject* transparency = nullptr;
- static char* kwds_colors[] = { "DiffuseColor", "AmbientColor", "SpecularColor", "EmissiveColor", "Shininess", "Transparency", nullptr };
+ static const std::array kwds_colors{"DiffuseColor", "AmbientColor", "SpecularColor",
+ "EmissiveColor", "Shininess", "Transparency", nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOOOO", kwds_colors,
- &diffuse, &ambient, &specular, &emissive, &shininess, &transparency))
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwds, "|OOOOOO", kwds_colors,
+ &diffuse, &ambient, &specular, &emissive, &shininess, &transparency)) {
return -1;
+ }
if (diffuse) {
setDiffuseColor(Py::Tuple(diffuse));
diff --git a/src/App/PropertyContainerPyImp.cpp b/src/App/PropertyContainerPyImp.cpp
index 41ce05a2e3..657ca5b72a 100644
--- a/src/App/PropertyContainerPyImp.cpp
+++ b/src/App/PropertyContainerPyImp.cpp
@@ -30,6 +30,7 @@
#include "PropertyContainer.h"
#include "Property.h"
#include "DocumentObject.h"
+#include
#include
#include
@@ -466,10 +467,11 @@ PyObject* PropertyContainerPy::dumpPropertyContent(PyObject *args, PyObject *kwd
{
int compression = 3;
const char* property;
- static char* kwds_def[] = {"Property", "Compression", nullptr};
+ static const std::array kwds_def {"Property", "Compression", nullptr};
PyErr_Clear();
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|i", kwds_def, &property, &compression))
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwds, "s|i", kwds_def, &property, &compression)) {
return nullptr;
+ }
Property* prop = getPropertyContainerPtr()->getPropertyByName(property);
if (!prop) {
diff --git a/src/App/StringHasherPyImp.cpp b/src/App/StringHasherPyImp.cpp
index 1a2b21a6de..cae36bce9f 100644
--- a/src/App/StringHasherPyImp.cpp
+++ b/src/App/StringHasherPyImp.cpp
@@ -26,6 +26,7 @@
#include "StringHasherPy.h"
#include "StringHasherPy.cpp"
+#include
using namespace App;
@@ -45,8 +46,8 @@ PyObject *StringHasherPy::PyMake(struct _typeobject *, PyObject *, PyObject *)
// constructor method
int StringHasherPy::PyInit(PyObject* args, PyObject* kwds)
{
- char* kw[] = {nullptr};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "", kw)) {
+ static const std::array kwlist {nullptr};
+ if (!Base::Wrapped_ParseTupleAndKeywords(args, kwds, "", kwlist)) {
return -1;
}