No existen funciones incorporadas para lograr lo que deseas. Obtén la referencia al objeto QgsLayerMetadata
de esta respuesta ¿Cómo obtener la información de la capa QGIS guardada en formato JSON? y como se indica en el comentario, escribe tus propios metadatos como JSON en un archivo separado.
Alternativamente, puedes escribir la definición de la capa con algo similar a lo siguiente. Contendrá varias informaciones, incluidos los metadatos, en un archivo XML
layer = iface.activeLayer()
# mylayer.qlr está codificado aquí de forma estática pero podría determinarse a partir de "layer.dataProvider().dataSourceUri()"
# ya sea que sea un nombre de archivo o el nombre de la capa "layer.name()" o el id de la capa "layer.id()"
with open('mylayer.qlr', 'w') as f:
f.write(QgsLayerDefinition.exportLayerDefinitionLayers([layer], QgsReadWriteContext()).toString())
1 votos
Intenta exportar como un geopackage
0 votos
Gracias, veo cómo podría funcionar, pero necesito exportar como shapefiles para compartir datos.
1 votos
¿Puedes aclarar qué quieres decir con "metadatos"? ¿La pestaña de información? ¿La pestaña de metadatos? Es posible guardar el archivo QMD con PyQGIS.
1 votos
Lamentablemente, los shapefiles son antiguos y obsoletos por lo que no tienen ningún concepto de metadatos