)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5fbaa79246b8dd51fb68e2df924bb9e2d54df85a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This is result of running 2to3 without dict fix (as it seems"},{"line_number":10,"context_line":"unnecessary for most of our cases)."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In Python 3 {}.values() returns a view that is not iterable. This commit"},{"line_number":13,"context_line":"uses list() on that to make AddHandler.should_callback compatible with"},{"line_number":14,"context_line":"Python 3."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_2565f749","line":12,"range":{"start_line":12,"start_character":51,"end_line":12,"end_character":59},"updated":"2019-11-13 13:32:45.000000000","message":"Actually, it is :) It\u0027s not indexable, so you cannot reach the n-th element like in the list.","commit_id":"adb5d86e427a0c2ce5475fc44e69ea7612446d3a"}],"contrib/pools-management/subports.py":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5fbaa79246b8dd51fb68e2df924bb9e2d54df85a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    conn \u003d UnixDomainHttpConnection(socket_path, timeout)"},{"line_number":47,"context_line":"    conn.request(method, path, body\u003dbody, headers\u003dheaders)"},{"line_number":48,"context_line":"    resp \u003d conn.getresponse()"},{"line_number":49,"context_line":"    print((resp.read()))"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def delete_subports(trunk_ips, timeout\u003d180):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_855f0b74","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":24},"updated":"2019-11-13 13:32:45.000000000","message":"Why double parentheses?","commit_id":"adb5d86e427a0c2ce5475fc44e69ea7612446d3a"}],"kuryr_kubernetes/cni/handlers.py":[{"author":{"_account_id":14352,"name":"Antoni Segura Puimedon","email":"celebdor@gmail.com","username":"toni"},"change_message_id":"ddb3c8d264b72c783239c73c50bbb47267870933","unresolved":false,"context_lines":[{"line_number":132,"context_line":"            if self._cni.CNI_IFNAME in self._vifs:"},{"line_number":133,"context_line":"                self.callback_vif \u003d self._vifs[self._cni.CNI_IFNAME]"},{"line_number":134,"context_line":"            else:"},{"line_number":135,"context_line":"                self.callback_vif \u003d list(self._vifs.values())[0]"},{"line_number":136,"context_line":"            LOG.debug(\"All VIFs are active, exiting. Will return %s\","},{"line_number":137,"context_line":"                      self.callback_vif)"},{"line_number":138,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d11c7614","line":135,"updated":"2019-11-21 13:32:04.000000000","message":"Why do we need to convert it to a list? Couldn\u0027t we just do:\n\n    next(iter(self._vifs.values()))","commit_id":"882fa25ee0d6333726fadcc41b3343c3474c1d8d"}],"kuryr_kubernetes/cni/plugins/k8s_cni_registry.py":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5fbaa79246b8dd51fb68e2df924bb9e2d54df85a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        # vif is not active."},{"line_number":71,"context_line":"        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,"},{"line_number":72,"context_line":"                        retry_on_result\u003dlambda x: any("},{"line_number":73,"context_line":"                            [not y.active for y in x.values()]))"},{"line_number":74,"context_line":"        def wait_for_active(pod_name):"},{"line_number":75,"context_line":"            return {"},{"line_number":76,"context_line":"                ifname: base.VersionedObject.obj_from_primitive(vif_obj) for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c5d743ee","line":73,"range":{"start_line":73,"start_character":51,"end_line":73,"end_character":59},"updated":"2019-11-13 13:32:45.000000000","message":"It might be formatted that way, although it\u0027s still ugly and pretty hard to grasp:\n\n        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,\n                        retry_on_result\u003dlambda x:\n                        any([not y.active for y in x.values()])\n\nSo maybe it\u0027s a better idea to go explicit:\n\n  def _retry_on_result(dictionary):\n      for value in dictionary.values():\n          if not value.active:\n              return True\n      return False\n  ...\n\n        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,\n                        retry_on_result\u003d_retry_on_result)","commit_id":"adb5d86e427a0c2ce5475fc44e69ea7612446d3a"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"46da0b275b7331718debd268307118d9212b1208","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # Wait for timeout sec, 1 sec between tries, retry when even one"},{"line_number":70,"context_line":"        # vif is not active."},{"line_number":71,"context_line":"        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,"},{"line_number":72,"context_line":"                        retry_on_result\u003dlambda x: any("},{"line_number":73,"context_line":"                            map(lambda y: not y.active, x.values())))"},{"line_number":74,"context_line":"        def wait_for_active(pod_name):"},{"line_number":75,"context_line":"            return {"},{"line_number":76,"context_line":"                ifname: base.VersionedObject.obj_from_primitive(vif_obj) for"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_a239c4cf","side":"PARENT","line":73,"range":{"start_line":72,"start_character":40,"end_line":73,"end_character":69},"updated":"2019-11-14 21:40:49.000000000","message":"Why is this lambda function rewritten? Isn\u0027t it supported on py3? or is it for better readability?","commit_id":"d1b854f9bbda9e17f89ce391a558049999977e19"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"0a1d76bb6d13379950c1231bd8872d0940402031","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # Wait for timeout sec, 1 sec between tries, retry when even one"},{"line_number":70,"context_line":"        # vif is not active."},{"line_number":71,"context_line":"        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,"},{"line_number":72,"context_line":"                        retry_on_result\u003dlambda x: any("},{"line_number":73,"context_line":"                            map(lambda y: not y.active, x.values())))"},{"line_number":74,"context_line":"        def wait_for_active(pod_name):"},{"line_number":75,"context_line":"            return {"},{"line_number":76,"context_line":"                ifname: base.VersionedObject.obj_from_primitive(vif_obj) for"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ddbb7672","side":"PARENT","line":73,"range":{"start_line":72,"start_character":40,"end_line":73,"end_character":69},"in_reply_to":"3fa7e38b_3f1ac2c5","updated":"2019-11-15 10:35:27.000000000","message":"all right, thanks for the reply.","commit_id":"d1b854f9bbda9e17f89ce391a558049999977e19"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"696c76c3bff53f2f617fcb3ccd6d8561aed2bfbd","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # Wait for timeout sec, 1 sec between tries, retry when even one"},{"line_number":70,"context_line":"        # vif is not active."},{"line_number":71,"context_line":"        @retrying.retry(stop_max_delay\u003dtimeout * 1000, wait_fixed\u003dRETRY_DELAY,"},{"line_number":72,"context_line":"                        retry_on_result\u003dlambda x: any("},{"line_number":73,"context_line":"                            map(lambda y: not y.active, x.values())))"},{"line_number":74,"context_line":"        def wait_for_active(pod_name):"},{"line_number":75,"context_line":"            return {"},{"line_number":76,"context_line":"                ifname: base.VersionedObject.obj_from_primitive(vif_obj) for"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_3f1ac2c5","side":"PARENT","line":73,"range":{"start_line":72,"start_character":40,"end_line":73,"end_character":69},"in_reply_to":"3fa7e38b_a239c4cf","updated":"2019-11-15 07:04:08.000000000","message":"map/lambda are not so pythonic. Especially nested lambda :) So I vote for changing it in favor on explicit function.\n\nAlso, you\u0027re right, lambda/any/map/lambda will \"just work\" on python3 with dict_values object.","commit_id":"d1b854f9bbda9e17f89ce391a558049999977e19"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"53b00f4ca5967444619a887f8e70658f6a4081a2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        # Wait for VIFs to become active."},{"line_number":67,"context_line":"        timeout \u003d CONF.cni_daemon.vif_annotation_timeout"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        # Returns True if there is at least one VIF that\u0027s not ACTIVE."},{"line_number":70,"context_line":"        def _check_active(vifs):"},{"line_number":71,"context_line":"            for vif in vifs.values():"},{"line_number":72,"context_line":"                if not vif.active:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_70aac471","line":69,"range":{"start_line":69,"start_character":1,"end_line":69,"end_character":70},"updated":"2019-11-13 19:37:03.000000000","message":"This comment sounds like docstring. I\u0027d lift that function at top of the module, make the comment docstring and \"accidentally\" prevent creating this inner function over and over again when add() is called :D","commit_id":"0c02395cc161ae3dc78bbb66828dd5d55209fe4b"}],"kuryr_kubernetes/cni/utils.py":[{"author":{"_account_id":14352,"name":"Antoni Segura Puimedon","email":"celebdor@gmail.com","username":"toni"},"change_message_id":"ddb3c8d264b72c783239c73c50bbb47267870933","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def check_all_vif_active(vifs):"},{"line_number":31,"context_line":"    \"\"\"Return True if there is at least one VIF that\u0027s not ACTIVE.\"\"\""},{"line_number":32,"context_line":"    for vif in vifs.values():"},{"line_number":33,"context_line":"        if not vif.active:"},{"line_number":34,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_f1e2d2d3","line":31,"updated":"2019-11-21 13:32:04.000000000","message":"simpler and faster:\n\n    return any(not vif.active for vif in vifs.values())\n\nAlso, the method name is not very indicative of what it does\n\n    def any_vif_inactive(vifs)\n\nIs much more self-explanatory.","commit_id":"882fa25ee0d6333726fadcc41b3343c3474c1d8d"}],"kuryr_kubernetes/tests/unit/controller/managers/test_pool.py":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5fbaa79246b8dd51fb68e2df924bb9e2d54df85a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import mock"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    from http.server import BaseHTTPRequestHandler"},{"line_number":18,"context_line":"except ImportError:"},{"line_number":19,"context_line":"    from http.server import BaseHTTPRequestHandler"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_45cef32d","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":50},"updated":"2019-11-13 13:32:45.000000000","message":"Probably it is not what you want :)","commit_id":"adb5d86e427a0c2ce5475fc44e69ea7612446d3a"}]}
