Skip to content

kyleVsteger/py-runner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##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()

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published