{ "info": { "author": "Jeff Michaud", "author_email": "cometaj2@comcast.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "HCLI Core |build status|_ |pypi|_\n=================================\n\nAn HCLI Connector that can be used to expose a REST API with a built-in CLI, via hypertext\ncommand line interface (HCLI) semantics.\n\n----\n\nHCLI Core implements an HCLI Connector, a type of Service Connector, as a WSGI application and provides a way\nfor developers to expose a service hosted CLI, as a REST API, via HCLI semantics. Such an API exposes a\"built-in\"\nCLI that can be interacted with dynamically with any HCLI client. Up to date, in-band, man page style API/CLI\ndocumentation is readily available for use to help understand how to interact with the API.\n\nMost, if not all, programming languages have a way to issue shell commands. With the help\nof a generic HCLI client, such as Huckle [1], APIs that make use of HCLI semantics are readily consumable\nanywhere via the familiar command line (CLI) mode of operation, and this, without there being a need to write\na custom and dedicated CLI to interact with a specific HCLI API.\n\nYou can find out more about HCLI on hcli.io [2]\n\nThe HCLI Internet-Draft [3] is a work in progress by the author and \nthe current implementation leverages hal+json alongside a static form of ALPS\n(semantic profile) [4] to help enable widespread cross media-type support.\n\nHelp shape HCLI and it's ecosystem on the discussion list [5] or by raising issues on github!\n\n[1] https://github.com/cometaj2/huckle\n\n[2] http://hcli.io\n\n[3] https://github.com/cometaj2/I-D/tree/master/hcli\n\n[4] http://alps.io\n\n[5] https://groups.google.com/forum/#!forum/huck-hypermedia-unified-cli-with-a-kick\n\nInstallation\n------------\n\nhcli_core requires Python 3.5-3.7 and pip.\n\nYou'll need an WSGI compliant application server to run hcli_core. For example, you can use Green Unicorn (https://gunicorn.org/)\n\n $ pip install gunicorn\n\nInstall hcli_core via pip. You can launch gunicorn from anywhere by using \"hcli_core path\". You can also look at the hcli_core help file:\n\n $ pip install hcli_core\n\n $ hcli_core help\n\n $ gunicorn --workers=5 --threads=2 -b 127.0.0.1:8000 --chdir \\`hcli_core path\\` \"hcli_core:HCLI().connector\"\n\nIf you want to load a sample HCLI other than the default, you can try loading the sample hfm (hypertext file manager) HCLI.\nA folder path to any 3rd party HCLI can be provided in the same way:\n\n $ gunicorn --workers=5 --threads=2 -b 127.0.0.1:8000 --chdir \\`hcli_core path\\` \"hcli_core:HCLI(\\\\\"\\`hcli_core sample hfm\\`\\\\\").connector\"\n\nCurl your new service to understand what is being exposed. The HCLI root URL, to use with an HCLI client, is the cli link relation:\n\n $ curl http://127.0.0.1:8000\n\nInstall an HCLI client, for example Huckle (https://github.com/cometaj2/huckle), and access the default sample jsonf CLI\nexposed by HCLI Core (you may need to restart your terminal to be able to use jsonf by name directly):\n\n $ pip install huckle\n\n $ huckle cli install http://127.0.0.1:8000\n\n $ jsonf help\n\nYou can also look at the huckle help file:\n\n $ huckle help\n\nBugs\n----\n\n- No good handling of control over request and response in cli code which can lead to exceptions and empty response client side.\n\n.. |build status| image:: https://travis-ci.org/cometaj2/hcli_core.svg?branch=master\n.. _build status: https://travis-ci.org/cometaj2/hcli_core\n.. |pypi| image:: https://badge.fury.io/py/hcli-core.svg\n.. _pypi: https://badge.fury.io/py/hcli-core", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cometaj2/hcli_core", "keywords": "cli client server connector hypermedia rest generic development", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hcli-core", "package_url": "https://pypi.org/project/hcli-core/", "platform": "", "project_url": "https://pypi.org/project/hcli-core/", "project_urls": { "Homepage": "https://github.com/cometaj2/hcli_core" }, "release_url": "https://pypi.org/project/hcli-core/0.4.5/", "requires_dist": null, "requires_python": "", "summary": "An HCLI connector that can be used to expose any CLI expressed through hypertext command line interface (HCLI) semantics.", "version": "0.4.5" }, "last_serial": 5656700, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "68c63c3a1dfeb3477d81cd5e6b44e303", "sha256": "a8e1ab0a967a9bfe3dca71e29ca3c62b2b044e8d513ca30efa9c73c971301a99" }, "downloads": -1, "filename": "hcli_core-0.1.2.tar.gz", "has_sig": false, "md5_digest": "68c63c3a1dfeb3477d81cd5e6b44e303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16556, "upload_time": "2019-06-29T04:33:16", "url": "https://files.pythonhosted.org/packages/e2/d0/c3c36a80bdfcab43d43543c2da39cb6a3c28bc7bf4dfeaf028e1464207a3/hcli_core-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e0f712488b713ed7014bfe6e9cd52d3b", "sha256": "72c110bdd6b95ca88ef2c427bd5ebf6fa9f22ec159b2b468c437a19fe6a27990" }, "downloads": -1, "filename": "hcli_core-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e0f712488b713ed7014bfe6e9cd52d3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17013, "upload_time": "2019-06-29T16:10:37", "url": "https://files.pythonhosted.org/packages/0d/b6/7399debe64a514e007f9eaadec43c732a18dd1c8d4ca910047b3346ef8b4/hcli_core-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3b30a3ed07190ded76126b723f9df18d", "sha256": "da2f32a002783c95bcd0658acbf33b0ff122bc73f5058d72e8206ff569ab8658" }, "downloads": -1, "filename": "hcli_core-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3b30a3ed07190ded76126b723f9df18d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17008, "upload_time": "2019-06-29T16:31:42", "url": "https://files.pythonhosted.org/packages/cb/9a/b0765929a8cee49842290f0f2cb2999cc5931288a3d232cec1749678c88c/hcli_core-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e7a936ad5c5cdedd0db610796d3ac77d", "sha256": "11de649e95edefa61099bb53b711f5133db5c7ce1629ab1dae62ec2dfab0c7fb" }, "downloads": -1, "filename": "hcli_core-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e7a936ad5c5cdedd0db610796d3ac77d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16069, "upload_time": "2019-06-29T16:57:37", "url": "https://files.pythonhosted.org/packages/47/3e/306c681611cd360c5d98559623326d95ea5375f561727a98d09392a1c75c/hcli_core-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "5cdd1b2934ebfda393e612a3501c0a0c", "sha256": "abad7d3e4d1b0548ea177d822ce8abbf89c17512ad07716e36389910b9c2f5b1" }, "downloads": -1, "filename": "hcli_core-0.1.6.tar.gz", "has_sig": false, "md5_digest": "5cdd1b2934ebfda393e612a3501c0a0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13523, "upload_time": "2019-06-29T20:33:54", "url": "https://files.pythonhosted.org/packages/b8/77/dbdb21a61cd1e117bf41321475f31c6355fd1df0540201d00164aaae9516/hcli_core-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f2a1be8d2e171d4c0678968c8a74422f", "sha256": "f51999b97bc2b55b79752163616f2a4e9645390acfcb06360aae0ff349dc540a" }, "downloads": -1, "filename": "hcli_core-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f2a1be8d2e171d4c0678968c8a74422f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16119, "upload_time": "2019-06-30T14:03:46", "url": "https://files.pythonhosted.org/packages/7c/b2/474c53033ffcdea91c6d6c84475dc612cfd52311ed3389500d35de262609/hcli_core-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "196d7672dfda9e91cc1c89a3160d2f7c", "sha256": "d6f827f0462fa7f3f124cc84ae505d4908a625226307a2d28ec45f2dc2ac17b9" }, "downloads": -1, "filename": "hcli_core-0.2.1.tar.gz", "has_sig": false, "md5_digest": "196d7672dfda9e91cc1c89a3160d2f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13250, "upload_time": "2019-07-05T22:12:09", "url": "https://files.pythonhosted.org/packages/6c/5e/69af3582e906ad416c994586245de3e0e8bf5b4395b0d2941c83129626a2/hcli_core-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5f89d30b5d30e9b4599203bffa1a2b4c", "sha256": "7e6367b88c4cfdda033269316cc42eb93e16e9ace38e543d64c882991f8e8627" }, "downloads": -1, "filename": "hcli_core-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5f89d30b5d30e9b4599203bffa1a2b4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22717, "upload_time": "2019-07-20T04:08:11", "url": "https://files.pythonhosted.org/packages/48/a9/f6b704c4d8d058d743193e3caaef7b75c86f982cba454276ae190c89c743/hcli_core-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f462263c265dbe861df4030acf1f9908", "sha256": "23ff7788bb1b94c05eac2cabb0aa4683e66686990f2510f7a8e07b604100df7f" }, "downloads": -1, "filename": "hcli_core-0.4.0.tar.gz", "has_sig": false, "md5_digest": "f462263c265dbe861df4030acf1f9908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23077, "upload_time": "2019-07-29T00:01:12", "url": "https://files.pythonhosted.org/packages/a3/3f/6c9eeebfe0d04db593bfe4f25cd5fd7b1b3c86cce5c2f93b70044a33e09d/hcli_core-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f87be1b4fc54746be8207df5a46c34fd", "sha256": "81fe84dd99ed4f1d7a205229f6c3cafc3c1b62e895af5e875fa711df2fffbef3" }, "downloads": -1, "filename": "hcli_core-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f87be1b4fc54746be8207df5a46c34fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22369, "upload_time": "2019-08-02T05:10:19", "url": "https://files.pythonhosted.org/packages/3e/cd/ca02b4393730ff0b3ec41a975299c40c39879acc0d676ba0d97f2e759133/hcli_core-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "91e69f44ac58e5ec3ee00b55e50d07ca", "sha256": "b4e6ec6d2fb9214bfbe924f4f43fe71a7fbb246eaf98be25eb25a6b262b2cba9" }, "downloads": -1, "filename": "hcli_core-0.4.2.tar.gz", "has_sig": false, "md5_digest": "91e69f44ac58e5ec3ee00b55e50d07ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23663, "upload_time": "2019-08-02T22:37:17", "url": "https://files.pythonhosted.org/packages/98/87/0733b3f54014f1d042880f247700bf701656b770a0d49f39d367592ee767/hcli_core-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "102b0e76afc22fcb2f3f83297d9fdf27", "sha256": "4f743587b22d0233b7a148067218413672a2a4548b4630252fa5843dc9013a07" }, "downloads": -1, "filename": "hcli_core-0.4.3.tar.gz", "has_sig": false, "md5_digest": "102b0e76afc22fcb2f3f83297d9fdf27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23788, "upload_time": "2019-08-03T00:23:44", "url": "https://files.pythonhosted.org/packages/4d/49/e657e77ebd94188fbaabb7acde2e811e05870417e5581b4088f72ab08535/hcli_core-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "2ccf36572c57cae2e8241b1d203ada15", "sha256": "79802e0997457b72fcf9578da020a55430a824556d38fb2d007922b6773ac416" }, "downloads": -1, "filename": "hcli_core-0.4.4.tar.gz", "has_sig": false, "md5_digest": "2ccf36572c57cae2e8241b1d203ada15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16812, "upload_time": "2019-08-03T00:34:55", "url": "https://files.pythonhosted.org/packages/67/7f/a7c97bc56bc727b40610031e220d27424186400ceab9f404a2a0b3f5d040/hcli_core-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "5e222154f8de960993600d230857191c", "sha256": "8c66582587852fc95211f7a91a0a1299d0a6205354a9fd24be8695dbd5a9eb18" }, "downloads": -1, "filename": "hcli_core-0.4.5.tar.gz", "has_sig": false, "md5_digest": "5e222154f8de960993600d230857191c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22464, "upload_time": "2019-08-09T16:15:53", "url": "https://files.pythonhosted.org/packages/2a/54/84f734449f9e9804bf6695a7a7b30b2ac2b5f04f574b982ba9c8c141d922/hcli_core-0.4.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5e222154f8de960993600d230857191c", "sha256": "8c66582587852fc95211f7a91a0a1299d0a6205354a9fd24be8695dbd5a9eb18" }, "downloads": -1, "filename": "hcli_core-0.4.5.tar.gz", "has_sig": false, "md5_digest": "5e222154f8de960993600d230857191c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22464, "upload_time": "2019-08-09T16:15:53", "url": "https://files.pythonhosted.org/packages/2a/54/84f734449f9e9804bf6695a7a7b30b2ac2b5f04f574b982ba9c8c141d922/hcli_core-0.4.5.tar.gz" } ] }