)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6ee6dae1be65fdb33d129ddda6f2e9c6e1d46a04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"97e5ac07_7f99078d","updated":"2022-12-19 17:59:45.000000000","message":"You\u0027ve a long road to go here but watching with interest.","commit_id":"0793c554a189c61dd21080f1112bdb48f6ef7a6e"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"d99ca96428eba1cb0402d3c30a696344b300cd8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"182f4180_b08b4da2","in_reply_to":"97e5ac07_7f99078d","updated":"2022-12-19 21:27:48.000000000","message":"That problem is really that all those mixin classes use attributes that are defined in other places and type checkers cannot understand them really.\n\nI started this as part of my work on replacing neutronclient with openstacksdk in Octavia. I use PyCharm and the experience as a user of openstacksdk there is just so much better with these type annotations. Without them I constantly need to jump between files.\n\nThe best thing about typing in Python is that it can make a huge difference even if you put annotations on a few things only. I might add a few more things to the network part since I\u0027m working on that currently, but in general I don\u0027t intend to add much more annotations there right now.\n\nOne suggestion for the future that I have for the team is to move from type documentation in docstrings to these \"real\" typing annotations. They are without doubt much more powerful. The use of generic types in this patch demonstrate that really well.","commit_id":"0793c554a189c61dd21080f1112bdb48f6ef7a6e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ff201c5c8f5017f587274c6456c07f1ba437e579","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1f5975c9_efa589d1","updated":"2023-01-11 15:53:42.000000000","message":"Looks like a good start to me.","commit_id":"e8d351ddd8686e359261f3c05e72caeaa6976cdd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"567a671e07bccfde961f61838625177dd219a85f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"99e79d2e_4b20d2c2","updated":"2023-01-12 16:25:27.000000000","message":"Yeah, good enough start.","commit_id":"e8d351ddd8686e359261f3c05e72caeaa6976cdd"}],"openstack/network/v2/_proxy.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"5029e7b7bb3e592ffc212e1a14f25f510a2ee2da","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        :param address_group: Either the ID of an address group or a"},{"line_number":238,"context_line":"            :class:`~openstack.network.v2.address_group.AddressGroup` instance."},{"line_number":239,"context_line":"        :param attrs: The attributes to update on the address group"},{"line_number":240,"context_line":"            represented by ``value``."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        :returns: The updated address group"}],"source_content_type":"text/x-python","patch_set":3,"id":"890d8531_217efdde","line":239,"range":{"start_line":239,"start_character":8,"end_line":239,"end_character":21},"updated":"2022-12-16 11:15:31.000000000","message":"Some clarification on why I removed the dict type here. With it, type checkers expect that the values of the keyword arguments are of type dict:\n\nExpected type \u0027dict\u0027, got \u0027list[dict[str, Any]]\u0027 instead\n\nOf course that isn\u0027t the case in general. Also the \"**\" syntax in the signature makes clear already that attrs is a dict.","commit_id":"0f50d809b17749370f6eeec42e0e7d728eece6b0"}]}
