'Get the canonical name for a symbol.
This is the default implementation.
If the user specifies a name,
the user-specified name will be used.
When user does not specify a name, we automatically generate a
name based on the hint string.
Parameters
name : str or None
The name specified by the user.
hint : str
A hint string, which can be used to generate name.
Returns
full_name : str
A canonical name for the symbol.'

def get(self, name, hint):

    if name:
        return name
    if (hint not in self._counter):
        self._counter[hint] = 0
    name = ('%s%d' % (hint, self._counter[hint]))
    self._counter[hint] += 1
    return name
