)]}'
{"glance/tests/unit/test_glance_replicator.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ff26645266e9756b9d44c0af874bc3a4bcb461f2","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                 \u0027id\u0027: 456},"},{"line_number":257,"context_line":"                {\u0027status\u0027: \u0027active\u0027,"},{"line_number":258,"context_line":"                 \u0027size\u0027: 300,"},{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FG30%3D","line":259,"updated":"2012-10-18 15:06:11.000000000","message":"you might want to make this in the typical multi-line dict format","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"927f29db8ea01e9a4aad69894f75ed4c31c3847c","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                 \u0027id\u0027: 456},"},{"line_number":257,"context_line":"                {\u0027status\u0027: \u0027active\u0027,"},{"line_number":258,"context_line":"                 \u0027size\u0027: 300,"},{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FGrE%3D","line":259,"in_reply_to":"AAAALH%2F%2FG30%3D","updated":"2012-10-18 23:40:56.000000000","message":"Done","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"90d247c6060b4393d6d276349264b5810dfb8150","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"},{"line_number":263,"context_line":"    def __init__(self):"},{"line_number":264,"context_line":"        self.d \u003d {}"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FGvs%3D","line":262,"updated":"2012-10-18 19:40:18.000000000","message":"It might be cleaner to look for a builtin that gives you this functionality. Have you looked at UserDict?","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"621de8d8fba3e514dcd76afa9fcb8d7b413e2f1e","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"},{"line_number":263,"context_line":"    def __init__(self):"},{"line_number":264,"context_line":"        self.d \u003d {}"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FGO8%3D","line":262,"in_reply_to":"AAAALH%2F%2FGP0%3D","updated":"2012-10-20 03:13:21.000000000","message":"Ahhh, thanks. I couldn\u0027t see an example of that in the docs, but its exactly what I want.","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"1c0e95341c5acbeb72237dca34f78b2fe74f7ce2","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"},{"line_number":263,"context_line":"    def __init__(self):"},{"line_number":264,"context_line":"        self.d \u003d {}"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FGP0%3D","line":262,"in_reply_to":"AAAALH%2F%2FGq4%3D","updated":"2012-10-20 01:31:37.000000000","message":"From my understanding of the code, you don\u0027t actually need a dictionary. It appears that you just need to be able to set arbitrary attributes on a dummy object. You could \n\n  \u003e\u003e\u003e import UserDict\n  \u003e\u003e\u003e u \u003d UserDict.UserDict()\n  \u003e\u003e\u003e u.slavetoken \u003d \u0027slavetoken\u0027\n  \u003e\u003e\u003e u.slavetoken\n  \u0027slavetoken\u0027","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"927f29db8ea01e9a4aad69894f75ed4c31c3847c","unresolved":false,"context_lines":[{"line_number":259,"context_line":"                 \u0027id\u0027: 789}]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"class AttrDict(object):"},{"line_number":263,"context_line":"    def __init__(self):"},{"line_number":264,"context_line":"        self.d \u003d {}"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAALH%2F%2FGq4%3D","line":262,"in_reply_to":"AAAALH%2F%2FGvs%3D","updated":"2012-10-18 23:40:56.000000000","message":"I don\u0027t see how UserDict gives me access to dictionary items as attributes. A google search doesn\u0027t enlighten me either. Can I have a hint please?","commit_id":"6242ea4df8c8df195ce14a76e54f8f3e4e2affab"}]}
