Skip to main content

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


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 details)

Uploaded Source

Built Distribution

cleanroom-0.4.2-py2.py3-none-any.whl (6.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cleanroom-0.4.2.tar.gz.

File metadata

  • Download URL: cleanroom-0.4.2.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3

File hashes

Hashes for cleanroom-0.4.2.tar.gz
Algorithm Hash digest
SHA256 38bd1bf3e4c4fd82ecb514f694e671e3a1494c33ca81c2ae3668df5cfafdaa88
MD5 c123b35c4d209159702f24e13b3c6d16
BLAKE2b-256 d524e524f25f75870426a9a9f197d2bdb81445fce1ec450bd9e636e312f9d726

See more details on using hashes here.

File details

Details for the file cleanroom-0.4.2-py2.py3-none-any.whl.

File metadata

  • Download URL: cleanroom-0.4.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3

File hashes

Hashes for cleanroom-0.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 238a63f7a25e99262f3157c9aeaab366278f90f7b38d65dfb822fd9bc5612259
MD5 6b1f754e5c16b8844e22b69377ab771f
BLAKE2b-256 6f190930ebac1d440911b67d520fe016d4407868d7d8430c9326bf413ec229ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page