[PATCH 1/3] scripts/qmp/qom-fuse: Unbreak import of QEMUMonitorProtocol

Markus Armbruster posted 3 patches 5 years, 6 months ago
Maintainers: Markus Armbruster <armbru@redhat.com>
[PATCH 1/3] scripts/qmp/qom-fuse: Unbreak import of QEMUMonitorProtocol
Posted by Markus Armbruster 5 years, 6 months ago
Commit c7b942d7f8 "scripts/qmp: Fix shebang and imports" messed with
it for reasons I don't quite understand.  I do understand how it fails
now: it neglects to import sys.  Fix that.

It now fails because it expects an old version of module fuse.  That's
next.

Fixes: c7b942d7f84ef54f266921bf7668d43f1f2c7c79
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 scripts/qmp/qom-fuse | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/qmp/qom-fuse b/scripts/qmp/qom-fuse
index 5fa6b3bf64..b7dabe8d65 100755
--- a/scripts/qmp/qom-fuse
+++ b/scripts/qmp/qom-fuse
@@ -13,7 +13,7 @@
 
 import fuse, stat
 from fuse import Fuse
-import os, posix
+import os, posix, sys
 from errno import *
 
 sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
@@ -134,7 +134,7 @@ class QOMFS(Fuse):
             yield fuse.Direntry(str(item['name']))
 
 if __name__ == '__main__':
-    import sys, os
+    import os
 
     fs = QOMFS(QEMUMonitorProtocol(os.environ['QMP_SOCKET']))
     fs.main(sys.argv)
-- 
2.26.2


Re: [PATCH 1/3] scripts/qmp/qom-fuse: Unbreak import of QEMUMonitorProtocol
Posted by Philippe Mathieu-Daudé 5 years, 6 months ago
On 7/23/20 4:27 PM, Markus Armbruster wrote:
> Commit c7b942d7f8 "scripts/qmp: Fix shebang and imports" messed with
> it for reasons I don't quite understand.  I do understand how it fails
> now: it neglects to import sys.  Fix that.

Oops I missed that.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> 
> It now fails because it expects an old version of module fuse.  That's
> next.
> 
> Fixes: c7b942d7f84ef54f266921bf7668d43f1f2c7c79
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  scripts/qmp/qom-fuse | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/qmp/qom-fuse b/scripts/qmp/qom-fuse
> index 5fa6b3bf64..b7dabe8d65 100755
> --- a/scripts/qmp/qom-fuse
> +++ b/scripts/qmp/qom-fuse
> @@ -13,7 +13,7 @@
>  
>  import fuse, stat
>  from fuse import Fuse
> -import os, posix
> +import os, posix, sys
>  from errno import *
>  
>  sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
> @@ -134,7 +134,7 @@ class QOMFS(Fuse):
>              yield fuse.Direntry(str(item['name']))
>  
>  if __name__ == '__main__':
> -    import sys, os
> +    import os
>  
>      fs = QOMFS(QEMUMonitorProtocol(os.environ['QMP_SOCKET']))
>      fs.main(sys.argv)
> 


Re: [PATCH 1/3] scripts/qmp/qom-fuse: Unbreak import of QEMUMonitorProtocol
Posted by John Snow 5 years, 6 months ago
On 7/23/20 10:27 AM, Markus Armbruster wrote:
> Commit c7b942d7f8 "scripts/qmp: Fix shebang and imports" messed with
> it for reasons I don't quite understand.  I do understand how it fails
> now: it neglects to import sys.  Fix that.
> 

Apologies. These scripts didn't appear to work because they don't have 
any clue where the script they are trying to import lives. I was working 
on a series that refactored ./python/qemu into a python package.

The back half of that series hasn't landed upstream yet, so the import 
refuddling looks an awful lot more arbitrary at the moment, but the idea 
is that the scripts SHOULD work without needing to explicitly set your 
PYTHONPATH. For the moment, I think that's better.

My ultimate end-game is to get most python scripts under ./python/ and 
checked with pylint/mypy etc. as it will help detect breaking changes if 
library routines change. I want to institute a tree-wide regime for 
python code management that has a unified vision about how imports work 
and so on.

I would hope that this would reduce confusion in the future about how to 
execute scripts, how to write import statements, etc.

Most of what I am doing is baby steps towards that.

> It now fails because it expects an old version of module fuse.  That's
> next.
> 

See also my commit message: "There's more wrong with these scripts; ..."

> Fixes: c7b942d7f84ef54f266921bf7668d43f1f2c7c79
> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Thanks:

Reviewed-by: John Snow <jsnow@redhat.com>

> ---
>   scripts/qmp/qom-fuse | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/qmp/qom-fuse b/scripts/qmp/qom-fuse
> index 5fa6b3bf64..b7dabe8d65 100755
> --- a/scripts/qmp/qom-fuse
> +++ b/scripts/qmp/qom-fuse
> @@ -13,7 +13,7 @@
>   
>   import fuse, stat
>   from fuse import Fuse
> -import os, posix
> +import os, posix, sys
>   from errno import *
>   
>   sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
> @@ -134,7 +134,7 @@ class QOMFS(Fuse):
>               yield fuse.Direntry(str(item['name']))
>   
>   if __name__ == '__main__':
> -    import sys, os
> +    import os
>   
>       fs = QOMFS(QEMUMonitorProtocol(os.environ['QMP_SOCKET']))
>       fs.main(sys.argv)
>