X Tutup
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import platform import sys from distutils.command.build import build from bpython import __version__, package_dir try: from setuptools import setup from setuptools.command.install import install as _install using_setuptools = True except ImportError: from distutils.core import setup from distutils.command.install import install as _install using_setuptools = False try: from distutils.command.build_py import build_py_2to3 as build_py except ImportError: from distutils.command.build_py import build_py try: from babel.messages.frontend import compile_catalog as _compile_catalog from babel.messages.frontend import extract_messages as _extract_messages from babel.messages.frontend import update_catalog as _update_catalog from babel.messages.frontend import init_catalog as _init_catalog using_translations = True except ImportError: using_translations = False try: import sphinx from sphinx.setup_command import BuildDoc if sphinx.__version__ == '1.1.2': # Sphinx 1.1.2 is buggy and building bpython with that version fails. # See #241. using_sphinx = False else: using_sphinx = True except ImportError: using_sphinx = False class install(_install): """Force install to run build target.""" def run(self): self.run_command('build') _install.run(self) cmdclass = dict(build_py=build_py, build=build, install=install) translations_dir = os.path.join(package_dir, 'translations') # localization options if using_translations: class compile_catalog(_compile_catalog): def initialize_options(self): """Simply set default domain and directory attributes to the correct path for bpython.""" _compile_catalog.initialize_options(self) self.domain = 'bpython' self.directory = translations_dir self.use_fuzzy = True class update_catalog(_update_catalog): def initialize_options(self): """Simply set default domain and directory attributes to the correct path for bpython.""" _update_catalog.initialize_options(self) self.domain = 'bpython' self.output_dir = translations_dir self.input_file = os.path.join(translations_dir, 'bpython.pot') class extract_messages(_extract_messages): def initialize_options(self): """Simply set default domain and output file attributes to the correct values for bpython.""" _extract_messages.initialize_options(self) self.domain = 'bpython' self.output_file = os.path.join(translations_dir, 'bpython.pot') class init_catalog(_init_catalog): def initialize_options(self): """Simply set default domain, input file and output directory attributes to the correct values for bpython.""" _init_catalog.initialize_options(self) self.domain = 'bpython' self.output_dir = translations_dir self.input_file = os.path.join(translations_dir, 'bpython.pot') build.sub_commands.insert(0, ('compile_catalog', None)) cmdclass['compile_catalog'] = compile_catalog cmdclass['extract_messages'] = extract_messages cmdclass['update_catalog'] = update_catalog cmdclass['init_catalog'] = init_catalog if using_sphinx: class BuildDocMan(BuildDoc): def initialize_options(self): BuildDoc.initialize_options(self) self.builder = 'man' self.source_dir = 'doc/sphinx/source' self.build_dir = 'build' build.sub_commands.insert(0, ('build_sphinx_man', None)) cmdclass['build_sphinx_man'] = BuildDocMan if platform.system() in ['FreeBSD', 'OpenBSD']: man_dir = 'man' else: man_dir = 'share/man' # manual pages man_pages = [ (os.path.join(man_dir, 'man1'), ['build/man/bpython.1']), (os.path.join(man_dir, 'man5'), ['build/man/bpython-config.5']), ] else: man_pages = [] data_files = [ # desktop shortcut (os.path.join('share', 'applications'), ['data/bpython.desktop']) ] data_files.extend(man_pages) extras_require = { 'urwid' : ['urwid'] } packages = ['bpython', 'bpython.test', 'bpython.translations', 'bpdb'] entry_points = { 'console_scripts': [ 'bpython = bpython.cli:main', 'bpython-urwid = bpython.urwid:main [urwid]' ] } scripts = [] if using_setuptools else ['data/bpython', 'data/bpython-urwid'] if sys.version_info[:2] >= (2, 6): # curtsies only supports 2.6 and onwards extras_require['curtsies'] = ['curtsies >=0.1.7, <0.2.0', 'greenlet'] extras_require['watch'] = ['watchdog'] packages.append("bpython.curtsiesfrontend") entry_points['console_scripts'].append( 'bpython-curtsies = bpython.curtsies:main [curtsies]') if not using_setuptools: scripts.append('data/bpython-curtsies') # translations mo_files = list() for language in os.listdir(translations_dir): mo_subpath = os.path.join(language, 'LC_MESSAGES', 'bpython.mo') if os.path.exists(os.path.join(translations_dir, mo_subpath)): mo_files.append(mo_subpath) setup( name="bpython", version = __version__, author = "Bob Farrell, Andreas Stuehrk et al.", author_email = "robertanthonyfarrell@gmail.com", description = "Fancy Interface to the Python Interpreter", license = "MIT/X", url = "http://www.bpython-interpreter.org/", long_description = """bpython is a fancy interface to the Python interpreter for Unix-like operating systems.""", install_requires = [ 'pygments', 'requests' ], extras_require = extras_require, tests_require = ['mock'], packages = packages, data_files = data_files, package_data = { 'bpython': ['logo.png', 'sample-config'], 'bpython.translations': mo_files, 'bpython.test': ['test.config', 'test.theme'] }, entry_points = entry_points, scripts = scripts, cmdclass = cmdclass, test_suite = 'bpython.test' ) # vim: fileencoding=utf-8 sw=4 ts=4 sts=4 ai et sta
X Tutup