)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"94de7502315b1759bcd9dcc2a12b6a16b19bbf2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3cf01cd0_9e7dc317","updated":"2026-10-22 16:20:34.000000000","message":"This is off-by-default and, as I understand, similar to the implementation proposed for cyborg. I\u0027m happy to give this a go.","commit_id":"2d93452362d9040f00d5e24ee9d127d76aff2890"}],"HACKING.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"94de7502315b1759bcd9dcc2a12b6a16b19bbf2f","unresolved":true,"context_lines":[{"line_number":56,"context_line":"Imports"},{"line_number":57,"context_line":"-------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"- [H302] Do not import objects, only modules; import the module and reference"},{"line_number":60,"context_line":"  objects through it as ``module.Name`` (off by default). A name is treated as"},{"line_number":61,"context_line":"  an object when it is written in CamelCase; all-caps names are assumed to be"},{"line_number":62,"context_line":"  constants and left alone (*)"},{"line_number":63,"context_line":"- [H301] Do not import more than one module per line (*)"},{"line_number":64,"context_line":"- [H303] Do not use wildcard ``*`` import (*)"},{"line_number":65,"context_line":"- [H304] Do not make relative imports"},{"line_number":66,"context_line":"- [H306] Alphabetically order your imports by the full module path."}],"source_content_type":"text/x-rst","patch_set":1,"id":"488cb770_2174af0e","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":56},"updated":"2026-10-22 16:20:34.000000000","message":"nit:\n\n```suggestion\n- [H301] Do not import more than one module per line (*)\n- [H302] Do not import objects, only modules; import the module and reference\n  objects through it as ``module.Name`` (off by default). A name is treated as\n  an object when it is written in CamelCase; all-caps names are assumed to be\n  constants and left alone (*)\n```","commit_id":"2d93452362d9040f00d5e24ee9d127d76aff2890"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"5b79d289957894fe657a328fea331cd8eee38f53","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Imports"},{"line_number":57,"context_line":"-------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"- [H302] Do not import objects, only modules; import the module and reference"},{"line_number":60,"context_line":"  objects through it as ``module.Name`` (off by default). A name is treated as"},{"line_number":61,"context_line":"  an object when it is written in CamelCase; all-caps names are assumed to be"},{"line_number":62,"context_line":"  constants and left alone (*)"},{"line_number":63,"context_line":"- [H301] Do not import more than one module per line (*)"},{"line_number":64,"context_line":"- [H303] Do not use wildcard ``*`` import (*)"},{"line_number":65,"context_line":"- [H304] Do not make relative imports"},{"line_number":66,"context_line":"- [H306] Alphabetically order your imports by the full module path."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1657bf1b_10ee596b","line":63,"range":{"start_line":59,"start_character":0,"end_line":63,"end_character":56},"in_reply_to":"488cb770_2174af0e","updated":"2026-10-23 06:25:17.000000000","message":"Done","commit_id":"2d93452362d9040f00d5e24ee9d127d76aff2890"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1b17f33f6d1a042133356df9038ee93682a26315","unresolved":true,"context_lines":[{"line_number":59,"context_line":"- [H301] Do not import more than one module per line (*)"},{"line_number":60,"context_line":"- [H302] Do not import objects, only modules; import the module and reference"},{"line_number":61,"context_line":"  objects through it as ``module.Name`` (off by default). A name is treated as"},{"line_number":62,"context_line":"  an object when it is written in CamelCase; all-caps names are assumed to be"},{"line_number":63,"context_line":"  constants and left alone (*)"},{"line_number":64,"context_line":"- [H303] Do not use wildcard ``*`` import (*)"},{"line_number":65,"context_line":"- [H304] Do not make relative imports"},{"line_number":66,"context_line":"- [H306] Alphabetically order your imports by the full module path."}],"source_content_type":"text/x-rst","patch_set":2,"id":"380086f4_9efeae86","line":63,"range":{"start_line":62,"start_character":46,"end_line":63,"end_character":30},"updated":"2026-10-27 18:59:09.000000000","message":"so constantas are not allowed to be imported eitehr.","commit_id":"945ad53ce742e438ebb1a7234a6bd29e4445052f"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"37764a208d27f3fa5170cec6dd8fc0b4c7e2d74a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"- [H301] Do not import more than one module per line (*)"},{"line_number":60,"context_line":"- [H302] Do not import objects, only modules; import the module and reference"},{"line_number":61,"context_line":"  objects through it as ``module.Name`` (off by default). A name is treated as"},{"line_number":62,"context_line":"  an object when it is written in CamelCase; all-caps names are assumed to be"},{"line_number":63,"context_line":"  constants and left alone (*)"},{"line_number":64,"context_line":"- [H303] Do not use wildcard ``*`` import (*)"},{"line_number":65,"context_line":"- [H304] Do not make relative imports"},{"line_number":66,"context_line":"- [H306] Alphabetically order your imports by the full module path."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5b8079c3_dff790ea","line":63,"range":{"start_line":62,"start_character":46,"end_line":63,"end_character":30},"in_reply_to":"380086f4_9efeae86","updated":"2026-10-28 07:20:30.000000000","message":"Done","commit_id":"945ad53ce742e438ebb1a7234a6bd29e4445052f"}],"hacking/checks/imports.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1b17f33f6d1a042133356df9038ee93682a26315","unresolved":true,"context_lines":[{"line_number":149,"context_line":"    Okay: from os import path"},{"line_number":150,"context_line":"    Okay: import os.path"},{"line_number":151,"context_line":"    Okay: from nova.compute import rpcapi"},{"line_number":152,"context_line":"    Okay: from x.y import SOME_CONSTANT"},{"line_number":153,"context_line":"    Okay: from sqlalchemy import Column"},{"line_number":154,"context_line":"    Okay: from collections.abc import Mapping"},{"line_number":155,"context_line":"    Okay: from nova.compute import ComputeManager  # noqa"}],"source_content_type":"text/x-python","patch_set":2,"id":"f8a47f8a_64e2832a","line":152,"updated":"2026-10-27 18:59:09.000000000","message":"this shoudl be an error","commit_id":"945ad53ce742e438ebb1a7234a6bd29e4445052f"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"37764a208d27f3fa5170cec6dd8fc0b4c7e2d74a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    Okay: from os import path"},{"line_number":150,"context_line":"    Okay: import os.path"},{"line_number":151,"context_line":"    Okay: from nova.compute import rpcapi"},{"line_number":152,"context_line":"    Okay: from x.y import SOME_CONSTANT"},{"line_number":153,"context_line":"    Okay: from sqlalchemy import Column"},{"line_number":154,"context_line":"    Okay: from collections.abc import Mapping"},{"line_number":155,"context_line":"    Okay: from nova.compute import ComputeManager  # noqa"}],"source_content_type":"text/x-python","patch_set":2,"id":"a87966b1_3fe2cebb","line":152,"in_reply_to":"f8a47f8a_64e2832a","updated":"2026-10-28 07:20:30.000000000","message":"Done","commit_id":"945ad53ce742e438ebb1a7234a6bd29e4445052f"}]}
