Skip to main content

Burner Process

Burner Process is a wrapper that runs a function inside a newly spawned independent process that is not child to the main process, handling the function's arguments and returns (via pickle) as well as all its dependencies.

Other solutions (such as this one) rely on subprocess and thus spawn a process that is child to the main process, sharing memory and resources with it. Burner Process comes in handy when you need to run a function in an isolated environment, as a 'hard' workaround to memory leaks or inside parallel sub-processes, to monitor a specific function's resources usage.

Limitations

  • The function has to be defined in a module different from the main, and the functions's module must not include importing burner_process (see example below), which would cause circular imports.
  • Both arguments and returns must be pickleable

Features

  • Supporting overlapping/parallel calls
  • Not relying on subprocess nor multiprocessing
  • Not relying on a queue for the returns
  • Tested on Windows and Linux

Usage

Installation

pip install burner-process

Example

my_module.py

def my_function(x):
    return x * 2

my_script.py

from burner_process import processify
from my_module import my_function

my_function_p = processify(my_function)
my_function_p(5)
>> 10

Verbose example

my_module.py

def my_function(x):
    return x * 2

my_script.py

from burner_process import processify
from my_module import my_function

my_function_p = processify(my_function, verbose=True)
my_function_p(5)
>> Launching from main process (pid: 20124, parent pid: 10568)
>> Serializing arguments to C:\...\io\3
>> Running inside spawned process (pid: 18976, parent pid: 14584)
>> Serializing outputs to C:\...\io\3
>> 10

Metadata

Release files for burner-process 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for burner-process 1.0.1
File Size Uploaded
burner_process-1.0.1.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for burner-process 1.0.1
File Interpreter ABI Platform
burner_process-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.3 kB

Release files / burner_process-1.0.1.tar.gz

Download URL burner_process-1.0.1.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fb5501eaa0bb4cfc89216e4ef0efe438e3ca1abbc5a0be9e690401159e2b02f8
BLAKE2b-256 checksum
How to use checksums
4bc3bcabc5b324984309882922b143f2bd0c43575c9bf4f67717bce4ed15ec85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / burner_process-1.0.1-py3-none-any.whl

Download URL burner_process-1.0.1-py3-none-any.whl
Size 5.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d45da372b84feaaa7dabec74c739c5425f0ece61a2b77b7cdccb87782763e583
BLAKE2b-256 checksum
How to use checksums
0b902e02660adce4f21ff8cbf84e6c6417d4db4744263c2e95e50c3796c99e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page