)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3df091ea3dc116642e515ac7fdc14a487f5d0986","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Added NO_VALUE to core file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using oslo_cache lib the only way to compare some cached_value with NO_VALUE is"},{"line_number":10,"context_line":"to add bad import like \u0027from oslo_cache.backends.dictionary import NO_VALUE\u0027."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"NO_VALUE is now added to core.py file and the improved import"},{"line_number":13,"context_line":"\u0027oslo_cache.core import NO_VALUE\u0027 will look much better in other projects."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_f2d8fb54","line":10,"updated":"2015-07-16 13:10:30.000000000","message":"why do we provide bad public symbols like these? get rid of them.","commit_id":"af056528d9115770a051e2eabb72a41ab331464e"}],"oslo_cache/backends/dictionary.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"37be77e097d7ec6e4dc9e6c3a2d984150701f5df","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Retrieves the value for a key."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param key: dictionary key"},{"line_number":48,"context_line":"        :returns: value for a key or :data:`NO_VALUE` for nonexistent"},{"line_number":49,"context_line":"            or expired keys."},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":"        (value, timeout) \u003d self.cache.get(key, (_NO_VALUE, 0))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_9fdf7e68","line":48,"updated":"2015-07-22 19:43:54.000000000","message":"this will need to reference oslo_cache.core.NO_VALUE instead. Change \"NO_VALUE\" to \"oslo_cache.core.NO_VALUE\". The way it is now it doesn\u0027t link to the symbol.","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"edde20a9042fb81e0187c79e92390e367cd6255e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        \"\"\"Retrieves the value for a key."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param key: dictionary key"},{"line_number":48,"context_line":"        :returns: value for a key or :data:`NO_VALUE` for nonexistent"},{"line_number":49,"context_line":"            or expired keys."},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":"        (value, timeout) \u003d self.cache.get(key, (_NO_VALUE, 0))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_cb94458c","line":48,"in_reply_to":"3a50d1a3_9fdf7e68","updated":"2015-07-23 11:14:23.000000000","message":"Done","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"}],"oslo_cache/backends/mongo.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"37be77e097d7ec6e4dc9e6c3a2d984150701f5df","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        \"\"\"Retrieves the value for a key."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param key: key to be retrieved."},{"line_number":180,"context_line":"        :returns: value for a key or :data:`NO_VALUE` for nonexistent"},{"line_number":181,"context_line":"            or expired keys."},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        value \u003d self.client.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1f97eeec","line":180,"updated":"2015-07-22 19:43:54.000000000","message":"oslo_cache.core.NO_VALUE","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"edde20a9042fb81e0187c79e92390e367cd6255e","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        \"\"\"Retrieves the value for a key."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param key: key to be retrieved."},{"line_number":180,"context_line":"        :returns: value for a key or :data:`NO_VALUE` for nonexistent"},{"line_number":181,"context_line":"            or expired keys."},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        value \u003d self.client.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_6be65145","line":180,"in_reply_to":"3a50d1a3_1f97eeec","updated":"2015-07-23 11:14:23.000000000","message":"Done","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"37be77e097d7ec6e4dc9e6c3a2d984150701f5df","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Return multiple values from the cache, based on the given keys."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        :param keys: sequence of keys to be retrieved."},{"line_number":193,"context_line":"        :returns: returns values (or :data:`NO_VALUE`) as a list matching"},{"line_number":194,"context_line":"            the keys given."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        values \u003d self.client.get_multi(keys)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_3f9c2a0e","line":193,"updated":"2015-07-22 19:43:54.000000000","message":"oslo_cache.core.NO_VALUE","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"edde20a9042fb81e0187c79e92390e367cd6255e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        \"\"\"Return multiple values from the cache, based on the given keys."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        :param keys: sequence of keys to be retrieved."},{"line_number":193,"context_line":"        :returns: returns values (or :data:`NO_VALUE`) as a list matching"},{"line_number":194,"context_line":"            the keys given."},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        values \u003d self.client.get_multi(keys)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_8be15d2c","line":193,"in_reply_to":"3a50d1a3_3f9c2a0e","updated":"2015-07-23 11:14:23.000000000","message":"Done","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"}],"oslo_cache/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3df091ea3dc116642e515ac7fdc14a487f5d0986","unresolved":false,"context_lines":[{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# Value for nonexistent and expired keys"},{"line_number":53,"context_line":"NO_VALUE \u003d api.NO_VALUE"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"_LOG \u003d log.getLogger(__name__)"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_92240f60","line":53,"updated":"2015-07-16 13:10:30.000000000","message":"if this is supposed to be public it\u0027ll need to be added to __all__ and also have a docstring and there should also be some other overview documentation that tells how to use it.\n\nAlso, there should be unit tests.","commit_id":"af056528d9115770a051e2eabb72a41ab331464e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"eba583a73fd1a486b12cf960b6e4d431cb9a9755","unresolved":false,"context_lines":[{"line_number":29,"context_line":"instance to :func:`configure`."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The library has special public value for nonexistent and expired keys called"},{"line_number":32,"context_line":"NO_VALUE. To use this value you should import it from oslo_cache.core:"},{"line_number":33,"context_line":"from oslo_cache import core"},{"line_number":34,"context_line":"NO_VALUE \u003d core.NO_VALUE"},{"line_number":35,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_ed62f1ac","line":32,"updated":"2015-07-21 13:56:23.000000000","message":"use :data:`NO_VALUE` instead of NO_VALUE.\n\nuse :: to introduce a preformatted section.\n\nAlso, needs an empty line and the preformatted part to be indented.","commit_id":"83c8d80ba3184c87681799ecb60d5549e2ce2da7"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"eba583a73fd1a486b12cf960b6e4d431cb9a9755","unresolved":false,"context_lines":[{"line_number":31,"context_line":"The library has special public value for nonexistent and expired keys called"},{"line_number":32,"context_line":"NO_VALUE. To use this value you should import it from oslo_cache.core:"},{"line_number":33,"context_line":"from oslo_cache import core"},{"line_number":34,"context_line":"NO_VALUE \u003d core.NO_VALUE"},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"import dogpile.cache"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_6dcb4173","line":34,"updated":"2015-07-21 13:56:23.000000000","message":"The symbol should be referenced using :data:`NO_VALUE` where it\u0027s used (i.e., on the functions that can return it)... but I don\u0027t see these documented anywhere, so how is anybody supposed to use this library?","commit_id":"83c8d80ba3184c87681799ecb60d5549e2ce2da7"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"eba583a73fd1a486b12cf960b6e4d431cb9a9755","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    \u0027configure_cache_region\u0027,"},{"line_number":52,"context_line":"    \u0027create_region\u0027,"},{"line_number":53,"context_line":"    \u0027get_memoization_decorator\u0027,"},{"line_number":54,"context_line":"    \u0027NO_VALUE\u0027"},{"line_number":55,"context_line":"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"NO_VALUE \u003d api.NO_VALUE"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_8db1ede3","line":54,"updated":"2015-07-21 13:56:23.000000000","message":"leave the trailing , so that it\u0027s easier to update the list without merge conflicts.","commit_id":"83c8d80ba3184c87681799ecb60d5549e2ce2da7"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"eba583a73fd1a486b12cf960b6e4d431cb9a9755","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    \u0027NO_VALUE\u0027"},{"line_number":55,"context_line":"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"NO_VALUE \u003d api.NO_VALUE"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"_LOG \u003d log.getLogger(__name__)"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_2d5219de","line":57,"updated":"2015-07-21 13:56:23.000000000","message":"add docstring\n\n \"\"\"Value returned for nonexistant or expired keys.\"\"\"","commit_id":"83c8d80ba3184c87681799ecb60d5549e2ce2da7"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"37be77e097d7ec6e4dc9e6c3a2d984150701f5df","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u0027NO_VALUE\u0027,"},{"line_number":56,"context_line":"]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"\"\"\"Value returned for nonexistent or expired keys.\"\"\""},{"line_number":59,"context_line":"NO_VALUE \u003d api.NO_VALUE"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"_LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_7f8e32d1","line":58,"updated":"2015-07-22 19:43:54.000000000","message":"this needs to be on the line after the symbol, so move it right after the NO_VALUE line.","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"edde20a9042fb81e0187c79e92390e367cd6255e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u0027NO_VALUE\u0027,"},{"line_number":56,"context_line":"]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"\"\"\"Value returned for nonexistent or expired keys.\"\"\""},{"line_number":59,"context_line":"NO_VALUE \u003d api.NO_VALUE"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"_LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_8bb87d12","line":58,"in_reply_to":"3a50d1a3_7f8e32d1","updated":"2015-07-23 11:14:23.000000000","message":"Done","commit_id":"609c9453a224a52ad6d247f0564929403f583f4d"}]}
