{ "info": { "author": "ramusus", "author_email": "ramusus@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "#### Introduction\n\nWe had several Fabric scripts which violated DRY. Class-based Fabric script can solve this issue.\nThis is a hack to enable the definition of Fabric tasks as methods in a class instead of just as module level functions.\nThis class-based approach provides the benefits of inheritance and method overriding.\n\n#### Example usage:\n\n```python\nfrom fabriclassed import initialize\nfrom fabriclassed.base import BaseFabric, DjangoFabric, VirtualenvFabric\nfrom fabric import api as fab\n\nclass Fabric(BaseFabric):\n remote_project_path = '/local/path/to/my_project'\n local_project_path = '/remote/path/to/my_project'\n\n def fab_task(self):\n '''My website task'''\n fab.local('echo \"Hello world\"')\n\n__all__ = initialize(Fabric(), __name__)\n```\n\nEvery method with prefix 'fab_' will became a fabric command. Running fab -l gives:\n\n```\n$ fab -l\nAvailable commands:\n\n del_pyc Remove all .pyc files inside in fabfile and child direc...\n search Search string amoung source code inside directories fro...\n task My website task\n```\n\nRunning fab task gives:\n\n```\n$ fab task\n[localhost] local: echo \"Hello world\"\nHello world\n\nDone.\n```\n\n#### Extended usage with Django under Virtualenv:\n\nDjangoFabric and VirtualenvFabric classes contains various of tools to work with Django in Virtualenv environment. You can use both of these toos together or separately, as you like.\n\nExample of Fabric class with a bunch of properies:\n\n```python\nfrom fabriclassed import initialize\nfrom fabriclassed.base import BaseFabric, DjangoFabric, VirtualenvFabric\nfrom fabric.api import lcd, local\n\nclass Fabric(BaseFabric, DjangoFabric, VirtualenvFabric):\n search_dirs = []\n\n hosts = ['website.com']\n remote_project_path = '/local/path/to/my_project'\n local_project_path = '/remote/path/to/my_project'\n\n # django settings\n managefile_path = './manage.py'\n test_default_app = 'name_of_my_main_django_application'\n test_settings = 'settings_test_special_file'\n shell_plus = True\n devserver_port = 8000\n devserver_params = ''\n fixtures_dir = 'fixtures'\n fixtures_format = 'json'\n fixtures_map = (\n 'sites.site',\n )\n\n # virtualenv settings\n use_virtualenv = True\n virtualenv_dir = 'env'\n patched_applications = [\n # list of virtualenv patched applications\n ]\n diff_dir = 'my_relative_to_project_diffs_dir'\n applications_dir = 'my_relative_to_project_apps_dir'\n\n__all__ = initialize(Fabric(), __name__)\n```\n\nRunning fab -l gives:\n\n```\nAvailable commands:\n\n del_pyc Remove all .pyc files inside in fabfile and child direc...\n dev Run Django's dev server\n diff_dump Walk over map of patched applications and make diff fil...\n patch Walk over 'diffs' directory and patch every application\n search Search string amoung source code inside directories fro...\n sh Run Django's standart shell or shell from django_extent...\n symlink Create symlink from 'apps' dir to the site-packages or ...\n test Run Django's tests. Argument can be application name, n...\n update_fixtures Put remote fixtures to repository on production, get an...\n```\n\n#### Installation:\n\nTo install the latest version of fabriclassed, just use command:\n\n```\npip install fabriclassed\n```", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/fabriclassed", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ramusus/fabriclassed", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "fabriclassed", "package_url": "https://pypi.org/project/fabriclassed/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fabriclassed/", "project_urls": { "Download": "http://pypi.python.org/pypi/fabriclassed", "Homepage": "https://github.com/ramusus/fabriclassed" }, "release_url": "https://pypi.org/project/fabriclassed/0.4.6/", "requires_dist": null, "requires_python": null, "summary": "Class-based Fabric scripts via a Python metaprogramming hack", "version": "0.4.6" }, "last_serial": 1444252, "releases": { "0.3.0": [], "0.3.2": [ { "comment_text": "", "digests": { "md5": "d739972171b58abda11f20a43826f472", "sha256": "d9550ab85b5647154235b140c2ba959c350d71479a60652f181ccf7d4e307344" }, "downloads": -1, "filename": "fabriclassed-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d739972171b58abda11f20a43826f472", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4965, "upload_time": "2011-11-15T00:51:33", "url": "https://files.pythonhosted.org/packages/8b/cf/b747c39da9ef73fadaf5ee66c471cfd6dbbd350dbba93ebe5000f05534d8/fabriclassed-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "f12ad439af1404d884bbb8a387194d4e", "sha256": "42f5f10399523f2646d19a49b600bdd079a7717b305d71d1a1047d9cdfe66bec" }, "downloads": -1, "filename": "fabriclassed-0.3.3.tar.gz", "has_sig": false, "md5_digest": "f12ad439af1404d884bbb8a387194d4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4940, "upload_time": "2011-11-15T16:42:14", "url": "https://files.pythonhosted.org/packages/e1/c9/7d07c2ea3709e849554974d1c089956acd1869ee4f820bb1da701df7b9be/fabriclassed-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "6d10cd6af48f5bcb5ea1fb95e51a11d6", "sha256": "5d8fbbd6d95b0e0137f85ed6e96013ec81198996ab5b43d8d90c7440aac16304" }, "downloads": -1, "filename": "fabriclassed-0.3.4.tar.gz", "has_sig": false, "md5_digest": "6d10cd6af48f5bcb5ea1fb95e51a11d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4932, "upload_time": "2011-11-15T16:49:09", "url": "https://files.pythonhosted.org/packages/db/60/2c260bc171898f50e5bf2f9b463f1aa762b6283c3adba93bf24afde0837c/fabriclassed-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "b9a6d004cb5165fc49dff98e9b47fe0d", "sha256": "2a406c08049fa580a79cca370546ce5c23a0197f934dbe91b16fe72c0bf750f6" }, "downloads": -1, "filename": "fabriclassed-0.3.5.tar.gz", "has_sig": false, "md5_digest": "b9a6d004cb5165fc49dff98e9b47fe0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10894, "upload_time": "2011-11-15T16:53:39", "url": "https://files.pythonhosted.org/packages/7d/d8/9aa04c0a3051ee8a09de4e6f3d925f048e5a5409eadfe05b7ea4192489ae/fabriclassed-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "173a7456bed4e84d2944ff396d57481c", "sha256": "fb4d98b862906b238b127f70b5c5799d20c35ccdee91a5c208e2eb21537f1902" }, "downloads": -1, "filename": "fabriclassed-0.3.6.tar.gz", "has_sig": false, "md5_digest": "173a7456bed4e84d2944ff396d57481c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10889, "upload_time": "2011-11-15T16:57:40", "url": "https://files.pythonhosted.org/packages/6e/b6/d009901bb86929b5d80a9075a9ea8a231706f3fe35f6b4bc7f075e59839d/fabriclassed-0.3.6.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "aa8a3149a6a8ba3825037e016ce60ff9", "sha256": "1030363c998e1ef070e462d7bdc5ff22f536c59d55f2e56ff0e43880e938e7ec" }, "downloads": -1, "filename": "fabriclassed-0.4.1.tar.gz", "has_sig": false, "md5_digest": "aa8a3149a6a8ba3825037e016ce60ff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11503, "upload_time": "2011-11-17T21:41:03", "url": "https://files.pythonhosted.org/packages/f3/d4/56fe3c73ddd13db451f1baa609830ac57b856cccdb4c24a090692ca3813b/fabriclassed-0.4.1.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "4f7274298cba2a1fd6540aac8de93c92", "sha256": "e0a69687efb9a3202be136c1e087ede73e598b6ed22857ee504b843c7ec11b1e" }, "downloads": -1, "filename": "fabriclassed-0.4.3.tar.gz", "has_sig": false, "md5_digest": "4f7274298cba2a1fd6540aac8de93c92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12387, "upload_time": "2011-12-08T11:07:03", "url": "https://files.pythonhosted.org/packages/d5/d6/a8374c5a810deb24a3468149ef976ece0e70b0b67cadbd7118fc2649ddfc/fabriclassed-0.4.3.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "466fcd5c1dabcc11864966dc097a42a3", "sha256": "7b7b9e0d99597b83d1b22959e569a6f7dc691e893d67421f3622ec765e274180" }, "downloads": -1, "filename": "fabriclassed-0.4.5.tar.gz", "has_sig": false, "md5_digest": "466fcd5c1dabcc11864966dc097a42a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12121, "upload_time": "2014-05-22T11:51:24", "url": "https://files.pythonhosted.org/packages/9f/62/387c7785c6e27ac4ef0ab96cd75a6888642a8157f5bcc3ac397a1e0add7f/fabriclassed-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "c74e1c3397c4c09002a079df3f9f88c6", "sha256": "3e1c5b6e61496fdc97e0b21c15597b532f41e61c6cfbfb3bb25aedb882b05cb2" }, "downloads": -1, "filename": "fabriclassed-0.4.6.tar.gz", "has_sig": false, "md5_digest": "c74e1c3397c4c09002a079df3f9f88c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11662, "upload_time": "2015-03-02T06:56:59", "url": "https://files.pythonhosted.org/packages/8f/f5/d4fb3a0c7a2bb26a10094ec70565b3d985760a34a715ec653116605a5c47/fabriclassed-0.4.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c74e1c3397c4c09002a079df3f9f88c6", "sha256": "3e1c5b6e61496fdc97e0b21c15597b532f41e61c6cfbfb3bb25aedb882b05cb2" }, "downloads": -1, "filename": "fabriclassed-0.4.6.tar.gz", "has_sig": false, "md5_digest": "c74e1c3397c4c09002a079df3f9f88c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11662, "upload_time": "2015-03-02T06:56:59", "url": "https://files.pythonhosted.org/packages/8f/f5/d4fb3a0c7a2bb26a10094ec70565b3d985760a34a715ec653116605a5c47/fabriclassed-0.4.6.tar.gz" } ] }