diff --git a/src/App/MetadataPy.xml b/src/App/MetadataPy.xml
index 081b16ed54..2b612d2dae 100644
--- a/src/App/MetadataPy.xml
+++ b/src/App/MetadataPy.xml
@@ -47,43 +47,43 @@ bytes : bytes
String representing the name of this item.
-
+
String representing the version of this item in semantic triplet format.
-
+
String representing the date of this item in YYYY-MM-DD format (format not currently programmatically enforced)
-
+
String representing the type of this item (text only, no markup allowed).
-
+
String representing the description of this item (text only, no markup allowed).
-
+
List of maintainer objects with 'name' and 'email' string attributes.
-
+
List of applicable licenses as objects with 'name' and 'file' string attributes.
-
+
@@ -95,14 +95,14 @@ is one of:
* readme
* documentation
-
+
List of author objects, each with a 'name' and a (potentially empty) 'email'
string attribute.
-
+
@@ -128,53 +128,53 @@ string attribute.
* condition
Optional. Conditional expression as documented in REP149.
-
+
List of conflicts, format identical to dependencies.
-
+
List of things this item is considered by its author to replace. The format is
identical to dependencies.
-
+
List of strings.
-
+
Relative path to an icon file.
-
+
String representing the name of the main Python class this item
creates/represents.
-
+
String representing the name of the subdirectory this content item is located in.
If empty, the item is in a directory named the same as the content item.
-
+
List of files associated with this item.
The meaning of each file is implementation-defined.
-
+
@@ -182,7 +182,7 @@ The meaning of each file is implementation-defined.
a Metadata object.
See package.xml file format documentation for details.
-
+
@@ -190,7 +190,7 @@ See package.xml file format documentation for details.
String representing the minimum version of FreeCAD needed for this item.
If unset it will be 0.0.0.
-
+
@@ -198,7 +198,7 @@ If unset it will be 0.0.0.
String representing the maximum version of FreeCAD needed for this item.
If unset it will be 0.0.0.
-
+
@@ -206,7 +206,7 @@ If unset it will be 0.0.0.
String representing the minimum version of Python needed for this item.
If unset it will be 0.0.0.
-
+
@@ -432,12 +432,11 @@ Write the metadata to the given file as XML data.
-
- public:
- MetadataPy(const Metadata & pla, PyTypeObject *T = &Type)
- :PyObjectBase(new Metadata(pla),T){}
- Metadata value() const
- { return *(getMetadataPtr()); }
+ public:
+ MetadataPy(const Metadata & pla, PyTypeObject *T = &Type)
+ :PyObjectBase(new Metadata(pla),T){}
+ Metadata value() const
+ { return *(getMetadataPtr()); }
diff --git a/src/App/MetadataPyImp.cpp b/src/App/MetadataPyImp.cpp
index 953f2799dc..1097081c39 100644
--- a/src/App/MetadataPyImp.cpp
+++ b/src/App/MetadataPyImp.cpp
@@ -136,12 +136,12 @@ int MetadataPy::PyInit(PyObject* args, PyObject* /*kwd*/)
return -1;
}
-Py::Object MetadataPy::getName() const
+Py::String MetadataPy::getName() const
{
return Py::String(getMetadataPtr()->name());
}
-void MetadataPy::setName(Py::Object args)
+void MetadataPy::setName(Py::String args)
{
const char* name = nullptr;
if (!PyArg_Parse(args.ptr(), "z", &name)) {
@@ -155,12 +155,12 @@ void MetadataPy::setName(Py::Object args)
}
}
-Py::Object MetadataPy::getVersion() const
+Py::String MetadataPy::getVersion() const
{
return Py::String(getMetadataPtr()->version().str());
}
-void MetadataPy::setVersion(Py::Object args)
+void MetadataPy::setVersion(Py::String args)
{
const char* name = nullptr;
if (!PyArg_Parse(args.ptr(), "z", &name)) {
@@ -174,12 +174,12 @@ void MetadataPy::setVersion(Py::Object args)
}
}
-Py::Object MetadataPy::getDate() const
+Py::String MetadataPy::getDate() const
{
return Py::String(getMetadataPtr()->date());
}
-void MetadataPy::setDate(Py::Object args)
+void MetadataPy::setDate(Py::String args)
{
const char* date = nullptr;
if (!PyArg_Parse(args.ptr(), "z", &date)) {
@@ -193,12 +193,12 @@ void MetadataPy::setDate(Py::Object args)
}
}
-Py::Object MetadataPy::getDescription() const
+Py::String MetadataPy::getDescription() const
{
return Py::String(getMetadataPtr()->description());
}
-void MetadataPy::setDescription(Py::Object args)
+void MetadataPy::setDescription(Py::String args)
{
const char* description = nullptr;
if (!PyArg_Parse(args.ptr(), "s", &description)) {
@@ -207,12 +207,12 @@ void MetadataPy::setDescription(Py::Object args)
getMetadataPtr()->setDescription(description);
}
-Py::Object MetadataPy::getType() const
+Py::String MetadataPy::getType() const
{
return Py::String(getMetadataPtr()->type());
}
-void MetadataPy::setType(Py::Object args)
+void MetadataPy::setType(Py::String args)
{
const char* type = nullptr;
if (!PyArg_Parse(args.ptr(), "s", &type)) {
@@ -221,7 +221,7 @@ void MetadataPy::setType(Py::Object args)
getMetadataPtr()->setType(type);
}
-Py::Object MetadataPy::getMaintainer() const
+Py::List MetadataPy::getMaintainer() const
{
auto maintainers = getMetadataPtr()->maintainer();
Py::List pyMaintainers;
@@ -234,7 +234,7 @@ Py::Object MetadataPy::getMaintainer() const
return pyMaintainers;
}
-void MetadataPy::setMaintainer(Py::Object args)
+void MetadataPy::setMaintainer(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -276,7 +276,7 @@ PyObject* MetadataPy::removeMaintainer(PyObject* args)
}
-Py::Object MetadataPy::getAuthor() const
+Py::List MetadataPy::getAuthor() const
{
auto authors = getMetadataPtr()->author();
Py::List pyAuthors;
@@ -289,7 +289,7 @@ Py::Object MetadataPy::getAuthor() const
return pyAuthors;
}
-void MetadataPy::setAuthor(Py::Object args)
+void MetadataPy::setAuthor(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -330,7 +330,7 @@ PyObject* MetadataPy::removeAuthor(PyObject* args)
return Py_None;
}
-Py::Object MetadataPy::getLicense() const
+Py::List MetadataPy::getLicense() const
{
auto licenses = getMetadataPtr()->license();
Py::List pyLicenses;
@@ -343,7 +343,7 @@ Py::Object MetadataPy::getLicense() const
return pyLicenses;
}
-void MetadataPy::setLicense(Py::Object args)
+void MetadataPy::setLicense(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -384,7 +384,7 @@ PyObject* MetadataPy::removeLicense(PyObject* args)
return Py_None;
}
-Py::Object MetadataPy::getUrls() const
+Py::List MetadataPy::getUrls() const
{
auto urls = getMetadataPtr()->url();
Py::List pyUrls;
@@ -422,7 +422,7 @@ Py::Object MetadataPy::getUrls() const
return pyUrls;
}
-void MetadataPy::setUrls(Py::Object args)
+void MetadataPy::setUrls(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -591,7 +591,7 @@ Meta::Dependency pyObjectToDependency(const Py::Object& d)
return result;
}
-Py::Object MetadataPy::getDepend() const
+Py::List MetadataPy::getDepend() const
{
auto dependencies = getMetadataPtr()->depend();
Py::List pyDependencies;
@@ -601,7 +601,7 @@ Py::Object MetadataPy::getDepend() const
return pyDependencies;
}
-void MetadataPy::setDepend(Py::Object args)
+void MetadataPy::setDepend(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -640,7 +640,7 @@ PyObject* MetadataPy::removeDepend(PyObject* args)
return Py_None;
}
-Py::Object MetadataPy::getConflict() const
+Py::List MetadataPy::getConflict() const
{
auto dependencies = getMetadataPtr()->conflict();
Py::List pyDependencies;
@@ -650,7 +650,7 @@ Py::Object MetadataPy::getConflict() const
return pyDependencies;
}
-void MetadataPy::setConflict(Py::Object args)
+void MetadataPy::setConflict(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -689,7 +689,7 @@ PyObject* MetadataPy::removeConflict(PyObject* args)
return Py_None;
}
-Py::Object MetadataPy::getReplace() const
+Py::List MetadataPy::getReplace() const
{
auto dependencies = getMetadataPtr()->replace();
Py::List pyDependencies;
@@ -699,7 +699,7 @@ Py::Object MetadataPy::getReplace() const
return pyDependencies;
}
-void MetadataPy::setReplace(Py::Object args)
+void MetadataPy::setReplace(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -740,7 +740,7 @@ PyObject* MetadataPy::removeReplace(PyObject* args)
// Tag, icon, classname, file
-Py::Object MetadataPy::getTag() const
+Py::List MetadataPy::getTag() const
{
auto tags = getMetadataPtr()->tag();
Py::List pyTags;
@@ -750,7 +750,7 @@ Py::Object MetadataPy::getTag() const
return pyTags;
}
-void MetadataPy::setTag(Py::Object args)
+void MetadataPy::setTag(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -787,12 +787,12 @@ PyObject* MetadataPy::removeTag(PyObject* args)
return Py_None;
}
-Py::Object MetadataPy::getIcon() const
+Py::String MetadataPy::getIcon() const
{
return Py::String(getMetadataPtr()->icon().string());
}
-void MetadataPy::setIcon(Py::Object args)
+void MetadataPy::setIcon(Py::String args)
{
const char* name;
if (!PyArg_Parse(args.ptr(), "s", &name)) {
@@ -801,12 +801,12 @@ void MetadataPy::setIcon(Py::Object args)
getMetadataPtr()->setIcon(name);
}
-Py::Object MetadataPy::getClassname() const
+Py::String MetadataPy::getClassname() const
{
return Py::String(getMetadataPtr()->classname());
}
-void MetadataPy::setClassname(Py::Object args)
+void MetadataPy::setClassname(Py::String args)
{
const char* name;
if (!PyArg_Parse(args.ptr(), "s", &name)) {
@@ -815,12 +815,12 @@ void MetadataPy::setClassname(Py::Object args)
getMetadataPtr()->setClassname(name);
}
-Py::Object MetadataPy::getSubdirectory() const
+Py::String MetadataPy::getSubdirectory() const
{
return Py::String(getMetadataPtr()->subdirectory().string());
}
-void MetadataPy::setSubdirectory(Py::Object args)
+void MetadataPy::setSubdirectory(Py::String args)
{
const char* name;
if (!PyArg_Parse(args.ptr(), "s", &name)) {
@@ -829,7 +829,7 @@ void MetadataPy::setSubdirectory(Py::Object args)
getMetadataPtr()->setSubdirectory(name);
}
-Py::Object MetadataPy::getFile() const
+Py::List MetadataPy::getFile() const
{
auto files = getMetadataPtr()->file();
Py::List pyFiles;
@@ -839,7 +839,7 @@ Py::Object MetadataPy::getFile() const
return pyFiles;
}
-void MetadataPy::setFile(Py::Object args)
+void MetadataPy::setFile(Py::List args)
{
PyObject* list = nullptr;
if (!PyArg_Parse(args.ptr(), "O!", &PyList_Type, &list)) {
@@ -877,7 +877,7 @@ PyObject* MetadataPy::removeFile(PyObject* args)
}
-Py::Object MetadataPy::getContent() const
+Py::Dict MetadataPy::getContent() const
{
auto content = getMetadataPtr()->content();
std::set keys;
@@ -899,7 +899,7 @@ Py::Object MetadataPy::getContent() const
return pyContent;
}
-void MetadataPy::setContent(Py::Object arg)
+void MetadataPy::setContent(Py::Dict arg)
{
PyObject* obj = nullptr;
if (!PyArg_Parse(arg.ptr(), "O!", &PyList_Type, &obj)) {
@@ -940,12 +940,12 @@ PyObject* MetadataPy::getGenericMetadata(PyObject* args)
return Py::new_reference_to(pyGenericMetadata);
}
-Py::Object MetadataPy::getFreeCADMin() const
+Py::String MetadataPy::getFreeCADMin() const
{
return Py::String(getMetadataPtr()->freecadmin().str());
}
-void MetadataPy::setFreeCADMin(Py::Object args)
+void MetadataPy::setFreeCADMin(Py::String args)
{
char* version = nullptr;
PyObject* p = args.ptr();
@@ -960,12 +960,12 @@ void MetadataPy::setFreeCADMin(Py::Object args)
}
}
-Py::Object MetadataPy::getFreeCADMax() const
+Py::String MetadataPy::getFreeCADMax() const
{
return Py::String(getMetadataPtr()->freecadmax().str());
}
-void MetadataPy::setFreeCADMax(Py::Object args)
+void MetadataPy::setFreeCADMax(Py::String args)
{
char* version = nullptr;
PyObject* p = args.ptr();
@@ -981,12 +981,12 @@ void MetadataPy::setFreeCADMax(Py::Object args)
}
}
-Py::Object MetadataPy::getPythonMin() const
+Py::String MetadataPy::getPythonMin() const
{
return Py::String(getMetadataPtr()->pythonmin().str());
}
-void MetadataPy::setPythonMin(Py::Object args)
+void MetadataPy::setPythonMin(Py::String args)
{
char* version = nullptr;
PyObject* p = args.ptr();