)]}'
{"keystoneauth1/loading/adapter.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1191b78e6b2b04bdfbdcb7212c15819f16137949","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if deprecated_opts is None:"},{"line_number":86,"context_line":"            deprecated_opts \u003d {}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_8f089628","line":88,"updated":"2017-08-08 22:11:44.000000000","message":"Why? Seems like the session loader doesn\u0027t do this?","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7dd0b471b7263edc05a741f2bd16341196f4dbe5","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if deprecated_opts is None:"},{"line_number":86,"context_line":"            deprecated_opts \u003d {}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_6c7b8d27","line":88,"in_reply_to":"9f436f4f_29ea17d7","updated":"2017-08-15 21:33:58.000000000","message":"The key in this dict doesn\u0027t make it to oslo.config - just to the deprecated_opts.get()s in the opts construction below.  But we don\u0027t know whether the dict keys are going to come in with hyphens or underscores, so we have to normalize \u0027em.  (Notice we\u0027re not touching the dict values at all - oslo.config *does* handle those properly.)","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d0cad9d3f6c62f246647ef420c67be92adefeaef","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if deprecated_opts is None:"},{"line_number":86,"context_line":"            deprecated_opts \u003d {}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_af18fad2","line":88,"in_reply_to":"9f436f4f_8f089628","updated":"2017-08-08 22:45:30.000000000","message":"Cause Session doesn\u0027t have any opts with hyphens :(","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0bcdcef8c8efe230b4d01637378f10f8afd3cbf4","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if deprecated_opts is None:"},{"line_number":86,"context_line":"            deprecated_opts \u003d {}"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_29ea17d7","line":88,"in_reply_to":"9f436f4f_af18fad2","updated":"2017-08-15 20:45:27.000000000","message":"Can you say more about this? Does oslo.config\u0027s DeprecatedOpt not handle this properly?","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"0bcdcef8c8efe230b4d01637378f10f8afd3cbf4","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        opts \u003d [cfg.StrOpt(\u0027service-type\u0027,"},{"line_number":93,"context_line":"                           deprecated_opts\u003ddeprecated_opts.get(\u0027service-type\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_c9b02be0","line":90,"updated":"2017-08-15 20:45:27.000000000","message":"This could probably just be one loop, unnested, like\n\ndeprecated_opts \u003d {name.replace(\u0027_\u0027, \u0027-\u0027): opt for name, opt in deprecated_opts.items()}","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7dd0b471b7263edc05a741f2bd16341196f4dbe5","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # This is goofy, but need to support hyphens *or* underscores"},{"line_number":89,"context_line":"        for name in (optname for optname in deprecated_opts if \u0027_\u0027 in optname):"},{"line_number":90,"context_line":"            deprecated_opts[name.replace(\u0027_\u0027, \u0027-\u0027)] \u003d deprecated_opts[name]"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        opts \u003d [cfg.StrOpt(\u0027service-type\u0027,"},{"line_number":93,"context_line":"                           deprecated_opts\u003ddeprecated_opts.get(\u0027service-type\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_ec941d39","line":90,"in_reply_to":"9f436f4f_c9b02be0","updated":"2017-08-15 21:33:58.000000000","message":"Yeah, I like that, will do, thanks.","commit_id":"b1a63d73a7c285353643e3f79b379f6af6e9c4a9"}]}
