mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[utils] Fix "write_json_file" for unicode names in python 2.x (fixes #4125)
This commit is contained in:
		@@ -73,10 +73,22 @@ def preferredencoding():
 | 
				
			|||||||
def write_json_file(obj, fn):
 | 
					def write_json_file(obj, fn):
 | 
				
			||||||
    """ Encode obj as JSON and write it to fn, atomically """
 | 
					    """ Encode obj as JSON and write it to fn, atomically """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if sys.version_info < (3, 0):
 | 
				
			||||||
 | 
					        encoding = get_filesystem_encoding()
 | 
				
			||||||
 | 
					        # os.path.basename returns a bytes object, but NamedTemporaryFile
 | 
				
			||||||
 | 
					        # will fail if the filename contains non ascii characters unless we
 | 
				
			||||||
 | 
					        # use a unicode object
 | 
				
			||||||
 | 
					        path_basename = lambda f: os.path.basename(fn).decode(encoding)
 | 
				
			||||||
 | 
					        # the same for os.path.dirname
 | 
				
			||||||
 | 
					        path_dirname = lambda f: os.path.dirname(fn).decode(encoding)
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        path_basename = os.path.basename
 | 
				
			||||||
 | 
					        path_dirname = os.path.dirname
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    args = {
 | 
					    args = {
 | 
				
			||||||
        'suffix': '.tmp',
 | 
					        'suffix': '.tmp',
 | 
				
			||||||
        'prefix': os.path.basename(fn) + '.',
 | 
					        'prefix': path_basename(fn) + '.',
 | 
				
			||||||
        'dir': os.path.dirname(fn),
 | 
					        'dir': path_dirname(fn),
 | 
				
			||||||
        'delete': False,
 | 
					        'delete': False,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user