# Parallel Sequence Processing
This package provides a framework for parallel processing of sequences.
Copyright ® 2019, Luís Gomes luismsgomes@gmail.com. All rights reserved.
Links: https://github.com/luismsgomes/pseq | https://pypi.org/project/pseq/
There are four main concepts in this package, each one modeled as a
class:
- A `WorkUnit` represents a sequence element.
- A `Producer` is responsible for generating a sequence of
`WorkUnit`s to be processed.
- A `Processor` is responsible for processing `WorkUnits`
individually.
- A `Consumer` is responsible for handling processed `WorkUnits`.
These concepts/objects are the building blocks of a
`ParallelSequenceProcessor`, which is depicted below.
![](https://raw.githubusercontent.com/luismsgomes/pseq/master/pseq2.svg)
The `ParallelSequenceProcessor` in this figure has been configured with
two *lanes* for priority `0` (lanes 1 and 2) and a single *lane* for
priority `1` (lane 3).
Unless specified otherwise, by setting `require_in_order=False`,
the `Consumer` receives processed `WorkUnit`s in the same order as
produced by the `Producer` directly above it (in the same lane). This
ordering is ensured by holding processed `WorkUnit`s until all units
produced before them have been processed and passed onto the
`Consumer`.
Usage
-----
Currently, the only documentation available is the example code provided
in `example.py`.
License
-------
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 3 as published
by the Free Software Foundation.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License version 3 for more details.
You should have received a copy of the GNU General Public License along
with this library; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Raw data
{
"_id": null,
"home_page": "https://github.com/luismsgomes/pseq",
"name": "pseq",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "sequence parallel multiprocessing process subprocess",
"author": "Lu\u00eds Gomes",
"author_email": "luismsgomes@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/09/8c/99095560839b1efdc18ebd290edffaa1bc5b7b02376d99e03c573177b576/pseq-2.2.1.tar.gz",
"platform": null,
"description": "# Parallel Sequence Processing\n\nThis package provides a framework for parallel processing of sequences.\n\nCopyright \u00ae 2019, Lu\u00eds Gomes luismsgomes@gmail.com. All rights reserved.\n\nLinks: https://github.com/luismsgomes/pseq | https://pypi.org/project/pseq/\n\nThere are four main concepts in this package, each one modeled as a\nclass:\n\n- A `WorkUnit` represents a sequence element.\n- A `Producer` is responsible for generating a sequence of\n `WorkUnit`s to be processed.\n- A `Processor` is responsible for processing `WorkUnits`\n individually.\n- A `Consumer` is responsible for handling processed `WorkUnits`.\n\nThese concepts/objects are the building blocks of a\n`ParallelSequenceProcessor`, which is depicted below.\n\n![](https://raw.githubusercontent.com/luismsgomes/pseq/master/pseq2.svg)\n\nThe `ParallelSequenceProcessor` in this figure has been configured with\ntwo *lanes* for priority `0` (lanes 1 and 2) and a single *lane* for\npriority `1` (lane 3).\n\nUnless specified otherwise, by setting `require_in_order=False`,\nthe `Consumer` receives processed `WorkUnit`s in the same order as\nproduced by the `Producer` directly above it (in the same lane). This\nordering is ensured by holding processed `WorkUnit`s until all units\nproduced before them have been processed and passed onto the\n`Consumer`.\n\nUsage\n-----\n\nCurrently, the only documentation available is the example code provided\nin `example.py`.\n\n\nLicense\n-------\n\nThis library is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License version 3 as published\nby the Free Software Foundation.\n\nThis library is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License version 3 for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this library; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "A framework for parallel processing of sequences.",
"version": "2.2.1",
"project_urls": {
"Homepage": "https://github.com/luismsgomes/pseq"
},
"split_keywords": [
"sequence",
"parallel",
"multiprocessing",
"process",
"subprocess"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "098c99095560839b1efdc18ebd290edffaa1bc5b7b02376d99e03c573177b576",
"md5": "d84ddffe3df5e1f26b7e5fdc350493a9",
"sha256": "8984cb43de2a6c92e29f99c8d2050acf3cbd66649de4e4d2c3cd8e00bd90029a"
},
"downloads": -1,
"filename": "pseq-2.2.1.tar.gz",
"has_sig": false,
"md5_digest": "d84ddffe3df5e1f26b7e5fdc350493a9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5386,
"upload_time": "2024-06-17T02:14:17",
"upload_time_iso_8601": "2024-06-17T02:14:17.205038Z",
"url": "https://files.pythonhosted.org/packages/09/8c/99095560839b1efdc18ebd290edffaa1bc5b7b02376d99e03c573177b576/pseq-2.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-17 02:14:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "luismsgomes",
"github_project": "pseq",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pseq"
}