author | Madhusudan.C.S <madhusudancs@gmail.com> |
Thu, 01 Apr 2010 11:59:35 +0530 | |
changeset 93 | e86755df35da |
permissions | -rw-r--r-- |
93
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
1 |
# encoding: utf-8 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
2 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
3 |
import os |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
4 |
import re |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
5 |
import sys |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
6 |
import shutil |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
7 |
import codecs |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
8 |
from glob import glob |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
9 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
10 |
from docutils import core as docCore |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
11 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
12 |
conf_name = 'SciPy2009' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
13 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
14 |
current_dir = '/media/python/workspace/kiwipycon/project/kiwipycon/proceedings/booklet' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
15 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
16 |
outdir = current_dir + os.sep + 'output' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
17 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
18 |
sourcedir = current_dir + os.sep + 'sources' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
19 |
try: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
20 |
os.mkdir(outdir) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
21 |
except: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
22 |
pass |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
23 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
24 |
outfilename = outdir + os.sep + 'booklet.tex' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
25 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
26 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
27 |
# Routines for supervised execution |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
28 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
29 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
30 |
from threading import Thread |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
31 |
import os |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
32 |
import signal |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
33 |
from subprocess import Popen |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
34 |
from time import sleep |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
35 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
36 |
def delayed_kill(pid, delay=10): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
37 |
sleep(delay) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
38 |
try: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
39 |
os.kill(pid, signal.SIGTERM) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
40 |
except OSError: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
41 |
pass |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
42 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
43 |
def supervise_popen(command, timeout=10): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
44 |
process = Popen(command) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
45 |
Thread(target=delayed_kill, args=(process.pid,timeout),).start() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
46 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
47 |
process.wait() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
48 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
49 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
50 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
51 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
52 |
# LaTeX generation functions. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
53 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
54 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
55 |
def protect(string): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
56 |
r''' Protects all the "\" in a string by adding a second one before |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
57 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
58 |
>>> protect(r'\foo \*') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
59 |
'\\\\foo \\\\*' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
60 |
''' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
61 |
return re.sub(r"\\", r"\\\\", string) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
62 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
63 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
64 |
def safe_unlink(filename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
65 |
""" Remove a file from the disk only if it exists, if not r=fails silently |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
66 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
67 |
if os.path.exists(filename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
68 |
os.unlink(filename) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
69 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
70 |
rxcountpages = re.compile(r"$\s*/Type\s*/Page[/\s]", re.MULTILINE|re.DOTALL) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
71 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
72 |
def count_pages(filename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
73 |
data = file(filename,"rb").read() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
74 |
return len(rxcountpages.findall(data)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
75 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
76 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
77 |
def tex2pdf(filename, remove_tex=True, timeout=10, runs=2): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
78 |
""" Compiles a TeX file with pdfLaTeX (or LaTeX, if or dvi ps requested) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
79 |
and cleans up the mess afterwards |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
80 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
81 |
current_dir = os.getcwd() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
82 |
os.chdir(os.path.dirname(filename)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
83 |
print >> sys.stderr, "Compiling document to pdf" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
84 |
basename = os.path.splitext(os.path.basename(filename))[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
85 |
if os.path.exists(basename + '.pdf'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
86 |
os.unlink(basename + '.pdf') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
87 |
for _ in range(runs): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
88 |
supervise_popen(("pdflatex", "--interaction", "scrollmode", |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
89 |
os.path.basename(filename)), timeout=timeout) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
90 |
error_file = None |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
91 |
errors = file(os.path.abspath(basename + '.log')).readlines()[-1] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
92 |
if not os.path.exists(basename + '.pdf') or \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
93 |
"Fatal error" in errors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
94 |
error_file = os.path.abspath(basename + '.log') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
95 |
if remove_tex: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
96 |
safe_unlink(filename+".tex") |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
97 |
safe_unlink(filename+".log") |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
98 |
safe_unlink(filename+".aux") |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
99 |
safe_unlink(filename+".out") |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
100 |
os.chdir(current_dir) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
101 |
return error_file |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
102 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
103 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
104 |
def rst2latex(rst_string, no_preamble=True, allow_latex=True): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
105 |
""" Calls docutils' engine to convert a rst string to a LaTeX file. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
106 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
107 |
overrides = {'output_encoding': 'utf-8', 'initial_header_level': 3, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
108 |
'no_doc_title': True, 'use_latex_citations': True, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
109 |
'use_latex_footnotes':True} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
110 |
if allow_latex: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
111 |
rst_string = u'''.. role:: math(raw) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
112 |
:format: latex |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
113 |
\n\n''' + rst_string |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
114 |
tex_string = docCore.publish_string( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
115 |
source=rst_string, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
116 |
writer_name='latex2e', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
117 |
settings_overrides=overrides) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
118 |
if no_preamble: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
119 |
extract_document = \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
120 |
re.compile(r'.*\\begin\{document\}(.*)\\end\{document\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
121 |
re.DOTALL) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
122 |
matches = extract_document.match(tex_string) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
123 |
tex_string = matches.groups()[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
124 |
return tex_string |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
125 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
126 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
127 |
def get_latex_preamble(): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
128 |
""" Retrieve the required preamble from docutils. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
129 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
130 |
full_document = rst2latex('\n', no_preamble=False) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
131 |
preamble = re.split(r'\\begin\{document\}', full_document)[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
132 |
## Remove the documentclass. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
133 |
preamble = r""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
134 |
%s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
135 |
\makeatletter |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
136 |
\newcommand{\class@name}{gael} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
137 |
\makeatother |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
138 |
\usepackage{ltxgrid} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
139 |
%s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
140 |
""" % ( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
141 |
preamble.split('\n')[0], |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
142 |
'\n'.join(preamble.split('\n')[1:]), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
143 |
) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
144 |
return preamble |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
145 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
146 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
147 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
148 |
# Functions to generate part of the booklet |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
149 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
150 |
def addfile(outfile, texfilename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
151 |
""" Includes the content of a tex file in our outfile. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
152 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
153 |
include = codecs.open(texfilename, 'r') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
154 |
data = include.readlines() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
155 |
outfile.write(ur'\thispagestyle{empty}' + u'\n') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
156 |
outfile.writelines(data) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
157 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
158 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
159 |
def preamble(outfile): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
160 |
outfile.write(r''' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
161 |
%s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
162 |
\usepackage{abstracts} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
163 |
\usepackage{ltxgrid} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
164 |
\usepackage{amssymb,latexsym,amsmath,amsthm} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
165 |
\usepackage{longtable} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
166 |
\geometry{left=.8cm, textwidth=17cm, bindingoffset=0.6cm, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
167 |
textheight=25.3cm, twoside} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
168 |
\usepackage{hyperref} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
169 |
\hypersetup{pdftitle={Proceedings of the 8th Annual Python in Science Conference}} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
170 |
\begin{document} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
171 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
172 |
'''.encode('utf-8') % get_latex_preamble()) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
173 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
174 |
# XXX SciPy08 should not be hard coded, but to run out of the webapp |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
175 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
176 |
def hack_include_graphics(latex_text): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
177 |
""" Replaces all the \includegraphics call with call that impose the |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
178 |
width to be 0.9\linewidth. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
179 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
180 |
latex_text = re.sub(r'\\setlength\{\\rightmargin\}\{\\leftmargin\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
181 |
r'\\setlength{\\leftmargin}{4ex}\\setlength{\\rightmargin}{0ex}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
182 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
183 |
latex_text = re.sub(r'\\begin\{quote\}\n\\begin\{itemize\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
184 |
r'\\begin{itemize}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
185 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
186 |
latex_text = re.sub(r'\\end\{itemize\}\n\\end\{quote\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
187 |
r'\\end{itemize}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
188 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
189 |
latex_text = re.sub(r'\\includegraphics(\[.*\])?\{', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
190 |
r'\includegraphics[width=\linewidth]{', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
191 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
192 |
latex_text = re.sub(r'\\href\{([^}]+)\}\{http://(([^{}]|(\{[^}]*\}))+)\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
193 |
r'''% |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
194 |
% Break penalties to have URL break easily: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
195 |
\mathchardef\UrlBreakPenalty=0 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
196 |
\mathchardef\UrlBigBreakPenalty=0 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
197 |
%\hskip 0pt plus 2em |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
198 |
\href{\1}{\url{\1}}''', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
199 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
200 |
latex_text = re.sub(r'\\href\{([^}]+)\}\{https://(([^{}]|(\{[^}]*\}))+)\}', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
201 |
r'''% |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
202 |
% Break penalties to have URL break easily: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
203 |
\mathchardef\UrlBreakPenalty=0 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
204 |
\mathchardef\UrlBigBreakPenalty=0 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
205 |
\linebreak |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
206 |
\href{\1}{\url{\1}}''', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
207 |
latex_text) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
208 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
209 |
return latex_text |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
210 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
211 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
212 |
def render_abstract(outfile, abstract, start_page=None): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
213 |
""" Writes the LaTeX string corresponding to one abstract. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
214 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
215 |
if start_page is not None: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
216 |
outfile.write(r""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
217 |
\setcounter{page}{%i} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
218 |
""" % start_page) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
219 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
220 |
if hasattr(abstract, 'start_page'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
221 |
start_page = abstract.start_page |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
222 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
223 |
start_page = 1 |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
224 |
if not abstract.authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
225 |
author_list = abstract.owners |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
226 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
227 |
author_list = abstract.authors |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
228 |
authors = [] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
229 |
print dir(author_list[0]) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
230 |
for author in author_list: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
231 |
# If the author has no surname, he is not an author |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
232 |
if author.surname: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
233 |
if author.email_address: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
234 |
email = r'(\email{%s})' % author.email_address |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
235 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
236 |
email = '' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
237 |
authors.append(ur'''\otherauthors{ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
238 |
%s %s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
239 |
%s -- |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
240 |
\address{%s, %s} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
241 |
}''' % (author.first_names, author.surname, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
242 |
email, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
243 |
author.institution, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
244 |
author.city)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
245 |
if authors: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
246 |
authors = u'\n'.join(authors) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
247 |
authors += r'\addauthorstoc{%s}' % ', '.join( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
248 |
'%s. %s' % (author.first_names[0], author.surname) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
249 |
for author in author_list |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
250 |
) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
251 |
author_cite_list = ['%s. %s' % (a.first_names[0], a.surname) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
252 |
for a in author_list] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
253 |
if len(author_cite_list) > 4: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
254 |
author_cite_list = author_cite_list[:3] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
255 |
author_cite_list.append('et al.') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
256 |
citation = ', '.join(author_cite_list) + \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
257 |
'in Proc. SciPy 2009, G. Varoquaux, S. van der Walt, J. Millman (Eds), ' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
258 |
copyright = '\\copyright 2009, %s' % ( ', '.join(author_cite_list)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
259 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
260 |
authors = '' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
261 |
citation = 'Citation' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
262 |
copyright = 'Copyright' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
263 |
if hasattr(abstract, 'num_pages'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
264 |
citation += 'pp. %i--%i' % (start_page, start_page + |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
265 |
abstract.num_pages) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
266 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
267 |
citation += 'p. %i'% start_page |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
268 |
if hasattr(abstract, 'number'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
269 |
abstract.url = 'http://conference.scipy.org/proceedings/%s/paper_%i' \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
270 |
% (conf_name, abstract.number) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
271 |
url = r'\url{%s}' % abstract.url |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
272 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
273 |
url = '' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
274 |
paper_text = abstract.paper_text |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
275 |
if paper_text == '': |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
276 |
paper_text = abstract.summary |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
277 |
# XXX: It doesn't seem to be right to be doing this, but I get a |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
278 |
# nasty UnicodeDecodeError on some rare abstracts, elsewhere. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
279 |
paper_text = codecs.utf_8_decode(hack_include_graphics( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
280 |
rst2latex(paper_text)))[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
281 |
paper_abstract = abstract.paper_abstract |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
282 |
if paper_abstract is None: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
283 |
paper_abstract = '' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
284 |
if not paper_abstract=='': |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
285 |
paper_abstract = ur'\begin{abstract}%s\end{abstract}' % \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
286 |
paper_abstract#.encode('utf-8') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
287 |
abstract_dict = { |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
288 |
'text': paper_text.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
289 |
'abstract': paper_abstract.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
290 |
'authors': authors.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
291 |
'title': abstract.title.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
292 |
'citation': citation.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
293 |
'copyright': copyright.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
294 |
'url': url.encode('utf-8'), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
295 |
} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
296 |
outfile.write(codecs.utf_8_decode(ur''' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
297 |
\phantomsection |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
298 |
\hypertarget{chapter}{} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
299 |
\vspace*{-2em} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
300 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
301 |
\resetheadings{%(title)s}{%(citation)s}{%(url)s}{%(copyright)s} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
302 |
\title{%(title)s} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
303 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
304 |
\begin{minipage}{\linewidth} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
305 |
%(authors)s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
306 |
\end{minipage} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
307 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
308 |
\noindent\rule{\linewidth}{0.2ex} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
309 |
\vspace*{-0.5ex} |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
310 |
\twocolumngrid |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
311 |
%(abstract)s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
312 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
313 |
\sloppy |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
314 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
315 |
%(text)s |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
316 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
317 |
\fussy |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
318 |
\onecolumngrid |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
319 |
\smallskip |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
320 |
\vfill |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
321 |
\filbreak |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
322 |
\clearpage |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
323 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
324 |
'''.encode('utf-8') % abstract_dict )[0]) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
325 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
326 |
def copy_files(dest=outfilename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
327 |
""" Copy the required file from the source dir to the output dir. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
328 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
329 |
dirname = os.path.dirname(dest) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
330 |
if dirname == '': |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
331 |
dirname = '.' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
332 |
for filename in glob(sourcedir+os.sep+'*'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
333 |
destfile = os.path.abspath(dirname + os.sep + |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
334 |
os.path.basename(filename)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
335 |
shutil.copy2(filename, destfile) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
336 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
337 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
338 |
def mk_abstract_preview(abstract, outfilename, attach_dir, start_page=None): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
339 |
""" Generate a preview for an given paper. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
340 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
341 |
copy_files() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
342 |
outdir = os.path.dirname(os.path.abspath(outfilename)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
343 |
for f in glob(os.path.join(attach_dir, '*')): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
344 |
if os.path.isdir(f) and not os.path.exists(f): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
345 |
os.makedirs(f) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
346 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
347 |
if not outdir == os.path.dirname(os.path.abspath(f)): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
348 |
shutil.copy2(f, outdir) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
349 |
for f in glob(os.path.join(sourcedir, '*')): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
350 |
if os.path.isdir(f): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
351 |
os.makedirs(f) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
352 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
353 |
destfile = os.path.abspath(os.path.join(outdir, f)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
354 |
shutil.copy2(f, outdir) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
355 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
356 |
outbasename = os.path.splitext(outfilename)[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
357 |
outfilename = outbasename + '.tex' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
358 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
359 |
outfile = codecs.open(outfilename, 'w', 'utf-8') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
360 |
preamble(outfile) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
361 |
render_abstract(outfile, abstract, start_page=start_page) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
362 |
outfile.write(ur'\end{document}' + u'\n') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
363 |
outfile.close() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
364 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
365 |
tex2pdf(outbasename, remove_tex=False) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
366 |
abstract.num_pages = count_pages(outbasename + '.pdf') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
367 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
368 |
# Generate the tex file again, now that we know the length. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
369 |
outfile = codecs.open(outfilename, 'w', 'utf-8') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
370 |
preamble(outfile) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
371 |
render_abstract(outfile, abstract, start_page=start_page) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
372 |
outfile.write(ur'\end{document}' + u'\n') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
373 |
outfile.close() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
374 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
375 |
return tex2pdf(os.path.splitext(outfilename)[0], remove_tex=False) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
376 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
377 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
378 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
379 |
# Code for using outside of the webapp. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
380 |
############################################################################## |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
381 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
382 |
def mk_zipfile(): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
383 |
""" Generates a zipfile with the required files to build an |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
384 |
abstract. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
385 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
386 |
from zipfile import ZipFile |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
387 |
zipfilename = os.path.join(os.path.dirname(__file__), |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
388 |
'mk_scipy_paper.zip') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
389 |
z = ZipFile(zipfilename, 'w') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
390 |
for filename in glob(os.path.join(sourcedir, '*')): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
391 |
if not os.path.isdir(filename): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
392 |
z.write(filename, arcname='source/' + os.path.basename(filename)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
393 |
z.write(__file__, arcname='mk_scipy_paper.py') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
394 |
return zipfilename |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
395 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
396 |
class Bunch(dict): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
397 |
def __init__(self, **kwargs): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
398 |
dict.__init__(self, **kwargs) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
399 |
self.__dict__ = self |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
400 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
401 |
def __reprt(self): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
402 |
return repr(self.__dict__) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
403 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
404 |
author_like = Bunch( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
405 |
first_names='XX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
406 |
surname='XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
407 |
email_address='xxx@XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
408 |
institution='XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
409 |
address='XXX', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
410 |
country='XXX' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
411 |
) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
412 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
413 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
414 |
abstract_like = Bunch( |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
415 |
paper_abstract='An abstract', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
416 |
authors=[author_like, ], |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
417 |
title='', |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
418 |
) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
419 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
420 |
if __name__ == '__main__': |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
421 |
from optparse import OptionParser |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
422 |
parser = OptionParser() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
423 |
parser.add_option("-o", "--output", dest="outfilename", |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
424 |
default="./paper.pdf", |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
425 |
help="output to FILE", metavar="FILE") |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
426 |
parser.usage = """%prog [options] rst_file [data_file] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
427 |
Compiles a given rest file and information file to pdf for the SciPy |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
428 |
proceedings. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
429 |
""" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
430 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
431 |
(options, args) = parser.parse_args() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
432 |
if not len(args) in (1, 2): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
433 |
print "One or two arguments required: the input rest file and " \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
434 |
"the input data file" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
435 |
print '' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
436 |
parser.print_help() |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
437 |
sys.exit(1) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
438 |
infile = args[0] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
439 |
if len(args)==1: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
440 |
data_file = 'data.py' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
441 |
if os.path.exists('data.py'): |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
442 |
print "Using data file 'data.py'" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
443 |
else: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
444 |
print "Generating the data file and storing it in data.py" |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
445 |
print "You will need to edit this file to add title, author " \ |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
446 |
"information, and abstract." |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
447 |
abstract = abstract_like |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
448 |
file('data.py', 'w').write(repr(abstract)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
449 |
elif len(args)==2: |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
450 |
data_file = args[1] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
451 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
452 |
abstract = Bunch( **eval(file(data_file).read())) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
453 |
abstract.authors = [Bunch(**a) for a in abstract.authors] |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
454 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
455 |
abstract['summary'] = u'' |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
456 |
abstract['paper_text'] = file(infile).read().decode('utf-8') |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
457 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
458 |
outfilename = options.outfilename |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
459 |
|
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
460 |
mk_abstract_preview(abstract, options.outfilename, |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
461 |
os.path.dirname(options.outfilename)) |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
462 |
# Ugly, but I don't want to wait on the thread. |
e86755df35da
Add admin interface and views for proceedings. Booklet is also setup to generate paper.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
463 |
sys.exit() |