'Return font metrics.
For best performance, create a dummy widget
using this font before calling this method.'

def metrics(self, *options, **kw):

    args = ()
    displayof = kw.pop('displayof', None)
    if displayof:
        args = ('-displayof', displayof)
    if options:
        args = (args + self._get(options))
        return int(self._call('font', 'metrics', self.name, *args))
    else:
        res = self._split(self._call('font', 'metrics', self.name, *args))
        options = {}
        for i in range(0, len(res), 2):
            options[res[i][1:]] = int(res[(i + 1)])
        return options
