)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"636137ea07e96c39083478f25a72d9887b1c1a82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5faa2557_8cd88682","updated":"2022-08-02 22:44:56.000000000","message":"I\u0027m about to get on a plane, if I don\u0027t get to this before I do feel free fix it :)","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"}],"openstack_requirements/check.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"86d8ddececbb16fe209ce4bf3712c1dbb6f1b9b7","unresolved":true,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def _is_requirement_in_global_reqs(local_req, global_reqs, allow_3_only\u003dFalse,"},{"line_number":91,"context_line":"                                   backports\u003ddict()):"},{"line_number":92,"context_line":"    req_exclusions \u003d _get_exclusions(local_req)"},{"line_number":93,"context_line":"    for global_req in global_reqs:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1223c7db_a9ff080a","line":91,"range":{"start_line":91,"start_character":45,"end_line":91,"end_character":51},"updated":"2022-08-02 10:51:52.000000000","message":"These are persistent\n\n  \u003e\u003e\u003e def foo(x, y\u003ddict()):\n  ...     y[x] \u003d \u0027bar\u0027\n  ...     print(y)\n  ... \n  \u003e\u003e\u003e foo(\u0027a\u0027)\n  {\u0027a\u0027: \u0027bar\u0027}\n  \u003e\u003e\u003e foo(\u0027b\u0027)\n  {\u0027a\u0027: \u0027bar\u0027, \u0027b\u0027: \u0027bar\u0027}\n\nRather than do this, could we just make \u0027backports\u0027 a required argument? Nothing depends on this API, right?\n\n  def _is_requirement_in_global_reqs(\n      local_req,\n      global_reqs,\n      backports,\n      allow_3_only\u003dFalse,\n  ):\n\nhttps://towardsdatascience.com/python-pitfall-mutable-default-arguments-9385e8265422?gi\u003d584080f4eacc","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"636137ea07e96c39083478f25a72d9887b1c1a82","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def _is_requirement_in_global_reqs(local_req, global_reqs, allow_3_only\u003dFalse,"},{"line_number":91,"context_line":"                                   backports\u003ddict()):"},{"line_number":92,"context_line":"    req_exclusions \u003d _get_exclusions(local_req)"},{"line_number":93,"context_line":"    for global_req in global_reqs:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c01fa06b_1e09a1c1","line":91,"range":{"start_line":91,"start_character":45,"end_line":91,"end_character":51},"in_reply_to":"1223c7db_a9ff080a","updated":"2022-08-02 22:44:56.000000000","message":"Fair enough.  I debated that myself.","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"86d8ddececbb16fe209ce4bf3712c1dbb6f1b9b7","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"def _validate_one(name, reqs, blacklist, global_reqs, allow_3_only\u003dFalse,"},{"line_number":197,"context_line":"                  backports\u003ddict()):"},{"line_number":198,"context_line":"    \"\"\"Returns True if there is a failure.\"\"\""},{"line_number":199,"context_line":"    if name in blacklist:"},{"line_number":200,"context_line":"        # Blacklisted items are not synced and are managed"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f191166_d48e1c65","line":197,"updated":"2022-08-02 10:51:52.000000000","message":"ditto","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"636137ea07e96c39083478f25a72d9887b1c1a82","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"def _validate_one(name, reqs, blacklist, global_reqs, allow_3_only\u003dFalse,"},{"line_number":197,"context_line":"                  backports\u003ddict()):"},{"line_number":198,"context_line":"    \"\"\"Returns True if there is a failure.\"\"\""},{"line_number":199,"context_line":"    if name in blacklist:"},{"line_number":200,"context_line":"        # Blacklisted items are not synced and are managed"}],"source_content_type":"text/x-python","patch_set":1,"id":"d108e9f0_13046a16","line":197,"in_reply_to":"9f191166_d48e1c65","updated":"2022-08-02 22:44:56.000000000","message":"Ack","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"86d8ddececbb16fe209ce4bf3712c1dbb6f1b9b7","unresolved":true,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"def validate(head_reqs, blacklist, global_reqs, allow_3_only\u003dFalse,"},{"line_number":248,"context_line":"             backports\u003ddict()):"},{"line_number":249,"context_line":"    failed \u003d False"},{"line_number":250,"context_line":"    # iterate through the changing entries and see if they match the global"},{"line_number":251,"context_line":"    # equivalents we want enforced"}],"source_content_type":"text/x-python","patch_set":1,"id":"86201349_f7560ea1","line":248,"updated":"2022-08-02 10:51:52.000000000","message":"ditto","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"636137ea07e96c39083478f25a72d9887b1c1a82","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"def validate(head_reqs, blacklist, global_reqs, allow_3_only\u003dFalse,"},{"line_number":248,"context_line":"             backports\u003ddict()):"},{"line_number":249,"context_line":"    failed \u003d False"},{"line_number":250,"context_line":"    # iterate through the changing entries and see if they match the global"},{"line_number":251,"context_line":"    # equivalents we want enforced"}],"source_content_type":"text/x-python","patch_set":1,"id":"0c18abc4_669dde38","line":248,"in_reply_to":"86201349_f7560ea1","updated":"2022-08-02 22:44:56.000000000","message":"Ack","commit_id":"e1d936c4e137505c6af6d46bf766068acd7f69f3"}]}
