Skip to content

Latest commit

 

History

History
41 lines (32 loc) · 1.16 KB

README.md

File metadata and controls

41 lines (32 loc) · 1.16 KB

##Why I made this package: This package was created to quickly bridge a set of Python machine learning models with a NodeJS service. This solution works, but there is an inherent cost to spinning up the Python processes. For applications that are not time sensitive this solution will work and requires little modification to an existing Python script. Since we're working with std.in/out, be aware that any print lines in your Python file will be piped to the PyPool.execute callback.

##Sample JS File

const PyPool = require('py-runner');
// creates a pool of five readily available processes running the same script
const pool = new PyPool({count: 5, script:'/path/to/your/script.py'}); 
const args = [1,2,3,4,5];
// takes an available process and executes with args
pool.execute(args, result =>{ 
	console.log(result); // print value from python file
});

##Sample Python File

import sys
import json
import numpy as np

def read_in():
	lines = sys.stdin.readlines()
	return json.loads(lines[0])


def main():
	data = read_in()
	np_data = np.array(data)
	result = np.sum(np_data)
	print(result, end='') 


if __name__ == '__main__':
    main()