)]}'
{"openstack/config/cloud_region.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f7557fdc8a83f493c41681c8d4312af0be3783bd","unresolved":false,"context_lines":[{"line_number":713,"context_line":""},{"line_number":714,"context_line":"    def get_concurrency(self, service_type\u003dNone):"},{"line_number":715,"context_line":"        return self._get_service_config("},{"line_number":716,"context_line":"            \u0027concurrency\u0027, service_type\u003dservice_type)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_2add8b6c","line":716,"updated":"2018-09-28 12:50:33.000000000","message":"very nit: I\u0027d prefer this grouped with other get_service_config stuff","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b28dbda9a39a37440f26ab62cab86419e481779e","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def get_all_version_data(self, service_type):"},{"line_number":438,"context_line":"        # Seriously. Don\u0027t think about the existential crisis"},{"line_number":439,"context_line":"        # that is the next line. You\u0027ll wind up in cthulhu\u0027s lair."},{"line_number":440,"context_line":"        service_type \u003d self.get_service_type(service_type)"},{"line_number":441,"context_line":"        versions \u003d self.get_session().get_all_version_data("},{"line_number":442,"context_line":"            service_type\u003dservice_type,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_9bfd280b","line":439,"updated":"2018-10-22 21:10:07.000000000","message":"LOL, nice comment :)","commit_id":"09b10cfecb7db8c0917169c05fbe7b782fe1d823"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"65b0d7ab9afd241a930f1bbb9b3112364184eb88","unresolved":false,"context_lines":[{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    def get_all_version_data(self, service_type):"},{"line_number":438,"context_line":"        # Seriously. Don\u0027t think about the existential crisis"},{"line_number":439,"context_line":"        # that is the next line. You\u0027ll wind up in cthulhu\u0027s lair."},{"line_number":440,"context_line":"        service_type \u003d self.get_service_type(service_type)"},{"line_number":441,"context_line":"        versions \u003d self.get_session().get_all_version_data("},{"line_number":442,"context_line":"            service_type\u003dservice_type,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_0c332063","line":439,"in_reply_to":"3f79a3b5_9bfd280b","updated":"2018-10-23 00:10:13.000000000","message":":)","commit_id":"09b10cfecb7db8c0917169c05fbe7b782fe1d823"}],"openstack/connection.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f7557fdc8a83f493c41681c8d4312af0be3783bd","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                 strict\u003dFalse,"},{"line_number":224,"context_line":"                 use_direct_get\u003dFalse,"},{"line_number":225,"context_line":"                 task_manager\u003dNone,"},{"line_number":226,"context_line":"                 rate\u003dNone,"},{"line_number":227,"context_line":"                 **kwargs):"},{"line_number":228,"context_line":"        \"\"\"Create a connection to a cloud."},{"line_number":229,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_ead47349","line":226,"updated":"2018-09-28 12:50:33.000000000","message":"I don\u0027t quite like that we call it rate_limit in other places, but rate here..","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f7557fdc8a83f493c41681c8d4312af0be3783bd","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            Client-side rate limit, expressed in calls per second. The"},{"line_number":279,"context_line":"            parameter can either be a single float, or it can be a dict with"},{"line_number":280,"context_line":"            keys as service-type and values as floats expressing the calls"},{"line_number":281,"context_line":"            per second for that service. Defaults to None, which means no"},{"line_number":282,"context_line":"            rate-limiting is performed."},{"line_number":283,"context_line":"        :param kwargs: If a config is not provided, the rest of the parameters"},{"line_number":284,"context_line":"            provided are assumed to be arguments to be passed to the"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8ac5bf92","line":281,"updated":"2018-09-28 12:50:33.000000000","message":"Worth noting that the key of None provides the default.","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f7557fdc8a83f493c41681c8d4312af0be3783bd","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            for service in extra_services:"},{"line_number":291,"context_line":"                self._extra_services[service.service_type] \u003d service"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if rate and not isinstance(rate, dict):"},{"line_number":294,"context_line":"            # TaskManager takes rate as seconds-between-calls if it\u0027s a"},{"line_number":295,"context_line":"            # single value. Convert calls-per-second to seconds-between-calls."},{"line_number":296,"context_line":"            rate \u003d {None: rate}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_aacafb9c","line":293,"updated":"2018-09-28 12:50:33.000000000","message":"nit: This duplicates the logic in TaskManager","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"00956bb57346b173e77f4b5f4ab353660fc4b075","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            for service in extra_services:"},{"line_number":291,"context_line":"                self._extra_services[service.service_type] \u003d service"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if rate and not isinstance(rate, dict):"},{"line_number":294,"context_line":"            # TaskManager takes rate as seconds-between-calls if it\u0027s a"},{"line_number":295,"context_line":"            # single value. Convert calls-per-second to seconds-between-calls."},{"line_number":296,"context_line":"            rate \u003d {None: rate}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_018be216","line":293,"in_reply_to":"3f79a3b5_aacafb9c","updated":"2018-10-10 14:02:27.000000000","message":"It does- but it converts it first.","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"aaef63ecda26a2ccec011c983f9009ae65bbd04e","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if rate and not isinstance(rate, dict):"},{"line_number":294,"context_line":"            # TaskManager takes rate as seconds-between-calls if it\u0027s a"},{"line_number":295,"context_line":"            # single value. Convert calls-per-second to seconds-between-calls."},{"line_number":296,"context_line":"            rate \u003d {None: rate}"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        if not self.config:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9f66a9bb","line":295,"range":{"start_line":295,"start_character":28,"end_line":295,"end_character":78},"updated":"2018-09-25 18:31:01.000000000","message":"I don\u0027t think this comment about conversion is what is happening here. {None: rate} will be seen as calls-per-second in TaskManager. Perhaps you meant for this comment to be in TM?","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"00956bb57346b173e77f4b5f4ab353660fc4b075","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        if rate and not isinstance(rate, dict):"},{"line_number":294,"context_line":"            # TaskManager takes rate as seconds-between-calls if it\u0027s a"},{"line_number":295,"context_line":"            # single value. Convert calls-per-second to seconds-between-calls."},{"line_number":296,"context_line":"            rate \u003d {None: rate}"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        if not self.config:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_c17f2a15","line":295,"range":{"start_line":295,"start_character":28,"end_line":295,"end_character":78},"in_reply_to":"3f79a3b5_9f66a9bb","updated":"2018-10-10 14:02:27.000000000","message":"Done","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"}],"openstack/task_manager.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f7557fdc8a83f493c41681c8d4312af0be3783bd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        if isinstance(rate, dict):"},{"line_number":110,"context_line":"            self._waits \u003d {}"},{"line_number":111,"context_line":"            for (k, v) in rate.items():"},{"line_number":112,"context_line":"                self._waits[k] \u003d 1 / v"},{"line_number":113,"context_line":"        else:"},{"line_number":114,"context_line":"            if rate:"},{"line_number":115,"context_line":"                self._waits \u003d {None: rate}"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_cacf37b1","line":112,"updated":"2018-09-28 12:50:33.000000000","message":"I hope nobody tries to put an integer for \"v\". maybe safeguard by doing float(v)?","commit_id":"49065eba33b7468ecf62dfd82ef4fd411ad5a7e7"}]}
