{ "info": { "author": "Stavros Korokithakis", "author_email": "hi@stavros.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "prs\n===\n\nprs is a small utility that lets you pipe things to Python and process them in a list comprehension.\n\nIf you've ever wished you could manipulate items in your shell with a Python list comprehension, prs is for you.\n\n\nInstallation\n------------\n\nJust `pip install prs`.\n\n\nUsage\n-----\n\nprs is simple. You pipe stuff into it from the shell, it exposes whatever is piped as a list called `i` (without final\nnewlines) to a script, and expects the script to return either a string or an iterable to a variable called `o`. That\nvariable is then printed to stdout, so you can pipe it to `sh` for execution.\n\n```bash\n$ ls -1\nLICENSE\nprs/\nREADME.md\nsetup.cfg\nsetup.py\n\n$ ls -1 | prs \"o = [l.lower() for l in i]\"\nlicense\nprs\nreadme.md\nsetup.cfg\nsetup.py\n```\n\nMultiple lines can be separated by a semicolon.\n\nVarious libraries are already imported (but feel free to import your own):\n\n* os\n* re\n* sys\n* pathlib.Path\n\n\nExamples\n--------\n\nNote: The examples here won't actually run the commands, they will just display them so you can see what will actually\nrun. To run the commands for real, just append `| sh` to each example.\n\nAppend `.bak` to all files in the current directory:\n\n```bash\n$ ls -1 | prs \"o = ['mv {} {}.bak'.format(l, l) for l in i if Path(l).is_file()]\"\nmv LICENSE LICENSE.bak\nmv README.md README.md.bak\nmv setup.cfg setup.cfg.bak\nmv setup.py setup.py.bak\n```\n\n\nConcatenate all entries into one:\n\n```bash\n02:28:39 $ ls -1 | prs \"o = 'touch ' + ' '.join(i)\"\ntouch LICENSE prs README.md setup.cfg setup.py\n```\n\n\nCompletely ignore all input:\n\n```bash\n02:29:35 $ ls -1 | prs \"o = 'hi'\"\nhi\n```\n\n\nChange the extension of all files in all subdirectories:\n\n```bash\n$ prs 'o = [\"mv %s %s\" % (l, l.with_suffix(\".2py\")) for l in Path(\".\").glob(\"**/*.py\")]'\nmv setup.py setup.2py\nmv build/lib/prs/cli.py build/lib/prs/cli.2py\nmv build/lib/prs/__init__.py build/lib/prs/__init__.2py\nmv prs/cli.py prs/cli.2py\nmv prs/__init__.py prs/__init__.2py\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/stavros/prs", "keywords": "prs shell stdin", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "prs", "package_url": "https://pypi.org/project/prs/", "platform": "", "project_url": "https://pypi.org/project/prs/", "project_urls": { "Homepage": "https://gitlab.com/stavros/prs" }, "release_url": "https://pypi.org/project/prs/0.0.7/", "requires_dist": null, "requires_python": ">3.0.0", "summary": "prs is a utility that allows you to use Python list comprehensions in shell commands.", "version": "0.0.7" }, "last_serial": 4471039, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "2f071abc38c7fb6f79c14890cc51362c", "sha256": "78e3ec9852df8e74e046db55717b028b990e0266695eb565e2a4f83c6601cb4a" }, "downloads": -1, "filename": "prs-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "2f071abc38c7fb6f79c14890cc51362c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4739, "upload_time": "2018-07-06T23:46:23", "url": "https://files.pythonhosted.org/packages/98/29/878a8aec081e7ea779a036d8950c2e5dce77b86756d88bc8f6817d3487b8/prs-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8197574048fe0b96e91a69dcd55ca72a", "sha256": "2e4b0c01c446ea2e994bd8f31c428d64235bc7de8aa86922b0ca6eb4d1589cc3" }, "downloads": -1, "filename": "prs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8197574048fe0b96e91a69dcd55ca72a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2575, "upload_time": "2018-07-06T23:46:21", "url": "https://files.pythonhosted.org/packages/f6/19/fe4215f5289ffd591c9562dd15515db1afcee9026abc2c5a0a338ac463f7/prs-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "6f262e104756383b50ac7befe4f15500", "sha256": "ca5c8cd87bc685b0a2049f1153f5e798c9b242767f36f569f2476c48d873a2f3" }, "downloads": -1, "filename": "prs-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6f262e104756383b50ac7befe4f15500", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4749, "upload_time": "2018-07-06T23:53:18", "url": "https://files.pythonhosted.org/packages/b4/e4/881e6d6e5c658b33a261d56906ebf9577adc7acb9ccc910ad1b4f989e235/prs-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22d8017888d97abccfaab64b2a2d9c34", "sha256": "094566575dfa33d42edd99d49f04a91b33c80664229d6e1937862d2435e0d883" }, "downloads": -1, "filename": "prs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "22d8017888d97abccfaab64b2a2d9c34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2595, "upload_time": "2018-07-06T23:53:16", "url": "https://files.pythonhosted.org/packages/bb/8d/6e48656c9a83f9f19b2890e15b1b9d27f92f65510134c1add854cd65441c/prs-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "99dbb822c41f86eb92219ebbedfd6ca1", "sha256": "152ad098653d09f4f171d4f427040980c7a737b400466163d93bd0d40fd7e65b" }, "downloads": -1, "filename": "prs-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "99dbb822c41f86eb92219ebbedfd6ca1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4569, "upload_time": "2018-07-07T00:03:05", "url": "https://files.pythonhosted.org/packages/86/73/b686499ab723c53199ab5ceec5cf63a81785522a91fb9fd6e27a159e1876/prs-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "903662a8aa5c737b0c5c4f09e4ea485e", "sha256": "2530308d0cc21cfcc6c8e196018e6b9605f34d66215e4689f126a0e8d896c412" }, "downloads": -1, "filename": "prs-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "903662a8aa5c737b0c5c4f09e4ea485e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2973, "upload_time": "2018-07-07T00:09:25", "url": "https://files.pythonhosted.org/packages/82/ea/196c80b565ee690bcc1b3bae66b47425ab5bc94a94f3a042cf694bcdcd17/prs-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a8421317f947266d701893565319117", "sha256": "ef40a752a786b142a5038535fba72d97ffb64fb22d93c67ab7cc026aa06f6114" }, "downloads": -1, "filename": "prs-0.0.3.tar.gz", "has_sig": false, "md5_digest": "1a8421317f947266d701893565319117", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2794, "upload_time": "2018-07-07T00:03:06", "url": "https://files.pythonhosted.org/packages/ee/88/f611a4dc2bab046553f583a0650d7cea2a670f7fe3bd253f1fee62d96c1e/prs-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e0be4c055963089eafc876c80d503a2f", "sha256": "76533cce9e6e03b94620121d67ac366174d9580467a0ea1fb2749ac9a856c7e1" }, "downloads": -1, "filename": "prs-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e0be4c055963089eafc876c80d503a2f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.0.0", "size": 2992, "upload_time": "2018-07-07T00:54:59", "url": "https://files.pythonhosted.org/packages/25/4a/2b0376edbe0c32181eff2c3b37759fa361d5c8e74161e43d5c8a859dbab1/prs-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cca926f615dbb4365d43a7d26321bd12", "sha256": "7bf76619c8348d4f917915af8c1eab87bdf3e0e303d65532a551f95ccb20d7b5" }, "downloads": -1, "filename": "prs-0.0.4.tar.gz", "has_sig": false, "md5_digest": "cca926f615dbb4365d43a7d26321bd12", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 2840, "upload_time": "2018-07-07T00:55:01", "url": "https://files.pythonhosted.org/packages/ba/0e/545834524e3dc003fc487dd7f72b7325f60c641b8d81da1f3c00c0e0ee89/prs-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "17ceef3321d1d35992c71a9b341d60b0", "sha256": "b4158505d421008c707b6e7300cb8da0d7f8ca7a9f601e1147638e14196817c7" }, "downloads": -1, "filename": "prs-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "17ceef3321d1d35992c71a9b341d60b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.0.0", "size": 3088, "upload_time": "2018-07-10T12:49:20", "url": "https://files.pythonhosted.org/packages/d7/ed/9025d6e473f3ddfab2a64e0bd0fd38c3e2729032c3afb6d7a46f05be8ba6/prs-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d7f13baa71e32014f9b60db6b0b4afd", "sha256": "7e3463461c3f97a35c26381d0c2d6f279f2320a8fef63263776fc8a1c7be4d4c" }, "downloads": -1, "filename": "prs-0.0.5.tar.gz", "has_sig": false, "md5_digest": "9d7f13baa71e32014f9b60db6b0b4afd", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 3000, "upload_time": "2018-07-10T12:49:21", "url": "https://files.pythonhosted.org/packages/ca/fa/9c0fa312825916d7654a15ecf6803c1f717046c888c9cb5292acbe2e324d/prs-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "5b3ffa50c32949034140c780bf7bbb60", "sha256": "54c590e20c887666be728464dbdc5be916a020a53eb86a4de360bbb5d22fcf8b" }, "downloads": -1, "filename": "prs-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "5b3ffa50c32949034140c780bf7bbb60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.0.0", "size": 3245, "upload_time": "2018-07-10T22:05:44", "url": "https://files.pythonhosted.org/packages/87/87/288af9b193bb1afddb0a2ea35c53fa37ca5448947d4627a94fdc7358a3c6/prs-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2e856fde22ee6c56c36769ed1bdc334", "sha256": "fa1034f3fe77a47beac792b588c680d152a686e14b539a89ca67c7d7c1998c91" }, "downloads": -1, "filename": "prs-0.0.6.tar.gz", "has_sig": false, "md5_digest": "d2e856fde22ee6c56c36769ed1bdc334", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 3169, "upload_time": "2018-07-10T22:05:45", "url": "https://files.pythonhosted.org/packages/05/97/928765c1f6049c39e3750f711447774b17df39daffb047a62e4cc4a95cb5/prs-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "980702b4dde5c16c65df2d80beb5c24d", "sha256": "1e723f8b40ca4e241c86b483cb8588b4de888afe5dc8a1a0e789f7043447db6b" }, "downloads": -1, "filename": "prs-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "980702b4dde5c16c65df2d80beb5c24d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.0.0", "size": 3266, "upload_time": "2018-10-23T09:56:00", "url": "https://files.pythonhosted.org/packages/be/26/6c556b1723cb985ebb44498c16c8b427604a41c76ddf16b11714903ef142/prs-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04a6432db6f34c433b17c336d77af91c", "sha256": "93533805a87cb545b478148530513ed428f7e7402b90b4bf7f1f86ef50ceb795" }, "downloads": -1, "filename": "prs-0.0.7.tar.gz", "has_sig": false, "md5_digest": "04a6432db6f34c433b17c336d77af91c", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 3224, "upload_time": "2018-10-23T09:56:02", "url": "https://files.pythonhosted.org/packages/9f/4b/c66421e6b8f9bf4762800e6a32a1def7661cd388b34797d4528d15b9d2a6/prs-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "980702b4dde5c16c65df2d80beb5c24d", "sha256": "1e723f8b40ca4e241c86b483cb8588b4de888afe5dc8a1a0e789f7043447db6b" }, "downloads": -1, "filename": "prs-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "980702b4dde5c16c65df2d80beb5c24d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.0.0", "size": 3266, "upload_time": "2018-10-23T09:56:00", "url": "https://files.pythonhosted.org/packages/be/26/6c556b1723cb985ebb44498c16c8b427604a41c76ddf16b11714903ef142/prs-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04a6432db6f34c433b17c336d77af91c", "sha256": "93533805a87cb545b478148530513ed428f7e7402b90b4bf7f1f86ef50ceb795" }, "downloads": -1, "filename": "prs-0.0.7.tar.gz", "has_sig": false, "md5_digest": "04a6432db6f34c433b17c336d77af91c", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 3224, "upload_time": "2018-10-23T09:56:02", "url": "https://files.pythonhosted.org/packages/9f/4b/c66421e6b8f9bf4762800e6a32a1def7661cd388b34797d4528d15b9d2a6/prs-0.0.7.tar.gz" } ] }