)]}'
{"oslo_config/cfg.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1d1cf960bacb4d6285d425275c2878ac0dc77ff2","unresolved":false,"context_lines":[{"line_number":2819,"context_line":"            # string.Template return only string, then caller convert the"},{"line_number":2820,"context_line":"            # string to the option type, but that doesn\u0027t work for None"},{"line_number":2821,"context_line":"            if ret \u003d\u003d \u0027None\u0027:"},{"line_number":2822,"context_line":"                return None"},{"line_number":2823,"context_line":"            return ret"},{"line_number":2824,"context_line":"        elif isinstance(value, dict):"},{"line_number":2825,"context_line":"            # Substitute template variables in both key and value"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5201f7_a5467f78","line":2822,"updated":"2017-01-06 20:30:15.000000000","message":"This doesn\u0027t address the case where the template contains \"prefix $val suffix\".\n\nWould it be better to treat None as an empty string when the interpolation is done, instead of trying to guess when it\u0027s safe to return None and when we should expand the template?","commit_id":"7dc9ddc89b2e08e56d5bee4bc3fc14ea5e12c656"}],"oslo_config/tests/test_cfg.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"69da9caca877d77896b0647679377a2a9f0629c2","unresolved":false,"context_lines":[{"line_number":3504,"context_line":"        self._do_test_conf_file_bad_value(cfg.FloatOpt)"},{"line_number":3505,"context_line":""},{"line_number":3506,"context_line":"    def test_str_sub_none_value(self):"},{"line_number":3507,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027oo\u0027,))"},{"line_number":3508,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027bar\u0027, default\u003d\u0027$oo\u0027))"},{"line_number":3509,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027barbar\u0027, default\u003d\u0027foo $oo foo\u0027))"},{"line_number":3510,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_d93fc785","line":3507,"range":{"start_line":3507,"start_character":50,"end_line":3507,"end_character":51},"updated":"2017-01-09 10:32:02.000000000","message":"nit: weird comma","commit_id":"da72aa8e4ce797690257f1ae8f3211f7438076f9"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"7c06d3a1d4d609aa794db7391461702102226177","unresolved":false,"context_lines":[{"line_number":3504,"context_line":"        self._do_test_conf_file_bad_value(cfg.FloatOpt)"},{"line_number":3505,"context_line":""},{"line_number":3506,"context_line":"    def test_str_sub_none_value(self):"},{"line_number":3507,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027oo\u0027,))"},{"line_number":3508,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027bar\u0027, default\u003d\u0027$oo\u0027))"},{"line_number":3509,"context_line":"        self.conf.register_cli_opt(cfg.StrOpt(\u0027barbar\u0027, default\u003d\u0027foo $oo foo\u0027))"},{"line_number":3510,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_4ac6974a","line":3507,"range":{"start_line":3507,"start_character":50,"end_line":3507,"end_character":51},"in_reply_to":"ba5201f7_d93fc785","updated":"2017-01-09 11:50:28.000000000","message":"Done","commit_id":"da72aa8e4ce797690257f1ae8f3211f7438076f9"}]}
