#!/usr/bin/env python3
-import os.path
-import subprocess
+# Allow execution from anywhere
+import os
import sys
+
+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
+
+import subprocess
import warnings
try:
from devscripts.utils import read_file, read_version
-VERSION = read_version()
+VERSION = read_version(varname='_pkg_version')
DESCRIPTION = 'A youtube-dl fork with additional features and patches'
'compressed': 1,
'optimize': 2,
'dist_dir': './dist',
- 'excludes': ['Crypto', 'Cryptodome'], # py2exe cannot import Crypto
+ 'excludes': [
+ # py2exe cannot import Crypto
+ 'Crypto',
+ 'Cryptodome',
+ # py2exe appears to confuse this with our socks library.
+ # We don't use pysocks and urllib3.contrib.socks would fail to import if tried.
+ 'urllib3.contrib.socks'
+ ],
'dll_excludes': ['w9xpopen.exe', 'crypt32.dll'],
# Modules that are only imported dynamically must be added here
- 'includes': ['yt_dlp.compat._legacy'],
+ 'includes': ['yt_dlp.compat._legacy', 'yt_dlp.compat._deprecated',
+ 'yt_dlp.utils._legacy', 'yt_dlp.utils._deprecated'],
},
'zipfile': None,
}
params = {'data_files': data_files}
if setuptools_available:
- params['entry_points'] = {'console_scripts': ['yt-dlp = yt_dlp:main']}
+ params['entry_points'] = {
+ 'console_scripts': ['yt-dlp = yt_dlp:main'],
+ 'pyinstaller40': ['hook-dirs = yt_dlp.__pyinstaller:get_hook_dirs'],
+ }
else:
params['scripts'] = ['yt-dlp']
return params
params = build_params()
setup(
- name='yt-dlp',
+ name='yt-dlp', # package name (do not change/remove comment)
version=VERSION,
maintainer='pukkandan',
maintainer_email='pukkandan.ytdlp@gmail.com',
url='https://github.com/yt-dlp/yt-dlp',
packages=packages(),
install_requires=REQUIREMENTS,
- python_requires='>=3.7',
+ python_requires='>=3.8',
project_urls={
'Documentation': 'https://github.com/yt-dlp/yt-dlp#readme',
'Source': 'https://github.com/yt-dlp/yt-dlp',
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Programming Language :: Python',
- 'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: Implementation',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',