def _get_name(self, node):

        # fixme: Work out when node can be none here!!!!! I think it is safe
        # to ignore it in terms of working out what is a trait, but it would
        # be nice to know what is going on ;^)
        if node is not None:
            if isinstance(node, STRING_BASE_CLASS):
                name = node

            elif not isinstance(node, ast.AST):
                name = ''

            elif isinstance(node, ast.Name):
                name = node.id

            else:
                names = [self._get_name(child) for child in ast.walk(node) if child is not node]
                name = '.'.join(names)

        else:
            name = ''

        return name

#### EOF ######################################################################
Output from Python code writing to ``sys.stdout`` and ``sys.stderr``
dataset/ETHPy150Open enthought/envisage/envisage/developer/code_browser/assign.py/AssignVisitor._get_name--crossover with--dataset/ETHPy150Open ClusterHQ/flocker/flocker/common/functional/test_script.py/FlockerScriptRunnerTests.test_stdout_stderr