Metadata-Version: 2.1
Name: pytaskpool
Version: 1.5
Summary: A simple multiprocessing function pool
Home-page: https://github.com/govlog/pytaskpool
Author: AMIAUD Christopher
Author-email: christopher.amiaud@gmail.com
License: GPL
Download-URL: https://github.com/govlog/pytaskpool/tarball/1.5
Keywords: simple multiprocessing function pool
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Hardware :: Symmetric Multi-processing
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 2.3
Classifier: Programming Language :: Python :: 2.4
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
License-File: LICENSE.txt

pytaskpool (v1.5)
=================

A simple multiprocess function pooler which create results generators

pytaskpool use the python multiprocessing module

pytaskpool provide an easy way to execute python functions in a pool of process (not threads) for using all your CPU
cores. Functions results can then be then obtained in order or not (via a generator method).

pytaskpool works on windows and linux.

Download and docs:
    http://pypi.python.org/pypi/pytaskpool
Source code & Development:
    https://github.com/govlog/pytaskpool
Issues:
    christopher.amiaud@gmail.com


Installation
============

pytaskpool is available in the python index package (pip),
It can be installed running the following command::

    $ pip install pytaskpool

or by git like this::

    $ git clone https://github.com/govlog/pytaskpool
    $ cd pytaskpool
    $ sudo python setup.py install

or even in a zip over http : https://github.com/govlog/pytaskpool/archive/master.zip

Usage
=====

This sample code will simultanously launch 8 functions with differents parameters using a pool of 8 processes.
The results returned by all launched functions will be get by the method get_sorted_results(), which is a generator
returning the functions results in order.

The excepted execution time should be around 1 second.

Sample code::

    import pytaskpool as tp
    from time import sleep

    def my_func(x):
        sleep(1)
        return x ** x

    mypool = tp.TaskPool(8)

    for r in range(8):
        mypool.launch(my_func, r)

    unsorted = [r for r in mypool.get_unsorted_results()]
    sorted = [r for r in mypool.get_sorted_results()]

    print ("unsorted :",unsorted)
    print ("sorted   :",sorted)

Terminal output should look like this::

	$ time python examples/pytask_ex2.py 
	unsorted : [1, 1, 4, 27, 256, 46656, 3125, 823543]
	sorted   : [1, 1, 4, 27, 256, 3125, 46656, 823543]
	
	real	0m1,055s
	user	0m0,800s
	sys	0m0,272s


