multiprocess


Namemultiprocess JSON
Version 0.70.16 PyPI version JSON
download
home_pagehttps://github.com/uqfoundation/multiprocess
Summarybetter multiprocessing and multithreading in Python
upload_time2024-01-28 18:52:34
maintainerMike McKerns
docs_urlNone
authorMike McKerns
requires_python>=3.8
licenseBSD-3-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage
            -----------------------------------------------------------------
multiprocess: better multiprocessing and multithreading in Python
-----------------------------------------------------------------

About Multiprocess
==================

``multiprocess`` is a fork of ``multiprocessing``. ``multiprocess`` extends ``multiprocessing`` to provide enhanced serialization, using `dill`. ``multiprocess`` leverages ``multiprocessing`` to support the spawning of processes using the API of the Python standard library's ``threading`` module. ``multiprocessing`` has been distributed as part of the standard library since Python 2.6.

``multiprocess`` is part of ``pathos``,  a Python framework for heterogeneous computing.
``multiprocess`` is in active development, so any user feedback, bug reports, comments,
or suggestions are highly appreciated.  A list of issues is located at https://github.com/uqfoundation/multiprocess/issues, with a legacy list maintained at https://uqfoundation.github.io/project/pathos/query.


Major Features
==============

``multiprocess`` enables:

    - objects to be transferred between processes using pipes or multi-producer/multi-consumer queues
    - objects to be shared between processes using a server process or (for simple data) shared memory

``multiprocess`` provides:

    - equivalents of all the synchronization primitives in ``threading``
    - a ``Pool`` class to facilitate submitting tasks to worker processes
    - enhanced serialization, using ``dill``


Current Release
===============

The latest released version of ``multiprocess`` is available from:

    https://pypi.org/project/multiprocess

``multiprocess`` is distributed under a 3-clause BSD license, and is a fork of ``multiprocessing``.


Development Version
===================

You can get the latest development version with all the shiny new features at:

    https://github.com/uqfoundation

If you have a new contribution, please submit a pull request.


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

``multiprocess`` can be installed with ``pip``::

    $ pip install multiprocess

For Python 2, a C compiler is required to build the included extension module from source. Python 3 and binary installs do not require a C compiler.


Requirements
============

``multiprocess`` requires:

    - ``python`` (or ``pypy``), **>=3.8**
    - ``setuptools``, **>=42**
    - ``dill``, **>=0.3.8**


Basic Usage
===========

The ``multiprocess.Process`` class follows the API of ``threading.Thread``.
For example ::

    from multiprocess import Process, Queue

    def f(q):
        q.put('hello world')

    if __name__ == '__main__':
        q = Queue()
        p = Process(target=f, args=[q])
        p.start()
        print (q.get())
        p.join()

Synchronization primitives like locks, semaphores and conditions are
available, for example ::

    >>> from multiprocess import Condition
    >>> c = Condition()
    >>> print (c)
    <Condition(<RLock(None, 0)>), 0>
    >>> c.acquire()
    True
    >>> print (c)
    <Condition(<RLock(MainProcess, 1)>), 0>

One can also use a manager to create shared objects either in shared
memory or in a server process, for example ::

    >>> from multiprocess import Manager
    >>> manager = Manager()
    >>> l = manager.list(range(10))
    >>> l.reverse()
    >>> print (l)
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    >>> print (repr(l))
    <Proxy[list] object at 0x00E1B3B0>

Tasks can be offloaded to a pool of worker processes in various ways,
for example ::

    >>> from multiprocess import Pool
    >>> def f(x): return x*x
    ...
    >>> p = Pool(4)
    >>> result = p.map_async(f, range(10))
    >>> print (result.get(timeout=1))
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

When ``dill`` is installed, serialization is extended to most objects,
for example ::

    >>> from multiprocess import Pool
    >>> p = Pool(4)
    >>> print (p.map(lambda x: (lambda y:y**2)(x) + x, xrange(10)))
    [0, 2, 6, 12, 20, 30, 42, 56, 72, 90]


