╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\libretrofuzz\__main__.py │ │ :970 in mainfuzzall │ │ │ │ 967 │ │ │ error("Cancelled by user, exiting") │ │ 968 │ │ │ raise Exit() │ │ 969 │ │ │ ❱ 970 │ asyncio.run(runit(), debug=False) │ │ 971 │ │ 972 │ │ 973 async def downloadgamenames(client, system, nub_verbose): │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ _ = WindowsPath('C:/Program Files/RetroArch/playlists') │ │ │ │ address = 'https://thumbnails.libretro.com' │ │ │ │ before = None │ │ │ │ cfg = WindowsPath('C:/Program Files/RetroArch/retroarch.cfg') │ │ │ │ dryrun = False │ │ │ │ filters = [] │ │ │ │ hack = False │ │ │ │ inSystems = [ │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - │ │ │ │ CPC.lpl'), │ │ │ │ │ │ 'Amstrad - CPC' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - │ │ │ │ GX4000.lpl'), │ │ │ │ │ │ 'Amstrad - GX4000' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 2600.lpl'), │ │ │ │ │ │ 'Atari - 2600' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 5200.lpl'), │ │ │ │ │ │ 'Atari - 5200' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 7800.lpl'), │ │ │ │ │ │ 'Atari - 7800' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 8-bit.lpl'), │ │ │ │ │ │ 'Atari - 8-bit' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ Jaguar.lpl'), │ │ │ │ │ │ 'Atari - Jaguar' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ Lynx.lpl'), │ │ │ │ │ │ 'Atari - Lynx' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - ST.lpl'), │ │ │ │ │ │ 'Atari - ST' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Bandai - │ │ │ │ WonderSwan Color.lpl'), │ │ │ │ │ │ 'Bandai - WonderSwan Color' │ │ │ │ │ ), │ │ │ │ │ ... +59 │ │ │ │ ] │ │ │ │ limit = 1 │ │ │ │ nofail = False │ │ │ │ noimage = False │ │ │ │ nomerge = False │ │ │ │ nometa = True │ │ │ │ notInSystems = [ │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Commodore - │ │ │ │ CDTV.lpl'), │ │ │ │ │ │ 'Commodore - CDTV' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Commodore - │ │ │ │ PET.lpl'), │ │ │ │ │ │ 'Commodore - PET' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Infocom - │ │ │ │ Z-Machine.lpl'), │ │ │ │ │ │ 'Infocom - Z-Machine' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Nintendo - │ │ │ │ e-Reader.lpl'), │ │ │ │ │ │ 'Nintendo - e-Reader' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Sharp - X1.lpl'), │ │ │ │ │ │ 'Sharp - X1' │ │ │ │ │ ) │ │ │ │ ] │ │ │ │ nub_verbose = False │ │ │ │ playlist = WindowsPath('C:/Program Files/RetroArch/playlists/Sharp - X1.lpl') │ │ │ │ playlists = [ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - CPC.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - │ │ │ │ GX4000.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - 2600.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - 5200.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - 7800.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - 8-bit.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - Jaguar.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - Lynx.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - ST.lpl'), │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Bandai - WonderSwan │ │ │ │ Color.lpl'), │ │ │ │ │ ... +59 │ │ │ │ ] │ │ │ │ runit = .runit at 0x0000028B9A21D1C0> │ │ │ │ score = 90 │ │ │ │ system = 'Sharp - X1' │ │ │ │ systems = [ │ │ │ │ │ 'Amstrad - CPC', │ │ │ │ │ 'Amstrad - GX4000', │ │ │ │ │ 'Atari - 2600', │ │ │ │ │ 'Atari - 5200', │ │ │ │ │ 'Atari - 7800', │ │ │ │ │ 'Atari - 8-bit', │ │ │ │ │ 'Atari - Jaguar', │ │ │ │ │ 'Atari - Lynx', │ │ │ │ │ 'Atari - ST', │ │ │ │ │ 'Atomiswave', │ │ │ │ │ ... +106 │ │ │ │ ] │ │ │ │ thumbnails_dir = WindowsPath('D:/thumbnails') │ │ │ │ verbose = False │ │ │ │ wait_after = None │ │ │ │ wait_before = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py:194 in run │ │ │ │ 191 │ │ │ "asyncio.run() cannot be called from a running event loop") │ │ 192 │ │ │ 193 │ with Runner(debug=debug, loop_factory=loop_factory) as runner: │ │ ❱ 194 │ │ return runner.run(main) │ │ 195 │ │ 196 │ │ 197 def _cancel_all_tasks(loop): │ │ │ │ ╭────────────────────────────────────── locals ──────────────────────────────────────╮ │ │ │ debug = False │ │ │ │ loop_factory = None │ │ │ │ main = .runit at 0x0000028B99B51C90> │ │ │ │ runner = │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py:118 in run │ │ │ │ 115 │ │ │ │ 116 │ │ self._interrupt_count = 0 │ │ 117 │ │ try: │ │ ❱ 118 │ │ │ return self._loop.run_until_complete(task) │ │ 119 │ │ except exceptions.CancelledError: │ │ 120 │ │ │ if self._interrupt_count > 0: │ │ 121 │ │ │ │ uncancel = getattr(task, "uncancel", None) │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ context = <_contextvars.Context object at 0x0000028B9A955880> │ │ │ │ coro = .runit at 0x0000028B99B51C90> │ │ │ │ self = │ │ │ │ sigint_handler = functools.partial(>, main_task=.runit() done, defined at │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\li… │ │ │ │ exception=ZeroDivisionError('division by zero')>) │ │ │ │ task = .runit() done, │ │ │ │ defined at │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\li… │ │ │ │ exception=ZeroDivisionError('division by zero')> │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\asyncio\base_events.py:664 in │ │ run_until_complete │ │ │ │ 661 │ │ if not future.done(): │ │ 662 │ │ │ raise RuntimeError('Event loop stopped before Future completed.') │ │ 663 │ │ │ │ ❱ 664 │ │ return future.result() │ │ 665 │ │ │ 666 │ def stop(self): │ │ 667 │ │ """Stop running the event loop. │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ future = .runit() done, defined at │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\libretro… │ │ │ │ exception=ZeroDivisionError('division by zero')> │ │ │ │ new_task = False │ │ │ │ self = │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\libretrofuzz\__main__.py │ │ :942 in runit │ │ │ │ 939 │ │ │ │ │ │ echo(style(f"{system}.lpl -> {system}", bold=True)) │ │ 940 │ │ │ │ │ │ names, dbs = readPlaylistAndPrepareDirectories(playlist, tmpdir, │ │ 941 │ │ │ │ │ │ try: │ │ ❱ 942 │ │ │ │ │ │ │ await downloader( │ │ 943 │ │ │ │ │ │ │ │ names, │ │ 944 │ │ │ │ │ │ │ │ dbs, │ │ 945 │ │ │ │ │ │ │ │ system, │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ before = None │ │ │ │ client = │ │ │ │ dbs = [ │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ ... +210092 │ │ │ │ ] │ │ │ │ dryrun = False │ │ │ │ filters = [] │ │ │ │ hack = False │ │ │ │ inSystems = [ │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - │ │ │ │ CPC.lpl'), │ │ │ │ │ │ 'Amstrad - CPC' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Amstrad - │ │ │ │ GX4000.lpl'), │ │ │ │ │ │ 'Amstrad - GX4000' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 2600.lpl'), │ │ │ │ │ │ 'Atari - 2600' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 5200.lpl'), │ │ │ │ │ │ 'Atari - 5200' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 7800.lpl'), │ │ │ │ │ │ 'Atari - 7800' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ 8-bit.lpl'), │ │ │ │ │ │ 'Atari - 8-bit' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ Jaguar.lpl'), │ │ │ │ │ │ 'Atari - Jaguar' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - │ │ │ │ Lynx.lpl'), │ │ │ │ │ │ 'Atari - Lynx' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Atari - ST.lpl'), │ │ │ │ │ │ 'Atari - ST' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Bandai - │ │ │ │ WonderSwan Color.lpl'), │ │ │ │ │ │ 'Bandai - WonderSwan Color' │ │ │ │ │ ), │ │ │ │ │ ... +59 │ │ │ │ ] │ │ │ │ limit = 1 │ │ │ │ names = [ │ │ │ │ │ '! (2002)(Booze Design - Oneway)', │ │ │ │ │ '!++ (199x)(20th Century Composers - Scoop)', │ │ │ │ │ '!dead hires charset (2020-11-28)(Padua)', │ │ │ │ │ '!omeD (1988-09-11)(Byterapers)', │ │ │ │ │ '#01 - DNA Warrior (1989)(The Yattering)', │ │ │ │ │ '#02 - LED Storm (1989)(The Yattering)', │ │ │ │ │ '#03 - Tomcat (1989)(The Yattering)', │ │ │ │ │ '#04 - Incredible Shrinking Sphere (1989)(The Yattering)', │ │ │ │ │ '#05 - Dominator Preview Loader (1989)(The Yattering)', │ │ │ │ │ '#2 v abc (2018)(Reset Magazine)[cr FLT]', │ │ │ │ │ ... +210092 │ │ │ │ ] │ │ │ │ nofail = False │ │ │ │ noimage = False │ │ │ │ nomerge = False │ │ │ │ nometa = True │ │ │ │ notInSystems = [ │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Commodore - │ │ │ │ CDTV.lpl'), │ │ │ │ │ │ 'Commodore - CDTV' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Commodore - │ │ │ │ PET.lpl'), │ │ │ │ │ │ 'Commodore - PET' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Infocom - │ │ │ │ Z-Machine.lpl'), │ │ │ │ │ │ 'Infocom - Z-Machine' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Nintendo - │ │ │ │ e-Reader.lpl'), │ │ │ │ │ │ 'Nintendo - e-Reader' │ │ │ │ │ ), │ │ │ │ │ ( │ │ │ │ │ │ WindowsPath('C:/Program Files/RetroArch/playlists/Sharp - X1.lpl'), │ │ │ │ │ │ 'Sharp - X1' │ │ │ │ │ ) │ │ │ │ ] │ │ │ │ nub_verbose = False │ │ │ │ playlist = WindowsPath('C:/Program Files/RetroArch/playlists/Commodore - 64.lpl') │ │ │ │ score = 90 │ │ │ │ system = 'Commodore - 64' │ │ │ │ thumbnails_dir = WindowsPath('D:/thumbnails') │ │ │ │ tmpdir = 'D:\\thumbnails\\libretrofuzzcunfaijr' │ │ │ │ verbose = False │ │ │ │ wait_after = None │ │ │ │ wait_before = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\libretrofuzz\__main__.py │ │ :1100 in downloader │ │ │ │ 1097 │ │ # normalization can make it so that the winner has the same score as the runner │ │ 1098 │ │ # so enabling 'limit 2+' can improve results if the server is badly organized │ │ 1099 │ │ # however, do not do it by default, since it's a bit confusing. │ │ ❱ 1100 │ │ result = process.extract(name, remote_names, scorer=scorer, limit=limit or 1) │ │ 1101 │ │ assert result │ │ 1102 │ │ _, best_score, _ = result[0] │ │ 1103 │ │ winners = [x for x in result if x[1] == best_score and x[1] >= score] │ │ │ │ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │ │ │ before = None │ │ │ │ client = │ │ │ │ dbs = [ │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ 'Commodore - 64', │ │ │ │ │ ... +210092 │ │ │ │ ] │ │ │ │ destination = 'Commodore - 64' │ │ │ │ dryrun = False │ │ │ │ failure = 0 │ │ │ │ filters = [] │ │ │ │ hack = False │ │ │ │ limit = 1 │ │ │ │ name = '! (2002)(Booze Design - Oneway)' │ │ │ │ names = [ │ │ │ │ │ '! (2002)(Booze Design - Oneway)', │ │ │ │ │ '!++ (199x)(20th Century Composers - Scoop)', │ │ │ │ │ '!dead hires charset (2020-11-28)(Padua)', │ │ │ │ │ '!omeD (1988-09-11)(Byterapers)', │ │ │ │ │ '#01 - DNA Warrior (1989)(The Yattering)', │ │ │ │ │ '#02 - LED Storm (1989)(The Yattering)', │ │ │ │ │ '#03 - Tomcat (1989)(The Yattering)', │ │ │ │ │ '#04 - Incredible Shrinking Sphere (1989)(The Yattering)', │ │ │ │ │ '#05 - Dominator Preview Loader (1989)(The Yattering)', │ │ │ │ │ '#2 v abc (2018)(Reset Magazine)[cr FLT]', │ │ │ │ │ ... +210092 │ │ │ │ ] │ │ │ │ nofail = False │ │ │ │ noimage = False │ │ │ │ nomerge = False │ │ │ │ nometa = True │ │ │ │ norm = .norm at 0x0000028BA2F5A480> │ │ │ │ norm_local = .norm_local at 0x0000028BA2F5A520> │ │ │ │ normcache = { │ │ │ │ │ '! (2002)(Booze Design - Oneway)': ('', '', [''], [''], ''), │ │ │ │ │ '!++ (199x)(20th Century Composers - Scoop)': ( │ │ │ │ │ │ '', │ │ │ │ │ │ '', │ │ │ │ │ │ [''], │ │ │ │ │ │ [''], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ '!dead hires charset (2020-11-28)(Padua)': ( │ │ │ │ │ │ 'dead hires charset', │ │ │ │ │ │ 'deadhirescharset', │ │ │ │ │ │ ['dead hires charset'], │ │ │ │ │ │ ['deadhirescharset'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ '!omeD (1988-09-11)(Byterapers)': ( │ │ │ │ │ │ 'ome d', │ │ │ │ │ │ 'omed', │ │ │ │ │ │ ['ome d'], │ │ │ │ │ │ ['omed'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ '#01 - DNA Warrior (1989)(The Yattering)': ( │ │ │ │ │ │ '1 dna warrior', │ │ │ │ │ │ '1dnawarrior', │ │ │ │ │ │ ['1', 'dna warrior'], │ │ │ │ │ │ ['1', 'dnawarrior'], │ │ │ │ │ │ '1' │ │ │ │ │ ), │ │ │ │ │ '#02 - LED Storm (1989)(The Yattering)': ( │ │ │ │ │ │ '2 led storm', │ │ │ │ │ │ '2ledstorm', │ │ │ │ │ │ ['2', 'led storm'], │ │ │ │ │ │ ['2', 'ledstorm'], │ │ │ │ │ │ '2' │ │ │ │ │ ), │ │ │ │ │ '#03 - Tomcat (1989)(The Yattering)': ( │ │ │ │ │ │ '3 tomcat', │ │ │ │ │ │ '3tomcat', │ │ │ │ │ │ ['3', 'tomcat'], │ │ │ │ │ │ ['3', 'tomcat'], │ │ │ │ │ │ '3' │ │ │ │ │ ), │ │ │ │ │ '#04 - Incredible Shrinking Sphere (1989)(The Yattering)': ( │ │ │ │ │ │ '4 incredible shrinking sphere', │ │ │ │ │ │ '4incredibleshrinkingsphere', │ │ │ │ │ │ ['4', 'incredible shrinking sphere'], │ │ │ │ │ │ ['4', 'incredibleshrinkingsphere'], │ │ │ │ │ │ '4' │ │ │ │ │ ), │ │ │ │ │ '#05 - Dominator Preview Loader (1989)(The Yattering)': ( │ │ │ │ │ │ '5 dominator preview loader', │ │ │ │ │ │ '5dominatorpreviewloader', │ │ │ │ │ │ ['5', 'dominator preview loader'], │ │ │ │ │ │ ['5', 'dominatorpreviewloader'], │ │ │ │ │ │ '5' │ │ │ │ │ ), │ │ │ │ │ '#2 v abc (2018)(Reset Magazine)[cr FLT]': ( │ │ │ │ │ │ '2 v abc', │ │ │ │ │ │ '2vabc', │ │ │ │ │ │ ['2 v abc'], │ │ │ │ │ │ ['2vabc'], │ │ │ │ │ │ '2' │ │ │ │ │ ), │ │ │ │ │ ... +196135 │ │ │ │ } │ │ │ │ normcache2 = { │ │ │ │ │ 'Cosmic Relief - Professor Renegade to the Rescue (USA)': ( │ │ │ │ │ │ 'cosmic relief professor renegade to rescue', │ │ │ │ │ │ 'cosmicreliefprofessorrenegadetorescue', │ │ │ │ │ │ ['cosmic relief', 'professor renegade to rescue'], │ │ │ │ │ │ ['cosmicrelief', 'professorrenegadetorescue'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Premier II (Europe)': ( │ │ │ │ │ │ 'premier 2', │ │ │ │ │ │ 'premier2', │ │ │ │ │ │ ['premier 2'], │ │ │ │ │ │ ['premier2'], │ │ │ │ │ │ '2' │ │ │ │ │ ), │ │ │ │ │ 'Crystal Kingdom Dizzy (Europe)': ( │ │ │ │ │ │ 'crystal kingdom dizzy', │ │ │ │ │ │ 'crystalkingdomdizzy', │ │ │ │ │ │ ['crystal kingdom dizzy'], │ │ │ │ │ │ ['crystalkingdomdizzy'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Frogger 64 (Europe)': ( │ │ │ │ │ │ 'frogger 64', │ │ │ │ │ │ 'frogger64', │ │ │ │ │ │ ['frogger 64'], │ │ │ │ │ │ ['frogger64'], │ │ │ │ │ │ '64' │ │ │ │ │ ), │ │ │ │ │ 'Forgotten Worlds (Europe)': ( │ │ │ │ │ │ 'forgotten worlds', │ │ │ │ │ │ 'forgottenworlds', │ │ │ │ │ │ ['forgotten worlds'], │ │ │ │ │ │ ['forgottenworlds'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Grand Prix Circuit (USA)': ( │ │ │ │ │ │ 'grand prix circuit', │ │ │ │ │ │ 'grandprixcircuit', │ │ │ │ │ │ ['grand prix circuit'], │ │ │ │ │ │ ['grandprixcircuit'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Silent Service - The Submarine Simulation (USA) (RapidLok 6)': ( │ │ │ │ │ │ 'silent service submarine simulation', │ │ │ │ │ │ 'silentservicesubmarinesimulation', │ │ │ │ │ │ ['silent service', 'submarine simulation'], │ │ │ │ │ │ ['silentservice', 'submarinesimulation'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Summer Challenge (USA)': ( │ │ │ │ │ │ 'summer challenge', │ │ │ │ │ │ 'summerchallenge', │ │ │ │ │ │ ['summer challenge'], │ │ │ │ │ │ ['summerchallenge'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Kikstart (USA, Europe)': ( │ │ │ │ │ │ 'kikstart', │ │ │ │ │ │ 'kikstart', │ │ │ │ │ │ ['kikstart'], │ │ │ │ │ │ ['kikstart'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ 'Pawn, The (USA, Europe) (v2.3)': ( │ │ │ │ │ │ 'pawn', │ │ │ │ │ │ 'pawn', │ │ │ │ │ │ ['pawn'], │ │ │ │ │ │ ['pawn'], │ │ │ │ │ │ '' │ │ │ │ │ ), │ │ │ │ │ ... +3146 │ │ │ │ } │ │ │ │ nub_verbose = False │ │ │ │ remote_names = { │ │ │ │ │ 'Cosmic Relief - Professor Renegade to the Rescue (USA)', │ │ │ │ │ 'Premier II (Europe)', │ │ │ │ │ 'Crystal Kingdom Dizzy (Europe)', │ │ │ │ │ 'Frogger 64 (Europe)', │ │ │ │ │ 'Forgotten Worlds (Europe)', │ │ │ │ │ 'Grand Prix Circuit (USA)', │ │ │ │ │ 'Silent Service - The Submarine Simulation (USA) (RapidLok 6)', │ │ │ │ │ 'Summer Challenge (USA)', │ │ │ │ │ 'Kikstart (USA, Europe)', │ │ │ │ │ 'Pawn, The (USA, Europe) (v2.3)', │ │ │ │ │ ... +3146 │ │ │ │ } │ │ │ │ score = 90 │ │ │ │ scorer = │ │ │ │ short_names = False │ │ │ │ strfy_runtime = .strfy_runtime at 0x0000028BA1548400> │ │ │ │ success = 0 │ │ │ │ system = 'Commodore - 64' │ │ │ │ thumbnails_dir = WindowsPath('D:/thumbnails') │ │ │ │ thumbs = Thumbs( │ │ │ │ │ Named_Boxarts={ │ │ │ │ │ │ '007 - A View to a Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '007 - Licence to Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '007 - Live and Let Die (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '007 - Living Daylights, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '007 - Spy Who Loved Me, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '007 - The Living Daylights (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/007%20-%… │ │ │ │ │ │ '100,000 Pyramid, The (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/100%2C00… │ │ │ │ │ │ '10th Frame (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/10th%20F… │ │ │ │ │ │ '10th Frame (USA) (Tape Port Dongle)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/10th%20F… │ │ │ │ │ │ '11-A-Side Soccer (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Boxarts/11-A-Sid… │ │ │ │ │ │ ... +2844 │ │ │ │ │ }, │ │ │ │ │ Named_Titles={ │ │ │ │ │ │ '007 - A View to a Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '007 - Licence to Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '007 - Live and Let Die (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '007 - Living Daylights, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '007 - Spy Who Loved Me, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '007 - The Living Daylights (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/007%20-%2… │ │ │ │ │ │ '100,000 Pyramid, The (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/100%2C000… │ │ │ │ │ │ '10th Frame (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/10th%20Fr… │ │ │ │ │ │ '10th Frame (USA) (Tape Port Dongle)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/10th%20Fr… │ │ │ │ │ │ '11-A-Side Soccer (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Titles/11-A-Side… │ │ │ │ │ │ ... +2818 │ │ │ │ │ }, │ │ │ │ │ Named_Snaps={ │ │ │ │ │ │ '007 - A View to a Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '007 - Licence to Kill (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '007 - Live and Let Die (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '007 - Living Daylights, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '007 - Spy Who Loved Me, The (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '007 - The Living Daylights (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/007%20-%20… │ │ │ │ │ │ '100,000 Pyramid, The (USA, Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/100%2C000%… │ │ │ │ │ │ '10th Frame (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/10th%20Fra… │ │ │ │ │ │ '10th Frame (USA) (Tape Port Dongle)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/10th%20Fra… │ │ │ │ │ │ '11-A-Side Soccer (Europe)': │ │ │ │ 'https://thumbnails.libretro.com/Commodore%20-%2064/Named_Snaps/11-A-Side%… │ │ │ │ │ │ ... +2982 │ │ │ │ │ } │ │ │ │ ) │ │ │ │ tmpdir = 'D:\\thumbnails\\libretrofuzzcunfaijr' │ │ │ │ verbose = False │ │ │ │ wait_after = None │ │ │ │ wait_before = None │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ in rapidfuzz.process_cpp_impl.extract:1002 │ │ │ │ in rapidfuzz.process_cpp_impl.py_extract_list:938 │ │ │ │ C:\Users\Mini\AppData\Local\Programs\Python\Python312\Lib\site-packages\libretrofuzz\__main__.py │ │ :340 in __call__ │ │ │ │ 337 │ │ │ │ return DEF_SCORE + rest_of_score │ │ 338 │ │ │ │ 339 │ │ rest_of_score = increment_common_number * 0.01 * cnbrs # 100 gives 1 │ │ ❱ 340 │ │ common_prop = len(os.path.commonprefix([name_ns, other_ns])) / len(name_ns) │ │ 341 │ │ rest_of_score += increment_common_length * common_prop │ │ 342 │ │ # give a penality if you got here and the name you're checking against │ │ 343 │ │ # already has a perfect match in the playlist being processed. This usually │ │ │ │ ╭────────────────────────────────────────── locals ──────────────────────────────────────────╮ │ │ │ _ = ['cosmic relief', 'professor renegade to rescue'] │ │ │ │ cnbrs = 100.0 │ │ │ │ digits = '' │ │ │ │ increment_common_length = 9.7 │ │ │ │ increment_common_number = 0.3 │ │ │ │ name = '' │ │ │ │ name_ns = '' │ │ │ │ other = 'cosmic relief professor renegade to rescue' │ │ │ │ other_digits = '' │ │ │ │ other_ns = 'cosmicreliefprofessorrenegadetorescue' │ │ │ │ other_ns_subs = ['cosmicrelief', 'professorrenegadetorescue'] │ │ │ │ remaining = 10 │ │ │ │ rest_of_score = 0.3 │ │ │ │ score_cutoff = 0 │ │ │ │ self = │ │ │ │ sub_ns = 'professorrenegadetorescue' │ │ │ │ sum_ns = 'cosmicreliefprofessorrenegadetorescue' │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ZeroDivisionError: division by zero