)]}'
{"openstack_requirements/check.py":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"5aaf222c5b1f1e70c9018240a642ebfa7fb5508a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from openstack_requirements import requirement"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PY3_SPECIFIER_RE \u003d r\u0027python_version(\u003d\u003d|\u003e\u003d|\u003e)(\\\u0027|\")3.\\d(\\\u0027|\")\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class RequirementsList(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ce6d7430","line":27,"updated":"2019-12-15 17:45:56.000000000","message":"This may leave a dangling semicolon at the end of line as the match doesn\u0027t include it.","commit_id":"2c7b3af360f33494bed1975caef001134bb45d26"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"d5f0b8c96bd04bea9a57b55861cf2214280cd3e5","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from openstack_requirements import requirement"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PY3_SPECIFIER_RE \u003d r\u0027python_version(\u003d\u003d|\u003e\u003d|\u003e)(\\\u0027|\")3.\\d(\\\u0027|\")\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class RequirementsList(object):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_926a1db3","line":27,"in_reply_to":"3fa7e38b_ce6d7430","updated":"2019-12-17 16:28:58.000000000","message":"It\u0027s not matching the whole line, just the markers string.","commit_id":"2c7b3af360f33494bed1975caef001134bb45d26"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"b91228d9f595080524d93145a8a248b25f5f7ba1","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            print(\"ERROR: Requirement for package \u0027%s\u0027 has no lower bound\" %"},{"line_number":185,"context_line":"                  name)"},{"line_number":186,"context_line":"            return True"},{"line_number":187,"context_line":"    for extra, count in counts.items():"},{"line_number":188,"context_line":"        if count !\u003d len(global_reqs[name]):"},{"line_number":189,"context_line":"            print(\"ERROR: Package \u0027%s%s\u0027 requirement does not match \""},{"line_number":190,"context_line":"                  \"number of lines (%d) in \""},{"line_number":191,"context_line":"                  \"openstack/requirements\" % ("},{"line_number":192,"context_line":"                      name,"},{"line_number":193,"context_line":"                      (\u0027[%s]\u0027 % extra) if extra else \u0027\u0027,"},{"line_number":194,"context_line":"                      len(global_reqs[name])))"},{"line_number":195,"context_line":"            return True"},{"line_number":196,"context_line":"    return False"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_08bccbd9","line":195,"range":{"start_line":187,"start_character":0,"end_line":195,"end_character":23},"updated":"2019-12-17 06:22:04.000000000","message":"Thank you for doing this.\nLooks like this is not enough, I\u0027ve hit this now with a test-requirements.txt with just one line of:\n\nsphinx!\u003d1.6.6,!\u003d1.6.7,!\u003d2.1.0,\u003e\u003d1.6.3 # BSD","commit_id":"2c7b3af360f33494bed1975caef001134bb45d26"}]}