More Information
================

Probably the best way to get started is to look at the documentation at
http://multiprocess.rtfd.io. Also see ``multiprocess.tests`` for scripts that
demonstrate how ``multiprocess`` can be used to leverge multiple processes
to execute Python in parallel. You can run the test suite with
``python -m multiprocess.tests``. As ``multiprocess`` conforms to the
``multiprocessing`` interface, the examples and documentation found at
http://docs.python.org/library/multiprocessing.html also apply to
``multiprocess`` if one will ``import multiprocessing as multiprocess``.
See https://github.com/uqfoundation/multiprocess/tree/master/py3.12/examples
for a set of examples that demonstrate some basic use cases and benchmarking
for running Python code in parallel. Please feel free to submit a ticket on
github, or ask a question on stackoverflow (**@Mike McKerns**). If you would
like to share how you use ``multiprocess`` in your work, please send an email
(to **mmckerns at uqfoundation dot org**).


Citation
========

If you use ``multiprocess`` to do research that leads to publication, we ask that you
acknowledge use of ``multiprocess`` by citing the following in your publication::

    M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,
    "Building a framework for predictive science", Proceedings of
    the 10th Python in Science Conference, 2011;
    http://arxiv.org/pdf/1202.1056

    Michael McKerns and Michael Aivazis,
    "pathos: a framework for heterogeneous computing", 2010- ;
    https://uqfoundation.github.io/project/pathos

