python-shell
- Version 5.0.0
- Published
- 54.1 kB
- No dependencies
- MIT license
Install
npm i python-shellyarn add python-shellpnpm add python-shellOverview
Run Python scripts from Node.js with simple (but efficient) inter-process communication through stdio
Index
Classes
Interfaces
Classes
class NewlineTransformer
class NewlineTransformer extends Transform {}Takes in a string stream and emits batches seperated by newlines
class PythonShell
class PythonShell extends EventEmitter {}An interactive Python shell exchanging data through stdio
Parameter script
The python script to execute
Parameter options
The launch options (also passed to child_process.spawn)
Parameter stdoutSplitter
Optional. Splits stdout into chunks, defaulting to splitting into newline-seperated lines
Parameter stderrSplitter
Optional. splits stderr into chunks, defaulting to splitting into newline-seperated lines
constructor
constructor( scriptPath: string, options?: Options, stdoutSplitter?: Transform, stderrSplitter?: Transform);spawns a python process
Parameter scriptPath
path to script. Relative to current directory or options.scriptFolder if specified
Parameter options
Parameter stdoutSplitter
Optional. Splits stdout into chunks, defaulting to splitting into newline-seperated lines
Parameter stderrSplitter
Optional. splits stderr into chunks, defaulting to splitting into newline-seperated lines
property childProcess
childProcess: ChildProcess;property command
command: string[];property defaultOptions
static defaultOptions: Options;property defaultPythonPath
static defaultPythonPath: string;property exitCode
exitCode: number;property exitSignal
exitSignal: string;property format
static format: { text: (data: any) => string; json: (data: any) => string };property formatter
formatter: (param: string | Object) => any;property mode
mode: string;property parse
static parse: { text: (data: any) => string; json: (data: string) => any };property parser
parser: (param: string) => any;property scriptPath
scriptPath: string;property stderr
stderr: Readable;property stderrParser
stderrParser: (param: string) => any;property stdin
stdin: Writable;property stdout
stdout: Readable;property terminated
terminated: boolean;method checkSyntax
static checkSyntax: ( code: string) => Promise<{ stdout: string; stderr: string }>;checks syntax without executing code
Returns
rejects promise w/ string error output if syntax failure
method checkSyntaxFile
static checkSyntaxFile: ( filePath: string) => Promise<{ stdout: string; stderr: string }>;checks syntax without executing code
Returns
{Promise} rejects w/ stderr if syntax failure
method end
end: ( callback: ( err: PythonShellError, exitCode: number, exitSignal: string ) => any) => this;Closes the stdin stream. Unless python is listening for stdin in a loop this should cause the process to finish its work and close.
Returns
{PythonShell} The same instance for chaining calls
method getPythonPath
static getPythonPath: () => string;method getVersion
static getVersion: (pythonPath?: string) => any;method getVersionSync
static getVersionSync: (pythonPath?: string) => string;method kill
kill: (signal?: NodeJS.Signals) => this;Sends a kill signal to the process
Returns
{PythonShell} The same instance for chaining calls
method run
static run: (scriptPath: string, options?: Options) => Promise<any[]>;Runs a Python script and returns collected messages as a promise. If the promise is rejected, the err will probably be of type PythonShellErrorWithLogs
Parameter scriptPath
The path to the script to execute
Parameter options
The execution options
method runString
static runString: (code: string, options?: Options) => Promise<any[]>;Runs the inputted string of python code and returns collected messages as a promise. DO NOT ALLOW UNTRUSTED USER INPUT HERE!
Parameter code
The python code to execute
Parameter options
The execution options a promise with the output from the python script
method send
send: (message: string | Object) => this;Sends a message to the Python shell through stdin Override this method to format data to be sent to the Python process
Returns
{PythonShell} The same instance for chaining calls
method terminate
terminate: (signal?: NodeJS.Signals) => this;Alias for kill.
Deprecated
class PythonShellError
class PythonShellError extends Error {}class PythonShellErrorWithLogs
class PythonShellErrorWithLogs extends PythonShellError {}property logs
logs: any[];Interfaces
interface Options
interface Options extends SpawnOptions {}property args
args?: string[];arguments to your program
property encoding
encoding?: BufferEncoding;property formatter
formatter?: string | ((param: string) => any);property mode
mode?: 'text' | 'json' | 'binary';if binary is enabled message and stderr events will not be emitted
property parser
parser?: string | ((param: string) => any);property pythonOptions
pythonOptions?: string[];see https://docs.python.org/3.7/using/cmdline.html
property pythonPath
pythonPath?: string;property scriptPath
scriptPath?: string;overrides scriptPath passed into PythonShell constructor
property stderrParser
stderrParser?: string | ((param: string) => any);interface PythonShell
interface PythonShell {}method addListener
addListener: { (event: string, listener: (...args: any[]) => void): this; (event: 'message', listener: (parsedChunk: any) => void): this; (event: 'stderr', listener: (parsedChunk: any) => void): this; (event: 'close', listener: () => void): this; (event: 'error', listener: (error: NodeJS.ErrnoException) => void): this; (event: 'pythonError', listener: (error: PythonShellError) => void): this;};method emit
emit: { (event: string | symbol, ...args: any[]): boolean; (event: 'message', parsedChunk: any): boolean; (event: 'stderr', parsedChunk: any): boolean; (event: 'close'): boolean; (event: 'error', error: NodeJS.ErrnoException): boolean; (event: 'pythonError', error: PythonShellError): boolean;};method on
on: { (event: string, listener: (...args: any[]) => void): this; (event: 'message', listener: (parsedChunk: any) => void): this; (event: 'stderr', listener: (parsedChunk: any) => void): this; (event: 'close', listener: () => void): this; (event: 'error', listener: (error: NodeJS.ErrnoException) => void): this; (event: 'pythonError', listener: (error: PythonShellError) => void): this;};method once
once: { (event: string, listener: (...args: any[]) => void): this; (event: 'message', listener: (parsedChunk: any) => void): this; (event: 'stderr', listener: (parsedChunk: any) => void): this; (event: 'close', listener: () => void): this; (event: 'error', listener: (error: NodeJS.ErrnoException) => void): this; (event: 'pythonError', listener: (error: PythonShellError) => void): this;};method prependListener
prependListener: { (event: string, listener: (...args: any[]) => void): this; (event: 'message', listener: (parsedChunk: any) => void): this; (event: 'stderr', listener: (parsedChunk: any) => void): this; (event: 'close', listener: () => void): this; (event: 'error', listener: (error: NodeJS.ErrnoException) => void): this; (event: 'pythonError', listener: (error: PythonShellError) => void): this;};method prependOnceListener
prependOnceListener: { (event: string, listener: (...args: any[]) => void): this; (event: 'message', listener: (parsedChunk: any) => void): this; (event: 'stderr', listener: (parsedChunk: any) => void): this; (event: 'close', listener: () => void): this; (event: 'error', listener: (error: NodeJS.ErrnoException) => void): this; (event: 'pythonError', listener: (error: PythonShellError) => void): this;};Package Files (1)
Dependencies (0)
No dependencies.
Dev Dependencies (8)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/python-shell.
- Markdown[](https://www.jsdocs.io/package/python-shell)
- HTML<a href="https://www.jsdocs.io/package/python-shell"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 4792 ms. - Missing or incorrect documentation? Open an issue for this package.
