{ "info": { "author": "Steve Stagg", "author_email": "stestagg@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "sshstdlib [![Build Status](https://travis-ci.org/stestagg/sshstdlib.png)](https://travis-ci.org/stestagg/sshstdlib)\n=========\n\nsshstdlib emulates the python standard libraries, operating over an SSH tunnel.\n\nIt uses paramiko to set up an SSH session, and allows simple remote execution\nand familiar methods on the remote system.\n\nGoals\n=====\n\nThe ideal of sshstdlib is to provide a sensible, pragmatic subset of the python standard libraries.\nLargely, this is done by dynamically pushing and running a small python client to the box. :module:`sshstdlib.remote_client`.\nSome functionality uses the SSH sftp functionality, and some involves running commands directly using the ssh 'exec' channels.\n\nIf functionality is missing from sshstdlib that is present in the python standard libraries, this is a 'missing feature'\nlet us know if you need anything specific, or feel free to contribute implementations.\n\nIf sshstdlib behaviour differs in a meaningful way from the equivalent standard library functionality, this is a bug.\nPlease submit it as such.\n\nSometimes adding extra functionality makes sense. This should be done in an unobtrusive manner, and be documented explicitly here.\n\nExample usage\n=============\n\n```python\nIn [1]: import sshstdlib.client\n\nIn [2]: remote = sshstdlib.client.Client.connect(\"localhost\", username=\"jenkins\", password=\"XXXXXX\", no_keys=True)\n\nIn [3]: with remote.tempfile.NamedTemporaryFile() as fh:\n ...: fh.write(\"hello world\")\n ...: print fh.name\n ...: \n/tmp/tmpRthB9D\n\nIn [4]: remote.os.path.exists(\"/tmp/tmpRthB9D\")\nOut[4]: False\n\n```\n\nDocumentation\n=============\n\nAPI Documentation can be found here: https://sshstdlib.readthedocs.org/en/latest/index.html\n\nNotes\n=====\n\nChannels are set up only when required, so the python client is only pushed and run when the first call that requires is is made. likewise with the sftp channel. both the :attr:`python` and :attr:`sftp` channels are persisted once created for the lifetime of the client.\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/stestagg/sshstdlib", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "sshstdlib", "package_url": "https://pypi.org/project/sshstdlib/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sshstdlib/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/stestagg/sshstdlib" }, "release_url": "https://pypi.org/project/sshstdlib/1.4/", "requires_dist": null, "requires_python": null, "summary": "A standard library emulation layer over SSH", "version": "1.4" }, "last_serial": 800045, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "4507999a4424bbf199ff75d32ca7db1d", "sha256": "d23817473d8647bfba3fdc1969c3f4846f3e5f979bc9db1329ac5647b87c53fa" }, "downloads": -1, "filename": "sshstdlib-1.1.tar.gz", "has_sig": false, "md5_digest": "4507999a4424bbf199ff75d32ca7db1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12367, "upload_time": "2013-05-02T15:08:11", "url": "https://files.pythonhosted.org/packages/3e/80/3aaed07a2e0bcaf10ec80dc058e72b96c6df022eef0ae6eecfaa5e8b4f0c/sshstdlib-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "8aa30997f0c65bdd7080558bcf663e1d", "sha256": "73180dfd0c74b61db94b066581b7249fe5cb125e791245725475b9a98ced6cf4" }, "downloads": -1, "filename": "sshstdlib-1.2.tar.gz", "has_sig": false, "md5_digest": "8aa30997f0c65bdd7080558bcf663e1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13486, "upload_time": "2013-05-02T15:28:06", "url": "https://files.pythonhosted.org/packages/35/85/7e0b011e087b3e9dc310fbd1d72c6380fe41beddfa9e12e1607eeb54cb3b/sshstdlib-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "ac9dd22f013e89d0ec8b6fbe93452185", "sha256": "f0edde455389509c9668ed726fcc5b072ef2fea782a565d621527dc39a486063" }, "downloads": -1, "filename": "sshstdlib-1.3.tar.gz", "has_sig": false, "md5_digest": "ac9dd22f013e89d0ec8b6fbe93452185", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13484, "upload_time": "2013-05-07T12:46:15", "url": "https://files.pythonhosted.org/packages/3e/27/d5b1f461945590d391a0ed2c2aee6f28c45d18679f68fdd3b5ffe3399398/sshstdlib-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "d249f5fd68c1992ffbbda6a3204c2fcb", "sha256": "22fa31b6bc0576c1dca1dec570302bdfbeb43547215ddd044def3d74190ca5cb" }, "downloads": -1, "filename": "sshstdlib-1.4.tar.gz", "has_sig": false, "md5_digest": "d249f5fd68c1992ffbbda6a3204c2fcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13473, "upload_time": "2013-05-21T13:09:42", "url": "https://files.pythonhosted.org/packages/8f/84/537ab90df55f794e8a62b6a94d3afc727729e691fbb9843f42d5924a37c6/sshstdlib-1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d249f5fd68c1992ffbbda6a3204c2fcb", "sha256": "22fa31b6bc0576c1dca1dec570302bdfbeb43547215ddd044def3d74190ca5cb" }, "downloads": -1, "filename": "sshstdlib-1.4.tar.gz", "has_sig": false, "md5_digest": "d249f5fd68c1992ffbbda6a3204c2fcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13473, "upload_time": "2013-05-21T13:09:42", "url": "https://files.pythonhosted.org/packages/8f/84/537ab90df55f794e8a62b6a94d3afc727729e691fbb9843f42d5924a37c6/sshstdlib-1.4.tar.gz" } ] }