On Thu, Oct 30, 2025 at 10:45:32AM +0100, Thomas Huth wrote: > On 30/10/2025 10.42, Thomas Huth wrote: > > On 30/10/2025 10.33, Daniel P. Berrangé wrote: > > > On Thu, Oct 30, 2025 at 10:26:38AM +0100, Thomas Huth wrote: > > > > From: Thomas Huth <[email protected]> > > > > > > > > The argparse.FileType() type has been deprecated in the latest argparse > > > > version (e.g. the one from Fedora 43), now causing the test_bad_vmstate > > > > functional test to fail since there are unexpected strings in the > > > > output. > > > > Change the script to use pathlib.Path instead to fix the > > > > test_bad_vmstate > > > > test and to be prepared for the future when the deprecated FileType gets > > > > removed completely. > ... > > > > @@ -393,10 +394,10 @@ def main(): > > > > help='reverse the direction') > > > > args = parser.parse_args() > > > > - src_data = json.load(args.src) > > > > - dest_data = json.load(args.dest) > > > > - args.src.close() > > > > - args.dest.close() > > > > + with open(args.src, 'r', encoding='utf-8') as src_fh: > > > > + src_data = json.load(src_fh) > > > > + with open(args.dest, 'r', encoding='utf-8') as dst_fh: > > > > + dest_data = json.load(dst_fh) > > > > > > This could be > > > > > > src_data = json.load(args.src.read_text('utf-8')) > > > dest_data = json.load(args.dest.read_text('utf-8')) > > > > Does not work, looks like the load() function cannot deal with a string: > > > > $ scripts/vmstate-static-checker.py -s > > tests/data/vmstate-static-checker/ dump1.json -d > > tests/data/vmstate-static-checker/dump2.json > > Traceback (most recent call last): > > File "../scripts/vmstate-static-checker.py", line 439, in <module> > > sys.exit(main()) > > ~~~~^^ > > File "../scripts/vmstate-static-checker.py", line 397, in main > > src_data = json.load(args.src.read_text('utf-8')) > > File "/usr/lib64/python3.13/json/__init__.py", line 293, in load > > return loads(fp.read(), > > ^^^^^^^ > > AttributeError: 'str' object has no attribute 'read' > > Ok, there also seems to be a json.loads() function (with "s" at the end) > that seems to do the job ... but IMHO it would be better to continue using > the load() function here to let the json parser decide how to read the file.
ok, I don't mind that much Reviewed-by: Daniel P. Berrangé <[email protected]> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
