Edgewall Software

source: tags/0.4.1/setup.py

Last change on this file was 550, checked in by cmlenz, 16 years ago

Bump up version number of 0.4.x branch.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 4.0 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3#
4# Copyright (C) 2006 Edgewall Software
5# All rights reserved.
6#
7# This software is licensed as described in the file COPYING, which
8# you should have received as part of this distribution. The terms
9# are also available at http://genshi.edgewall.org/wiki/License.
10#
11# This software consists of voluntary contributions made by many
12# individuals. For the exact contribution history, see the revision
13# history and logs, available at http://genshi.edgewall.org/log/.
14
15from distutils.cmd import Command
16import doctest
17from glob import glob
18import os
19try:
20    from setuptools import setup
21except ImportError:
22    from distutils.core import setup
23import sys
24
25
26class build_doc(Command):
27    description = 'Builds the documentation'
28    user_options = []
29
30    def initialize_options(self):
31        pass
32
33    def finalize_options(self):
34        pass
35
36    def run(self):
37        from docutils.core import publish_cmdline
38        docutils_conf = os.path.join('doc', 'docutils.conf')
39        epydoc_conf = os.path.join('doc', 'epydoc.conf')
40
41        for source in glob('doc/*.txt'):
42            dest = os.path.splitext(source)[0] + '.html'
43            if not os.path.exists(dest) or \
44                   os.path.getmtime(dest) < os.path.getmtime(source):
45                print 'building documentation file %s' % dest
46                publish_cmdline(writer_name='html',
47                                argv=['--config=%s' % docutils_conf, source,
48                                      dest])
49
50        try:
51            from epydoc import cli
52            old_argv = sys.argv[1:]
53            sys.argv[1:] = [
54                '--config=%s' % epydoc_conf,
55                '--no-private', # epydoc bug, not read from config
56                '--simple-term',
57                '--verbose'
58            ]
59            cli.cli()
60            sys.argv[1:] = old_argv
61
62        except ImportError:
63            print 'epydoc not installed, skipping API documentation.'
64
65
66class test_doc(Command):
67    description = 'Tests the code examples in the documentation'
68    user_options = []
69
70    def initialize_options(self):
71        pass
72
73    def finalize_options(self):
74        pass
75
76    def run(self):
77        for filename in glob('doc/*.txt'):
78            print 'testing documentation file %s' % filename
79            doctest.testfile(filename, False, optionflags=doctest.ELLIPSIS)
80
81
82setup(
83    name = 'Genshi',
84    version = '0.4.1',
85    description = 'A toolkit for stream-based generation of output for the web',
86    long_description = \
87"""Genshi is a Python library that provides an integrated set of
88components for parsing, generating, and processing HTML, XML or
89other textual content for output generation on the web. The major
90feature is a template language, which is heavily inspired by Kid.""",
91    author = 'Edgewall Software',
92    author_email = 'info@edgewall.org',
93    license = 'BSD',
94    url = 'http://genshi.edgewall.org/',
95    download_url = 'http://genshi.edgewall.org/wiki/Download',
96    zip_safe = True,
97
98    classifiers = [
99        'Development Status :: 4 - Beta',
100        'Environment :: Web Environment',
101        'Intended Audience :: Developers',
102        'License :: OSI Approved :: BSD License',
103        'Operating System :: OS Independent',
104        'Programming Language :: Python',
105        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
106        'Topic :: Software Development :: Libraries :: Python Modules',
107        'Topic :: Text Processing :: Markup :: HTML',
108        'Topic :: Text Processing :: Markup :: XML'
109    ],
110    keywords = ['python.templating.engines'],
111    packages = ['genshi', 'genshi.filters', 'genshi.template'],
112    test_suite = 'genshi.tests.suite',
113
114    extras_require = {'plugin': ['setuptools>=0.6a2']},
115    entry_points = """
116    [python.templating.engines]
117    genshi = genshi.template.plugin:MarkupTemplateEnginePlugin[plugin]
118    genshi-markup = genshi.template.plugin:MarkupTemplateEnginePlugin[plugin]
119    genshi-text = genshi.template.plugin:TextTemplateEnginePlugin[plugin]
120    """,
121
122    cmdclass={'build_doc': build_doc, 'test_doc': test_doc}
123)
Note: See TracBrowser for help on using the repository browser.