{ "info": { "author": "Colm O'Connor", "author_email": "colm.oconnor.github@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries" ], "description": "CommandLib\n==========\n\nCommandLib is a pythonic wrapper around subprocess that lets you pass around command objects\nand daisy-chain:\n\n* Arguments\n* Paths\n* Other environment variables\n* Runtime directory\n* Other runtime properties (run in shell, conceal stdout/stderr, ignore error codes, etc.)\n\nIt is somewhat inspired by amoffat's sh, Kenneth Reitz's requests, jaraco's path.py\nand SQLAlchemy.\n\nTo install:\n\n.. code-block:: sh\n\n $ pip install commandlib\n\n\nExample:\n\n.. code-block:: python\n\n >>> from commandlib import Command\n >>> ls = Command(\"ls\")\n >>> ls(\"-t\").in_dir(\"/\").with_shell().run()\n sys tmp run dev proc etc boot sbin root vmlinuz initrd.img bin lib opt vmlinuz.old initrd.img.old media home cdrom lost+found var srv usr mnt\n\n\nCommandPath example:\n\n.. code-block:: python\n\n\n >>> from commandlib import CommandPath\n >>> bin = CommandPath(\"/bin\")\n >>> bin.ls(\"-t\").in_dir(\"/\").run()\n sys tmp run dev proc etc boot sbin root vmlinuz initrd.img bin lib opt vmlinuz.old initrd.img.old media home cdrom lost+found var srv usr mnt\n\n\n\n\nAPI\n---\n\n.. code-block:: python\n\n >>> from commandlib import Command, run\n\n # Create command object\n >>> py = Command(\"/usr/bin/python\")\n\n # Run with *additional* environment variable PYTHONPATH (*added* to global environment when command is run)\n >>> py = py.with_env(PYTHONPATH=\"/home/user/pythondirectory\") \n\n # Run with additional path (appended to existing PATH environment variable when command is run)\n >>> py = py.with_path(\"/home/user/bin\")\n\n # Run in specified directory (default is current directory)\n >>> py = py.in_dir(\"/home/user/mydir\")\n\n # Run in shell\n >>> py = py.with_shell()\n\n # Suppress stderr\n >>> py = py.silently() # Suppress stdout and stderr\n\n # Finally run command explicitly with all of the above\n >>> run(py)\n >>> py.run() # alternative syntax\n\n\nWhy?\n----\n\nCommandlib is a library to make it easier to pass around immutable (sort of) command objects between different\nmodules and classes and incrementally modify the command's behavior in a readable way - adding environment\nvariables, paths, etc.\n\n* call, check_call and Popen do not have the friendliest of APIs and code that uses them a lot can get ugly fast.\n* sh does a similar thing but has a lot of magic (e.g. overriding import).\n* envoy and sarge are more focused on chaining commands rather than arguments, environment variables, etc.\n\nAdvanced API\n------------\n\nAdd trailing arguments:\n\n.. code-block:: python\n\n >>> from commandlib import Command, run\n >>> manage = Command(\"/usr/bin/python\", \"manage.py\").with_trailing_arguments(\"--settings\", \"local_settings.py\").in_dir(\"projectdir\")\n >>> run(manage(\"runserver\"))\n [ Runs \"/usr/bin/python manage.py runserver --settings local_settings.py\" inside projectdir ]\n\nDynamically generate command bundles from directories with executables in them:\n\n.. code-block:: python\n\n >>> from commandlib import CommandPath, Command, run\n >>> postgres94 = CommandPath(\"/usr/lib/postgresql/9.4/bin/\")\n >>> run(postgres94.postgres)\n [ Runs postgres ]\n\n >>> run(postgres94.createdb)\n [ Runs createdb ]\n\nUse with path.py (or any other library where str(object) resolves to a string:\n\n.. code-block:: python\n\n >>> from path import Path\n >>> postgres94 = CommandPath(Path(\"/usr/lib/postgresql/9.4/bin/\"))\n >>> run(postgres94.postgres)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/crdoconnor/commandlib", "keywords": "subprocess commands", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "commandlib", "package_url": "https://pypi.org/project/commandlib/", "platform": "", "project_url": "https://pypi.org/project/commandlib/", "project_urls": { "Homepage": "https://github.com/crdoconnor/commandlib" }, "release_url": "https://pypi.org/project/commandlib/0.3.5/", "requires_dist": null, "requires_python": "", "summary": "Pythonic command runner", "version": "0.3.5" }, "last_serial": 4345007, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "61f2c9edb89b31bdb974c2bb4d58c6bf", "sha256": "e5e1098c09538208e2c9b6c5dda4ac23a8c6dabd46ace1229758f74fd27739c9" }, "downloads": -1, "filename": "commandlib-0.1.tar.gz", "has_sig": false, "md5_digest": "61f2c9edb89b31bdb974c2bb4d58c6bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4252, "upload_time": "2016-02-07T15:08:23", "url": "https://files.pythonhosted.org/packages/16/bf/85c2efdc5a6fbd9a8560e87e0b1e8d07fbdb8e3e6c891257f60c371a2ce5/commandlib-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "07e86e107c237f852ab1ca5f0a89ac2f", "sha256": "72caf56d41c8e69deba2afd000fa2f00567e4e5d52d5b2185fde1c413730967b" }, "downloads": -1, "filename": "commandlib-0.1.1.tar.gz", "has_sig": false, "md5_digest": "07e86e107c237f852ab1ca5f0a89ac2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4274, "upload_time": "2016-02-08T19:27:53", "url": "https://files.pythonhosted.org/packages/8f/b1/46bc5f7ae412f6ae04b9d938db0d279e7dc8c4dcd896601c7e61df0c7236/commandlib-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7bdbd95dfc2cddad708736d2b9852ab6", "sha256": "2f961ca49034fa6bc9949428bd8a3fad1a2f83438a511fdabb81540b1718e7c4" }, "downloads": -1, "filename": "commandlib-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7bdbd95dfc2cddad708736d2b9852ab6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4296, "upload_time": "2016-02-08T20:34:55", "url": "https://files.pythonhosted.org/packages/87/1b/811052b86f5e5f156df69ac45c52956bfb0f5a1e19bb62339cb772824a40/commandlib-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "31c8dbe168c42daeac9d4dac81dbd2ae", "sha256": "3178882186c4dff1186e6c1636dfba345f6d7e27e36468390caa61017cd460b9" }, "downloads": -1, "filename": "commandlib-0.1.3.tar.gz", "has_sig": false, "md5_digest": "31c8dbe168c42daeac9d4dac81dbd2ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4293, "upload_time": "2016-02-08T20:48:07", "url": "https://files.pythonhosted.org/packages/ff/b7/94af565d562807e674427c6beecd393fb60d6da31bdaeaf351e93486c56f/commandlib-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "89d22d0e755c61a67d0bd6981617aa4d", "sha256": "1083d1328d3c3e289d8d1e4f692b81dac7866016f7428a4ed9e49fcfc28d9d56" }, "downloads": -1, "filename": "commandlib-0.1.4.tar.gz", "has_sig": false, "md5_digest": "89d22d0e755c61a67d0bd6981617aa4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4309, "upload_time": "2016-02-13T15:09:48", "url": "https://files.pythonhosted.org/packages/90/0f/f42a517c15d2aef488d290de361efba73d4f0a24181a56d2ae7d513cb1a7/commandlib-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2278b572bde66ddeffc1c6de1e910349", "sha256": "646548efe9de38023df71308e8c03d6534f5463adfbcd7106fbe346cc0f0215d" }, "downloads": -1, "filename": "commandlib-0.1.5.tar.gz", "has_sig": false, "md5_digest": "2278b572bde66ddeffc1c6de1e910349", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4307, "upload_time": "2016-02-27T01:33:49", "url": "https://files.pythonhosted.org/packages/f5/91/c5b26756fc7ddf4b52a6443b98516aaf96f5a0de26dd61b09680a5726fc3/commandlib-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c73a4b787ab5d5d254486bbf326ba845", "sha256": "6740d16f0e1628d672e41736c5eb48ea9ad775d2f721c7f627a49f6a2e4a2817" }, "downloads": -1, "filename": "commandlib-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c73a4b787ab5d5d254486bbf326ba845", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5380, "upload_time": "2016-02-27T15:57:53", "url": "https://files.pythonhosted.org/packages/9d/34/860be2d81f56075d661ea06e2d1fd0af03ab8cc0b12306982fc89848ff56/commandlib-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c6bc006bdbda86c38b739f37bfe916bb", "sha256": "db0b6c412da44664a446675ccbfd2a4e0546d62b0f724eaf6e31a9d25dfbeeb3" }, "downloads": -1, "filename": "commandlib-0.1.7.tar.gz", "has_sig": false, "md5_digest": "c6bc006bdbda86c38b739f37bfe916bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5502, "upload_time": "2016-05-04T20:29:02", "url": "https://files.pythonhosted.org/packages/4d/a1/d4d65ce54a17c4a443085fc0ad69d4412de5b49bf8a680b7227853a18859/commandlib-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "3f4796e458fb157e8d7c935e82c1d626", "sha256": "e37e588653925d6fdce56734cf79f7a2d316fa6a78360b8742c4e170d9899106" }, "downloads": -1, "filename": "commandlib-0.1.8.tar.gz", "has_sig": false, "md5_digest": "3f4796e458fb157e8d7c935e82c1d626", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5512, "upload_time": "2016-05-04T21:59:12", "url": "https://files.pythonhosted.org/packages/9a/64/581ab04c3ff07b9109690e56a680d9f129fa8845a2cf627f905796c982ea/commandlib-0.1.8.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3717c0923fc609d547de1785c36098ed", "sha256": "a9c7cf7cde8e3cbf433a38633b41caa0bb848f80aa84b5c63420be29dd601cf0" }, "downloads": -1, "filename": "commandlib-0.2.tar.gz", "has_sig": false, "md5_digest": "3717c0923fc609d547de1785c36098ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5733, "upload_time": "2016-12-11T11:53:04", "url": "https://files.pythonhosted.org/packages/74/56/3e74079479469d997c0fdcb684f1ac0b892e57d3dc91f302d09999c0c491/commandlib-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a3a72c6064fb26c46ae122fcfd5a2d3a", "sha256": "807b7d0f84f4b51b00c07cf8d6b0a756beb24066938f40ad4b1c26ad51004ab0" }, "downloads": -1, "filename": "commandlib-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a3a72c6064fb26c46ae122fcfd5a2d3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6717, "upload_time": "2016-12-13T02:17:36", "url": "https://files.pythonhosted.org/packages/3e/bc/65ff3363ebe14ba8c284305a6ddb5b80ab633a214beaaeffa834472c48eb/commandlib-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "5e7c22a412bcebeb6411e7bb6430434b", "sha256": "db95fb53b769ef5a636f3c4861ac6211a4dbb85b9de553504d0a56dde05a7b3b" }, "downloads": -1, "filename": "commandlib-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5e7c22a412bcebeb6411e7bb6430434b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6725, "upload_time": "2016-12-13T02:28:08", "url": "https://files.pythonhosted.org/packages/cb/5e/c486e863883d1bc0c5c01cc9d11af1bc7a7d096ef16d28ac4fa592b82092/commandlib-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "05af7ebc497dd663020722675b533f6b", "sha256": "07601dff70f1433b57cb9c05815d5e44d2f8fed976868e5763ff2508824c5c1d" }, "downloads": -1, "filename": "commandlib-0.2.3.tar.gz", "has_sig": false, "md5_digest": "05af7ebc497dd663020722675b533f6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6707, "upload_time": "2016-12-29T18:30:47", "url": "https://files.pythonhosted.org/packages/75/e7/9ed1983cf525a6fcc8937629a8ac3fe90c8e714bc2245ef83e76fc9d52da/commandlib-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "d80c6a7556392f948b2d960f66240960", "sha256": "3d2de5a0bc5f9014df24b0a9210f4962e17eee2503360e5c05b4a214cf6e8fbd" }, "downloads": -1, "filename": "commandlib-0.2.4.tar.gz", "has_sig": false, "md5_digest": "d80c6a7556392f948b2d960f66240960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6819, "upload_time": "2017-01-01T01:12:18", "url": "https://files.pythonhosted.org/packages/1e/84/71988e2c232073c8762745ff5c7d2aac13e9dc984540cbfd92dc8ef81705/commandlib-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "f8c368cade79a0d5042ce8b926a27ac2", "sha256": "8446b78fbd8bb0ada29e1de41498c6842a4247b221b22c6c7e2e782556bf655e" }, "downloads": -1, "filename": "commandlib-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f8c368cade79a0d5042ce8b926a27ac2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6985, "upload_time": "2017-01-07T17:59:09", "url": "https://files.pythonhosted.org/packages/b1/6d/ae6b5c5ce7c75bf73b967b6ea91f97a8595ad7f1526d3db31914399b8c07/commandlib-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "57dc64b8a5616b896c3d1c53f355a605", "sha256": "0d48312f1653b44713d9314dccbb21532a4b4be108d9153975ae0d6135d15dae" }, "downloads": -1, "filename": "commandlib-0.2.6.tar.gz", "has_sig": false, "md5_digest": "57dc64b8a5616b896c3d1c53f355a605", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6999, "upload_time": "2017-01-21T15:33:15", "url": "https://files.pythonhosted.org/packages/5b/80/006508ab38f5b0041ee24616e94f5ce9fd98f03cd19b415949ef1aa02c63/commandlib-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "18fdaf48700ce23ffae0871bc12e67fa", "sha256": "964176fd4ffb6d1e3500324833e300273590af433a31ec54b43ddbbedbde4f5d" }, "downloads": -1, "filename": "commandlib-0.2.7.tar.gz", "has_sig": false, "md5_digest": "18fdaf48700ce23ffae0871bc12e67fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7015, "upload_time": "2017-01-28T19:26:43", "url": "https://files.pythonhosted.org/packages/a3/b4/c42c65ab724bf45821cca11c878c2b20d41c95e0ea154c83d68e315e90d6/commandlib-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "4d0792194a712bdadfdebbabb9cd2354", "sha256": "d7622a5a1abad61e19c8d7c572ccd24c3ba09c1638ec3ee1cd27d4897632711a" }, "downloads": -1, "filename": "commandlib-0.2.8.tar.gz", "has_sig": false, "md5_digest": "4d0792194a712bdadfdebbabb9cd2354", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6532, "upload_time": "2017-09-05T10:43:53", "url": "https://files.pythonhosted.org/packages/c7/82/41c8d8927a1e7bd93ee566e3c6e5b8aafb3bd3c66922bd3e4b5fbe685974/commandlib-0.2.8.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8882402e8dd2e4e720d1c578273688ed", "sha256": "8d7a83b09c96026661ed3dfe0dfb407c76f8ab8be6627f2d529a89852780b803" }, "downloads": -1, "filename": "commandlib-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8882402e8dd2e4e720d1c578273688ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6780, "upload_time": "2017-11-26T15:37:09", "url": "https://files.pythonhosted.org/packages/d6/a7/645b36bb005578e921db246f76d76f0d14959f9350abc4f9ac103333fadf/commandlib-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b177860211c77ab258ca8e3071c4c1c4", "sha256": "4a59629babda7c1f4808914cacd1172dc7204feab9577e6c8dddacfbe09d6705" }, "downloads": -1, "filename": "commandlib-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b177860211c77ab258ca8e3071c4c1c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7227, "upload_time": "2018-04-03T21:46:01", "url": "https://files.pythonhosted.org/packages/4b/7f/0826d09c59db982c89dc892343433cb1e3457ea23245c173e87b83bcc7d2/commandlib-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "7a3895af4d8b2ddc62689996237bd528", "sha256": "6701dbcd02c3ab18d3cf64b92826d0c2de0368b6bab68b876d41df1f3f621cd7" }, "downloads": -1, "filename": "commandlib-0.3.2.tar.gz", "has_sig": false, "md5_digest": "7a3895af4d8b2ddc62689996237bd528", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7162, "upload_time": "2018-04-04T16:46:24", "url": "https://files.pythonhosted.org/packages/de/df/1c83bcb8362d57700a2bd7d6e56b1004f918b320be7142f4e84e4d38bb66/commandlib-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c08610c4f4bcbc18e322778fadf14ef7", "sha256": "291af9fdb5b5e0c448857222ab6bfed1f3e9155bc2f2246d27e63d353b8c505a" }, "downloads": -1, "filename": "commandlib-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c08610c4f4bcbc18e322778fadf14ef7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7027, "upload_time": "2018-05-10T17:31:19", "url": "https://files.pythonhosted.org/packages/fd/61/30ba1ba0d4a6d3fa9a9f04dfe1392a3c922831852f9c3e438759958ded9e/commandlib-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "16dc25ed91b84a4ae5f2fa0d84417112", "sha256": "87318eb8cc5c5aacf3871ff165896c55d1ab8dfdbc27f3d3d147cd6b5afe3224" }, "downloads": -1, "filename": "commandlib-0.3.4.tar.gz", "has_sig": false, "md5_digest": "16dc25ed91b84a4ae5f2fa0d84417112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7188, "upload_time": "2018-06-09T15:45:52", "url": "https://files.pythonhosted.org/packages/48/5f/7931061e00b572c30dc049cbee95bcaf610962bf0e62e8390342690c2c02/commandlib-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "be303a77b0cfc34d1e55eb85ad1e2eb1", "sha256": "07b4d2a64a6858e36b185e3512d24ea2f34267d035450035d9bd8437c0ad7d38" }, "downloads": -1, "filename": "commandlib-0.3.5.tar.gz", "has_sig": false, "md5_digest": "be303a77b0cfc34d1e55eb85ad1e2eb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6888, "upload_time": "2018-10-05T16:43:37", "url": "https://files.pythonhosted.org/packages/de/a6/900f45a700bc66b00dc1deaa2ca2dbad5c1b634c48012f649b3ae088b514/commandlib-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "be303a77b0cfc34d1e55eb85ad1e2eb1", "sha256": "07b4d2a64a6858e36b185e3512d24ea2f34267d035450035d9bd8437c0ad7d38" }, "downloads": -1, "filename": "commandlib-0.3.5.tar.gz", "has_sig": false, "md5_digest": "be303a77b0cfc34d1e55eb85ad1e2eb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6888, "upload_time": "2018-10-05T16:43:37", "url": "https://files.pythonhosted.org/packages/de/a6/900f45a700bc66b00dc1deaa2ca2dbad5c1b634c48012f649b3ae088b514/commandlib-0.3.5.tar.gz" } ] }