Popen,
cached_method,
deprecation_warning,
+ remove_end,
shell_quote,
system_identifier,
traverse_obj,
return 'py2exe', path
if sys._MEIPASS == os.path.dirname(path):
return f'{sys.platform}_dir', path
- if sys.platform == 'darwin' and version_tuple(platform.mac_ver()[0]) < (10, 15):
- return 'darwin_legacy_exe', path
- return f'{sys.platform}_exe', path
+ if sys.platform == 'darwin':
+ machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else ''
+ else:
+ machine = f'_{platform.machine().lower()}'
+ # Ref: https://en.wikipedia.org/wiki/Uname#Examples
+ if machine[1:] in ('x86', 'x86_64', 'amd64', 'i386', 'i686'):
+ machine = '_x86' if platform.architecture()[0][:2] == '32' else ''
+ return f'{remove_end(sys.platform, "32")}{machine}_exe', path
path = os.path.dirname(__file__)
if isinstance(__loader__, zipimporter):
_FILE_SUFFIXES = {
'zip': '',
'py2exe': '_min.exe',
- 'win32_exe': '.exe',
+ 'win_exe': '.exe',
+ 'win_x86_exe': '_x86.exe',
'darwin_exe': '_macos',
'darwin_legacy_exe': '_macos_legacy',
'linux_exe': '_linux',
+ 'linux_aarch64_exe': '_linux_aarch64',
+ 'linux_armv7l_exe': '_linux_armv7l',
}
_NON_UPDATEABLE_REASONS = {
@functools.cached_property
def release_name(self):
"""The release filename"""
- label = _FILE_SUFFIXES[detect_variant()]
- if label and platform.architecture()[0][:2] == '32':
- label = f'_x86{label}'
- return f'yt-dlp{label}'
+ return f'yt-dlp{_FILE_SUFFIXES[detect_variant()]}'
@functools.cached_property
def release_hash(self):