json2cmake icon indicating copy to clipboard operation
json2cmake copied to clipboard

TypeError: 'set' object is not subscriptable

Open jackL999 opened this issue 2 years ago • 3 comments

Ubuntu 20.04.3 LTS Python 3.8.10

json2cmake generates the following error

Traceback (most recent call last): File "/home/jk2/.local/bin/json2cmake", line 8, in sys.exit(main()) File "/home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py", line 223, in main database.write(args.outfile, name=args.name) File "/home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py", line 122, in write name = os.path.basename(os.path.commonprefix(files).rstrip("/_")) File "/usr/lib/python3.8/genericpath.py", line 76, in commonprefix if not isinstance(m[0], (list, tuple)): TypeError: 'set' object is not subscriptable

jackL999 avatar Sep 03 '21 19:09 jackL999

edit /home/jk2/.local/lib/python3.8/site-packages/json2cmake/init.py

modify

name = os.path.basename(os.path.commonprefix(list(files)).rstrip("/_"))

yifengyou avatar Jun 18 '22 14:06 yifengyou

Looks like the author has not been active since 2021, but I submitted a pull request with this modification anyway.

owinebar avatar Jul 03 '23 19:07 owinebar

Awesome. Thank you. This fixes the same crash on MacOS, too.

It then bombed out on directories with spaces in names, but this is far, far from the first program with that issue. That's further than I'd hoped to get extracting an ESP32 build from PlatformIO and trying to shove it into Cmake.

robertlipe avatar Jul 29 '23 14:07 robertlipe