X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=setup.py;h=856ec5b76d09155e5f5e0773c37b6f38f1a6232a;hb=be870827a84b6b440089580308966c8c09b59364;hp=b09a3805f7d60f18841d4e1e6f732d6e49e7d23b;hpb=99e5baa28f94c2dcd7d2bc4ddaa4095f86f58d42;p=jinja2.git diff --git a/setup.py b/setup.py index b09a380..856ec5b 100644 --- a/setup.py +++ b/setup.py @@ -1,69 +1,88 @@ # -*- coding: utf-8 -*- -import jinja -import os -import sys -import ez_setup -ez_setup.use_setuptools() +""" +Jinja2 +~~~~~~ -from distutils.command.build_ext import build_ext -from distutils.errors import CCompilerError, DistutilsError -from setuptools import setup, Extension, Feature -from inspect import getdoc +Jinja2 is a template engine written in pure Python. It provides a +`Django`_ inspired non-XML syntax but supports inline expressions and +an optional `sandboxed`_ environment. +Nutshell +-------- -def list_files(path): - for fn in os.listdir(path): - if fn.startswith('.'): - continue - fn = os.path.join(path, fn) - if os.path.isfile(fn): - yield fn +Here a small example of a Jinja template:: + {% extends 'base.html' %} + {% block title %}Memberlist{% endblock %} + {% block content %} + + {% endblock %} -class optional_build_ext(build_ext): +Philosophy +---------- - def run(self): - try: - build_ext.run(self) - except DistutilsError, e: - self.compiler = None - self._setup_error = e +Application logic is for the controller but don't try to make the life +for the template designer too hard by giving him too few functionality. - def build_extension(self, ext): - try: - if self.compiler is None: - raise self._setup_error - build_ext.build_extension(self, ext) - except CCompilerError, e: - print '=' * 79 - print 'INFORMATION' - print ' the speedup extension could not be compiled, Jinja will' - print ' fall back to the native python classes.' - print '=' * 79 - except: - e = sys.exc_info()[1] - print '=' * 79 - print 'WARNING' - print ' could not compile optional speedup extension. This is' - print ' is not a real problem because Jinja provides a native' - print ' implementation of those classes but for best performance' - print ' you could try to reinstall Jinja after fixing this' - print ' problem: %s' % e - print '=' * 79 +For more informations visit the new `Jinja2 webpage`_ and `documentation`_. + +.. _sandboxed: http://en.wikipedia.org/wiki/Sandbox_(computer_security) +.. _Django: http://www.djangoproject.com/ +.. _Jinja2 webpage: http://jinja.pocoo.org/ +.. _documentation: http://jinja.pocoo.org/2/documentation/ +""" +import sys + +from setuptools import setup, Extension, Feature + +debugsupport = Feature( + 'optional C debug support', + standard=False, + ext_modules = [ + Extension('jinja2._debugsupport', ['jinja2/_debugsupport.c']), + ], +) + + +# tell distribute to use 2to3 with our own fixers. +extra = {} +if sys.version_info >= (3, 0): + extra.update( + use_2to3=True, + use_2to3_fixers=['custom_fixers'] + ) + +# ignore the old '--with-speedups' flag +try: + speedups_pos = sys.argv.index('--with-speedups') +except ValueError: + pass +else: + sys.argv[speedups_pos] = '--with-debugsupport' + sys.stderr.write('*' * 74 + '\n') + sys.stderr.write('WARNING:\n') + sys.stderr.write(' the --with-speedups flag is deprecated, assuming ' + '--with-debugsupport\n') + sys.stderr.write(' For the actual speedups install the MarkupSafe ' + 'package.\n') + sys.stderr.write('*' * 74 + '\n') setup( - name='Jinja', - version='1.2', + name='Jinja2', + version='2.6', url='http://jinja.pocoo.org/', license='BSD', author='Armin Ronacher', author_email='armin.ronacher@active-4.com', description='A small but fast and easy to use stand-alone template ' 'engine written in pure python.', - long_description = getdoc(jinja), - # jinja is egg safe. But because we distribute the documentation - # in form of html and txt files it's a better idea to extract the files + long_description=__doc__, + # jinja is egg safe. But we hate eggs zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -72,36 +91,20 @@ setup( 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', + 'Programming Language :: Python :: 3', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules', 'Topic :: Text Processing :: Markup :: HTML' ], - keywords=['python.templating.engines'], - packages=['jinja', 'jinja.translators'], - data_files=[ - ('docs/html', list(list_files('docs/html'))), - ('docs/txt', list(list_files('docs/src'))) - ], - entry_points=''' - [python.templating.engines] - jinja = jinja.plugin:BuffetPlugin - ''', - extras_require={'plugin': ['setuptools>=0.6a2']}, - features={ - 'speedups': Feature( - 'optional C-speed enhancements', - standard=True, - ext_modules=[ - Extension('jinja._speedups', ['jinja/_speedups.c']) - ] - ), - 'extended-debugger': Feature( - 'extended debugger', - standard=True, - ext_modules=[ - Extension('jinja._debugger', ['jinja/_debugger.c']) - ] - ) - }, - cmdclass={'build_ext': optional_build_ext} + packages=['jinja2', 'jinja2.testsuite', 'jinja2.testsuite.res', + 'jinja2._markupsafe'], + extras_require={'i18n': ['Babel>=0.8']}, + test_suite='jinja2.testsuite.suite', + include_package_data=True, + entry_points=""" + [babel.extractors] + jinja2 = jinja2.ext:babel_extract[i18n] + """, + features={'debugsupport': debugsupport}, + **extra )