)]}'
{"oslo_log/formatters.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"2d95468178662f83b78e40f68caffea7dd3e22bc","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            lines \u003d [\u0027\u003cUnprintable exception due to %s\u003e\\n\u0027 % msg]"},{"line_number":206,"context_line":"        if strip_newlines:"},{"line_number":207,"context_line":"            stripped_lines \u003d [line.rstrip().splitlines() for line in lines]"},{"line_number":208,"context_line":"            non_empty_lines \u003d [line for line in stripped_lines if line]"},{"line_number":209,"context_line":"            lines \u003d list(itertools.chain(*non_empty_lines))"},{"line_number":210,"context_line":"        return lines"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1d63b2ad","line":208,"range":{"start_line":208,"start_character":12,"end_line":208,"end_character":71},"updated":"2020-01-31 10:03:24.000000000","message":"Do we really need to do that?\n\n```\n\u003e\u003e\u003e test \u003d \" one two three \\n \"\n\u003e\u003e\u003e test.rstrip()\n\u0027 one two three\u0027\n\u003e\u003e\u003e test.splitlines()\n[\u0027 one two three \u0027, \u0027 \u0027]\n\u003e\u003e\u003e test.rstrip().splitlines()\n[\u0027 one two three\u0027]\n```\n\nrstrip combined with splitlines already removed unnecessary lines.","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"61cc762d66ee23bbdde2aef6f362d2d258e87d2c","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            lines \u003d [\u0027\u003cUnprintable exception due to %s\u003e\\n\u0027 % msg]"},{"line_number":206,"context_line":"        if strip_newlines:"},{"line_number":207,"context_line":"            stripped_lines \u003d [line.rstrip().splitlines() for line in lines]"},{"line_number":208,"context_line":"            non_empty_lines \u003d [line for line in stripped_lines if line]"},{"line_number":209,"context_line":"            lines \u003d list(itertools.chain(*non_empty_lines))"},{"line_number":210,"context_line":"        return lines"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_34b980c4","line":208,"range":{"start_line":208,"start_character":12,"end_line":208,"end_character":71},"in_reply_to":"3fa7e38b_1d63b2ad","updated":"2020-02-07 14:07:19.000000000","message":"I\u0027m just trying to rewrite the list comprehension + moves.filter(), and I think this is necessary. The \"format_exception\" method return a list, so:\n\n\u003e\u003e\u003e test\u003d[\u0027\u0027, \u0027foo\u0027, \u0027bar\\nbaz\u0027]\n\n\u003e\u003e\u003e stripped \u003d [line.rstrip().splitlines() for line in test]\n\n\u003e\u003e\u003e stripped\n\n[[], [\u0027foo\u0027], [\u0027bar\u0027, \u0027baz\u0027]]\n\n\u003e\u003e\u003e [line for line in stripped if line]\n\n[[\u0027foo\u0027], [\u0027bar\u0027, \u0027baz\u0027]]","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"}],"oslo_log/versionutils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a863659a3e1b342b21e0669c86d7d8c23dcbfff","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"},{"line_number":36,"context_line":"_DEPRECATED_EXCEPTIONS:Set[Exception] \u003d set()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"deprecated_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_bdfe1e6b","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":23},"updated":"2020-01-31 10:32:33.000000000","message":"Can we get a space after these? I\u0027m surprised flake8 isn\u0027t complaining about this.","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"61cc762d66ee23bbdde2aef6f362d2d258e87d2c","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"},{"line_number":36,"context_line":"_DEPRECATED_EXCEPTIONS:Set[Exception] \u003d set()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"deprecated_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_54451c15","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":23},"in_reply_to":"3fa7e38b_bdfe1e6b","updated":"2020-02-07 14:07:19.000000000","message":"You\u0027re right :) Will fix this.","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"}],"oslo_log/watchers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a863659a3e1b342b21e0669c86d7d8c23dcbfff","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# type: ignore"},{"line_number":14,"context_line":"# TODO(cyril): unignore once https://github.com/python/typeshed/pull/3686 is"},{"line_number":15,"context_line":"# available"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import errno"},{"line_number":18,"context_line":"import logging"},{"line_number":19,"context_line":"import logging.config"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_fdd256fe","line":16,"updated":"2020-01-31 10:32:33.000000000","message":"Is it not possible to ignore a single erroneous import rather than the whole file?","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"61cc762d66ee23bbdde2aef6f362d2d258e87d2c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# type: ignore"},{"line_number":14,"context_line":"# TODO(cyril): unignore once https://github.com/python/typeshed/pull/3686 is"},{"line_number":15,"context_line":"# available"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import errno"},{"line_number":18,"context_line":"import logging"},{"line_number":19,"context_line":"import logging.config"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_3448a029","line":16,"in_reply_to":"3fa7e38b_fdd256fe","updated":"2020-02-07 14:07:19.000000000","message":"Yes, I should do that, this would be better indeed.","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"}],"tox.ini":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a863659a3e1b342b21e0669c86d7d8c23dcbfff","unresolved":false,"context_lines":[{"line_number":19,"context_line":"commands \u003d"},{"line_number":20,"context_line":"  flake8"},{"line_number":21,"context_line":"  # Run security linter"},{"line_number":22,"context_line":"  bandit -r oslo_log -x tests -n5"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[testenv:venv]"},{"line_number":25,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_5dc60a44","line":22,"updated":"2020-01-31 10:32:33.000000000","message":"Could you add mypy here too?","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"61cc762d66ee23bbdde2aef6f362d2d258e87d2c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"commands \u003d"},{"line_number":20,"context_line":"  flake8"},{"line_number":21,"context_line":"  # Run security linter"},{"line_number":22,"context_line":"  bandit -r oslo_log -x tests -n5"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[testenv:venv]"},{"line_number":25,"context_line":"commands \u003d {posargs}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_945074d3","line":22,"in_reply_to":"3fa7e38b_5dc60a44","updated":"2020-02-07 14:07:19.000000000","message":"OK!","commit_id":"86fecc89ad69bf7dfb4344e7d7f847682a7f76ad"}]}
