Skip to content
This repository was archived by the owner on Feb 17, 2026. It is now read-only.

garciparedes/pascua

Repository files navigation

pascua

PyPI Read the Docs Travis (.org) branch Coveralls github GitHub GitHub stars

Description

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!

Installation

You can install the latest pascua version via pip:

pip install pascua

How it works?

pascua 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.

Usage

Python Environment

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)

R Environment

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)

C++ Environment

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)

Development

You can install it simply typing:

python setup.py install

To run the tests perform:

python -m unittest discover tests

License

About

Python library to perform code execution in fully isolated environments

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages