I have a working application of labels to a point array - but the size of the text is not relative to the map scale.  This decreases the readability of labels when panning and zooming.

To resolve~

How would one implement a text-size based (ex: *'textSize = 7'* below in code) on MapUnits?

        field = str(csvGridFieldNames[index])
        csvGrid = ftools_utils.getMapLayerByName(unicode('mfLayer1_Grid'))#str(activeLayer)))
        textSize = 7
        valLabel = QgsPalLayerSettings()
        valLabel.readFromLayer(csvGrid)
        valLabel.enabled = True
        valLabel.fieldName = field
        valLabel.placement= QgsPalLayerSettings.OverPoint
        valLabel.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'%f' %(textSize),'')
        valLabel.writeToLayer(csvGrid)
        iface.legendInterface().refreshLayerSymbology(csvGrid)
        iface.mapCanvas().refresh()

Ergo, I'm lead to believe changes are nessecary in this statement:

        valLabel.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'%f' %(textSize),'')


This documentation looks to be along the right path - but implementing it properly?

[QgsPalLayerSettings Class Reference][1]

...and FWIW:
A screen shot of the Qgis tool, with the two (needed) PyQgis settable parameters highlighted in green:
![lable settings][2]


  [1]: http://qgis.org/api/classQgsPalLayerSettings.html#a6a79cd114865439dd9a4668abd927597
  [2]: https://i.sstatic.net/xjUyy.png