)]}'
{"glance/db/sqlalchemy/api.py":[{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"a45d3a930409eba3555766a20d4d6181200c740d","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"STATUSES \u003d (\u0027active\u0027, \u0027saving\u0027, \u0027queued\u0027, \u0027killed\u0027, \u0027pending_delete\u0027,"},{"line_number":64,"context_line":"            \u0027deleted\u0027, \u0027deactivated\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"CONF \u003d cfg.CONF"},{"line_number":67,"context_line":"CONF.import_group(\"profiler\", \"glance.common.wsgi\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_d2f31f9d","line":64,"updated":"2015-04-15 08:57:47.000000000","message":"it\u0027s would be interesting to see some performance tests before and after.","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"b7ebdd274dc143a7a50cc063dce2c1a5dc165393","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"STATUSES \u003d (\u0027active\u0027, \u0027saving\u0027, \u0027queued\u0027, \u0027killed\u0027, \u0027pending_delete\u0027,"},{"line_number":64,"context_line":"            \u0027deleted\u0027, \u0027deactivated\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"CONF \u003d cfg.CONF"},{"line_number":67,"context_line":"CONF.import_group(\"profiler\", \"glance.common.wsgi\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aa745d1_499c7469","line":64,"in_reply_to":"7aaa499b_3e6e8c01","updated":"2015-04-16 00:16:25.000000000","message":"Thanks for providing the banchmarking. Actually, my initial goal is using set, not touple, though I was using set in my local test.","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"241a90b58dbfc269a0cf780061eefa6971d36b57","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"STATUSES \u003d (\u0027active\u0027, \u0027saving\u0027, \u0027queued\u0027, \u0027killed\u0027, \u0027pending_delete\u0027,"},{"line_number":64,"context_line":"            \u0027deleted\u0027, \u0027deactivated\u0027)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"CONF \u003d cfg.CONF"},{"line_number":67,"context_line":"CONF.import_group(\"profiler\", \"glance.common.wsgi\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_3e6e8c01","line":64,"in_reply_to":"7aaa499b_d2f31f9d","updated":"2015-04-15 11:03:30.000000000","message":"%timeit STATUSES \u003d (\u0027active\u0027, \u0027saving\u0027, \u0027queued\u0027, \u0027killed\u0027, \u0027pending_delete\u0027, \u0027deleted\u0027, \u0027deactivated\u0027)\n100000000 loops, best of 3: 13.1 ns per loop\n\n\n%timeit STATUSES \u003d [\u0027active\u0027, \u0027saving\u0027, \u0027queued\u0027, \u0027killed\u0027, \u0027pending_delete\u0027, \u0027deleted\u0027, \u0027deactivated\u0027]\n10000000 loops, best of 3: 96.3 ns per loop\n\n\nSince this variable is initiated once when the application starts, the application start time would improve by 83 ns approx.","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"},{"author":{"_account_id":11428,"name":"Ajaya Agrawal","email":"ajku.agr@gmail.com","username":"ajayaa"},"change_message_id":"241a90b58dbfc269a0cf780061eefa6971d36b57","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        image_conditions.append(models.Image.deleted \u003d\u003d deleted_filter)"},{"line_number":445,"context_line":"        # TODO(bcwaldon): handle this logic in registry server"},{"line_number":446,"context_line":"        if not deleted_filter:"},{"line_number":447,"context_line":"            image_statuses \u003d (s for s in STATUSES if s !\u003d \u0027killed\u0027)"},{"line_number":448,"context_line":"            image_conditions.append(models.Image.status.in_(image_statuses))"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    if \u0027tags\u0027 in filters:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_d90fc22c","line":447,"updated":"2015-04-15 11:03:30.000000000","message":"The time spent while iterating through both list and tuple is approximately same(110 ns in my machine).\n\nWhat benefit do you get by using a generator here instead of list comprehension? saving memory?","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"a45d3a930409eba3555766a20d4d6181200c740d","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        image_conditions.append(models.Image.deleted \u003d\u003d deleted_filter)"},{"line_number":445,"context_line":"        # TODO(bcwaldon): handle this logic in registry server"},{"line_number":446,"context_line":"        if not deleted_filter:"},{"line_number":447,"context_line":"            image_statuses \u003d (s for s in STATUSES if s !\u003d \u0027killed\u0027)"},{"line_number":448,"context_line":"            image_conditions.append(models.Image.status.in_(image_statuses))"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    if \u0027tags\u0027 in filters:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_d24affc4","line":447,"updated":"2015-04-15 08:57:47.000000000","message":"nit: we\u0027ll get generator object instead of a list here. Could you please mention this in commit message?","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"b7ebdd274dc143a7a50cc063dce2c1a5dc165393","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        image_conditions.append(models.Image.deleted \u003d\u003d deleted_filter)"},{"line_number":445,"context_line":"        # TODO(bcwaldon): handle this logic in registry server"},{"line_number":446,"context_line":"        if not deleted_filter:"},{"line_number":447,"context_line":"            image_statuses \u003d (s for s in STATUSES if s !\u003d \u0027killed\u0027)"},{"line_number":448,"context_line":"            image_conditions.append(models.Image.status.in_(image_statuses))"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    if \u0027tags\u0027 in filters:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aa745d1_a9a3f89d","line":447,"in_reply_to":"7aaa499b_d90fc22c","updated":"2015-04-16 00:16:25.000000000","message":"Hmm... good question. My initial assuming is for searching set will be very faster than list. But then I realized that the in_ will be translated into IN for SQL. So maybe this change is not really necessary.","commit_id":"c517ef11dfee481b0c79e6e1b02ea523d1cb37ce"}]}
