Skip to content

Commit 4de6eff

Browse files
author
B1nj0y
committed
change the method format_request kernel_language dependent instead of kernel_name
1 parent 86577e0 commit 4de6eff

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

kernel_gateway/notebook_http/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ def create_request_handlers(self):
122122
handler_args = { 'sources' : verb_source_map,
123123
'response_sources' : response_source_map,
124124
'kernel_pool' : self.kernel_pool,
125-
'kernel_name' : self.parent.kernel_manager.seed_kernelspec
125+
'kernel_name' : self.parent.kernel_manager.seed_kernelspec,
126+
'kernel_language' : getattr(self.parent.kernel_spec_manager.get_kernel_spec(self.parent.kernel_manager.seed_kernelspec), 'language', 'no_spec')
126127
}
127128
handlers.append((parameterized_path, NotebookAPIHandler, handler_args))
128129

kernel_gateway/notebook_http/handlers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ class NotebookAPIHandler(TokenAuthorizationMixin,
3535
kernel_name
3636
Kernel spec name used to launch the kernel pool. Identifies the
3737
language of the source code cells.
38+
kernel_language
39+
Kernel spec language used to make language specific operations
3840
3941
Attributes
4042
----------
@@ -45,11 +47,12 @@ class NotebookAPIHandler(TokenAuthorizationMixin,
4547
services.cell.parser.APICellParser for detail about how the source cells
4648
are identified, parsed, and associated with HTTP verbs and paths.
4749
"""
48-
def initialize(self, sources, response_sources, kernel_pool, kernel_name):
50+
def initialize(self, sources, response_sources, kernel_pool, kernel_name, kernel_language='no_spec'):
4951
self.kernel_pool = kernel_pool
5052
self.sources = sources
5153
self.kernel_name = kernel_name
5254
self.response_sources = response_sources
55+
self.kernel_language = kernel_language
5356

5457
def finish_future(self, future, result_accumulator):
5558
"""Resolves the promise to respond to a HTTP request handled by a
@@ -184,7 +187,7 @@ def _handle_request(self):
184187
'headers' : headers_to_dict(self.request.headers)
185188
})
186189
# Turn the request string into a valid code string
187-
request_code = format_request(request, self.kernel_name)
190+
request_code = format_request(request, self.kernel_language)
188191

189192
# Run the request and source code and yield until there's a result
190193
access_log.debug('Request code for notebook cell is: {}'.format(request_code))

kernel_gateway/notebook_http/request_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212
APPLICATION_JSON = 'application/json'
1313
TEXT_PLAIN = 'text/plain'
1414

15-
def format_request(bundle, kernel_name):
15+
def format_request(bundle, kernel_language='no_spec'):
1616
"""Creates an assignment statement of bundle JSON-encoded to a variable
17-
named `REQUEST`.
17+
named `REQUEST` by default or kernel_language specific.
1818
1919
Returns
2020
-------
2121
str
2222
`REQUEST = "<json-encoded expression>"`
2323
"""
2424
bundle = json.dumps(bundle)
25-
if kernel_name == 'iperl':
25+
if kernel_language.lower() == 'perl':
2626
statement = "my $REQUEST = {}".format(bundle)
2727
else:
2828
statement = "REQUEST = {}".format(bundle)

kernel_gateway/tests/notebook_http/test_request_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def test_format_request_code_not_escaped(self):
128128
test_request = ('''{"body": "", "headers": {"Accept-Language": "en-US,en;q=0.8",
129129
"If-None-Match": "9a28a9262f954494a8de7442c63d6d0715ce0998",
130130
"Accept-Encoding": "gzip, deflate, sdch"}, "args": {}, "path": {}}''')
131-
request_code = format_request(test_request, 'python')
131+
request_code = format_request(test_request)
132132
#Get the value of REQUEST = "{ to test for equality
133133
test_request_js_value = request_code[request_code.index("\"{"):]
134134
self.assertEqual(test_request, json.loads(test_request_js_value), "Request code without escaped quotes was not formatted correctly")
@@ -138,7 +138,7 @@ def test_format_request_code_escaped(self):
138138
test_request = ('''{"body": "", "headers": {"Accept-Language": "en-US,en;q=0.8",
139139
"If-None-Match": "\"\"9a28a9262f954494a8de7442c63d6d0715ce0998\"\"",
140140
"Accept-Encoding": "gzip, deflate, sdch"}, "args": {}, "path": {}}''')
141-
request_code = format_request(test_request, 'python')
141+
request_code = format_request(test_request)
142142
#Get the value of REQUEST = "{ to test for equality
143143
test_request_js_value = request_code[request_code.index("\"{"):]
144144
self.assertEqual(test_request, json.loads(test_request_js_value), "Escaped Request code was not formatted correctly")

0 commit comments

Comments
 (0)