You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
8.9 KiB
234 lines
8.9 KiB
7 years ago
|
#!/usr/bin/env python
|
||
|
# $Id: setup.py 8147 2017-08-03 09:01:16Z grubert $
|
||
|
# Copyright: This file has been placed in the public domain.
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import glob
|
||
|
try:
|
||
|
from distutils.core import setup, Command
|
||
|
from distutils.command.build import build
|
||
|
from distutils.command.build_py import build_py
|
||
|
if sys.version_info >= (3,):
|
||
|
from distutils.command.build_py import build_py_2to3
|
||
|
from distutils.util import copydir_run_2to3
|
||
|
from distutils.command.install_data import install_data
|
||
|
from distutils.util import convert_path
|
||
|
from distutils import log
|
||
|
except ImportError:
|
||
|
print ('Error: The "distutils" standard module, which is required for the ')
|
||
|
print ('installation of Docutils, could not be found. You may need to ')
|
||
|
print ('install a package called "python-devel" (or similar) on your ')
|
||
|
print ('system using your package manager.')
|
||
|
sys.exit(1)
|
||
|
|
||
|
|
||
|
if sys.version_info >= (3,):
|
||
|
# copy-convert auxiliary python sources
|
||
|
class copy_build_py_2to3(build_py_2to3):
|
||
|
"""Copy/convert Python source files in given directories recursively.
|
||
|
|
||
|
Build py3k versions of the modules and packages.
|
||
|
Also copy 'test/' suite and run 2to3 on *.py files.
|
||
|
"""
|
||
|
manifest_in = """\
|
||
|
exclude *.pyc *~ .DS_Store
|
||
|
recursive-exclude * *.pyc *~ .DS_Store
|
||
|
recursive-exclude functional/output *
|
||
|
include functional/output/README.txt
|
||
|
prune .svn
|
||
|
prune */.svn
|
||
|
prune */*/.svn
|
||
|
prune */*/*/.svn
|
||
|
prune */*/*/*/.svn
|
||
|
prune */*/*/*/*/.svn
|
||
|
"""
|
||
|
def run(self):
|
||
|
# fix
|
||
|
print("build_py_2to3")
|
||
|
build_py_2to3.run(self)
|
||
|
print("copy/convert test suite")
|
||
|
loglevel = log.set_threshold(log.ERROR)
|
||
|
copydir_run_2to3('test', 'test3', template=self.manifest_in)
|
||
|
log.set_threshold(loglevel)
|
||
|
|
||
|
|
||
|
class smart_install_data(install_data):
|
||
|
# From <http://wiki.python.org/moin/DistutilsInstallDataScattered>,
|
||
|
# by Pete Shinners.
|
||
|
|
||
|
def run(self):
|
||
|
#need to change self.install_dir to the library dir
|
||
|
install_cmd = self.get_finalized_command('install')
|
||
|
self.install_dir = getattr(install_cmd, 'install_lib')
|
||
|
return install_data.run(self)
|
||
|
|
||
|
class build_data(Command):
|
||
|
|
||
|
def initialize_options(self):
|
||
|
pass
|
||
|
|
||
|
def finalize_options(self):
|
||
|
pass
|
||
|
|
||
|
def run(self):
|
||
|
build_py = self.get_finalized_command('build_py')
|
||
|
data_files = self.distribution.data_files
|
||
|
for f in data_files:
|
||
|
dir = convert_path(f[0])
|
||
|
dir = os.path.join(build_py.build_lib, dir)
|
||
|
self.mkpath(dir)
|
||
|
for data in f[1]:
|
||
|
data = convert_path(data)
|
||
|
self.copy_file(data, dir)
|
||
|
|
||
|
# let our build_data run
|
||
|
build.sub_commands.append(('build_data', lambda *a: True))
|
||
|
|
||
|
|
||
|
def do_setup():
|
||
|
kwargs = package_data.copy()
|
||
|
kwargs['classifiers'] = classifiers
|
||
|
# Install data files properly.
|
||
|
kwargs['cmdclass'] = {'build_data': build_data,
|
||
|
'install_data': smart_install_data}
|
||
|
# Auto-convert source code for Python 3
|
||
|
if sys.version_info >= (3,):
|
||
|
kwargs['cmdclass']['build_py'] = copy_build_py_2to3
|
||
|
else:
|
||
|
kwargs['cmdclass']['build_py'] = build_py
|
||
|
dist = setup(**kwargs)
|
||
|
return dist
|
||
|
|
||
|
s5_theme_files = []
|
||
|
for dir in glob.glob('docutils/writers/s5_html/themes/*'):
|
||
|
if os.path.isdir(dir):
|
||
|
theme_files = glob.glob('%s/*' % dir)
|
||
|
s5_theme_files.append((dir, theme_files))
|
||
|
|
||
|
package_data = {
|
||
|
'name': 'docutils',
|
||
|
'description': 'Docutils -- Python Documentation Utilities',
|
||
|
'long_description': """\
|
||
|
Docutils is a modular system for processing documentation
|
||
|
into useful formats, such as HTML, XML, and LaTeX. For
|
||
|
input Docutils supports reStructuredText, an easy-to-read,
|
||
|
what-you-see-is-what-you-get plaintext markup syntax.""", # wrap at col 60
|
||
|
'url': 'http://docutils.sourceforge.net/',
|
||
|
'version': '0.14',
|
||
|
'author': 'David Goodger',
|
||
|
'author_email': 'goodger@python.org',
|
||
|
'maintainer': 'docutils-develop list',
|
||
|
'maintainer_email': 'docutils-develop@lists.sourceforge.net',
|
||
|
'license': 'public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)',
|
||
|
'platforms': 'OS-independent',
|
||
|
'package_dir': {'docutils': 'docutils',
|
||
|
'docutils.tools': 'tools'},
|
||
|
'packages': ['docutils',
|
||
|
'docutils.languages',
|
||
|
'docutils.parsers',
|
||
|
'docutils.parsers.rst',
|
||
|
'docutils.parsers.rst.directives',
|
||
|
'docutils.parsers.rst.languages',
|
||
|
'docutils.readers',
|
||
|
# 'docutils.readers.python', # in the sandbox since 0.8
|
||
|
'docutils.transforms',
|
||
|
'docutils.utils',
|
||
|
'docutils.utils.math',
|
||
|
'docutils.writers',
|
||
|
'docutils.writers.html4css1',
|
||
|
'docutils.writers.html5_polyglot',
|
||
|
# 'docutils.writers.xhtml11', # moved to the sandbox
|
||
|
'docutils.writers.pep_html',
|
||
|
'docutils.writers.s5_html',
|
||
|
'docutils.writers.latex2e',
|
||
|
# 'docutils.writers.newlatex2e', # in the sandbox since 0.8
|
||
|
'docutils.writers.xetex',
|
||
|
'docutils.writers.odf_odt',
|
||
|
],
|
||
|
'data_files': ([('docutils/parsers/rst/include',
|
||
|
glob.glob('docutils/parsers/rst/include/*.txt')),
|
||
|
('docutils/writers/html5_polyglot',
|
||
|
['docutils/writers/html5_polyglot/minimal.css',
|
||
|
'docutils/writers/html5_polyglot/plain.css',
|
||
|
'docutils/writers/html5_polyglot/math.css',
|
||
|
'docutils/writers/html5_polyglot/template.txt']),
|
||
|
('docutils/writers/html4css1',
|
||
|
['docutils/writers/html4css1/html4css1.css',
|
||
|
'docutils/writers/html4css1/template.txt']),
|
||
|
('docutils/writers/latex2e',
|
||
|
['docutils/writers/latex2e/default.tex',
|
||
|
'docutils/writers/latex2e/titlepage.tex',
|
||
|
'docutils/writers/latex2e/xelatex.tex',]),
|
||
|
('docutils/writers/pep_html',
|
||
|
['docutils/writers/pep_html/pep.css',
|
||
|
'docutils/writers/pep_html/template.txt']),
|
||
|
('docutils/writers/s5_html/themes',
|
||
|
['docutils/writers/s5_html/themes/README.txt']),
|
||
|
('docutils/writers/odf_odt',
|
||
|
['docutils/writers/odf_odt/styles.odt']),
|
||
|
]
|
||
|
+ s5_theme_files),
|
||
|
'scripts' : ['tools/rst2html.py',
|
||
|
'tools/rst2html4.py',
|
||
|
'tools/rst2html5.py',
|
||
|
'tools/rst2s5.py',
|
||
|
'tools/rst2latex.py',
|
||
|
'tools/rst2xetex.py',
|
||
|
'tools/rst2man.py',
|
||
|
'tools/rst2xml.py',
|
||
|
'tools/rst2pseudoxml.py',
|
||
|
'tools/rstpep2html.py',
|
||
|
'tools/rst2odt.py',
|
||
|
'tools/rst2odt_prepstyles.py',
|
||
|
],}
|
||
|
"""Distutils setup parameters."""
|
||
|
|
||
|
classifiers = [
|
||
|
'Development Status :: 4 - Beta',
|
||
|
'Environment :: Console',
|
||
|
'Intended Audience :: End Users/Desktop',
|
||
|
'Intended Audience :: Other Audience',
|
||
|
'Intended Audience :: Developers',
|
||
|
'Intended Audience :: System Administrators',
|
||
|
'License :: Public Domain',
|
||
|
'License :: OSI Approved :: Python Software Foundation License',
|
||
|
'License :: OSI Approved :: BSD License',
|
||
|
'License :: OSI Approved :: GNU General Public License (GPL)',
|
||
|
'Operating System :: OS Independent',
|
||
|
'Programming Language :: Python :: 2.4',
|
||
|
'Programming Language :: Python :: 2.5',
|
||
|
'Programming Language :: Python :: 2.6',
|
||
|
'Programming Language :: Python :: 2.7',
|
||
|
'Programming Language :: Python :: 3',
|
||
|
'Topic :: Documentation',
|
||
|
'Topic :: Software Development :: Documentation',
|
||
|
'Topic :: Text Processing',
|
||
|
'Natural Language :: English', # main/default language, keep first
|
||
|
'Natural Language :: Afrikaans',
|
||
|
'Natural Language :: Catalan',
|
||
|
'Natural Language :: Chinese (Simplified)',
|
||
|
'Natural Language :: Chinese (Traditional)',
|
||
|
'Natural Language :: Czech',
|
||
|
'Natural Language :: Dutch',
|
||
|
'Natural Language :: Esperanto',
|
||
|
'Natural Language :: Finnish',
|
||
|
'Natural Language :: French',
|
||
|
'Natural Language :: Galician',
|
||
|
'Natural Language :: German',
|
||
|
'Natural Language :: Italian',
|
||
|
'Natural Language :: Japanese',
|
||
|
'Natural Language :: Polish',
|
||
|
'Natural Language :: Portuguese (Brazilian)',
|
||
|
'Natural Language :: Russian',
|
||
|
'Natural Language :: Slovak',
|
||
|
'Natural Language :: Spanish',
|
||
|
'Natural Language :: Swedish',
|
||
|
]
|
||
|
# BUG pypi did not like following languages
|
||
|
# 'Natural Language :: Lithuanian',
|
||
|
"""Trove classifiers for the Distutils "register" command."""
|
||
|
|
||
|
if __name__ == '__main__' :
|
||
|
do_setup()
|