)]}'
{"oslo_config/generator.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e94c0cc2ad11ea9487cac37d68b86c6104eb80b5","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \u0027# This option is deprecated for removal.\\n\u0027"},{"line_number":150,"context_line":"                \u0027# Its value may be silently ignored in the future.\\n\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        defaults \u003d opt.type.format_defaults(opt.default, opt.sample_default)"},{"line_number":153,"context_line":"        for default_str in defaults:"},{"line_number":154,"context_line":"            if default_str:"},{"line_number":155,"context_line":"                default_str \u003d \u0027 \u0027 + default_str"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_335debe9","line":152,"updated":"2015-11-16 22:03:08.000000000","message":"Why not pass (opt.sample_default or opt.default) and have format_defaults() only need one argument?","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"4e15497dc465977073e27f57e58ea538d8d7caa9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \u0027# This option is deprecated for removal.\\n\u0027"},{"line_number":150,"context_line":"                \u0027# Its value may be silently ignored in the future.\\n\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        defaults \u003d opt.type.format_defaults(opt.default, opt.sample_default)"},{"line_number":153,"context_line":"        for default_str in defaults:"},{"line_number":154,"context_line":"            if default_str:"},{"line_number":155,"context_line":"                default_str \u003d \u0027 \u0027 + default_str"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_b4967d4a","line":152,"in_reply_to":"ba8a016a_335debe9","updated":"2015-11-17 16:04:59.000000000","message":"There is a bug in my code. The sample default should not get formatted by the formatter. If there is a sample default then it should be returned as is, if there is just a default that needs to pass through the formatter.","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9f42d372d489a1ddfc39c4f2a2473232406a9d4d","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \u0027# This option is deprecated for removal.\\n\u0027"},{"line_number":150,"context_line":"                \u0027# Its value may be silently ignored in the future.\\n\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        defaults \u003d opt.type.format_defaults(opt.default, opt.sample_default)"},{"line_number":153,"context_line":"        for default_str in defaults:"},{"line_number":154,"context_line":"            if default_str:"},{"line_number":155,"context_line":"                default_str \u003d \u0027 \u0027 + default_str"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_ed65d0b4","line":152,"in_reply_to":"ba8a016a_b4967d4a","updated":"2015-11-18 17:49:39.000000000","message":"The logic of figuring that out could still be done here, instead of in every type class\u0027 format_default() method.","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"feebfad6ed502db8a05e65cab32e36b9a9ba1d45","unresolved":false,"context_lines":[{"line_number":149,"context_line":"                \u0027# This option is deprecated for removal.\\n\u0027"},{"line_number":150,"context_line":"                \u0027# Its value may be silently ignored in the future.\\n\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        defaults \u003d opt.type.format_defaults(opt.default, opt.sample_default)"},{"line_number":153,"context_line":"        for default_str in defaults:"},{"line_number":154,"context_line":"            if default_str:"},{"line_number":155,"context_line":"                default_str \u003d \u0027 \u0027 + default_str"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_2dc4385d","line":152,"in_reply_to":"ba8a016a_ed65d0b4","updated":"2015-11-18 17:55:18.000000000","message":"Never mind, looking again I see that format_defaults() only has one implementation.","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"}],"oslo_config/types.py":[{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"92982b7b327708f236e3a40f3f46729044a7b081","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        elif default is None:"},{"line_number":44,"context_line":"            default_str \u003d self.NONE_DEFAULT"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            default_str \u003d self.formatter(default)"},{"line_number":47,"context_line":"        return [default_str]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def quote_trailing_space(self, str_val):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a29b11f_1d4a5756","line":46,"updated":"2015-10-23 14:31:55.000000000","message":"_formatter","commit_id":"6cd0e719e5855a38ab27e0fe60a8b458ac055918"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"92982b7b327708f236e3a40f3f46729044a7b081","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            (self.regex \u003d\u003d other.regex)"},{"line_number":149,"context_line":"        )"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def formatter(self, value):"},{"line_number":152,"context_line":"        return self.quote_trailing_space(value)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a29b11f_3d47134d","line":151,"updated":"2015-10-23 14:31:55.000000000","message":"_formatter same for rest.","commit_id":"6cd0e719e5855a38ab27e0fe60a8b458ac055918"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"460072318b551d56debe75db058b2c73e4038a8c","unresolved":false,"context_lines":[{"line_number":265,"context_line":"            (self.max \u003d\u003d other.max)"},{"line_number":266,"context_line":"        )"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def _formatter(self, value):"},{"line_number":269,"context_line":"        return str(value)"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_71e281d7","line":268,"updated":"2015-10-27 23:37:36.000000000","message":"@staticmethod","commit_id":"65c4052ef8b63544c8caeb805774faaaf089b0b2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"460072318b551d56debe75db058b2c73e4038a8c","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    def __eq__(self, other):"},{"line_number":289,"context_line":"        return self.__class__ \u003d\u003d other.__class__"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"    def _formatter(self, value):"},{"line_number":292,"context_line":"        return str(value)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_11e78de5","line":291,"updated":"2015-10-27 23:37:36.000000000","message":"@staticmethod","commit_id":"65c4052ef8b63544c8caeb805774faaaf089b0b2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"460072318b551d56debe75db058b2c73e4038a8c","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            (self.item_type \u003d\u003d other.item_type)"},{"line_number":368,"context_line":"        )"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _formatter(self, value):"},{"line_number":371,"context_line":"        return \u0027,\u0027.join(value)"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_31ec09c7","line":370,"updated":"2015-10-27 23:37:36.000000000","message":"@staticmethod","commit_id":"65c4052ef8b63544c8caeb805774faaaf089b0b2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"460072318b551d56debe75db058b2c73e4038a8c","unresolved":false,"context_lines":[{"line_number":460,"context_line":"            (self.value_type \u003d\u003d other.value_type)"},{"line_number":461,"context_line":"        )"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    def _formatter(self, value):"},{"line_number":464,"context_line":"        sorted_items \u003d sorted(value.items(),"},{"line_number":465,"context_line":"                              key\u003doperator.itemgetter(0))"},{"line_number":466,"context_line":"        return \u0027,\u0027.join([\u0027%s:%s\u0027 % i for i in sorted_items])"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_d1d115fd","line":463,"updated":"2015-10-27 23:37:36.000000000","message":"@staticmethod","commit_id":"65c4052ef8b63544c8caeb805774faaaf089b0b2"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"460072318b551d56debe75db058b2c73e4038a8c","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                netaddr.valid_ipv6(address, netaddr.core.INET_PTON)):"},{"line_number":518,"context_line":"            raise ValueError(\"%s is not IPv4 or IPv6 address\" % address)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def _formatter(self, value):"},{"line_number":521,"context_line":"        return value"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_f1ce9159","line":520,"updated":"2015-10-27 23:37:36.000000000","message":"@staticmethod","commit_id":"65c4052ef8b63544c8caeb805774faaaf089b0b2"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"4e15497dc465977073e27f57e58ea538d8d7caa9","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        \"\"\""},{"line_number":37,"context_line":"        if sample_default is not None:"},{"line_number":38,"context_line":"            default_str \u003d self._formatter(sample_default)"},{"line_number":39,"context_line":"        elif default is None:"},{"line_number":40,"context_line":"            default_str \u003d self.NONE_DEFAULT"},{"line_number":41,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d4c6a148","line":38,"updated":"2015-11-17 16:04:59.000000000","message":"sample default shouldn\u0027t get formatted.","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e94c0cc2ad11ea9487cac37d68b86c6104eb80b5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return [default_str]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def quote_trailing_space(self, str_val):"},{"line_number":46,"context_line":"        if str_val.strip() !\u003d str_val:"},{"line_number":47,"context_line":"            return \u0027\"%s\"\u0027 % str_val"},{"line_number":48,"context_line":"        return str_val"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_73bff3d0","line":46,"updated":"2015-11-16 22:03:08.000000000","message":"The name of the method is quote_trailing_space() but strip() removes prefix and suffix whitespace. Could you add a docstring clarifying what this function is meant to do and maybe think about a new name for it that is clearer?","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"4e15497dc465977073e27f57e58ea538d8d7caa9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return [default_str]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def quote_trailing_space(self, str_val):"},{"line_number":46,"context_line":"        if str_val.strip() !\u003d str_val:"},{"line_number":47,"context_line":"            return \u0027\"%s\"\u0027 % str_val"},{"line_number":48,"context_line":"        return str_val"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_d46ea195","line":46,"in_reply_to":"ba8a016a_73bff3d0","updated":"2015-11-17 16:04:59.000000000","message":"It is non-obvious logic in the method and a docstring would help but it is named correctly. \n\nIt checks if the stripped string is equal to the non-stripped string, if they are not equal then quote the string, hence quote if there is trailing space.","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"83e992dee22c58ddba05355a4338b8773065e0fb","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return [default_str]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def quote_trailing_space(self, str_val):"},{"line_number":46,"context_line":"        if str_val.strip() !\u003d str_val:"},{"line_number":47,"context_line":"            return \u0027\"%s\"\u0027 % str_val"},{"line_number":48,"context_line":"        return str_val"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_6b752cf8","line":46,"in_reply_to":"ba8a016a_ade028fb","updated":"2015-11-19 09:26:35.000000000","message":"I see your point, trailing !\u003d leading :)","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"feebfad6ed502db8a05e65cab32e36b9a9ba1d45","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return [default_str]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def quote_trailing_space(self, str_val):"},{"line_number":46,"context_line":"        if str_val.strip() !\u003d str_val:"},{"line_number":47,"context_line":"            return \u0027\"%s\"\u0027 % str_val"},{"line_number":48,"context_line":"        return str_val"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_ade028fb","line":46,"in_reply_to":"ba8a016a_d46ea195","updated":"2015-11-18 17:55:18.000000000","message":"My point was more that the function doesn\u0027t do what it\u0027s name says. It will also quote a string with preceding but no trailing space. If you want to only look for trailing spaces, use rstrip() instead of strip().","commit_id":"9eec021a55eb260186934dfa2991b639c4887bc2"}]}
