ytmp4 / pytubefix /file_system.py
chipling's picture
Upload 106 files
44bafb2 verified
windows = ['Windows', 'NTFS', 'FAT32', 'exFAT', 'ReFS']
linux = ['Linux', 'ext2', 'ext3', 'ext4', 'Btrfs', 'XFS', 'ZFS']
macOS = ['macOS', 'APFS', 'HFS+']
bsd_unix = ['BSD', 'UFS']
network_filesystems = ['CIFS', 'SMB']
windows_translation = str.maketrans({
'\\': '',
'/': '',
'?': '',
':': '',
'*': '',
'"': '',
'<': '',
'>': '',
'|': '',
})
linux_translation = str.maketrans({
'/': '',
})
macos_translation = str.maketrans({
'/': '',
})
bsd_translation = str.maketrans({
'/': '',
})
network_filesystems_translation = str.maketrans({
'\\': '',
'/': '',
'?': '',
':': '',
'*': '',
'"': '',
'<': '',
'>': '',
'|': '',
})
def file_system_verify(file_type) -> dict:
"""
Returns a translation table to remove invalid characters for a specified file system type.
This function identifies the file system type and returns a translation table for removing
characters that are not allowed in filenames for that specific file system.
Args:
file_type (str): The type of file system being checked. Supported file systems include:
- Windows: NTFS, FAT32, exFAT, ReFS
- Linux: ext2, ext3, ext4, Btrfs, XFS, ZFS
- macOS: APFS, HFS+
- BSD/UNIX: UFS
- Network Filesystems: CIFS, SMB
Returns:
dict: A translation table where invalid characters are mapped to an empty string.
Example:
>>> ys = yt.streams.get_highest_resolution()
>>> ys.download(file_system='ext4')
Raises:
None, but prints a message if the file system type is not recognized.
"""
if file_type in windows:
return windows_translation
elif file_type in linux:
return linux_translation
elif file_type in macOS:
return macos_translation
elif file_type in bsd_unix:
return bsd_translation
elif file_type in network_filesystems:
return network_filesystems_translation