)]}'
{"oslo_config/cfg.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"10eb88c135526c46fcd46f77d320d85be07a17f4","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"            choices_text \u003d \u0027, \u0027.join([self._get_choice_text(choice)"},{"line_number":1282,"context_line":"                                      for choice in self.type.choices])"},{"line_number":1283,"context_line":"            if kwargs[\u0027help\u0027] is None:"},{"line_number":1284,"context_line":"                kwargs[\u0027help\u0027] \u003d (\u0027\u0027)"},{"line_number":1285,"context_line":"            kwargs[\u0027help\u0027] +\u003d (\u0027 Allowed values: %s\\n\u0027 % choices_text)"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_f12b197f","line":1284,"updated":"2017-12-06 23:16:03.000000000","message":"parens aren\u0027t needed here","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93a4fbca68c27eeda55c071390f25d1266a79683","unresolved":false,"context_lines":[{"line_number":1281,"context_line":"            choices_text \u003d \u0027, \u0027.join([self._get_choice_text(choice)"},{"line_number":1282,"context_line":"                                      for choice in self.type.choices])"},{"line_number":1283,"context_line":"            if kwargs[\u0027help\u0027] is None:"},{"line_number":1284,"context_line":"                kwargs[\u0027help\u0027] \u003d (\u0027\u0027)"},{"line_number":1285,"context_line":"            kwargs[\u0027help\u0027] +\u003d (\u0027 Allowed values: %s\\n\u0027 % choices_text)"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        return kwargs"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_74431b43","line":1284,"in_reply_to":"df87a7cf_f12b197f","updated":"2017-12-11 16:09:47.000000000","message":"Done","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"10eb88c135526c46fcd46f77d320d85be07a17f4","unresolved":false,"context_lines":[{"line_number":1282,"context_line":"                                      for choice in self.type.choices])"},{"line_number":1283,"context_line":"            if kwargs[\u0027help\u0027] is None:"},{"line_number":1284,"context_line":"                kwargs[\u0027help\u0027] \u003d (\u0027\u0027)"},{"line_number":1285,"context_line":"            kwargs[\u0027help\u0027] +\u003d (\u0027 Allowed values: %s\\n\u0027 % choices_text)"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        return kwargs"},{"line_number":1288,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_313181ed","line":1285,"updated":"2017-12-06 23:16:03.000000000","message":"Maybe make sure the existing help ends in a newline before appending the rest of the text?","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93a4fbca68c27eeda55c071390f25d1266a79683","unresolved":false,"context_lines":[{"line_number":1282,"context_line":"                                      for choice in self.type.choices])"},{"line_number":1283,"context_line":"            if kwargs[\u0027help\u0027] is None:"},{"line_number":1284,"context_line":"                kwargs[\u0027help\u0027] \u003d (\u0027\u0027)"},{"line_number":1285,"context_line":"            kwargs[\u0027help\u0027] +\u003d (\u0027 Allowed values: %s\\n\u0027 % choices_text)"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        return kwargs"},{"line_number":1288,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_d458e731","line":1285,"in_reply_to":"df87a7cf_313181ed","updated":"2017-12-11 16:09:47.000000000","message":"Done","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"}],"oslo_config/sphinxext.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"10eb88c135526c46fcd46f77d320d85be07a17f4","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # We don\u0027t bother outputting this if not using new-style choices with"},{"line_number":169,"context_line":"        # inline descriptions"},{"line_number":170,"context_line":"        if getattr(opt.type, \u0027choices\u0027, None) and not all("},{"line_number":171,"context_line":"                x \u003d\u003d None for x in opt.type.choices.values()):"},{"line_number":172,"context_line":"            yield _indent(\u0027.. rubric:: Possible values\u0027)"},{"line_number":173,"context_line":"            yield \u0027\u0027"},{"line_number":174,"context_line":"            for choice in opt.type.choices:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_114b1d59","line":171,"range":{"start_line":171,"start_character":16,"end_line":171,"end_character":25},"updated":"2017-12-06 23:16:03.000000000","message":"We should compare to None using \"is\" instead of \u003d\u003d.","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93a4fbca68c27eeda55c071390f25d1266a79683","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        # We don\u0027t bother outputting this if not using new-style choices with"},{"line_number":169,"context_line":"        # inline descriptions"},{"line_number":170,"context_line":"        if getattr(opt.type, \u0027choices\u0027, None) and not all("},{"line_number":171,"context_line":"                x \u003d\u003d None for x in opt.type.choices.values()):"},{"line_number":172,"context_line":"            yield _indent(\u0027.. rubric:: Possible values\u0027)"},{"line_number":173,"context_line":"            yield \u0027\u0027"},{"line_number":174,"context_line":"            for choice in opt.type.choices:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_147c0f81","line":171,"range":{"start_line":171,"start_character":16,"end_line":171,"end_character":25},"in_reply_to":"df87a7cf_114b1d59","updated":"2017-12-11 16:09:47.000000000","message":"Done","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"}],"oslo_config/types.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"10eb88c135526c46fcd46f77d320d85be07a17f4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            if not all(isinstance(choice, tuple) for choice in choices):"},{"line_number":119,"context_line":"                choices \u003d [(choice, None) for choice in choices]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            self.choices \u003d collections.OrderedDict(choices)"},{"line_number":122,"context_line":"        else:"},{"line_number":123,"context_line":"            self.choices \u003d None"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_31b42135","line":121,"updated":"2017-12-06 23:16:03.000000000","message":"This changes the type of what looks like a public attribute of the class. It would be safer to add a new attribute (\"choices_with_help\"?) and leave choices alone as a list of valid values in case some consumer outside of the library is relying on the current type for choices.","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93a4fbca68c27eeda55c071390f25d1266a79683","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            if not all(isinstance(choice, tuple) for choice in choices):"},{"line_number":119,"context_line":"                choices \u003d [(choice, None) for choice in choices]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            self.choices \u003d collections.OrderedDict(choices)"},{"line_number":122,"context_line":"        else:"},{"line_number":123,"context_line":"            self.choices \u003d None"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_94957f89","line":121,"in_reply_to":"df87a7cf_31b42135","updated":"2017-12-11 16:09:47.000000000","message":"I considered that. However, it seemed unnecessary as it was very unlikely that someone would be doing this and we\u0027d have to support this forever. Do we actually want to support these as public APIs?","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5c23dba63eede580616ee4e2551bff374bd128c0","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            if not all(isinstance(choice, tuple) for choice in choices):"},{"line_number":119,"context_line":"                choices \u003d [(choice, None) for choice in choices]"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"            self.choices \u003d collections.OrderedDict(choices)"},{"line_number":122,"context_line":"        else:"},{"line_number":123,"context_line":"            self.choices \u003d None"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_a5972b3a","line":121,"in_reply_to":"df87a7cf_94957f89","updated":"2017-12-11 17:42:31.000000000","message":"I don\u0027t really want to have to support them, but they\u0027re not set up as private (by prefixing the class name or module name with _). A search in codesearch.openstack.org didn\u0027t uncover any obvious uses of the field so it\u0027s probably OK. We could make sure to declare an API break when we release the new version of the library just to be safe.","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"10eb88c135526c46fcd46f77d320d85be07a17f4","unresolved":false,"context_lines":[{"line_number":286,"context_line":"            if not all(isinstance(choice, tuple) for choice in choices):"},{"line_number":287,"context_line":"                choices \u003d [(choice, None) for choice in choices]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"            self.choices \u003d collections.OrderedDict(choices)"},{"line_number":290,"context_line":"        else:"},{"line_number":291,"context_line":"            self.choices \u003d None"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_f1879960","line":289,"updated":"2017-12-06 23:16:03.000000000","message":"Ditto","commit_id":"228dff9c54f5c383a32606f1fa346f6f4f0c55ee"}]}
