yt-dlp/setup.py

131 lines
3.7 KiB
Python
Raw Normal View History

2012-11-29 18:21:19 +00:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
2013-06-23 22:01:41 +00:00
import os.path
import warnings
2012-11-28 17:24:16 +00:00
import sys
try:
from setuptools import setup, Command
setuptools_available = True
except ImportError:
from distutils.core import setup, Command
setuptools_available = False
from distutils.spawn import spawn
try:
# This will create an exe that needs Microsoft Visual C++ 2008
# Redistributable Package
import py2exe
except ImportError:
if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':
print("Cannot import py2exe", file=sys.stderr)
exit(1)
py2exe_options = {
2012-03-25 21:48:53 +00:00
"bundle_files": 1,
"compressed": 1,
"optimize": 2,
"dist_dir": '.',
2015-10-23 22:10:28 +00:00
"dll_excludes": ['w9xpopen.exe', 'crypt32.dll'],
2012-03-25 21:48:53 +00:00
}
py2exe_console = [{
2012-12-07 10:39:08 +00:00
"script": "./youtube_dl/__main__.py",
2012-03-25 21:48:53 +00:00
"dest_base": "youtube-dl",
}]
py2exe_params = {
'console': py2exe_console,
'options': {"py2exe": py2exe_options},
'zipfile': None
}
2012-03-25 21:48:53 +00:00
if len(sys.argv) >= 2 and sys.argv[1] == 'py2exe':
params = py2exe_params
else:
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,
2012-12-07 10:39:08 +00:00
}
if setuptools_available:
params['entry_points'] = {'console_scripts': ['youtube-dl = youtube_dl:main']}
else:
params['scripts'] = ['bin/youtube-dl']
2012-12-07 10:39:08 +00:00
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,
)
2012-12-07 10:39:08 +00:00
# Get the version from youtube_dl/version.py without importing the package
exec(compile(open('youtube_dl/version.py').read(),
'youtube_dl/version.py', 'exec'))
2012-11-28 17:49:56 +00:00
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',
2013-10-19 09:14:20 +00:00
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'],
2012-12-07 10:39:08 +00:00
# Provokes warning on most systems (why?!)
# test_suite = 'nose.collector',
# test_requires = ['nosetest'],
2012-03-25 21:48:53 +00:00
classifiers=[
2012-11-29 18:21:19 +00:00
"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",
2014-11-26 12:08:42 +00:00
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
2016-06-10 23:14:22 +00:00
"Programming Language :: Python :: 3.5",
2012-12-07 10:39:08 +00:00
],
cmdclass={'build_lazy_extractors': build_lazy_extractors},
**params
)