None
Project description
cleanroom
Install:
pip install cleanroom
Create instance in a new process and proxy all operations:
import os
import time
from cleanroom import create_instance, CleanroomArgs
class Cal:
def __init__(self, base):
self.base = base
def inc(self):
self.base += 1
return self.base
def pid(self, sleep=None):
if sleep:
time.sleep(sleep)
return os.getpid()
cal = create_instance(Cal, CleanroomArgs(0))
print('Parent PID: ', os.getpid())
print('Cal PID: ', cal.pid())
print('inc: ', cal.inc())
print('inc: ', cal.inc())
Output:
Parent PID: 22239 Cal PID: 22272 inc: 1 inc: 2
Create multiple instances under the random_access scheduler:
from cleanroom import create_scheduler, create_instances_under_scheduler
scheduler = create_scheduler(instances=5, scheduler_type='random_access')
create_instances_under_scheduler(scheduler, Cal, CleanroomArgs(0))
print('Parent PID: ', os.getpid())
for _ in range(20):
pid = scheduler.pid(sleep=1)
print(time.ctime(), 'Cal PID:', pid)
Output:
Parent PID: 4376 Thu May 23 14:00:59 2019 Cal PID: 4399 Thu May 23 14:01:00 2019 Cal PID: 4403 Thu May 23 14:01:01 2019 Cal PID: 4397 Thu May 23 14:01:02 2019 Cal PID: 4397 Thu May 23 14:01:03 2019 Cal PID: 4403 Thu May 23 14:01:04 2019 Cal PID: 4399 Thu May 23 14:01:05 2019 Cal PID: 4395 Thu May 23 14:01:06 2019 Cal PID: 4401 Thu May 23 14:01:07 2019 Cal PID: 4399 Thu May 23 14:01:08 2019 Cal PID: 4395 Thu May 23 14:01:09 2019 Cal PID: 4401 Thu May 23 14:01:10 2019 Cal PID: 4401 Thu May 23 14:01:11 2019 Cal PID: 4403 Thu May 23 14:01:12 2019 Cal PID: 4395 Thu May 23 14:01:13 2019 Cal PID: 4397 Thu May 23 14:01:14 2019 Cal PID: 4403 Thu May 23 14:01:15 2019 Cal PID: 4401 Thu May 23 14:01:16 2019 Cal PID: 4395 Thu May 23 14:01:17 2019 Cal PID: 4395 Thu May 23 14:01:18 2019 Cal PID: 4397
Create multiple instances under the batch_random_access scheduler:
scheduler = create_scheduler(instances=5, scheduler_type='batch_random_access')
create_instances_under_scheduler(scheduler, Cal, CleanroomArgs(0))
print('Parent PID: ', os.getpid())
for pid in scheduler.pid(CleanroomArgs(sleep=1) for _ in range(20)):
print(time.ctime(), 'Cal PID:', pid)
Output:
Parent PID: 4376 Thu May 23 14:04:47 2019 Cal PID: 4429 Thu May 23 14:04:47 2019 Cal PID: 4433 Thu May 23 14:04:47 2019 Cal PID: 4435 Thu May 23 14:04:48 2019 Cal PID: 4433 Thu May 23 14:04:48 2019 Cal PID: 4437 Thu May 23 14:04:49 2019 Cal PID: 4429 Thu May 23 14:04:49 2019 Cal PID: 4433 Thu May 23 14:04:49 2019 Cal PID: 4437 Thu May 23 14:04:49 2019 Cal PID: 4431 Thu May 23 14:04:49 2019 Cal PID: 4435 Thu May 23 14:04:50 2019 Cal PID: 4429 Thu May 23 14:04:51 2019 Cal PID: 4431 Thu May 23 14:04:51 2019 Cal PID: 4435 Thu May 23 14:04:51 2019 Cal PID: 4431 Thu May 23 14:04:51 2019 Cal PID: 4437 Thu May 23 14:04:53 2019 Cal PID: 4429 Thu May 23 14:04:53 2019 Cal PID: 4431 Thu May 23 14:04:53 2019 Cal PID: 4429 Thu May 23 14:04:53 2019 Cal PID: 4437 Thu May 23 14:04:53 2019 Cal PID: 4437
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.0 (2019-05-10)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cleanroom-0.4.2.tar.gz
(13.6 kB
view hashes)
Built Distribution
Close
Hashes for cleanroom-0.4.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 238a63f7a25e99262f3157c9aeaab366278f90f7b38d65dfb822fd9bc5612259 |
|
MD5 | 6b1f754e5c16b8844e22b69377ab771f |
|
BLAKE2b-256 | 6f190930ebac1d440911b67d520fe016d4407868d7d8430c9326bf413ec229ed |