@@ -40,7 +40,9 @@ def respond_zip(handler, name, output, resources):
40
40
zip_filename = os .path .splitext (name )[0 ] + ".zip"
41
41
handler .set_attachment_header (zip_filename )
42
42
handler .set_header ("Content-Type" , "application/zip" )
43
- handler .set_header ("Cache-Control" , "no-store, no-cache, must-revalidate, max-age=0" )
43
+ handler .set_header (
44
+ "Cache-Control" , "no-store, no-cache, must-revalidate, max-age=0"
45
+ )
44
46
45
47
# Prepare the zip file
46
48
buffer = io .BytesIO ()
@@ -119,7 +121,7 @@ async def get(self, format, path):
119
121
# Exporting can take a while, delegate to a thread so we don't block the event loop
120
122
try :
121
123
output , resources = await run_sync (
122
- exporter .from_notebook_node ( nb , resources = resource_dict )
124
+ exporter .from_notebook_node , nb , resource_dict
123
125
)
124
126
except Exception as e :
125
127
self .log .exception ("nbconvert failed: %s" , e )
@@ -135,9 +137,13 @@ async def get(self, format, path):
135
137
136
138
# MIME type
137
139
if exporter .output_mimetype :
138
- self .set_header ("Content-Type" , "%s; charset=utf-8" % exporter .output_mimetype )
140
+ self .set_header (
141
+ "Content-Type" , "%s; charset=utf-8" % exporter .output_mimetype
142
+ )
139
143
140
- self .set_header ("Cache-Control" , "no-store, no-cache, must-revalidate, max-age=0" )
144
+ self .set_header (
145
+ "Cache-Control" , "no-store, no-cache, must-revalidate, max-age=0"
146
+ )
141
147
self .finish (output )
142
148
143
149
@@ -146,20 +152,19 @@ class NbconvertPostHandler(JupyterHandler):
146
152
SUPPORTED_METHODS = ("POST" ,)
147
153
148
154
@web .authenticated
149
- def post (self , format ):
155
+ async def post (self , format ):
150
156
exporter = get_exporter (format , config = self .config )
151
157
152
158
model = self .get_json_body ()
153
159
name = model .get ("name" , "notebook.ipynb" )
154
160
nbnode = from_dict (model ["content" ])
155
161
156
162
try :
157
- output , resources = exporter .from_notebook_node (
163
+ output , resources = await run_sync (
164
+ exporter .from_notebook_node ,
158
165
nbnode ,
159
- resources = {
160
- "metadata" : {
161
- "name" : name [: name .rfind ("." )],
162
- },
166
+ {
167
+ "metadata" : {"name" : name [: name .rfind ("." )]},
163
168
"config_dir" : self .application .settings ["config_dir" ],
164
169
},
165
170
)
@@ -171,7 +176,9 @@ def post(self, format):
171
176
172
177
# MIME type
173
178
if exporter .output_mimetype :
174
- self .set_header ("Content-Type" , "%s; charset=utf-8" % exporter .output_mimetype )
179
+ self .set_header (
180
+ "Content-Type" , "%s; charset=utf-8" % exporter .output_mimetype
181
+ )
175
182
176
183
self .finish (output )
177
184
0 commit comments