)]}'
{"nova/compute/allocations.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"91d576f96597061b1222a14b41df39e86bdea0e4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\"Objects related to Placement-backed resource allocations.\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class _Resources(dict):"},{"line_number":18,"context_line":"    \"\"\"Defaulting, addable dict of { resource_class: count }.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def __getitem__(self, resource_class):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_fb4d379a","line":17,"updated":"2017-10-13 14:26:15.000000000","message":"Inheriting dict is normally considered a Bad Idea (tm). Here\u0027s the first link in a search, but there are many:\n\n http://www.kr41.net/2016/03-23-dont_inherit_python_builtin_dict_type.html","commit_id":"f3625df0766158bc6833c8880ea98a875f01789d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b8852f3a28893c6d1b4f75aaa6578f58e1827d3b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\"Objects related to Placement-backed resource allocations.\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class _Resources(dict):"},{"line_number":18,"context_line":"    \"\"\"Defaulting, addable dict of { resource_class: count }.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def __getitem__(self, resource_class):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_cfdab149","line":17,"in_reply_to":"5f4e5783_09eb2913","updated":"2017-10-13 16:01:15.000000000","message":"The network model is an especially bad example of something done right, IMHO :)","commit_id":"f3625df0766158bc6833c8880ea98a875f01789d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"49542847503e684c8d98fba6dd8958c8f98944f8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\"Objects related to Placement-backed resource allocations.\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class _Resources(dict):"},{"line_number":18,"context_line":"    \"\"\"Defaulting, addable dict of { resource_class: count }.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def __getitem__(self, resource_class):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f4e5783_09eb2913","line":17,"in_reply_to":"5f4e5783_fb4d379a","updated":"2017-10-13 15:02:08.000000000","message":"Okay, didn\u0027t realize that.  I followed block_device_info and network_info down to nova.virt.block_device.DriverBlockDevice and nova.network.model.Model, respectively, both of which inherit from dict.\n\nThere\u0027s also nova.compute.stats.Stats.","commit_id":"f3625df0766158bc6833c8880ea98a875f01789d"}]}
