annotate setup.py @ 100:3eaa652b1216

Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
author cmlenz
date Wed, 13 Jun 2007 07:48:06 +0000
parents e68fd956ebce
children 3d9cb4beec8b
rev   line source
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
1 #!/usr/bin/env python
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
2 # -*- coding: utf-8 -*-
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
3 #
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
4 # Copyright (C) 2007 Edgewall Software
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
5 # All rights reserved.
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
6 #
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
7 # This software is licensed as described in the file COPYING, which
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
8 # you should have received as part of this distribution. The terms
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
9 # are also available at http://babel.edgewall.org/wiki/License.
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
10 #
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
11 # This software consists of voluntary contributions made by many
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
12 # individuals. For the exact contribution history, see the revision
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
13 # history and logs, available at http://babel.edgewall.org/log/.
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
14
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 3
diff changeset
15 from distutils.cmd import Command
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
16 import doctest
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
17 from glob import glob
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
18 import os
14
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 3
diff changeset
19 try:
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 3
diff changeset
20 from setuptools import setup
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 3
diff changeset
21 except ImportError:
29ef15a6fd75 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 3
diff changeset
22 from distutils.core import setup
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
23 import sys
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
24
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
25
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
26 class build_doc(Command):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
27 description = 'Builds the documentation'
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
28 user_options = [
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
29 ('without-apidocs', None,
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
30 "whether to skip the generation of API documentaton"),
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
31 ]
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
32 boolean_options = ['without-apidocs']
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
33
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
34 def initialize_options(self):
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
35 self.without_apidocs = False
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
36
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
37 def finalize_options(self):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
38 pass
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
39
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
40 def run(self):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
41 from docutils.core import publish_cmdline
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
42 from docutils.nodes import raw
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
43 from docutils.parsers import rst
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
44
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
45 docutils_conf = os.path.join('doc', 'docutils.conf')
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
46 epydoc_conf = os.path.join('doc', 'epydoc.conf')
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
47
42
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
48 try:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
49 from pygments import highlight
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
50 from pygments.lexers import get_lexer_by_name
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
51 from pygments.formatters import HtmlFormatter
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
52
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
53 def code_block(name, arguments, options, content, lineno,
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
54 content_offset, block_text, state, state_machine):
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
55 lexer = get_lexer_by_name(arguments[0])
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
56 html = highlight('\n'.join(content), lexer, HtmlFormatter())
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
57 return [raw('', html, format='html')]
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
58 code_block.arguments = (1, 0, 0)
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
59 code_block.options = {'language' : rst.directives.unchanged}
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
60 code_block.content = 1
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
61 rst.directives.register_directive('code-block', code_block)
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
62 except ImportError:
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
63 print 'Pygments not installed, syntax highlighting disabled'
cf94e70a77f3 Syntax highlighting for the docs.
cmlenz
parents: 14
diff changeset
64
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
65 for source in glob('doc/*.txt'):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
66 dest = os.path.splitext(source)[0] + '.html'
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
67 if not os.path.exists(dest) or \
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
68 os.path.getmtime(dest) < os.path.getmtime(source):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
69 print 'building documentation file %s' % dest
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
70 publish_cmdline(writer_name='html',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
71 argv=['--config=%s' % docutils_conf, source,
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
72 dest])
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
73
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
74 if not self.without_apidocs:
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
75 try:
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
76 from epydoc import cli
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
77 old_argv = sys.argv[1:]
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
78 sys.argv[1:] = [
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
79 '--config=%s' % epydoc_conf,
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
80 '--no-private', # epydoc bug, not read from config
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
81 '--simple-term',
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
82 '--verbose'
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
83 ]
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
84 cli.cli()
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
85 sys.argv[1:] = old_argv
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
86
100
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
87 except ImportError:
3eaa652b1216 Add `--without-apidocs` switch to `build_doc` command for quicker doc-edit/review cycles.
cmlenz
parents: 59
diff changeset
88 print 'epydoc not installed, skipping API documentation.'
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
89
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
90
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
91 class test_doc(Command):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
92 description = 'Tests the code examples in the documentation'
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
93 user_options = []
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
94
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
95 def initialize_options(self):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
96 pass
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
97
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
98 def finalize_options(self):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
99 pass
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
100
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
101 def run(self):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
102 for filename in glob('doc/*.txt'):
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
103 print 'testing documentation file %s' % filename
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
104 doctest.testfile(filename, False, optionflags=doctest.ELLIPSIS)
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
105
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
106
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
107 setup(
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
108 name = 'Babel',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
109 version = '0.1',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
110 description = 'Internationalization utilities',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
111 long_description = \
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
112 """A collection of tools for internationalizing Python applications.""",
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
113 author = 'Edgewall Software',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
114 author_email = 'info@edgewall.org',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
115 license = 'BSD',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
116 url = 'http://babel.edgewall.org/',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
117 download_url = 'http://babel.edgewall.org/wiki/Download',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
118 zip_safe = False,
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
119
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
120 classifiers = [
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
121 'Development Status :: 4 - Beta',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
122 'Environment :: Web Environment',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
123 'Intended Audience :: Developers',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
124 'License :: OSI Approved :: BSD License',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
125 'Operating System :: OS Independent',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
126 'Programming Language :: Python',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
127 'Topic :: Software Development :: Libraries :: Python Modules',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
128 ],
56
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
129 packages = ['babel', 'babel.messages'],
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
130 package_data = {'babel': ['localedata/*.dat']},
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
131 test_suite = 'babel.tests.suite',
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
132
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
133 entry_points = """
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
134 [console_scripts]
56
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
135 babel = babel.messages.frontend:main
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
136
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
137 [distutils.commands]
56
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
138 extract_messages = babel.messages.frontend:extract_messages
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
139 new_catalog = babel.messages.frontend:new_catalog
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
140
51
3664c93860f1 Support a `message_extractors` keyword argument directly in `setup()`. Closes #4.
cmlenz
parents: 42
diff changeset
141 [distutils.setup_keywords]
56
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
142 message_extractors = babel.messages.frontend:check_message_extractors
51
3664c93860f1 Support a `message_extractors` keyword argument directly in `setup()`. Closes #4.
cmlenz
parents: 42
diff changeset
143
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
144 [babel.extractors]
56
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
145 genshi = babel.messages.extract:extract_genshi
27d55a07c897 Rename the `babel.catalog` package to `babel.messages` for consistency with the other package names.
cmlenz
parents: 54
diff changeset
146 python = babel.messages.extract:extract_python
59
e68fd956ebce * The `extract_messages` distutils command now operators on configurable input directories again, instead of the complete current directory. The `input_dirs` default to the package directories.
cmlenz
parents: 56
diff changeset
147 ignore = babel.messages.extract:extract_nothing
3
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
148 """,
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
149
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
150 cmdclass = {'build_doc': build_doc, 'test_doc': test_doc}
e9eaddab598e Import of initial code base.
cmlenz
parents:
diff changeset
151 )
Copyright (C) 2012-2017 Edgewall Software