{ "info": { "author": "Jeff Forcier", "author_email": "jeff@bitprophet.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Clustering", "Topic :: System :: Software Distribution", "Topic :: System :: Systems Administration" ], "description": "*fab-classic* is a Python (2.7 or 3.4+) library and command-line tool\nfor streamlining the use of SSH for application deployment or systems\nadministration tasks.\n\nfab-classic is forked from `Fabric 1.14 `_\nand is intended to add only bug fixes and compatibility patches, for projects\nalready using Fabric-1.x in some way. It includes python3 compatibility patches\nfrom `Fabric3 `_.\n\nUpstream *Fabric* is now on version 2.x. Fabric-2.x is python3 compatible,\nand comes *after* Fabric3. Fabric-2.x has significant compatibility-breaking\nchanges, in order to fix some long-standing limitations.\n\n\nInstall\n-------\n\n.. image:: https://travis-ci.org/ploxiln/fab-classic.svg?branch=master\n :target: https://travis-ci.org/ploxiln/fab-classic\n\nfab-classic is `on PyPI `_,\nso you can ``pip install fab-classic``\n\nBe sure to ``pip uninstall Fabric`` if you happen to have it installed,\nbecause *fab-classic* uses the same import name \"fabric\" and entrypoint\n(tool) name \"fab\".\n\nStarting with version 1.16, *fab-classic* depends on\n`paramiko-ng `_ instead of\n`paramiko `_. Both of those packages\nare imported with the name ``paramiko``, and unfortunately that means that you\nshould make sure you uninstall *paramiko* before *paramiko-ng* is installed,\nor you will get strange issues (even if things seem to work at first).\n\n\nDocumentation\n-------------\n\nAPI Documentation: https://ploxiln.github.io/fab-classic/\n\nNew Changelog: https://github.com/ploxiln/fab-classic/releases\n\nOld Changelog: https://ploxiln.github.io/fab-classic/old_changelog.html\n\nFor a quick command reference, run ``fab --help``\n\n\nUsage Introduction\n------------------\n\nfab-classic provides a basic suite of operations for executing local or remote shell\ncommands (normally or via ``sudo``) and uploading/downloading files, as well as\nauxiliary functionality such as prompting the running user for input, or\naborting execution.\n\nTypical use involves creating a Python module containing one or more functions,\nthen executing them via the ``fab`` command-line tool. Below is a small but\ncomplete \"fabfile\" containing a single task:\n\n.. code-block:: python\n\n from fabric.api import run\n\n def host_type():\n run('uname -s')\n\nIf you save the above as ``fabfile.py`` (the default module that\n``fab`` loads), you can run the tasks defined in it on one or more\nservers, like so::\n\n $ fab -H localhost,linuxbox host_type\n [localhost] run: uname -s\n [localhost] out: Darwin\n [linuxbox] run: uname -s\n [linuxbox] out: Linux\n\n Done.\n Disconnecting from localhost... done.\n Disconnecting from linuxbox... done.\n\nIn addition to use via the ``fab`` tool, Fabric's components may be imported\ninto other Python code, providing a Pythonic interface to the SSH protocol\nsuite at a higher level than that provided by the ``paramiko-ng`` library\n(which Fabric itself uses).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ploxiln/fab-classic", "keywords": "", "license": "", "maintainer": "Pierce Lopez", "maintainer_email": "pierce.lopez@gmail.com", "name": "fab-classic", "package_url": "https://pypi.org/project/fab-classic/", "platform": "", "project_url": "https://pypi.org/project/fab-classic/", "project_urls": { "Homepage": "https://github.com/ploxiln/fab-classic" }, "release_url": "https://pypi.org/project/fab-classic/1.16.0/", "requires_dist": [ "paramiko-ng", "six (>=1.10.0)" ], "requires_python": "", "summary": "fab-classic is a simple, Pythonic tool for remote execution and deployment.", "version": "1.16.0" }, "last_serial": 5408413, "releases": { "1.15.0": [ { "comment_text": "", "digests": { "md5": "a9cd85b4fb77e0cc8c05041f1e2e995b", "sha256": "4a41bc340ff3d872d77351a2bff5de21adc74834be439569228e1ee2d063d3d3" }, "downloads": -1, "filename": "fab_classic-1.15.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a9cd85b4fb77e0cc8c05041f1e2e995b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 92131, "upload_time": "2018-06-06T03:45:32", "url": "https://files.pythonhosted.org/packages/d5/09/66b9cae1e1d9baab34f1e253fd46adb6ff221567aec6865b35017e9545bd/fab_classic-1.15.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e041864a7a229f43d1b997912c79efd9", "sha256": "219b046f0846f7f8f293735555c57b486b08891586902909a564892b94953b9f" }, "downloads": -1, "filename": "fab_classic-1.15.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e041864a7a229f43d1b997912c79efd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 92131, "upload_time": "2018-06-06T03:45:34", "url": "https://files.pythonhosted.org/packages/03/be/0b4ba664263e20bdeefd6316567d77aedb18495b4028f6af4b6f74261457/fab_classic-1.15.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d81e83d06b735128ac5e8a05b7431708", "sha256": "db2a41322aa2276319182bbf20481c4c80bc50e07cc4cfb25c88256cab9f93c1" }, "downloads": -1, "filename": "fab-classic-1.15.0.tar.gz", "has_sig": false, "md5_digest": "d81e83d06b735128ac5e8a05b7431708", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 221280, "upload_time": "2018-06-06T03:45:35", "url": "https://files.pythonhosted.org/packages/ad/d7/7eaf151172c03ca779bff333096c0ec2824003090122a0517bcefe3b3ff6/fab-classic-1.15.0.tar.gz" } ], "1.15.1": [ { "comment_text": "", "digests": { "md5": "1ab15a494da78753f918d47060bfdbcd", "sha256": "b386582ea916f3a9895a0e66d9ca74bb8031213e2c26d9048d0cc8aa7021a6fa" }, "downloads": -1, "filename": "fab_classic-1.15.1-py2-none-any.whl", "has_sig": false, "md5_digest": "1ab15a494da78753f918d47060bfdbcd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 94707, "upload_time": "2018-06-11T18:07:28", "url": "https://files.pythonhosted.org/packages/60/71/40dcec88af1f70a05551f376c1e0a4e4cfd1d44aa984f74b16f2bca1f9e2/fab_classic-1.15.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8345ffe36df206aa0326ba2d8daacd83", "sha256": "d04af9a495d163ddc99b0b728e861f762f1a696d9cfacc5a75da0116a4f5e8c5" }, "downloads": -1, "filename": "fab_classic-1.15.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8345ffe36df206aa0326ba2d8daacd83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 94707, "upload_time": "2018-06-11T18:07:29", "url": "https://files.pythonhosted.org/packages/4a/26/cc1dbf28cf4bdbe27d61371ae6181470a72d33ed6f4fe9946df92a32bffa/fab_classic-1.15.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fe7949397244baff2e4fd209491f03b", "sha256": "8fdb58cd91f142f825acf7641d98691470bc76d5f23fe771c5a96f5b506f90eb" }, "downloads": -1, "filename": "fab-classic-1.15.1.tar.gz", "has_sig": false, "md5_digest": "6fe7949397244baff2e4fd209491f03b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 221576, "upload_time": "2018-06-11T18:07:31", "url": "https://files.pythonhosted.org/packages/7f/5d/0a16765d9db2cc411d79bcda53f73041ff3765fbb8ed7a969c27c0a87f19/fab-classic-1.15.1.tar.gz" } ], "1.15.2": [ { "comment_text": "", "digests": { "md5": "08c2a693eba213d469b86f4e9294bcd0", "sha256": "e2016c3c9b4514fb229d2ab6c4afa54c46f22edc4f69951246b26763bb54547c" }, "downloads": -1, "filename": "fab_classic-1.15.2-py2-none-any.whl", "has_sig": false, "md5_digest": "08c2a693eba213d469b86f4e9294bcd0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 92447, "upload_time": "2018-12-01T18:14:02", "url": "https://files.pythonhosted.org/packages/1b/ad/ac9c1ba651b9b9fea06d338b1a506eb39b0aded4e152553f9a3a06db9356/fab_classic-1.15.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a61a734522331a187745ab220463db35", "sha256": "227cbadfe8fbb9bb8b0800869d02d988cf14f2cd157f0bcf7ea9c1a3430d3851" }, "downloads": -1, "filename": "fab_classic-1.15.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a61a734522331a187745ab220463db35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 92447, "upload_time": "2018-12-01T18:15:12", "url": "https://files.pythonhosted.org/packages/ea/b6/0e6c555be9448e6d8421375fbec28a86a56dd8d87f60a2ccbe11346e293c/fab_classic-1.15.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34416bb2771f411e4e9d8c6d62fd33e9", "sha256": "b58d76504aeb08b84720f8d51772f5f1932154febcc4c21c9a551db7ed596c7a" }, "downloads": -1, "filename": "fab-classic-1.15.2.tar.gz", "has_sig": false, "md5_digest": "34416bb2771f411e4e9d8c6d62fd33e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 222931, "upload_time": "2018-12-01T18:14:04", "url": "https://files.pythonhosted.org/packages/be/c9/3aa1be11e1a9509ee2c3be073a26819fc210205fec361cfd96b22bdcba9f/fab-classic-1.15.2.tar.gz" } ], "1.15.3b1": [ { "comment_text": "", "digests": { "md5": "56cdbba76cb017f5f4b8c0f5c2822195", "sha256": "2f1b80bdeeaebe7ca8b0f42055b846c7c00e5a0d171be30af00f282fa49ea2b9" }, "downloads": -1, "filename": "fab_classic-1.15.3b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56cdbba76cb017f5f4b8c0f5c2822195", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 92802, "upload_time": "2019-06-02T06:21:43", "url": "https://files.pythonhosted.org/packages/36/12/dab60cd21b95a172af9f88373202bfb5f6cd17482807f7c492a10f792ce2/fab_classic-1.15.3b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71060ddb362758e2ede23da683790325", "sha256": "fb1ee5e480321a8a20bee66a9560d26fada116c69eb2997167635c8796f8c7a4" }, "downloads": -1, "filename": "fab-classic-1.15.3b1.tar.gz", "has_sig": false, "md5_digest": "71060ddb362758e2ede23da683790325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 217076, "upload_time": "2019-06-02T06:21:45", "url": "https://files.pythonhosted.org/packages/0a/0b/f91b29f60cb82658f2d3f8b34fd48f9272c8029ae6c20db86d6a4dc99fbd/fab-classic-1.15.3b1.tar.gz" } ], "1.16.0": [ { "comment_text": "", "digests": { "md5": "de255fee0222d5047b73e44345402606", "sha256": "91a9874ac20b3f166a292f0df9476b370075c71b1a0d4081ba7faa06f7e98ae3" }, "downloads": -1, "filename": "fab_classic-1.16.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de255fee0222d5047b73e44345402606", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 92514, "upload_time": "2019-06-17T04:33:37", "url": "https://files.pythonhosted.org/packages/85/6b/83bc3919773032bf9eaf24bbb3466f608f71c48638c31345785b8293d289/fab_classic-1.16.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7587c8f62d38e79a4260e340dd022729", "sha256": "b2e1458346986c69b185ee18fcb8502ac1e5782dd1fa095237aeb4fb5f6d6840" }, "downloads": -1, "filename": "fab-classic-1.16.0.tar.gz", "has_sig": false, "md5_digest": "7587c8f62d38e79a4260e340dd022729", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 214477, "upload_time": "2019-06-17T04:33:39", "url": "https://files.pythonhosted.org/packages/06/c9/0cab5676f97c54bf968b15cfa110c501d8f0a09305fbf6724428acd170b9/fab-classic-1.16.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "de255fee0222d5047b73e44345402606", "sha256": "91a9874ac20b3f166a292f0df9476b370075c71b1a0d4081ba7faa06f7e98ae3" }, "downloads": -1, "filename": "fab_classic-1.16.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de255fee0222d5047b73e44345402606", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 92514, "upload_time": "2019-06-17T04:33:37", "url": "https://files.pythonhosted.org/packages/85/6b/83bc3919773032bf9eaf24bbb3466f608f71c48638c31345785b8293d289/fab_classic-1.16.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7587c8f62d38e79a4260e340dd022729", "sha256": "b2e1458346986c69b185ee18fcb8502ac1e5782dd1fa095237aeb4fb5f6d6840" }, "downloads": -1, "filename": "fab-classic-1.16.0.tar.gz", "has_sig": false, "md5_digest": "7587c8f62d38e79a4260e340dd022729", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 214477, "upload_time": "2019-06-17T04:33:39", "url": "https://files.pythonhosted.org/packages/06/c9/0cab5676f97c54bf968b15cfa110c501d8f0a09305fbf6724428acd170b9/fab-classic-1.16.0.tar.gz" } ] }