| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | #!/usr/bin/env python# coding: utf-8from __future__ import print_functionimport os.pathimport warningsimport systry:    from setuptools import setup, Command    setuptools_available = Trueexcept ImportError:    from distutils.core import setup, Command    setuptools_available = Falsefrom distutils.spawn import spawntry:    # This will create an exe that needs Microsoft Visual C++ 2008    # Redistributable Package    import py2exeexcept ImportError:    if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':        print('Cannot import py2exe', file=sys.stderr)        exit(1)py2exe_options = {    'bundle_files': 1,    'compressed': 1,    'optimize': 2,    'dist_dir': '.',    'dll_excludes': ['w9xpopen.exe', 'crypt32.dll'],}# Get the version from youtube_dl/version.py without importing the packageexec(compile(open('youtube_dl/version.py').read(),             'youtube_dl/version.py', 'exec'))DESCRIPTION = 'YouTube video downloader'LONG_DESCRIPTION = 'Command-line program to download videos from YouTube.com and other video sites'py2exe_console = [{    'script': './youtube_dl/__main__.py',    'dest_base': 'youtube-dl',    'version': __version__,    'description': DESCRIPTION,    'comments': LONG_DESCRIPTION,    'product_name': 'youtube-dl',    'product_version': __version__,}]py2exe_params = {    'console': py2exe_console,    'options': {'py2exe': py2exe_options},    'zipfile': None}if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':    params = py2exe_paramselse:    files_spec = [        ('etc/bash_completion.d', ['youtube-dl.bash-completion']),        ('etc/fish/completions', ['youtube-dl.fish']),        ('share/doc/youtube_dl', ['README.txt']),        ('share/man/man1', ['youtube-dl.1'])    ]    root = os.path.dirname(os.path.abspath(__file__))    data_files = []    for dirname, files in files_spec:        resfiles = []        for fn in files:            if not os.path.exists(fn):                warnings.warn('Skipping file %s since it is not present. Type  make  to build all automatically generated files.' % fn)            else:                resfiles.append(fn)        data_files.append((dirname, resfiles))    params = {        'data_files': data_files,    }    if setuptools_available:        params['entry_points'] = {'console_scripts': ['youtube-dl = youtube_dl:main']}    else:        params['scripts'] = ['bin/youtube-dl']class build_lazy_extractors(Command):    description = 'Build the extractor lazy loading module'    user_options = []    def initialize_options(self):        pass    def finalize_options(self):        pass    def run(self):        spawn(            [sys.executable, 'devscripts/make_lazy_extractors.py', 'youtube_dl/extractor/lazy_extractors.py'],            dry_run=self.dry_run,        )setup(    name='youtube_dl',    version=__version__,    description=DESCRIPTION,    long_description=LONG_DESCRIPTION,    url='https://github.com/rg3/youtube-dl',    author='Ricardo Garcia',    author_email='ytdl@yt-dl.org',    maintainer='Sergey M.',    maintainer_email='dstftw@gmail.com',    packages=[        'youtube_dl',        'youtube_dl.extractor', 'youtube_dl.downloader',        'youtube_dl.postprocessor'],    # Provokes warning on most systems (why?!)    # test_suite = 'nose.collector',    # test_requires = ['nosetest'],    classifiers=[        'Topic :: Multimedia :: Video',        'Development Status :: 5 - Production/Stable',        'Environment :: Console',        'License :: Public Domain',        'Programming Language :: Python :: 2.6',        'Programming Language :: Python :: 2.7',        'Programming Language :: Python :: 3',        'Programming Language :: Python :: 3.2',        'Programming Language :: Python :: 3.3',        'Programming Language :: Python :: 3.4',        'Programming Language :: Python :: 3.5',        'Programming Language :: Python :: 3.6',    ],    cmdclass={'build_lazy_extractors': build_lazy_extractors},    **params)
 |