| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | #!/usr/bin/env python# -*- coding: utf-8 -*-from __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'],}py2exe_console = [{    "script": "./youtube_dl/__main__.py",    "dest_base": "youtube-dl",}]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,        )# Get the version from youtube_dl/version.py without importing the packageexec(compile(open('youtube_dl/version.py').read(),             'youtube_dl/version.py', 'exec'))setup(    name='youtube_dl',    version=__version__,    description='YouTube video downloader',    long_description='Small command-line program to download videos from'    ' YouTube.com and other video sites.',    url='https://github.com/rg3/youtube-dl',    author='Ricardo Garcia',    author_email='ytdl@yt-dl.org',    maintainer='Philipp Hagemeister',    maintainer_email='phihag@phihag.de',    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",    ],    cmdclass={'build_lazy_extractors': build_lazy_extractors},    **params)
 |