Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 159 lines (137 sloc) 5.051 kB
de478f6 @mitsuhiko [svn] some small updates to make jinja performing better
authored
1 # -*- coding: utf-8 -*-
5829306 @mitsuhiko moved docstring into setup.py, this fixes #297
authored
2 """
3 jinja
4 ~~~~~
5
6 Jinja is a `sandboxed`_ template engine written in pure Python. It
7 provides a `Django`_ like non-XML syntax and compiles templates into
8 executable python code. It's basically a combination of Django templates
9 and python code.
10
11 Nutshell
12 --------
13
14 Here a small example of a Jinja template::
15
16 {% extends 'base.html' %}
17 {% block title %}Memberlist{% endblock %}
18 {% block content %}
19 <ul>
20 {% for user in users %}
21 <li><a href="{{ user.url|e }}">{{ user.username|e }}</a></li>
22 {% endfor %}
23 </ul>
24 {% endblock %}
25
26 Philosophy
27 ----------
28
29 Application logic is for the controller but don't try to make the life
30 for the template designer too hard by giving him too few functionality.
31
32 For more informations visit the new `jinja webpage`_ and `documentation`_.
33
34 Note
35 ----
36
37 This is the Jinja 1.0 release which is completely incompatible with the
38 old "pre 1.0" branch. The old branch will still receive security updates
39 and bugfixes but the 1.0 branch will be the only version that receives
40 support.
41
42 If you have an application that uses Jinja 0.9 and won't be updated in
43 the near future the best idea is to ship a Jinja 0.9 checkout together
44 with the application.
45
46 The `Jinja tip`_ is installable via `easy_install` with ``easy_install
47 Jinja==dev``.
48
49 .. _sandboxed: http://en.wikipedia.org/wiki/Sandbox_(computer_security)
50 .. _Django: http://www.djangoproject.com/
51 .. _jinja webpage: http://jinja.pocoo.org/
52 .. _documentation: http://jinja.pocoo.org/documentation/index.html
53 .. _Jinja tip: http://dev.pocoo.org/hg/jinja-main/archive/tip.tar.gz#egg=Jinja-dev
54 """
0830e25 @mitsuhiko [svn] moved www out of jinja trunk and updated setup.py file
authored
55 import os
d15a4dc @mitsuhiko [svn] updated Jinja setup.py for (hopefully for) win32 compatibility
authored
56 import sys
0830e25 @mitsuhiko [svn] moved www out of jinja trunk and updated setup.py file
authored
57 import ez_setup
58 ez_setup.use_setuptools()
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
59
60 from distutils.command.build_ext import build_ext
bc3d2d8 @mitsuhiko fixed a couple of errors with the c extensions build process on windows
authored
61 from distutils.errors import CCompilerError, DistutilsError
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
62 from setuptools import setup, Extension, Feature
de478f6 @mitsuhiko [svn] some small updates to make jinja performing better
authored
63
0830e25 @mitsuhiko [svn] moved www out of jinja trunk and updated setup.py file
authored
64
e21ced2 @mitsuhiko [svn] again jinja setup.py update. works now
authored
65 def list_files(path):
66 for fn in os.listdir(path):
67 if fn.startswith('.'):
68 continue
69 fn = os.path.join(path, fn)
70 if os.path.isfile(fn):
71 yield fn
72
73
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
74 class optional_build_ext(build_ext):
75
bc3d2d8 @mitsuhiko fixed a couple of errors with the c extensions build process on windows
authored
76 def run(self):
77 try:
78 build_ext.run(self)
79 except DistutilsError, e:
80 self.compiler = None
81 self._setup_error = e
82
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
83 def build_extension(self, ext):
84 try:
bc3d2d8 @mitsuhiko fixed a couple of errors with the c extensions build process on windows
authored
85 if self.compiler is None:
86 raise self._setup_error
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
87 build_ext.build_extension(self, ext)
88 except CCompilerError, e:
89 print '=' * 79
90 print 'INFORMATION'
d15a4dc @mitsuhiko [svn] updated Jinja setup.py for (hopefully for) win32 compatibility
authored
91 print ' the speedup extension could not be compiled, Jinja will'
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
92 print ' fall back to the native python classes.'
93 print '=' * 79
d15a4dc @mitsuhiko [svn] updated Jinja setup.py for (hopefully for) win32 compatibility
authored
94 except:
95 e = sys.exc_info()[1]
96 print '=' * 79
97 print 'WARNING'
98 print ' could not compile optional speedup extension. This is'
99 print ' is not a real problem because Jinja provides a native'
100 print ' implementation of those classes but for best performance'
101 print ' you could try to reinstall Jinja after fixing this'
102 print ' problem: %s' % e
103 print '=' * 79
ee2c18e @mitsuhiko [svn] added c implementation of the jinja context class.
authored
104
105
de478f6 @mitsuhiko [svn] some small updates to make jinja performing better
authored
106 setup(
015b0c9 @mitsuhiko some documentation changes
authored
107 name='Jinja',
1c19919 @mitsuhiko tip is now going towards 1.3
authored
108 version='1.3',
015b0c9 @mitsuhiko some documentation changes
authored
109 url='http://jinja.pocoo.org/',
110 license='BSD',
111 author='Armin Ronacher',
112 author_email='armin.ronacher@active-4.com',
113 description='A small but fast and easy to use stand-alone template '
114 'engine written in pure python.',
5829306 @mitsuhiko moved docstring into setup.py, this fixes #297
authored
115 long_description = __doc__,
e21ced2 @mitsuhiko [svn] again jinja setup.py update. works now
authored
116 # jinja is egg safe. But because we distribute the documentation
117 # in form of html and txt files it's a better idea to extract the files
015b0c9 @mitsuhiko some documentation changes
authored
118 zip_safe=False,
119 classifiers=[
de478f6 @mitsuhiko [svn] some small updates to make jinja performing better
authored
120 'Development Status :: 5 - Production/Stable',
121 'Environment :: Web Environment',
122 'Intended Audience :: Developers',
123 'License :: OSI Approved :: BSD License',
124 'Operating System :: OS Independent',
125 'Programming Language :: Python',
8ebf1f9 @mitsuhiko [svn] doc update, setup.py update, added turbogears plugin
authored
126 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
127 'Topic :: Software Development :: Libraries :: Python Modules',
128 'Topic :: Text Processing :: Markup :: HTML'
129 ],
015b0c9 @mitsuhiko some documentation changes
authored
130 keywords=['python.templating.engines'],
21dce51 @mitsuhiko added jinja.contrib to setup.py
authored
131 packages=['jinja', 'jinja.translators', 'jinja.contrib'],
015b0c9 @mitsuhiko some documentation changes
authored
132 data_files=[
99e5baa @mitsuhiko some more small release changes
authored
133 ('docs/html', list(list_files('docs/html'))),
72bb257 @mitsuhiko [svn] added doc notes to the installation instructions
authored
134 ('docs/txt', list(list_files('docs/src')))
0830e25 @mitsuhiko [svn] moved www out of jinja trunk and updated setup.py file
authored
135 ],
2158091 @mitsuhiko [svn] various updates i haven't checked in so far (see the diff of th…
authored
136 entry_points='''
137 [python.templating.engines]
138 jinja = jinja.plugin:BuffetPlugin
139 ''',
015b0c9 @mitsuhiko some documentation changes
authored
140 extras_require={'plugin': ['setuptools>=0.6a2']},
141 features={
a7804ef @mitsuhiko [svn] added "debugger of awesomeness" :D
authored
142 'speedups': Feature(
143 'optional C-speed enhancements',
825e522 @mitsuhiko some more doc changes in jinja for the upcoming release
authored
144 standard=True,
145 ext_modules=[
a7804ef @mitsuhiko [svn] added "debugger of awesomeness" :D
authored
146 Extension('jinja._speedups', ['jinja/_speedups.c'])
147 ]
148 ),
149 'extended-debugger': Feature(
150 'extended debugger',
825e522 @mitsuhiko some more doc changes in jinja for the upcoming release
authored
151 standard=True,
152 ext_modules=[
a7804ef @mitsuhiko [svn] added "debugger of awesomeness" :D
authored
153 Extension('jinja._debugger', ['jinja/_debugger.c'])
154 ]
155 )
156 },
015b0c9 @mitsuhiko some documentation changes
authored
157 cmdclass={'build_ext': optional_build_ext}
de478f6 @mitsuhiko [svn] some small updates to make jinja performing better
authored
158 )
Something went wrong with that request. Please try again.