Show More
@@ -344,11 +344,73 b' class JSON(DisplayObject):' | |||
|
344 | 344 | def _repr_json_(self): |
|
345 | 345 | return self.data |
|
346 | 346 | |
|
347 | css_t = """$("head").append($("<link/>").attr({ | |
|
348 | rel: "stylesheet", | |
|
349 | type: "text/css", | |
|
350 | href: "%s" | |
|
351 | })); | |
|
352 | """ | |
|
353 | ||
|
354 | lib_t1 = """$.getScript("%s", function () { | |
|
355 | """ | |
|
356 | lib_t2 = """}); | |
|
357 | """ | |
|
347 | 358 | |
|
348 | 359 | class Javascript(DisplayObject): |
|
349 | 360 | |
|
361 | def __init__(self, data=None, url=None, filename=None, lib=None, css=None): | |
|
362 | """Create a Javascript display object given raw data. | |
|
363 | ||
|
364 | When this object is returned by an expression or passed to the | |
|
365 | display function, it will result in the data being displayed | |
|
366 | in the frontend. If the data is a URL, the data will first be | |
|
367 | downloaded and then displayed. | |
|
368 | ||
|
369 | Parameters | |
|
370 | ---------- | |
|
371 | data : unicode, str or bytes | |
|
372 | The Javascript source code or a URL to download it from. | |
|
373 | url : unicode | |
|
374 | A URL to download the data from. | |
|
375 | filename : unicode | |
|
376 | Path to a local file to load the data from. | |
|
377 | lib : list or str | |
|
378 | A sequence of Javascript library URLs to load asynchronously before | |
|
379 | running the source code. The full URLs of the libraries should | |
|
380 | be given. A single Javascript library URL can also be given as a | |
|
381 | string. | |
|
382 | css: : list or str | |
|
383 | A sequence of css files to load before running the source code. | |
|
384 | The full URLs of the css files should be give. A single css URL | |
|
385 | can also be given as a string. | |
|
386 | """ | |
|
387 | if isinstance(lib, basestring): | |
|
388 | lib = [lib] | |
|
389 | elif lib is None: | |
|
390 | lib = [] | |
|
391 | if isinstance(css, basestring): | |
|
392 | css = [css] | |
|
393 | elif css is None: | |
|
394 | css = [] | |
|
395 | if not isinstance(lib, (list,tuple)): | |
|
396 | raise TypeError('expected sequence, got: %r' % lib) | |
|
397 | if not isinstance(css, (list,tuple)): | |
|
398 | raise TypeError('expected sequence, got: %r' % css) | |
|
399 | self.lib = lib | |
|
400 | self.css = css | |
|
401 | super(Javascript, self).__init__(data=data, url=url, filename=filename) | |
|
402 | ||
|
350 | 403 | def _repr_javascript_(self): |
|
351 | return self.data | |
|
404 | r = '' | |
|
405 | for c in self.css: | |
|
406 | r += css_t % c | |
|
407 | for l in self.lib: | |
|
408 | r += lib_t1 % l | |
|
409 | r += self.data | |
|
410 | if self.lib: | |
|
411 | for i in range(len(self.lib)): | |
|
412 | r+= lib_t2 | |
|
413 | return r | |
|
352 | 414 | |
|
353 | 415 | |
|
354 | 416 | class Image(DisplayObject): |
General Comments 0
You need to be logged in to leave comments.
Login now