{ "info": { "author": "Felix Meyer-Wolters", "author_email": "felix@meyerwolters.de", "bugtrack_url": null, "classifiers": [], "description": "# cmdinter\n\n## Description\n\nThis is a library that can be used to apply a *command interface* to functions.\nIt's main purpose is to apply the *returncode* convention to python functions \nand to give you some control on how to run these functions. E.g. if you need to \nrun a function silently (no stdout), if you need to return the stdout that a \nfunction produces or if you need to prevent a function from throwing errors.\n\n`cmdinter` was created for the [buildlib](https://pypi.python.org/pypi/buildlib) \npackage.\n\n## API\n\n### CmdFuncResult\n\nA *cmd function* should return a `CmdFuncResult` object.\n\n```python\nclass CmdFuncResult(NamedTuple):\n returncode: int\n returnvalue: Any\n summary: str\n```\n\n`returncode` Unix returncode convention...\n\n`returnvalue` The value the function returns. That would be what you usually \nreturn via the `return` keyword.\n\n`summary`, contains a cmd summary with a Status flag (see Status below). E.g.:\n\n```\n[OK] Run apt-get install.\n[Error] pip install package x.\n[Skip] Mount hard drive. Drive alrady mounted.\n```\n\n\n### Status\n\nStatus flags that can be used as `summary` prefix.\n\n```python\nclass Status(object):\n ok: str = '[OK]'\n error: str = '[ERROR]'\n skip: str = '[SKIP]'\n```\n\n### run_cmd()\n\nThis function can be used in case you want to run a child function as a command.\nYou run it like this \n\n```python\nresult: CmdResult = run_cmd(\n func=my_func,\n args=my_args,\n kwargs=my_kwargs,\n silent=True, \n return_stdout=True,\n catch_err=False,\n)\n```\n\nThis is from the source code:\n\n```python\ndef run_cmd(\n silent: bool = False,\n return_stdout: bool = False,\n catch_err: bool = False,\n) -> Callable:\n \"\"\"\n This function works in combination with functions that return a \n 'CmdFuncResult' object. With `run_cmd()` you get a some more control over\n these functions.\n \n Call it like this:\n \n run_cmd(silent=True, return_stdout=True)(my_func, args, kwargs)\n \n The curried function returns a `CmdResult` object.\n \n @silent: Mute child output of child function if set to True.\n @return_stdout: Return stdout of child function.\n @catch_err: Catch errors that are raised by child functions and return error\n message with 'CmdResult' object.\n \"\"\"\n # ...\n```\n \n\n### CmdResult\n\nA function that is run via the `run_cmd()` function returns a `CmdResult` \nobject.\n\n```python\nclass CmdResult(NamedTuple):\n returnvalue: Any\n returncode: int\n summary: str\n stdout: Optional[str]\n stderr: Optional[str]\n traceback: Optional[str]\n```\n\nThe `CmdResult` object is an extended version of `CmdFuncResult`.\n\n`stdout` In case you return stdout from a child function, it's stored here.\n\n`stderr` In case use the `catch_err` option to catch errors from a child function, it's stored here.\n\n`traceback` Error traceback is stored here.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/feluxe/cmdinter/tarball/1.0.11", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/feluxe/cmdinter", "keywords": "command", "license": "unlicensed", "maintainer": "", "maintainer_email": "", "name": "cmdinter", "package_url": "https://pypi.org/project/cmdinter/", "platform": "", "project_url": "https://pypi.org/project/cmdinter/", "project_urls": { "Download": "https://github.com/feluxe/cmdinter/tarball/1.0.11", "Homepage": "https://github.com/feluxe/cmdinter" }, "release_url": "https://pypi.org/project/cmdinter/1.0.11/", "requires_dist": null, "requires_python": "", "summary": "A \"command interface\" for functions.", "version": "1.0.11" }, "last_serial": 3492650, "releases": { "0.0.0a0": [ { "comment_text": "", "digests": { "md5": "cb46354867353320ecbd41ce0c35fd1b", "sha256": "112e73290ce00f5ac4c4baa1ea2def8d13d0bdaaea2dd5853c906d4f4ab10fb1" }, "downloads": -1, "filename": "cmdinter-0.0.0a0-py3-none-any.whl", "has_sig": false, "md5_digest": "cb46354867353320ecbd41ce0c35fd1b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4204, "upload_time": "2017-08-06T19:20:34", "url": "https://files.pythonhosted.org/packages/a4/ea/32b4101305115a4e086c23c1041110d1f182f9a25f77b2a7d482195bbdcb/cmdinter-0.0.0a0-py3-none-any.whl" } ], "0.0.0a1": [ { "comment_text": "", "digests": { "md5": "604d52fc7bbae1241b586cdb78b78c96", "sha256": "ef8d71dd36cc1100fd7f8535003cb1a20bb6cc27ec9c3431533c471fd1ec30f5" }, "downloads": -1, "filename": "cmdinter-0.0.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "604d52fc7bbae1241b586cdb78b78c96", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3593, "upload_time": "2017-08-07T19:57:58", "url": "https://files.pythonhosted.org/packages/a5/43/b94868656dcd2c86228da1fe7a4220fab0107486f4728215c672bfd76bdd/cmdinter-0.0.0a1-py3-none-any.whl" } ], "0.0.0a10": [ { "comment_text": "", "digests": { "md5": "7c4ca4636f5149099d32f77c471c6646", "sha256": "45c6400ceedcaae85c59358a3de37ab7d4e1c07b72441f171d636abd6b4f78cf" }, "downloads": -1, "filename": "cmdinter-0.0.0a10-py3-none-any.whl", "has_sig": false, "md5_digest": "7c4ca4636f5149099d32f77c471c6646", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3767, "upload_time": "2017-09-15T14:09:04", "url": "https://files.pythonhosted.org/packages/b0/37/cf709e97d218889e64b66003b34baeb6edfb0815e8a5b84f4a9459d8f712/cmdinter-0.0.0a10-py3-none-any.whl" } ], "0.0.0a11": [ { "comment_text": "", "digests": { "md5": "4e659d2982a568448c97f11d90c04af2", "sha256": "1a3ca9705cbf45249f3d82e69dee295393358f338585e69dd3250d5638d03577" }, "downloads": -1, "filename": "cmdinter-0.0.0a11-py3-none-any.whl", "has_sig": false, "md5_digest": "4e659d2982a568448c97f11d90c04af2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3791, "upload_time": "2017-09-15T14:24:36", "url": "https://files.pythonhosted.org/packages/05/5e/3da247a599e0156997ed31dc6cafbe02796685971aafd9cae260445def74/cmdinter-0.0.0a11-py3-none-any.whl" } ], "0.0.0a12": [ { "comment_text": "", "digests": { "md5": "abfdf5f5ff1fdfef43df05a9852d34f8", "sha256": "9c3b3022b73359a93ef30abf2121b75e10cb8c913699bee57f2b39a6283a8816" }, "downloads": -1, "filename": "cmdinter-0.0.0a12-py3-none-any.whl", "has_sig": false, "md5_digest": "abfdf5f5ff1fdfef43df05a9852d34f8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3790, "upload_time": "2017-09-15T15:15:53", "url": "https://files.pythonhosted.org/packages/a1/38/695f6de5d0d48ea79e7aced79f2c33a112d2332bb8642dfebaf4c37bd4b9/cmdinter-0.0.0a12-py3-none-any.whl" } ], "0.0.0a13": [ { "comment_text": "", "digests": { "md5": "e9adc68e1957d60fd63c474922e2ea6d", "sha256": "056e10e81e898064e19871be758a6252d83280b88c29373058a9dcf30762c33c" }, "downloads": -1, "filename": "cmdinter-0.0.0a13-py3-none-any.whl", "has_sig": false, "md5_digest": "e9adc68e1957d60fd63c474922e2ea6d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3655, "upload_time": "2017-09-15T22:38:33", "url": "https://files.pythonhosted.org/packages/71/8d/4c3269029373068c1e8bf43ec74e07f2de991116476d945e98d2314c142a/cmdinter-0.0.0a13-py3-none-any.whl" } ], "0.0.0a4": [ { "comment_text": "", "digests": { "md5": "61f314780d15e649cae30f92bfcd1524", "sha256": "4255fbeacef5e5c82e5000b1a5101169ef01cc5529a47a2ec079aad57191b2e0" }, "downloads": -1, "filename": "cmdinter-0.0.0a4-py3-none-any.whl", "has_sig": false, "md5_digest": "61f314780d15e649cae30f92bfcd1524", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3584, "upload_time": "2017-08-22T03:48:17", "url": "https://files.pythonhosted.org/packages/d8/3e/a65b4c7ea8dd218362087a724b74ad16d02010d2578b528d84fb6626cd05/cmdinter-0.0.0a4-py3-none-any.whl" } ], "0.0.0a5": [ { "comment_text": "", "digests": { "md5": "6bcd9122d8014d72344a6c22e61d321b", "sha256": "9560b9507b37411833cca331ef4c16be24e99679fcd286b63d2e22cbbc13cb7a" }, "downloads": -1, "filename": "cmdinter-0.0.0a5-py3-none-any.whl", "has_sig": false, "md5_digest": "6bcd9122d8014d72344a6c22e61d321b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3742, "upload_time": "2017-09-15T11:22:52", "url": "https://files.pythonhosted.org/packages/67/f4/b402c21ded10aa8336a4cd29d1814b576d191ee4034619b0d16e2375308e/cmdinter-0.0.0a5-py3-none-any.whl" } ], "0.0.0a6": [ { "comment_text": "", "digests": { "md5": "398fd4a4867dc2f0a83353e1d2789418", "sha256": "52ede4df3e8a832536448d831fbc14930c52ac5970b8c1b83c73de2199879e26" }, "downloads": -1, "filename": "cmdinter-0.0.0a6-py3-none-any.whl", "has_sig": false, "md5_digest": "398fd4a4867dc2f0a83353e1d2789418", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3740, "upload_time": "2017-09-15T11:24:56", "url": "https://files.pythonhosted.org/packages/bb/eb/5587ab08a296cd4ebed4bd45978228cdc558270475a1a0dcbe33246a916f/cmdinter-0.0.0a6-py3-none-any.whl" } ], "0.0.0a7": [ { "comment_text": "", "digests": { "md5": "956c2f4525a5c0be5db67670b66439ad", "sha256": "6deafc555d8e9eb4810749e34fab8bc80ab74c78e0879f508ae6f39cdec7908c" }, "downloads": -1, "filename": "cmdinter-0.0.0a7-py3-none-any.whl", "has_sig": false, "md5_digest": "956c2f4525a5c0be5db67670b66439ad", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3740, "upload_time": "2017-09-15T13:13:28", "url": "https://files.pythonhosted.org/packages/2d/1e/4a2711da9e59da68b80ea2f9370c1bf43d020b7e0bba4f90a62b4bbfe800/cmdinter-0.0.0a7-py3-none-any.whl" } ], "0.0.0a8": [ { "comment_text": "", "digests": { "md5": "e54f07f0100cadd6ecb921aa273841b4", "sha256": "fdd6060c8769e81617db5ef62489c4fe16d408e39a58cb15fa68fee35aedc516" }, "downloads": -1, "filename": "cmdinter-0.0.0a8-py3-none-any.whl", "has_sig": false, "md5_digest": "e54f07f0100cadd6ecb921aa273841b4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3740, "upload_time": "2017-09-15T13:18:40", "url": "https://files.pythonhosted.org/packages/80/8a/e6bbd176247a8dd3ad74d8785e115658c0d91fdd0a434e697383084f4cde/cmdinter-0.0.0a8-py3-none-any.whl" } ], "0.0.0a9": [ { "comment_text": "", "digests": { "md5": "1d4b4f96109728fa7754dec51f8ccc82", "sha256": "adc8b90f98a7b7a663f2e93238a8870a4b9ec4c86ae7b044e83f2a50d65d37db" }, "downloads": -1, "filename": "cmdinter-0.0.0a9-py3-none-any.whl", "has_sig": false, "md5_digest": "1d4b4f96109728fa7754dec51f8ccc82", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 3751, "upload_time": "2017-09-15T14:08:33", "url": "https://files.pythonhosted.org/packages/1f/be/84587716bb4150c63a31bc1380d588cd4891faf797fe22ba163ee69fa572/cmdinter-0.0.0a9-py3-none-any.whl" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "1459825fc2d458b095ed392fc41f237d", "sha256": "be82aa1cd43968d867b97552649573361f3f34a9105f2b4bd8a120c056abd5af" }, "downloads": -1, "filename": "cmdinter-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1459825fc2d458b095ed392fc41f237d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5228, "upload_time": "2017-10-12T18:44:16", "url": "https://files.pythonhosted.org/packages/39/c8/7c42c17468ca107dffdc1890740031d2e5a23ff76f2c76ae6340a0312200/cmdinter-1.0.0-py3-none-any.whl" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "0ca105146737898b1a468c35e810bf2a", "sha256": "5f51ebb40f35ad271252262840e2461f59a6d5bb73a91a9c7890e61d8319e897" }, "downloads": -1, "filename": "cmdinter-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0ca105146737898b1a468c35e810bf2a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5859, "upload_time": "2017-10-12T19:29:42", "url": "https://files.pythonhosted.org/packages/0c/1c/7226f21ae0991cacaf0f22468f7b5136e2ac0a789a36273a7587cb1e16ba/cmdinter-1.0.1-py3-none-any.whl" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "3834a936276bfcdc62cb7362748b83b2", "sha256": "72e36d49178f87aa2a4c68824ea716f9fd6d9af39abf837a034bd75ab8b25795" }, "downloads": -1, "filename": "cmdinter-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "3834a936276bfcdc62cb7362748b83b2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7575, "upload_time": "2018-01-16T02:38:31", "url": "https://files.pythonhosted.org/packages/f1/72/a97acfd863ceaa7e729b4d86cbc501a11235e9141efa608076b623566521/cmdinter-1.0.10-py3-none-any.whl" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "260f208ea19c4f46dab753953cee7a80", "sha256": "fff165746e6812d5366118f544461ce2bbffe204eea67730bde6d8018a454804" }, "downloads": -1, "filename": "cmdinter-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "260f208ea19c4f46dab753953cee7a80", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7570, "upload_time": "2018-01-16T02:49:28", "url": "https://files.pythonhosted.org/packages/ed/63/360a86b1d849fe41462d9a878384f7488a4b0bdca21fa3c345a28f6882f2/cmdinter-1.0.11-py3-none-any.whl" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "e55c397d19fc367d344901d9bfed18a7", "sha256": "213e9a04641b94dc2f0b1283b3a15bd641310923b502fd4509a0eb3aa190a427" }, "downloads": -1, "filename": "cmdinter-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e55c397d19fc367d344901d9bfed18a7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5895, "upload_time": "2017-10-12T20:06:28", "url": "https://files.pythonhosted.org/packages/ed/87/66bc2ddeb1633176d885b2215d6211b25442c53d88011747d5578cc2d3ad/cmdinter-1.0.4-py3-none-any.whl" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "44b1641bf6283571d56dcd82445fa090", "sha256": "7d5e11973e21f77d10d848c5c9641523e4278378228785db352d833adf4a6523" }, "downloads": -1, "filename": "cmdinter-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "44b1641bf6283571d56dcd82445fa090", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5880, "upload_time": "2017-10-12T20:28:28", "url": "https://files.pythonhosted.org/packages/78/34/0fe1ecb8a67005ab062de35c0902955a9cb340dbbccfa2e2441411efb24f/cmdinter-1.0.5-py3-none-any.whl" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "a3e8e4dcda37d4687734303507fd4a88", "sha256": "9a761f97ecd6f109ac3cd68a8d6ff3885eea87ec928af4ec0ae8b977f5bdda2d" }, "downloads": -1, "filename": "cmdinter-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a3e8e4dcda37d4687734303507fd4a88", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5863, "upload_time": "2017-10-12T20:38:33", "url": "https://files.pythonhosted.org/packages/cf/e4/a780b88e8c2c8904b385338796646e886d352e48531f0953586193082fc6/cmdinter-1.0.6-py3-none-any.whl" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "35520fd77d60aaddc4ffca16b0af2f51", "sha256": "c3565c94b250c2dffaa771e4d7903c4b198f8660b70b5e92035f5f2e5573b396" }, "downloads": -1, "filename": "cmdinter-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "35520fd77d60aaddc4ffca16b0af2f51", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 5862, "upload_time": "2017-10-12T20:44:49", "url": "https://files.pythonhosted.org/packages/b6/52/f1f695c84ed90de695dea1ac67d677f34146dfde30f86678d9f60eb87ecc/cmdinter-1.0.7-py3-none-any.whl" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "60d66d761e14836c3e72fa8f9b16f353", "sha256": "97a7d53f8d2d49bcc80d2f1512ecadda38db847107555975d98d482b8fa2b484" }, "downloads": -1, "filename": "cmdinter-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "60d66d761e14836c3e72fa8f9b16f353", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7609, "upload_time": "2018-01-16T01:13:35", "url": "https://files.pythonhosted.org/packages/46/b4/a8544d85985a69cf21ac9eb43d2452424f7e2b7fedc7a3b8eaa75bc89baf/cmdinter-1.0.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "260f208ea19c4f46dab753953cee7a80", "sha256": "fff165746e6812d5366118f544461ce2bbffe204eea67730bde6d8018a454804" }, "downloads": -1, "filename": "cmdinter-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "260f208ea19c4f46dab753953cee7a80", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7570, "upload_time": "2018-01-16T02:49:28", "url": "https://files.pythonhosted.org/packages/ed/63/360a86b1d849fe41462d9a878384f7488a4b0bdca21fa3c345a28f6882f2/cmdinter-1.0.11-py3-none-any.whl" } ] }