Pipettor Overview
=================
pipettor - robust, easy to use Python package for running Unix process pipelines
Features
--------
* Creating process pipelines in Python is either complex (e.g. ``subprocess``),
or not robust (e.g. ``os.system()``). This package aims to address these shortcomings.
* Command pipelines are simply specified as a sequence of commands, with each
command represented as a sequence of arguments.
* Failure of any process in the pipeline results in an exception, with ``stderr``
included in the exception.
* Pipeline ``stdin/stdout/stderr`` can be passed through from parent process,
redirected to a file, or read/written by the parent process.
* Asynchronous reading and writing to and from the pipeline maybe done without risk of
deadlock.
* Pipeline can run asynchronously or block until completion.
* Popen-style File-like objects for reading or writing a pipeline.
* Documentation: https://pipettor.readthedocs.org.
History
=======
1.0.0 (2023-06-29)
-----------------
* Don't use a process group; as it caused signals to not get propagated. Processes are explicitly waited for by pid, so this will not consume the exit of other process not create by this module.
0.8.0 (2023-02-05)
-----------------
* make most optional arguments require keyword form to help prevent errors, especially if open() options are assumed
* added more functions to make Popen objects file-like objects
0.7.0 (2023-01-06)
-----------------
* don't fail if invalid UTF-8 characters are written to capture stderr
0.6.0 (2022-11-16)
-----------------
* remove use of deprecated pipes module
0.5.0 (2020-12-25)
-----------------
* Removed Python-2 support.
* Switch to using subprocess as a base rather interface directly
with Unix system calls. This lets subprocess deal with
various issues dealing with the Python interpreter environment.
0.4.0 (2018-04-21)
------------------
* Allow passing through universial newline mode for PY2.
* Fix bug with not using specified log level.
0.3.0 (2018-02-25)
-----------------------
* added open-stying buffering, encoding, and errors options
* source cleanup
0.2.0 (2017-09-19)
-----------------------
* Simplified and log of info and errors levels by removing logLevel options.
* Improvements to documentation.
0.1.3 (2017-06-13)
------------------
* Documentation fixes
0.1.2 (2017-06-11)
------------------
* First public release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/diekhans/pipettor",
"name": "pipettor",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "Unix,process,pipe",
"author": "Mark Diekhans",
"author_email": "markd@ucsc.edu",
"download_url": "https://files.pythonhosted.org/packages/cf/89/280b4b62215b9cd3055cce365a59ad1da5a6437b3fb445884010369125e5/pipettor-1.0.0.tar.gz",
"platform": null,
"description": "Pipettor Overview\n=================\n\npipettor - robust, easy to use Python package for running Unix process pipelines\n\nFeatures\n--------\n\n* Creating process pipelines in Python is either complex (e.g. ``subprocess``),\n or not robust (e.g. ``os.system()``). This package aims to address these shortcomings.\n* Command pipelines are simply specified as a sequence of commands, with each\n command represented as a sequence of arguments.\n* Failure of any process in the pipeline results in an exception, with ``stderr``\n included in the exception.\n* Pipeline ``stdin/stdout/stderr`` can be passed through from parent process,\n redirected to a file, or read/written by the parent process.\n* Asynchronous reading and writing to and from the pipeline maybe done without risk of\n deadlock.\n* Pipeline can run asynchronously or block until completion.\n* Popen-style File-like objects for reading or writing a pipeline.\n* Documentation: https://pipettor.readthedocs.org.\n\n\n\n\n\nHistory\n=======\n\n1.0.0 (2023-06-29)\n-----------------\n* Don't use a process group; as it caused signals to not get propagated. Processes are explicitly waited for by pid, so this will not consume the exit of other process not create by this module.\n \n\n0.8.0 (2023-02-05)\n-----------------\n* make most optional arguments require keyword form to help prevent errors, especially if open() options are assumed\n* added more functions to make Popen objects file-like objects\n\n0.7.0 (2023-01-06)\n-----------------\n* don't fail if invalid UTF-8 characters are written to capture stderr\n\n0.6.0 (2022-11-16)\n-----------------\n* remove use of deprecated pipes module\n\n0.5.0 (2020-12-25)\n-----------------\n* Removed Python-2 support.\n* Switch to using subprocess as a base rather interface directly\n with Unix system calls. This lets subprocess deal with\n various issues dealing with the Python interpreter environment. \n\n0.4.0 (2018-04-21)\n------------------\n* Allow passing through universial newline mode for PY2.\n* Fix bug with not using specified log level.\n\n\n0.3.0 (2018-02-25)\n-----------------------\n* added open-stying buffering, encoding, and errors options\n* source cleanup\n\n0.2.0 (2017-09-19)\n-----------------------\n* Simplified and log of info and errors levels by removing logLevel options.\n* Improvements to documentation.\n\n0.1.3 (2017-06-13)\n------------------\n* Documentation fixes\n\n0.1.2 (2017-06-11)\n------------------\n* First public release on PyPI.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "pipettor - robust, easy to use Unix process pipelines",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/diekhans/pipettor"
},
"split_keywords": [
"unix",
"process",
"pipe"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "83b7c8447d244c73f29767726b1cf03f2660faa503c45109a08fc697f451d2be",
"md5": "1263a0ace3eca567f90b65a035c257b1",
"sha256": "7ce9d46195a37540f6c4a262ec028430daf8a8e85ee8793271c8c1bf5768b5e8"
},
"downloads": -1,
"filename": "pipettor-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1263a0ace3eca567f90b65a035c257b1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 15324,
"upload_time": "2023-06-29T23:20:46",
"upload_time_iso_8601": "2023-06-29T23:20:46.976540Z",
"url": "https://files.pythonhosted.org/packages/83/b7/c8447d244c73f29767726b1cf03f2660faa503c45109a08fc697f451d2be/pipettor-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cf89280b4b62215b9cd3055cce365a59ad1da5a6437b3fb445884010369125e5",
"md5": "64213f8b07792474a0abf84fac8ac140",
"sha256": "637113cae20c9b295277929d4bd0e4832d74564eb393e90a0beeb7c8ad3b0a84"
},
"downloads": -1,
"filename": "pipettor-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "64213f8b07792474a0abf84fac8ac140",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 34830,
"upload_time": "2023-06-29T23:20:48",
"upload_time_iso_8601": "2023-06-29T23:20:48.370400Z",
"url": "https://files.pythonhosted.org/packages/cf/89/280b4b62215b9cd3055cce365a59ad1da5a6437b3fb445884010369125e5/pipettor-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-29 23:20:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "diekhans",
"github_project": "pipettor",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "pipettor"
}