)]}'
{"keystoneclient/utils.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"b2c46df9fd10b9788b4c8ecb0b2796bca6da1249","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        msg \u003d \u0027%(what)s is deprecated as of %(as_of)s%(favor)s\u0027"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    m \u003d _(msg) % {\u0027as_of\u0027: as_of, \u0027what\u0027: what, \u0027favor\u0027: favor}"},{"line_number":336,"context_line":"    warnings.warn(m, DeprecationWarning, stacklevel\u003d3)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_7ab7bb3a","line":335,"updated":"2015-01-14 02:49:16.000000000","message":"I think this line should move into if block?","commit_id":"356446b7eec65f87d97739933002e53f1cc6b537"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"0467d0d60590eaa261f83d04a420cf3e0be9916c","unresolved":false,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        msg \u003d \u0027%(what)s is deprecated as of %(as_of)s%(favor)s\u0027"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    m \u003d _(msg) % {\u0027as_of\u0027: as_of, \u0027what\u0027: what, \u0027favor\u0027: favor}"},{"line_number":336,"context_line":"    warnings.warn(m, DeprecationWarning, stacklevel\u003d3)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_1a287732","line":335,"in_reply_to":"3a961159_7ab7bb3a","updated":"2015-01-14 02:53:30.000000000","message":"let\u0027s just kill passing msg for now. I don\u0027t actually use it anywhere in this review.","commit_id":"356446b7eec65f87d97739933002e53f1cc6b537"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c1d11c2ce0fabb1445d7d33e843fe046507bc754","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"@positional(3)"},{"line_number":326,"context_line":"def deprecated(as_of, what, in_favor_of\u003dNone):"},{"line_number":327,"context_line":"    if in_favor_of:"},{"line_number":328,"context_line":"        msg \u003d _(\u0027%(what)s is deprecated as of %(as_of)s\u0027"},{"line_number":329,"context_line":"                \u0027 in favor of %(in_favor_of)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ad32947_deaf0793","line":326,"updated":"2015-04-27 23:22:46.000000000","message":"did you look at debtcollector? see http://docs.openstack.org/developer/debtcollector/","commit_id":"170f1f00e92aef81ffc90dadfc3bc66094c3befa"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"28fad6b170ba7ba212a245983cc52253a89802f0","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"@positional(3)"},{"line_number":326,"context_line":"def deprecated(as_of, what, in_favor_of\u003dNone):"},{"line_number":327,"context_line":"    if in_favor_of:"},{"line_number":328,"context_line":"        msg \u003d _(\u0027%(what)s is deprecated as of %(as_of)s\u0027"},{"line_number":329,"context_line":"                \u0027 in favor of %(in_favor_of)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab921fb_022260b9","line":326,"updated":"2015-04-24 16:10:07.000000000","message":"why reinvent versionutils.deprecated?","commit_id":"170f1f00e92aef81ffc90dadfc3bc66094c3befa"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6accad4f87f7e19e26c6d87db0f0dac46cab5f95","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"@positional(3)"},{"line_number":326,"context_line":"def deprecated(as_of, what, in_favor_of\u003dNone):"},{"line_number":327,"context_line":"    if in_favor_of:"},{"line_number":328,"context_line":"        msg \u003d _(\u0027%(what)s is deprecated as of %(as_of)s\u0027"},{"line_number":329,"context_line":"                \u0027 in favor of %(in_favor_of)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aca2d91_623731b1","line":326,"in_reply_to":"3acd31a7_7f91e398","updated":"2015-05-06 14:42:16.000000000","message":"Since the spec to use debtcollector for deprecations in keystoneclient has merged, let\u0027s use it. -- http://git.openstack.org/cgit/openstack/keystone-specs/tree/specs/keystoneclient/deprecations.rst","commit_id":"170f1f00e92aef81ffc90dadfc3bc66094c3befa"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"5cdfacdf6425e3e094eed2f251d76ea6cd20058f","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"@positional(3)"},{"line_number":326,"context_line":"def deprecated(as_of, what, in_favor_of\u003dNone):"},{"line_number":327,"context_line":"    if in_favor_of:"},{"line_number":328,"context_line":"        msg \u003d _(\u0027%(what)s is deprecated as of %(as_of)s\u0027"},{"line_number":329,"context_line":"                \u0027 in favor of %(in_favor_of)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3acd31a7_7f91e398","line":326,"in_reply_to":"7ad32947_deaf0793","updated":"2015-04-30 22:23:24.000000000","message":"I have done since but i hadn\u0027t at the time of this review. \n\nMy concern would be the dependency increase, particularly for keystoneauth, but i think it\u0027s better to reuse something existing.","commit_id":"170f1f00e92aef81ffc90dadfc3bc66094c3befa"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"7b85a4f0900268a5c8963d4ad0e9a08c1d4c06cf","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"@positional(3)"},{"line_number":326,"context_line":"def deprecated(as_of, what, in_favor_of\u003dNone):"},{"line_number":327,"context_line":"    if in_favor_of:"},{"line_number":328,"context_line":"        msg \u003d _(\u0027%(what)s is deprecated as of %(as_of)s\u0027"},{"line_number":329,"context_line":"                \u0027 in favor of %(in_favor_of)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab921fb_45c94225","line":326,"in_reply_to":"bab921fb_022260b9","updated":"2015-04-26 03:51:19.000000000","message":"because versionutils.deprecated assumes server side things like being able to deprecate at a specific release which doesn\u0027t apply to the client. \n\nA better question is why reinvent debtcollector library - which i might need to look back into","commit_id":"170f1f00e92aef81ffc90dadfc3bc66094c3befa"}]}
