)]}'
{"keystoneclient/tests/fakes.py":[{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"5f047d91586d27314d0d062ace46d2f9b4bff201","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def assert_has_keys(dict, required\u003dNone, optional\u003dNone):"},{"line_number":25,"context_line":"    required \u003d required or []"},{"line_number":26,"context_line":"    optional \u003d optional or []"},{"line_number":27,"context_line":"    keys \u003d dict.keys()"},{"line_number":28,"context_line":"    for k in required:"},{"line_number":29,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_3ef1236b","line":26,"updated":"2014-07-07 23:43:43.000000000","message":"It is better to do the following...\nif required is None: required \u003d []\nif optional is None: optional \u003d []","commit_id":"4766d168ba4c86eef8a6bd04eeb0401ab2e33cd5"},{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"3e4870ee9f1c48f3ecbd924acc89bafca9483cd8","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def assert_has_keys(dict, required\u003dNone, optional\u003dNone):"},{"line_number":25,"context_line":"    required \u003d required or []"},{"line_number":26,"context_line":"    optional \u003d optional or []"},{"line_number":27,"context_line":"    keys \u003d dict.keys()"},{"line_number":28,"context_line":"    for k in required:"},{"line_number":29,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_875742c9","line":26,"in_reply_to":"baada198_3ef1236b","updated":"2014-07-08 02:11:46.000000000","message":"Why is it better to do as commented? IMHO \"required or []\" is succinct Pythonic elegance. And is consistent with code across OpenStack.","commit_id":"4766d168ba4c86eef8a6bd04eeb0401ab2e33cd5"},{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"958ad5b77d1a2e2a353847e4e7e9c01689df73ac","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def assert_has_keys(dict, required\u003dNone, optional\u003dNone):"},{"line_number":25,"context_line":"    required \u003d required or []"},{"line_number":26,"context_line":"    optional \u003d optional or []"},{"line_number":27,"context_line":"    keys \u003d dict.keys()"},{"line_number":28,"context_line":"    for k in required:"},{"line_number":29,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_b20e4239","line":26,"in_reply_to":"baada198_3ef1236b","updated":"2014-07-08 03:20:22.000000000","message":"why is it better:)","commit_id":"4766d168ba4c86eef8a6bd04eeb0401ab2e33cd5"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"d9f2aec5992541504d1355c6e73c9ba264f979a3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"def assert_has_keys(dict, required\u003dNone, optional\u003dNone):"},{"line_number":25,"context_line":"    required \u003d required or []"},{"line_number":26,"context_line":"    optional \u003d optional or []"},{"line_number":27,"context_line":"    keys \u003d dict.keys()"},{"line_number":28,"context_line":"    for k in required:"},{"line_number":29,"context_line":"        try:"},{"line_number":30,"context_line":"            assert k in keys"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_9e414f0c","line":27,"updated":"2014-07-22 04:55:45.000000000","message":"Just curious, how is this guarantee that user is going to pass list type?","commit_id":"4766d168ba4c86eef8a6bd04eeb0401ab2e33cd5"}]}