Please see https://uqfoundation.github.io/project/pathos or
http://arxiv.org/pdf/1202.1056 for further information.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/uqfoundation/multiprocess",
    "name": "multiprocess",
    "maintainer": "Mike McKerns",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "mmckerns@uqfoundation.org",
    "keywords": "",
    "author": "Mike McKerns",
    "author_email": "mmckerns@uqfoundation.org",
    "download_url": "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz",
    "platform": "Linux",
    "description": "-----------------------------------------------------------------\nmultiprocess: better multiprocessing and multithreading in Python\n-----------------------------------------------------------------\n\nAbout Multiprocess\n==================\n\n``multiprocess`` is a fork of ``multiprocessing``. ``multiprocess`` extends ``multiprocessing`` to provide enhanced serialization, using `dill`. ``multiprocess`` leverages ``multiprocessing`` to support the spawning of processes using the API of the Python standard library's ``threading`` module. ``multiprocessing`` has been distributed as part of the standard library since Python 2.6.\n\n``multiprocess`` is part of ``pathos``,  a Python framework for heterogeneous computing.\n``multiprocess`` is in active development, so any user feedback, bug reports, comments,\nor suggestions are highly appreciated.  A list of issues is located at https://github.com/uqfoundation/multiprocess/issues, with a legacy list maintained at https://uqfoundation.github.io/project/pathos/query.\n\n\nMajor Features\n==============\n\n``multiprocess`` enables:\n\n    - objects to be transferred between processes using pipes or multi-producer/multi-consumer queues\n    - objects to be shared between processes using a server process or (for simple data) shared memory\n\n``multiprocess`` provides:\n\n    - equivalents of all the synchronization primitives in ``threading``\n    - a ``Pool`` class to facilitate submitting tasks to worker processes\n    - enhanced serialization, using ``dill``\n\n\nCurrent Release\n===============\n\nThe latest released version of ``multiprocess`` is available from:\n\n    https://pypi.org/project/multiprocess\n\n``multiprocess`` is distributed under a 3-clause BSD license, and is a fork of ``multiprocessing``.\n\n\nDevelopment Version\n===================\n\nYou can get the latest development version with all the shiny new features at:\n\n    https://github.com/uqfoundation\n\nIf you have a new contribution, please submit a pull request.\n\n\nInstallation\n============\n\n``multiprocess`` can be installed with ``pip``::\n\n    $ pip install multiprocess\n\nFor Python 2, a C compiler is required to build the included extension module from source. Python 3 and binary installs do not require a C compiler.\n\n\nRequirements\n============\n\n``multiprocess`` requires:\n\n    - ``python`` (or ``pypy``), **>=3.8**\n    - ``setuptools``, **>=42**\n    - ``dill``, **>=0.3.8**\n\n\nBasic Usage\n===========\n\nThe ``multiprocess.Process`` class follows the API of ``threading.Thread``.\nFor example ::\n\n    from multiprocess import Process, Queue\n\n    def f(q):\n        q.put('hello world')\n\n    if __name__ == '__main__':\n        q = Queue()\n        p = Process(target=f, args=[q])\n        p.start()\n        print (q.get())\n        p.join()\n\nSynchronization primitives like locks, semaphores and conditions are\navailable, for example ::\n\n    >>> from multiprocess import Condition\n    >>> c = Condition()\n    >>> print (c)\n    <Condition(<RLock(None, 0)>), 0>\n    >>> c.acquire()\n    True\n    >>> print (c)\n    <Condition(<RLock(MainProcess, 1)>), 0>\n\nOne can also use a manager to create shared objects either in shared\nmemory or in a server process, for example ::\n\n    >>> from multiprocess import Manager\n    >>> manager = Manager()\n    >>> l = manager.list(range(10))\n    >>> l.reverse()\n    >>> print (l)\n    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]\n    >>> print (repr(l))\n    <Proxy[list] object at 0x00E1B3B0>\n\nTasks can be offloaded to a pool of worker processes in various ways,\nfor example ::\n\n    >>> from multiprocess import Pool\n    >>> def f(x): return x*x\n    ...\n    >>> p = Pool(4)\n    >>> result = p.map_async(f, range(10))\n    >>> print (result.get(timeout=1))\n    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]\n\nWhen ``dill`` is installed, serialization is extended to most objects,\nfor example ::\n\n    >>> from multiprocess import Pool\n    >>> p = Pool(4)\n    >>> print (p.map(lambda x: (lambda y:y**2)(x) + x, xrange(10)))\n    [0, 2, 6, 12, 20, 30, 42, 56, 72, 90]\n\n\nMore Information\n================\n\nProbably the best way to get started is to look at the documentation at\nhttp://multiprocess.rtfd.io. Also see ``multiprocess.tests`` for scripts that\ndemonstrate how ``multiprocess`` can be used to leverge multiple processes\nto execute Python in parallel. You can run the test suite with\n``python -m multiprocess.tests``. As ``multiprocess`` conforms to the\n``multiprocessing`` interface, the examples and documentation found at\nhttp://docs.python.org/library/multiprocessing.html also apply to\n``multiprocess`` if one will ``import multiprocessing as multiprocess``.\nSee https://github.com/uqfoundation/multiprocess/tree/master/py3.12/examples\nfor a set of examples that demonstrate some basic use cases and benchmarking\nfor running Python code in parallel. Please feel free to submit a ticket on\ngithub, or ask a question on stackoverflow (**@Mike McKerns**). If you would\nlike to share how you use ``multiprocess`` in your work, please send an email\n(to **mmckerns at uqfoundation dot org**).\n\n\nCitation\n========\n\nIf you use ``multiprocess`` to do research that leads to publication, we ask that you\nacknowledge use of ``multiprocess`` by citing the following in your publication::\n\n    M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,\n    \"Building a framework for predictive science\", Proceedings of\n    the 10th Python in Science Conference, 2011;\n    http://arxiv.org/pdf/1202.1056\n\n    Michael McKerns and Michael Aivazis,\n    \"pathos: a framework for heterogeneous computing\", 2010- ;\n    https://uqfoundation.github.io/project/pathos\n\nPlease see https://uqfoundation.github.io/project/pathos or\nhttp://arxiv.org/pdf/1202.1056 for further information.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "better multiprocessing and multithreading in Python",
    "version": "0.70.16",
    "project_urls": {
        "Bug Tracker": "https://github.com/uqfoundation/multiprocess/issues",
        "Documentation": "http://multiprocess.rtfd.io",
        "Download": "https://pypi.org/project/multiprocess/#files",
        "Homepage": "https://github.com/uqfoundation/multiprocess",
        "Source Code": "https://github.com/uqfoundation/multiprocess"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef766e712a2623d146d314f17598df5de7224c85c0060ef63fd95cc15a25b3fa",
                "md5": "57e071fae671b506a9ccbf530befbe35",
                "sha256": "476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp310-pypy310_pp73-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "57e071fae671b506a9ccbf530befbe35",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 134980,
            "upload_time": "2024-01-28T18:52:15",
            "upload_time_iso_8601": "2024-01-28T18:52:15.731462Z",
            "url": "https://files.pythonhosted.org/packages/ef/76/6e712a2623d146d314f17598df5de7224c85c0060ef63fd95cc15a25b3fa/multiprocess-0.70.16-pp310-pypy310_pp73-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0fab1e6e8009e380e22254ff539ebe117861e5bdb3bff1fc977920972237c6c7",
                "md5": "b6fff33e37d79fe0c774346a152df773",
                "sha256": "d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b6fff33e37d79fe0c774346a152df773",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.8",
            "size": 134982,
            "upload_time": "2024-01-28T18:52:17",
            "upload_time_iso_8601": "2024-01-28T18:52:17.783002Z",
            "url": "https://files.pythonhosted.org/packages/0f/ab/1e6e8009e380e22254ff539ebe117861e5bdb3bff1fc977920972237c6c7/multiprocess-0.70.16-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4142b77fb443e3f5d9ed1f77e7bfe9424231904e4656c2145135b50b732f8529",
                "md5": "724a55e2b50306df117ab37364535b8d",
                "sha256": "37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "724a55e2b50306df117ab37364535b8d",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 132801,
            "upload_time": "2024-01-28T18:52:19",
            "upload_time_iso_8601": "2024-01-28T18:52:19.114767Z",
            "url": "https://files.pythonhosted.org/packages/41/42/b77fb443e3f5d9ed1f77e7bfe9424231904e4656c2145135b50b732f8529/multiprocess-0.70.16-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "50076daf536ec054b2cd97d4c57bd38ae3d5a75ce944f4f6560c217194b88886",
                "md5": "cde09f9fdb1e54d5cee7680d53b8b554",
                "sha256": "ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cde09f9fdb1e54d5cee7680d53b8b554",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.8",
            "size": 132805,
            "upload_time": "2024-01-28T18:52:20",
            "upload_time_iso_8601": "2024-01-28T18:52:20.910771Z",
            "url": "https://files.pythonhosted.org/packages/50/07/6daf536ec054b2cd97d4c57bd38ae3d5a75ce944f4f6560c217194b88886/multiprocess-0.70.16-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d8948638a89f93c80df329116e6781a060506c7e91e1f4370dc831e9d17a041d",
                "md5": "4ecbc2be7525565c11913f385e376e90",
                "sha256": "0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp39-pypy39_pp73-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4ecbc2be7525565c11913f385e376e90",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 133497,
            "upload_time": "2024-01-28T18:52:22",
            "upload_time_iso_8601": "2024-01-28T18:52:22.644473Z",
            "url": "https://files.pythonhosted.org/packages/d8/94/8638a89f93c80df329116e6781a060506c7e91e1f4370dc831e9d17a041d/multiprocess-0.70.16-pp39-pypy39_pp73-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8921222066f6bb8d8af287923ae3bd26cf4699a9ce020228ac273caca1de8250",
                "md5": "91172aa9e9b90c74441724e6603e2cdc",
                "sha256": "e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "91172aa9e9b90c74441724e6603e2cdc",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 133498,
            "upload_time": "2024-01-28T18:52:24",
            "upload_time_iso_8601": "2024-01-28T18:52:24.576994Z",
            "url": "https://files.pythonhosted.org/packages/89/21/222066f6bb8d8af287923ae3bd26cf4699a9ce020228ac273caca1de8250/multiprocess-0.70.16-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcf77ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36",
                "md5": "16c2e64546a67677ec2d304c817a2e76",
                "sha256": "c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-py310-none-any.whl",
            "has_sig": false,
            "md5_digest": "16c2e64546a67677ec2d304c817a2e76",
            "packagetype": "bdist_wheel",
            "python_version": "py310",
            "requires_python": ">=3.8",
            "size": 134824,
            "upload_time": "2024-01-28T18:52:26",
            "upload_time_iso_8601": "2024-01-28T18:52:26.062376Z",
            "url": "https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5015b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91",
                "md5": "2696ee5fb2a3555dbca3a67e2ff3449f",
                "sha256": "af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-py311-none-any.whl",
            "has_sig": false,
            "md5_digest": "2696ee5fb2a3555dbca3a67e2ff3449f",
            "packagetype": "bdist_wheel",
            "python_version": "py311",
            "requires_python": ">=3.8",
            "size": 143519,
            "upload_time": "2024-01-28T18:52:28",
            "upload_time_iso_8601": "2024-01-28T18:52:28.115326Z",
            "url": "https://files.pythonhosted.org/packages/50/15/b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91/multiprocess-0.70.16-py311-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a7da988f258104dcd2ccf1ed40fdc97e26c4ac351eeaf81d76e266c52d84e2f",
                "md5": "ab08083bf3f2dc577e2a74818c4a7e6e",
                "sha256": "fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-py312-none-any.whl",
            "has_sig": false,
            "md5_digest": "ab08083bf3f2dc577e2a74818c4a7e6e",
            "packagetype": "bdist_wheel",
            "python_version": "py312",
            "requires_python": ">=3.8",
            "size": 146741,
            "upload_time": "2024-01-28T18:52:29",
            "upload_time_iso_8601": "2024-01-28T18:52:29.395374Z",
            "url": "https://files.pythonhosted.org/packages/0a/7d/a988f258104dcd2ccf1ed40fdc97e26c4ac351eeaf81d76e266c52d84e2f/multiprocess-0.70.16-py312-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea8938df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b",
                "md5": "6a899124a9fa2b94f41d24eb927d9ba2",
                "sha256": "a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-py38-none-any.whl",
            "has_sig": false,
            "md5_digest": "6a899124a9fa2b94f41d24eb927d9ba2",
            "packagetype": "bdist_wheel",
            "python_version": "py38",
            "requires_python": ">=3.8",
            "size": 132628,
            "upload_time": "2024-01-28T18:52:30",
            "upload_time_iso_8601": "2024-01-28T18:52:30.853542Z",
            "url": "https://files.pythonhosted.org/packages/ea/89/38df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b/multiprocess-0.70.16-py38-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dad9f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6",
                "md5": "679f322042fcf45d6343af219de04091",
                "sha256": "a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16-py39-none-any.whl",
            "has_sig": false,
            "md5_digest": "679f322042fcf45d6343af219de04091",
            "packagetype": "bdist_wheel",
            "python_version": "py39",
            "requires_python": ">=3.8",
            "size": 133351,
            "upload_time": "2024-01-28T18:52:31",
            "upload_time_iso_8601": "2024-01-28T18:52:31.981849Z",
            "url": "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b5ae04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d",
                "md5": "3240912de9afb22fcef7c17513fbcbc8",
                "sha256": "161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1"
            },
            "downloads": -1,
            "filename": "multiprocess-0.70.16.tar.gz",
            "has_sig": false,
            "md5_digest": "3240912de9afb22fcef7c17513fbcbc8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1772603,
            "upload_time": "2024-01-28T18:52:34",
            "upload_time_iso_8601": "2024-01-28T18:52:34.850648Z",
            "url": "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-28 18:52:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "uqfoundation",
    "github_project": "multiprocess",
    "travis_ci": true,
    "coveralls": true,
    "github_actions": false,
    "tox": true,
    "lcname": "multiprocess"
}
        
Elapsed time: 0.17867s