)]}'
{"keystonemiddleware/auth_token/_cache.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ac777f0a4d007ca9b9cc8c7c5aa1a3f58acb829","unresolved":false,"context_lines":[{"line_number":28,"context_line":"def _create_memcache_client(*args, **kwargs):"},{"line_number":29,"context_line":"    \"\"\"Create a new memcache client object."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    This handles the lazy loaded import but also provides a point to mock out"},{"line_number":32,"context_line":"    in testing."},{"line_number":33,"context_line":"    \"\"\""},{"line_number":34,"context_line":"    global memcache"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a740942_35e70014","line":31,"updated":"2015-12-10 08:27:09.000000000","message":"thanks for this comment, i was going to ask why we didn\u0027t do it the usual way:\n\n  try:\n    import memcache\n  except ImportErrror:\n    memcache \u003d None","commit_id":"d93cf8ab912be1d1e9b58458b0da0d583fc30ed8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ac777f0a4d007ca9b9cc8c7c5aa1a3f58acb829","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    if not memcache:"},{"line_number":37,"context_line":"        import memcache"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    return memcache.Client(*args, **kwargs)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _hash_key(key):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a740942_353f0027","line":39,"updated":"2015-12-10 08:27:09.000000000","message":"what if memcache is None, then this\u0027ll be called with memcache.Client, that\u0027ll fail.\n\ni feel you did something to prevent this, but i\u0027m not seeing it","commit_id":"d93cf8ab912be1d1e9b58458b0da0d583fc30ed8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ae7c71d0110f8533f4d8c84d21475f5944d42e24","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    if not memcache:"},{"line_number":37,"context_line":"        import memcache"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    return memcache.Client(*args, **kwargs)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def _hash_key(key):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a740942_2795933f","line":39,"in_reply_to":"7a740942_353f0027","updated":"2015-12-10 08:44:35.000000000","message":"this should be fine. If it hasn\u0027t been imported it will be then used. If it isn\u0027t available it will raise an ImportError.\n\nI\u0027ll be honest i don\u0027t remember why we lazy load this, but it always has been.","commit_id":"d93cf8ab912be1d1e9b58458b0da0d583fc30ed8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ac777f0a4d007ca9b9cc8c7c5aa1a3f58acb829","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        return None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"class NoOpCache(_CacheInterface):"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def store(self, key, value):"},{"line_number":125,"context_line":"        # Don\u0027t store anything"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a740942_9502746e","line":122,"updated":"2015-12-10 08:27:09.000000000","message":"missing initialize?","commit_id":"d93cf8ab912be1d1e9b58458b0da0d583fc30ed8"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ae7c71d0110f8533f4d8c84d21475f5944d42e24","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        return None"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"class NoOpCache(_CacheInterface):"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def store(self, key, value):"},{"line_number":125,"context_line":"        # Don\u0027t store anything"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a740942_c7be0fd4","line":122,"in_reply_to":"7a740942_9502746e","updated":"2015-12-10 08:44:35.000000000","message":"inherited from CacheInterface","commit_id":"d93cf8ab912be1d1e9b58458b0da0d583fc30ed8"}],"keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd3727069b08133a5212d997da942a842cbe8765","unresolved":false,"context_lines":[{"line_number":44,"context_line":"from keystonemiddleware.auth_token import _base"},{"line_number":45,"context_line":"from keystonemiddleware.auth_token import _exceptions as exc"},{"line_number":46,"context_line":"from keystonemiddleware.auth_token import _revocations"},{"line_number":47,"context_line":"from keystonemiddleware.openstack.common import memorycache"},{"line_number":48,"context_line":"from keystonemiddleware.tests.unit.auth_token import base"},{"line_number":49,"context_line":"from keystonemiddleware.tests.unit import client_fixtures"},{"line_number":50,"context_line":"from keystonemiddleware.tests.unit import utils"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_d155f1c1","line":47,"updated":"2015-08-20 14:21:58.000000000","message":"for some reason this is failing to import","commit_id":"14fe5a5cec4bc4e8d8cd5b302548abe7b9a1c9a7"}],"keystonemiddleware/tests/unit/utils.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bd3727069b08133a5212d997da942a842cbe8765","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import fixtures"},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"import oslotest.base as oslotest"},{"line_number":21,"context_line":"from oslo_utils import timeutils"},{"line_number":22,"context_line":"import requests"},{"line_number":23,"context_line":"import uuid"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_f17035a6","line":21,"updated":"2015-08-20 14:21:58.000000000","message":"I think this has to go up one line.","commit_id":"14fe5a5cec4bc4e8d8cd5b302548abe7b9a1c9a7"}]}
