)]}'
{"placement/objects/research_context.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a2d86f94d168e29b95d20a92b325fc4391350f6f","unresolved":false,"context_lines":[{"line_number":1234,"context_line":"    res \u003d ctx.session.execute(sel).fetchall()"},{"line_number":1235,"context_line":"    return len(res) \u003e 0"},{"line_number":1236,"context_line":""},{"line_number":1237,"context_line":""},{"line_number":1238,"context_line":"def _get_usages_by_provider_trees(ctx, root_ids):"},{"line_number":1239,"context_line":"    \"\"\"Returns a row iterator of usage records grouped by provider ID"},{"line_number":1240,"context_line":"    for all resource providers in all trees indicated in the ``root_ids``."}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_5a9e256a","line":1237,"updated":"2019-08-07 09:57:48.000000000","message":"I\u0027ve intentionally not put a context decorator on this because we tend to do that too much. At some point we should go through the entry points and make sure that we set session manager at most once, fairly early. Doing it a second time is simply noise.","commit_id":"9820b1bd20469946cd9278478796a09fc0928d40"}]}
