Mercurial > p > roundup > code
annotate roundup/templatebuilder.py @ 718:e10c37f53efd
fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
(thanks dman)
fixed some sorting issues that were breaking some unit tests under py2.2
mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
fixed bug in the init unit test that meant only the bsddb test ran if it
could (it clobbered the anydbm test)
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 15 May 2002 03:27:16 +0000 |
| parents | b55fb6d88a0d |
| children |
| rev | line source |
|---|---|
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
1 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
6 # |
| 214 | 7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
11 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
17 # |
|
598
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
18 # $Id: templatebuilder.py,v 1.14 2002-02-05 09:59:05 grubert Exp $ |
|
174
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
19 import errno, re |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
20 |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
21 __doc__ = """ |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
22 Collect template parts and create instance template files. |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
23 """ |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
24 |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
25 preamble = """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
26 # Do Not Edit (Unless You Want To) |
|
598
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
27 # This file automagically generated by roundup.templatebuilder.makeHtmlBase |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
28 # |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
29 """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
30 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
31 def makeHtmlBase(templateDir): |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
32 """ make a htmlbase.py file in the given templateDir, from the |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
33 contents of templateDir/html """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
34 import os, glob, re |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
35 print "packing up templates in", templateDir |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
36 filelist = glob.glob(os.path.join(templateDir, 'html', '*')) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
37 filelist = filter(os.path.isfile, filelist) # only want files |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
38 filelist.sort() |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
39 fd = open(os.path.join(templateDir, 'htmlbase.py'), 'w') |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
40 fd.write(preamble) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
41 for file in filelist: |
|
167
a49c8a2ddd26
Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents:
139
diff
changeset
|
42 # skip the backup files created by richard's vim |
|
a49c8a2ddd26
Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents:
139
diff
changeset
|
43 if file[-1] == '~': continue |
|
598
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
44 mangled_name = os.path.basename(file).replace('.','DOT') |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
45 fd.write('%s = """'%mangled_name) |
|
174
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
46 fd.write(re.sub(r'\$((Id|File|Log).*?)\$', r'dollar\1dollar', |
|
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
47 open(file).read(), re.I)) |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
48 fd.write('"""\n\n') |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
49 fd.close() |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
50 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
51 def installHtmlBase(template, installDir): |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
52 """ passed a template package and an installDir, unpacks the html files into |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
53 the installdir """ |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
54 import os,sys,re |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
55 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
56 tdir = __import__('roundup.templates.%s.htmlbase'%template).templates |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
57 if hasattr(tdir, template): |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
58 tmod = getattr(tdir, template) |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
59 else: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
60 raise "TemplateError", "couldn't find roundup.template.%s.htmlbase"%template |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
61 htmlbase = tmod.htmlbase |
|
69
0eed07d99b98
oops. Html.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
68
diff
changeset
|
62 installDir = os.path.join(installDir, 'html') |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
63 try: |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
64 os.makedirs(installDir) |
|
139
16fdc86183fe
Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
65 except OSError, error: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
66 if error.errno != errno.EEXIST: raise |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
67 |
|
114
caca379e12d3
commented out print
Richard Jones <richard@users.sourceforge.net>
parents:
113
diff
changeset
|
68 # print "installing from", htmlbase.__file__, "into", installDir |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
69 modulecontents = dir(htmlbase) |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
70 for mangledfile in modulecontents: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
71 if mangledfile[0] == "_": |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
72 continue |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
73 filename = re.sub('DOT', '.', mangledfile) |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
74 outfile = os.path.join(installDir, filename) |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
75 outfd = open(outfile, 'w') |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
76 data = getattr(htmlbase, mangledfile) |
|
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
77 outfd.write(data) |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
79 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
80 |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
81 if __name__ == "__main__": |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
82 import sys |
|
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
83 if len(sys.argv) == 2: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
84 makeHtmlBase(sys.argv[1]) |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
85 elif len(sys.argv) == 3: |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
86 installHtmlBase(sys.argv[1], sys.argv[2]) |
|
68
5e71aaa87e5b
Added templatebuilder module.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
diff
changeset
|
87 else: |
|
390
a74ea8489896
users may attach files to issues (and support in ext) through the web now
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
88 print "Usage: %s <template directory>"%sys.argv[0] |
|
113
2ab86442799a
Replaced errno integers with their module values.
Richard Jones <richard@users.sourceforge.net>
parents:
102
diff
changeset
|
89 |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
114
diff
changeset
|
90 # |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
114
diff
changeset
|
91 # $Log: not supported by cvs2svn $ |
|
598
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
92 # Revision 1.13 2001/11/22 15:46:42 jhermann |
|
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
93 # Added module docstrings to all modules. |
|
b55fb6d88a0d
makeHtmlBase: re.sub under python 2.2 didn't replace '.', string.replace does.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
406
diff
changeset
|
94 # |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
95 # Revision 1.12 2001/11/14 21:35:21 richard |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
96 # . users may attach files to issues (and support in ext) through the web now |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
390
diff
changeset
|
97 # |
|
390
a74ea8489896
users may attach files to issues (and support in ext) through the web now
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
98 # Revision 1.11 2001/08/07 00:24:42 richard |
|
a74ea8489896
users may attach files to issues (and support in ext) through the web now
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
99 # stupid typo |
|
a74ea8489896
users may attach files to issues (and support in ext) through the web now
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
100 # |
| 214 | 101 # Revision 1.10 2001/08/07 00:15:51 richard |
| 102 # Added the copyright/license notice to (nearly) all files at request of | |
| 103 # Bizar Software. | |
| 104 # | |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
105 # Revision 1.9 2001/08/01 05:06:10 richard |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
106 # htmlbase doesn't have extraneous $Foo$ in it any more |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
174
diff
changeset
|
107 # |
|
174
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
108 # Revision 1.8 2001/07/30 08:12:17 richard |
|
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
109 # Added time logging and file uploading to the templates. |
|
2775f6727070
htmlbase doesn't have extraneous $Foo$ in it any more
Richard Jones <richard@users.sourceforge.net>
parents:
167
diff
changeset
|
110 # |
|
167
a49c8a2ddd26
Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents:
139
diff
changeset
|
111 # Revision 1.7 2001/07/30 00:06:52 richard |
|
a49c8a2ddd26
Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents:
139
diff
changeset
|
112 # Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum. |
|
a49c8a2ddd26
Added time logging and file uploading to the templates.
Richard Jones <richard@users.sourceforge.net>
parents:
139
diff
changeset
|
113 # |
|
139
16fdc86183fe
Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
114 # Revision 1.6 2001/07/29 07:01:39 richard |
|
16fdc86183fe
Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
115 # Added vim command to all source so that we don't get no steenkin' tabs :) |
|
16fdc86183fe
Hrm - had IOError instead of OSError. Not sure why there's two. Ho hum.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
116 # |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
114
diff
changeset
|
117 # |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
114
diff
changeset
|
118 # |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
114
diff
changeset
|
119 # vim: set filetype=python ts=4 sw=4 et si |
