)]}'
{"tacker/api/extensions.py":[{"author":{"_account_id":26588,"name":"Hiroyuki Jo","email":"joxyuki@gmail.com","username":"joxyuki"},"change_message_id":"a7e9884aa87f0698016be0798fe91871b83d40d3","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                mod_name, file_ext \u003d os.path.splitext(os.path.split(f)[-1])"},{"line_number":541,"context_line":"                ext_path \u003d os.path.join(path, f)"},{"line_number":542,"context_line":"                if file_ext.lower() \u003d\u003d \u0027.py\u0027 and not mod_name.startswith(\u0027_\u0027):"},{"line_number":543,"context_line":"                    mod \u003d utils.load_module(mod_name, ext_path)"},{"line_number":544,"context_line":"                    ext_name \u003d mod_name[0].upper() + mod_name[1:]"},{"line_number":545,"context_line":"                    new_ext_class \u003d getattr(mod, ext_name, None)"},{"line_number":546,"context_line":"                    if not new_ext_class:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_dc4abcaa","line":543,"range":{"start_line":543,"start_character":20,"end_line":543,"end_character":63},"updated":"2019-07-10 07:28:59.000000000","message":"According to [1], load_module method is deprecated since 3.6.\n\n[1] https://cpython-test-docs.readthedocs.io/en/latest/library/importlib.html#module-importlib.machinery\n\nHow about use oslo_utils.importutils.import_module instead of new load function.\ni.e.:\n\n  from olso_utils import importutils\n  ...\n  mod \u003d importutils.import_module(ext_path)","commit_id":"ae898f9b7d0331a07da3d3ded2f8365b4cd8423d"},{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"248aa265a84e87bbe18e64c692cfef17d5e05e06","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                mod_name, file_ext \u003d os.path.splitext(os.path.split(f)[-1])"},{"line_number":541,"context_line":"                ext_path \u003d os.path.join(path, f)"},{"line_number":542,"context_line":"                if file_ext.lower() \u003d\u003d \u0027.py\u0027 and not mod_name.startswith(\u0027_\u0027):"},{"line_number":543,"context_line":"                    mod \u003d importutils.import_module(ext_path)"},{"line_number":544,"context_line":"                    ext_name \u003d mod_name[0].upper() + mod_name[1:]"},{"line_number":545,"context_line":"                    new_ext_class \u003d getattr(mod, ext_name, None)"},{"line_number":546,"context_line":"                    if not new_ext_class:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_d4146146","line":543,"range":{"start_line":543,"start_character":26,"end_line":543,"end_character":60},"updated":"2019-08-03 09:11:15.000000000","message":"importutils.import_module does not takes file path, but module path name","commit_id":"ff3020c80c2e667d7d33ec6e02917ff21d8b6a83"}]}
