Python library to perform code execution in fully isolated environments.
IMPORTANT: This repository is in the early stage of development, so its not recommended to be used yet. Nevertheless, contributions are welcome!
You can install the latest pascua version via pip:
pip install pascuapascua allow us to perform code executions in isolated environments through containerization techniques. The main idea is that pascua builds a docker image with the given parameters defined in the corresponding implementation of the Environment constructor.
When a call to exec(.) method is performed, it uses the generated docker image as the base in which it launches the proper interpreter or code compilation to execute the given source_code in combination with the variables defined in the context dictionary.
import pascua as psc
context = {
'size': 100,
}
source_code = [
'import numpy as np',
'random_numbers = np.random.uniform(size=size)',
]
env = psc.PythonEnvironment(
version='3.7.3',
pip_dependencies=[
'numpy>=1.14.0',
]
)
result = env.exec(source_code, context)import pascua as psc
context = {
'size': 100,
}
source_code = [
'random_numbers <- runif(n = size)',
]
env = psc.REnvironment(
version='latest',
)
result = env.exec(source_code, context)import pascua as psc
context = {
'size': 100,
}
source_code = [
'float r;',
'vector<float> random_numbers;',
'for (int i = 0; i < size; i++) {',
' r = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);',
' random_numbers.push_back(r);',
'}',
]
env = psc.CCEnvironment(
version='latest',
includes=[
'vector',
'numeric',
]
)
result = env.exec(source_code, context)You can install it simply typing:
python setup.py installTo run the tests perform:
python -m unittest discover tests- This project is licensed under MIT license.