def _get_converter(self, converter_str):
ret = None<EOL>if converter_str is not None:<EOL><INDENT>converter_desc_list = converter_str.split('<STR_LIT:.>')<EOL>if len(converter_desc_list) == <NUM_LIT:1>:<EOL><INDENT>converter = converter_desc_list[<NUM_LIT:0>]<EOL>ret = getattr(cvt, converter, None)<EOL>if ret is None:<EOL><INDENT>ret = self.get_converter(converter)<EOL><DEDENT>if ret is None:<EOL><INDENT>ret = self.get_resource_clz_by_name(converter)<EOL><DEDENT>if ret is None:<EOL><INDENT>ret = self.get_enum_by_name(converter)<EOL><DEDENT>if ret is None:<EOL><INDENT>ret = self.get(converter)<EOL><DEDENT><DEDENT>if ret is None and converter_str is not None:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>'.format(<EOL>converter_str))<EOL><DEDENT><DEDENT>return ret<EOL>
find converter function reference by name

        find converter by name, converter name follows this convention:

            Class.method

        or:

            method

        The first type of converter class/function must be available in
        current module.
        The second type of converter must be available in `__builtin__`
        (or `builtins` in python3) module.

        :param converter_str: string representation of the converter func
        :return: function reference