)]}'
{"keystoneauth1/discover.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5ac4022e5dad6090dc03bc55af8d58ca7ca49bec","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    url \u003d urllib.parse.urlparse(url)"},{"line_number":384,"context_line":"    for part in reversed(url.path.split(\u0027/\u0027)):"},{"line_number":385,"context_line":"        try:"},{"line_number":386,"context_line":"            return normalize_version_number(part)"},{"line_number":387,"context_line":"        except Exception:"},{"line_number":388,"context_line":"            pass"},{"line_number":389,"context_line":"    return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_8f773103","line":386,"range":{"start_line":386,"start_character":19,"end_line":386,"end_character":49},"updated":"2017-07-25 19:23:12.000000000","message":"this will return min_version,max_version\nwhere each of those are a tuple","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"71575e4f6b6aca171b385a8519ca23dcc4a52037","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    url \u003d urllib.parse.urlparse(url)"},{"line_number":384,"context_line":"    for part in reversed(url.path.split(\u0027/\u0027)):"},{"line_number":385,"context_line":"        try:"},{"line_number":386,"context_line":"            return normalize_version_number(part)"},{"line_number":387,"context_line":"        except Exception:"},{"line_number":388,"context_line":"            pass"},{"line_number":389,"context_line":"    return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_4f4dc998","line":386,"range":{"start_line":386,"start_character":19,"end_line":386,"end_character":49},"in_reply_to":"ff346bd7_8f773103","updated":"2017-07-25 19:29:26.000000000","message":"Nope - this should just be a single type.\n\nSo if there is a URL - https://example.com/identity/v3\n\nThis function will return:\n\n(3, 0)\n\n(you\u0027re thinking of _normalize_version_args which returns a min and a max tuple)","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"71f6cb9c1bf66ce2e3cb106e825fa0f6e11238c2","unresolved":false,"context_lines":[{"line_number":383,"context_line":"    url \u003d urllib.parse.urlparse(url)"},{"line_number":384,"context_line":"    for part in reversed(url.path.split(\u0027/\u0027)):"},{"line_number":385,"context_line":"        try:"},{"line_number":386,"context_line":"            return normalize_version_number(part)"},{"line_number":387,"context_line":"        except Exception:"},{"line_number":388,"context_line":"            pass"},{"line_number":389,"context_line":"    return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_afad5532","line":386,"range":{"start_line":386,"start_character":19,"end_line":386,"end_character":49},"in_reply_to":"ff346bd7_8f773103","updated":"2017-07-25 19:26:39.000000000","message":"no, I confused this with _normalize_version_args","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"de4d2923f6f617c80522b812f8982ec2bb0154b3","unresolved":false,"context_lines":[{"line_number":384,"context_line":"    for part in reversed(url.path.split(\u0027/\u0027)):"},{"line_number":385,"context_line":"        try:"},{"line_number":386,"context_line":"            return normalize_version_number(part)"},{"line_number":387,"context_line":"        except Exception:"},{"line_number":388,"context_line":"            pass"},{"line_number":389,"context_line":"    return None"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_9f052ec5","line":387,"range":{"start_line":387,"start_character":15,"end_line":387,"end_character":24},"updated":"2017-07-25 14:24:36.000000000","message":"is it safe to pass *any* exception?","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f28a895ed0ed62abe0921f3e6c6974e916e6205c","unresolved":false,"context_lines":[{"line_number":384,"context_line":"    for part in reversed(url.path.split(\u0027/\u0027)):"},{"line_number":385,"context_line":"        try:"},{"line_number":386,"context_line":"            return normalize_version_number(part)"},{"line_number":387,"context_line":"        except Exception:"},{"line_number":388,"context_line":"            pass"},{"line_number":389,"context_line":"    return None"},{"line_number":390,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_89c73413","line":387,"range":{"start_line":387,"start_character":15,"end_line":387,"end_character":24},"in_reply_to":"ff346bd7_9f052ec5","updated":"2017-07-25 16:54:08.000000000","message":"Certainly should be \"safe\".  Is it necessary?  Probably not.  As the code stands today, I think this could only be TypeError or ValueError.  But if normalize_version_number has a bug, or changes in the future to raise more exceptions, or whatever, IMO the lesser evil is having this broad trap and returning no version number rather than having this low-level method raise.","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5ac4022e5dad6090dc03bc55af8d58ca7ca49bec","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self._catalog_matches_exactly \u003d False"},{"line_number":710,"context_line":"        self._disc \u003d None"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.api_version \u003d api_version or _version_from_url(self.url)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def __copy__(self):"},{"line_number":715,"context_line":"        \"\"\"Return a new EndpointData based on this one.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_2f660553","line":712,"range":{"start_line":712,"start_character":42,"end_line":712,"end_character":69},"updated":"2017-07-25 19:23:12.000000000","message":"so this will be a tuple of versions (tuples), as per comment in L386, while api_version (in this statement) would be a tuple with a version?\n\nI mean, the type of self.api_version can vary?","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"bd67301d59ae917fa478e11bfd6a8fbba3173f81","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self._catalog_matches_exactly \u003d False"},{"line_number":710,"context_line":"        self._disc \u003d None"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.api_version \u003d api_version or _version_from_url(self.url)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def __copy__(self):"},{"line_number":715,"context_line":"        \"\"\"Return a new EndpointData based on this one.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_2ff4c55a","line":712,"range":{"start_line":712,"start_character":42,"end_line":712,"end_character":69},"in_reply_to":"ff346bd7_2f660553","updated":"2017-07-25 19:24:07.000000000","message":"vary between tuple and tuple of tuples","commit_id":"5268d00218282ada986c0f15cf7508913014de19"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"71575e4f6b6aca171b385a8519ca23dcc4a52037","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self._catalog_matches_exactly \u003d False"},{"line_number":710,"context_line":"        self._disc \u003d None"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"        self.api_version \u003d api_version or _version_from_url(self.url)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def __copy__(self):"},{"line_number":715,"context_line":"        \"\"\"Return a new EndpointData based on this one.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ff346bd7_ef491d8b","line":712,"range":{"start_line":712,"start_character":42,"end_line":712,"end_character":69},"in_reply_to":"ff346bd7_2ff4c55a","updated":"2017-07-25 19:29:26.000000000","message":"It should always be a single tuple - or None","commit_id":"5268d00218282ada986c0f15cf7508913014de19"}],"keystoneauth1/tests/unit/identity/test_identity_common.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"79dd3d77fbcbf37f92fed108a4e36f8b85dba7b8","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"        self.assertEqual("},{"line_number":528,"context_line":"            self.TEST_VOLUME.versions[\u0027v3\u0027].service.admin, data.url)"},{"line_number":529,"context_line":"        # There\u0027s no version in the URL and no document - we have no idea"},{"line_number":530,"context_line":"        self.assertEqual((3, 0), data.api_version)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def test_endpoint_no_version(self):"},{"line_number":533,"context_line":"        a \u003d self.create_auth_plugin()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_a9458a19","line":530,"range":{"start_line":529,"start_character":0,"end_line":530,"end_character":50},"updated":"2017-07-24 13:40:32.000000000","message":"Comment doesn\u0027t match assertion.","commit_id":"209d5e94997a07b08367e3921316af7ae1620349"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8115709dea7f7c87823586fddeae96aff6fef59a","unresolved":false,"context_lines":[{"line_number":526,"context_line":""},{"line_number":527,"context_line":"        self.assertEqual("},{"line_number":528,"context_line":"            self.TEST_VOLUME.versions[\u0027v3\u0027].service.admin, data.url)"},{"line_number":529,"context_line":"        # There\u0027s no version in the URL and no document - we have no idea"},{"line_number":530,"context_line":"        self.assertEqual((3, 0), data.api_version)"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    def test_endpoint_no_version(self):"},{"line_number":533,"context_line":"        a \u003d self.create_auth_plugin()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_3cf0ac67","line":530,"range":{"start_line":529,"start_character":0,"end_line":530,"end_character":50},"in_reply_to":"ff346bd7_a9458a19","updated":"2017-07-24 21:37:11.000000000","message":"Done","commit_id":"209d5e94997a07b08367e3921316af7ae1620349"}],"keystoneauth1/tests/unit/test_discovery.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"79dd3d77fbcbf37f92fed108a4e36f8b85dba7b8","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # version \u003d\u003e max_microversion"},{"line_number":525,"context_line":"        test_ok({\u0027version\u0027: \u00272.2\u0027},"},{"line_number":526,"context_line":"                {\u0027version\u0027: (2, 2),"},{"line_number":527,"context_line":"                 \u0027min_microversion\u0027: None, \u0027max_microversion\u0027: (2, 2),"},{"line_number":528,"context_line":"                 \u0027next_min_version\u0027: None, \u0027not_before\u0027: None})"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_299bda72","line":526,"updated":"2017-07-24 13:40:32.000000000","message":"These deltas are unnecessary.  This field is already accounted for on L503.\n\n(Confirmed locally)","commit_id":"209d5e94997a07b08367e3921316af7ae1620349"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8115709dea7f7c87823586fddeae96aff6fef59a","unresolved":false,"context_lines":[{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # version \u003d\u003e max_microversion"},{"line_number":525,"context_line":"        test_ok({\u0027version\u0027: \u00272.2\u0027},"},{"line_number":526,"context_line":"                {\u0027version\u0027: (2, 2),"},{"line_number":527,"context_line":"                 \u0027min_microversion\u0027: None, \u0027max_microversion\u0027: (2, 2),"},{"line_number":528,"context_line":"                 \u0027next_min_version\u0027: None, \u0027not_before\u0027: None})"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff346bd7_1cf5e857","line":526,"in_reply_to":"ff346bd7_299bda72","updated":"2017-07-24 21:37:11.000000000","message":"Done","commit_id":"209d5e94997a07b08367e3921316af7ae1620349"}]}
