Shared generator between process
Project description
Python library : cm_shared_generator
Resume
In python, it exist a generator type which can be really useful.
The cm_shared_generator
library provide a Shared_Generator which share generator between thread and process safely.
Install
Pre-required
Global requirements
- Python 3 (
sudo apt update && sudo apt install python3 -y
)
Install requirements
- Setuptools (
sudo apt update && sudo apt install python3-pip -y && pip3 install setuptools
)
Installation
python3 setup.py install
Utilization
The utilization of the Shared_Generator is quite simple. Its prototype is like :
Shared_Generator(self, arg_generator, DEFAULT_GENERATOR_TRAITMENT_FUNCTION=None, FORCE=False, MAX_OBJECT_IN_QUEUE=len(os.sched_getaffinity(0)), TIMEOUT=None)
Its parameters are defined as :
- Required :
arg_generator
-> The generator to shared
- Optional :
DEFAULT_GENERATOR_TRAITMENT_FUNCTION
(Default : None) -> Function to treat default type of value from the generator. Possible value :Shared_Generator.DEFAULT_GENERATOR_TRAITMENT_CLASS
(Create a deep copy of the class before the insertion into the Queue).- Your own function !
FORCE
(Default : False) -> If True, the generator will be defined even his type is not a proper generator.MAX_OBJECT_IN_QUEUE
(Default : Nb of logical processors) : Defined the maximum of elements in the queue at the same time. ( > 0 )TIMEOUT
(Default :Shared_Generator.DEFAULT_TIMEOUT
) : Defined the timeout of Semaphores.
Example :
from cm_shared_generator import Shared_Generator
# Simple integer generator
def int_generator():
i = 0
while i<10:
i+=1
yield i
return
my_shared_generator = Shared_Generator(int_generator, MAX_OBJECT_IN_QUEUE=2) # Creation of the generator with a Maximum lenght queue of 2
my_shared_generator.start(NEW_PROCESS=True) # Launch the generator in a new process
val = my_shared_generator.next() # Get the next value of the generator
my_shared_generator.stop() # Stop the generator
For more examples, check unit tests in tests directory.
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
Built Distribution
Close
Hashes for cm_shared_generator-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd08d71d5240711ae4c5a38365d8ca49073b2bfdeb165ffaf88cb502d427e67d |
|
MD5 | 2b28c6d19c11735aef8f1df707c9f34d |
|
BLAKE2b-256 | a58b53472c8ca7ee6af4f2e6101f297484b217bca2862c6bcd10e3d12843673c |
Close
Hashes for cm_shared_generator-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae226dd4e0213c49eb77fecd8a92ff5ac57ffd638e30b82ac35a1da4730dd6b2 |
|
MD5 | 6628c819a209c0719f6196afe91c5be0 |
|
BLAKE2b-256 | d5e4c747e3a855639b4b1ed7bcd9bdefd1174c3bcf2d1bed67ac5ea36505dc2c |