)]}'
{"keystone/notifications.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"8fe052febbd735ce6b62fb51a7b2a837fc78f469","unresolved":false,"context_lines":[{"line_number":253,"context_line":"    \"\"\""},{"line_number":254,"context_line":"    module_name \u003d getattr(callback, \u0027__module__\u0027, None)"},{"line_number":255,"context_line":"    func_name \u003d callback.__name__"},{"line_number":256,"context_line":"    if inspect.ismethod(callback):"},{"line_number":257,"context_line":"        class_name \u003d reflection.get_class_name(callback.__self__,"},{"line_number":258,"context_line":"                                               fully_qualified\u003dFalse)"},{"line_number":259,"context_line":"        return [module_name, class_name, func_name]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_f364f1e5","side":"PARENT","line":256,"updated":"2015-11-18 07:37:19.000000000","message":"this is  right ,  see https://docs.python.org/2/library/inspect.html#inspect.ismethod\n\nReturn true if the object is a bound method written in Python.","commit_id":"716850a6522496db8a8736113ebb478ad114f1e6"}]}
