57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
![]() |
#!/usr/bin/env python3
|
||
|
# -*- coding: ascii -*-
|
||
|
'''r
|
||
|
Run JavaScript code from Python.
|
||
|
|
||
|
PyExecJS is a porting of ExecJS from Ruby.
|
||
|
PyExecJS automatically picks the best runtime available to evaluate your JavaScript program,
|
||
|
then returns the result to you as a Python object.
|
||
|
|
||
|
A short example:
|
||
|
|
||
|
>>> import execjs
|
||
|
>>> execjs.eval("'red yellow blue'.split(' ')")
|
||
|
['red', 'yellow', 'blue']
|
||
|
>>> ctx = execjs.compile("""
|
||
|
... function add(x, y) {
|
||
|
... return x + y;
|
||
|
... }
|
||
|
... """)
|
||
|
>>> ctx.call("add", 1, 2)
|
||
|
3
|
||
|
'''
|
||
|
from __future__ import unicode_literals, division, with_statement
|
||
|
|
||
|
from execjs._exceptions import Error, RuntimeError, ProgramError, RuntimeUnavailableError
|
||
|
import execjs._runtimes
|
||
|
from execjs._external_runtime import ExternalRuntime
|
||
|
from execjs._abstract_runtime import AbstractRuntime
|
||
|
|
||
|
|
||
|
__all__ = """
|
||
|
get register runtimes get_from_environment exec_ eval compile
|
||
|
ExternalRuntime
|
||
|
Error RuntimeError ProgramError RuntimeUnavailableError
|
||
|
""".split()
|
||
|
|
||
|
|
||
|
register = execjs._runtimes.register
|
||
|
get = execjs._runtimes.get
|
||
|
runtimes = execjs._runtimes.runtimes
|
||
|
get_from_environment = execjs._runtimes.get_from_environment
|
||
|
|
||
|
|
||
|
def eval(source):
|
||
|
return get().eval(source)
|
||
|
eval.__doc__= AbstractRuntime.eval.__doc__
|
||
|
|
||
|
|
||
|
def exec_(source):
|
||
|
return get().exec_(source)
|
||
|
exec_.__doc__= AbstractRuntime.exec_.__doc__
|
||
|
|
||
|
|
||
|
def compile(source):
|
||
|
return get().compile(source)
|
||
|
compile.__doc__= AbstractRuntime.compile.__doc__
|