{ "info": { "author": "Dhruv Agarwal", "author_email": "dhruv@hackerearth.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Internet" ], "description": "Library Name- BOX\n=================\n\nTask\n----\n\nAutomate the installation/updation of modules/packages on the servers\naccording to a given dependency config file\n\nDependency Config File Format\n=============================\n\n.. figure:: http://i.imgur.com/52CY8JA.png\n :alt: Dependency Config File Format\n\nLibrary Components\n------------------\n\n- *config\\_parser.py* - parses dependency config from given filepath\n- *utils.py* - set of utility functions such as\n dependency\\_install\\_manager, steps execution callable for fabric,\n etc.\n- *install.py* - this is the main file, which contains function to be\n called when the library is used\n- *exceptions.py* - this contains the various exceptions classes used\n in the library\n\nInputs to be given\n------------------\n\n- **dependency config file** this is a dictionary of the given format\n with steps, action and package\\_name this imports the endpoints\n callable.\n- **machines information** this is a set of machine callables which\n define a set of machines each machine has 3 components - user, key,\n endpoint\n\nFlow\n----\n\n- user creates a set of callables which return endpoints for machines\n- now a dependency config file is created in specified format, which\n takes callables for server for each package, and action is defined\n (INSTALL/UNINSTALL).\n- now, path to dependency config file is given to the library function\n ( handle\\_dependencies() ) alongwith action(explained below)\n\n - action - this is the required action of the user, i.e. if the user\n wants to execute all the packages to be installed, he will specify\n action=INSTALL, else UNINSTALL(for executing packages to be\n uninstalled)\n\n- handle\\_dependencies() passes the dependency config filepath to the\n config\\_parser which returns a dictionary of endpoints (as key) and\n packages( as value)\n- now, for every machine manage\\_dependencies\\_on\\_machine() is called\n which takes machine and its packages and installs them using utility\n functions\n\n3rd Party Library used\n~~~~~~~~~~~~~~~~~~~~~~\n\n- `fabric `__\n\nExamples\n--------\n\nYou can find examples of dependency config file, and sample machine\ngroup class `here `__ and\n`here `__.\n\nIf you are using django, you might like to use this library via a\nmanagement command , which you can find\n`here `__.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "hackerearth-box", "package_url": "https://pypi.org/project/hackerearth-box/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/hackerearth-box/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/hackerearth-box/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Python Library to facilitate automated package management on distributed servers", "version": "0.2.1" }, "last_serial": 1606210, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8c2a3c1067f923d09a742df53fb937cd", "sha256": "b4a55bdb63f9b3af53a71b04aabd83f7a99ed85ebab25707c606f9a4d1444af0" }, "downloads": -1, "filename": "hackerearth_box-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "8c2a3c1067f923d09a742df53fb937cd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4987, "upload_time": "2015-06-17T15:29:52", "url": "https://files.pythonhosted.org/packages/22/56/dc5cdd36d25f0da1b9a5a71c5b5d8b94fb2176e31b99cea5dd2ac86ec4c5/hackerearth_box-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f7f1b01bbaeac7176e8bd31728ca077", "sha256": "b7f39a89d2a741f5e0377e635842fb45479075d836ec1d751c21f3ba8beaa7ec" }, "downloads": -1, "filename": "hackerearth-box-0.1.tar.gz", "has_sig": false, "md5_digest": "8f7f1b01bbaeac7176e8bd31728ca077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2785, "upload_time": "2015-06-17T15:29:33", "url": "https://files.pythonhosted.org/packages/6c/1d/0965ade43e6456f2fefa8787600e660a34f0292b6348eab88cb69d156ca4/hackerearth-box-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9fcb9a72abd51ca7462f12e13c3dff39", "sha256": "5d8bb915eee95f35c0868e48c895812714cc6b22751403f2539247deb01710ae" }, "downloads": -1, "filename": "hackerearth_box-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9fcb9a72abd51ca7462f12e13c3dff39", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4954, "upload_time": "2015-06-17T15:34:47", "url": "https://files.pythonhosted.org/packages/b1/fd/d1e1a73a6c2961e7353b95bfbff6e60fb775531466fee82787892cf863a7/hackerearth_box-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe090fae296c006f720269b53ec34a18", "sha256": "c848dfcc728ceca1f8c8c9346dbce618c66e04613a673376bdf474bcf6d9fcc4" }, "downloads": -1, "filename": "hackerearth-box-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fe090fae296c006f720269b53ec34a18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2761, "upload_time": "2015-06-17T15:34:36", "url": "https://files.pythonhosted.org/packages/74/39/6785cae489a898d7d8615a11cd9804ba827f4917485963a36082fb04b8f3/hackerearth-box-0.1.1.tar.gz" } ], "0.1.22": [ { "comment_text": "", "digests": { "md5": "8cbdb78ac77b8f49f0dcbb294b56fadf", "sha256": "7678ec5eeaf84e83362be2d59fe2c1e5628a6fd836605c420b827a151fc08db2" }, "downloads": -1, "filename": "hackerearth_box-0.1.22-py2-none-any.whl", "has_sig": false, "md5_digest": "8cbdb78ac77b8f49f0dcbb294b56fadf", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4967, "upload_time": "2015-06-17T15:43:06", "url": "https://files.pythonhosted.org/packages/8e/c1/2c9189ce189bdca33d61580dcca42dc024ef4767ff6680bc301ae9c3763e/hackerearth_box-0.1.22-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f707a8fcde6860066fef6d09e7f9387", "sha256": "4d6441e68a27e5aafc9f05be6c969fddc4c0b0d3a855072ce06350406cc367d0" }, "downloads": -1, "filename": "hackerearth-box-0.1.22.tar.gz", "has_sig": false, "md5_digest": "1f707a8fcde6860066fef6d09e7f9387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3711, "upload_time": "2015-06-17T15:42:48", "url": "https://files.pythonhosted.org/packages/aa/d8/4e01495d4fb7d2cd747a9b5c85890274523ce91dfeb3503c3f6a4cc73b95/hackerearth-box-0.1.22.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "42a3508587905a12f6991c3397249eee", "sha256": "397fee5ab16080fb557e9ded292eb5f307e9be4ed581d599cb8d70c5505771f6" }, "downloads": -1, "filename": "hackerearth_box-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "42a3508587905a12f6991c3397249eee", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5122, "upload_time": "2015-06-18T13:55:22", "url": "https://files.pythonhosted.org/packages/d6/86/15e03144aad12c7e610e2e4bbcb893d04b6b518de15780775ecd94df3102/hackerearth_box-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32a2bed7fbfc78190e7103fb5b0595a2", "sha256": "300de32f8689fc3842b4be5cdb56626506d3219feb4156a057c7555c7eccd101" }, "downloads": -1, "filename": "hackerearth-box-0.1.3.tar.gz", "has_sig": false, "md5_digest": "32a2bed7fbfc78190e7103fb5b0595a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3860, "upload_time": "2015-06-18T13:55:13", "url": "https://files.pythonhosted.org/packages/47/71/c91170a1b1275139c9d5887d63dde1d29a592451e0cf8a219a90c03cf3ad/hackerearth-box-0.1.3.tar.gz" } ], "0.1.30": [ { "comment_text": "", "digests": { "md5": "d90785c0771a5d0611e244c9d5f04e5a", "sha256": "818859208db008e1c26d963790845e9e904ad24a8929907d0868441a2597e924" }, "downloads": -1, "filename": "hackerearth_box-0.1.30-py2-none-any.whl", "has_sig": false, "md5_digest": "d90785c0771a5d0611e244c9d5f04e5a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5156, "upload_time": "2015-06-18T14:38:49", "url": "https://files.pythonhosted.org/packages/5c/38/e9106a776b861cf920d841d06caae1edbf1f780d1345d89d4392458a1642/hackerearth_box-0.1.30-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8b81c0c6a7feff8fdd41bf0417db122", "sha256": "fa7050803ec36d93cec7607e85ef06203b622cc50b1fee9c0b27f7cb73b55537" }, "downloads": -1, "filename": "hackerearth-box-0.1.30.tar.gz", "has_sig": false, "md5_digest": "b8b81c0c6a7feff8fdd41bf0417db122", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3868, "upload_time": "2015-06-18T14:38:34", "url": "https://files.pythonhosted.org/packages/2f/e6/8d663b03523dfb0303e53f2fff8a2ae956b8565ae269e3968c3d46b5f257/hackerearth-box-0.1.30.tar.gz" } ], "0.1.31": [ { "comment_text": "", "digests": { "md5": "536a2d43beffbd74eaeeddbfbec7b868", "sha256": "f72cbd1d3aa049157e040d4f02b43c591fea50fd54c8874b59ac6d90126a3a2f" }, "downloads": -1, "filename": "hackerearth_box-0.1.31-py2-none-any.whl", "has_sig": false, "md5_digest": "536a2d43beffbd74eaeeddbfbec7b868", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5323, "upload_time": "2015-06-22T09:32:44", "url": "https://files.pythonhosted.org/packages/6e/25/390f7d860a8e944a0519a26433f3f3b1c098208b277e10771604840ac81e/hackerearth_box-0.1.31-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27939a9d433f5faf172bccad2ed750ec", "sha256": "3cfed4e2add3147dbf0459c5ae9bd0a193afd02c2b3c9a2b56e857fd46626758" }, "downloads": -1, "filename": "hackerearth-box-0.1.31.tar.gz", "has_sig": false, "md5_digest": "27939a9d433f5faf172bccad2ed750ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4002, "upload_time": "2015-06-22T09:32:35", "url": "https://files.pythonhosted.org/packages/61/32/0d6a6d048e109e44eb82f141da625589ebd26f3fa1833231307ae7bf26cb/hackerearth-box-0.1.31.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "fdd61c9473aec66cece348c45340ce61", "sha256": "d3fe46ab9696570b82210f854db27416462fc3618c0eef7e0dd8ce8b90b545f2" }, "downloads": -1, "filename": "hackerearth_box-0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "fdd61c9473aec66cece348c45340ce61", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5288, "upload_time": "2015-06-24T07:56:20", "url": "https://files.pythonhosted.org/packages/15/fe/568a15a19ffd8edcce48713b9351484e85054b4a345cdce6e778e87fb140/hackerearth_box-0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ccc30fb73d47777826149e6ade53b97", "sha256": "26babffdd23c99d2fefdb4b690b5a620d82ac054747f76f831e1f614c4b798be" }, "downloads": -1, "filename": "hackerearth-box-0.2.tar.gz", "has_sig": false, "md5_digest": "1ccc30fb73d47777826149e6ade53b97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4012, "upload_time": "2015-06-24T07:56:12", "url": "https://files.pythonhosted.org/packages/a8/96/2f870fa326ffbe2c651a6720aa55bb407faef4d3b55a282f0439f496b008/hackerearth-box-0.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d1ab43475a57862e51dfe5de1fe5c3be", "sha256": "d0bdfbecb4b1a8d5797e7a7f57026c9e0b6f5675e136f66f596a64ae6c819817" }, "downloads": -1, "filename": "hackerearth_box-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d1ab43475a57862e51dfe5de1fe5c3be", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5538, "upload_time": "2015-06-25T12:12:51", "url": "https://files.pythonhosted.org/packages/ee/b8/aa232c5da60d13f701b11b78626683cc4352b91b400a59b3192e926fae7c/hackerearth_box-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0504be0696906ff549405d8f5d16d4cf", "sha256": "aa9ec75194159b1c471bd2c8bac12f2496da19d1576a3b73812ed12f93c37bc6" }, "downloads": -1, "filename": "hackerearth-box-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0504be0696906ff549405d8f5d16d4cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4199, "upload_time": "2015-06-25T12:12:42", "url": "https://files.pythonhosted.org/packages/c4/23/39f6973c04e5a0937521c4474dc43ecc1d9539a91fbba96dc096831a2edd/hackerearth-box-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "60340c0e509561d98e889fad3894e274", "sha256": "4bd15539d671699f687ae21a7cf4c261e5a1b5907652fbeb9a016e53da552522" }, "downloads": -1, "filename": "hackerearth_box-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "60340c0e509561d98e889fad3894e274", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5541, "upload_time": "2015-06-25T12:16:01", "url": "https://files.pythonhosted.org/packages/fe/f5/71c1c86df39cf96413909de4bb1f4ab8e831ace2437b1796fad73d6afd74/hackerearth_box-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "917a81fad16c2e4e9370d87f8c650863", "sha256": "da1355f796c781d5d71ef796c3c35fc1be5b684af44b5b526ca144fca8ed590c" }, "downloads": -1, "filename": "hackerearth-box-0.2.1.tar.gz", "has_sig": false, "md5_digest": "917a81fad16c2e4e9370d87f8c650863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4197, "upload_time": "2015-06-25T12:15:47", "url": "https://files.pythonhosted.org/packages/79/23/b59f598769e096dd30066a773a98a7de7af490f5f41b57ad1c9429964562/hackerearth-box-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "60340c0e509561d98e889fad3894e274", "sha256": "4bd15539d671699f687ae21a7cf4c261e5a1b5907652fbeb9a016e53da552522" }, "downloads": -1, "filename": "hackerearth_box-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "60340c0e509561d98e889fad3894e274", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5541, "upload_time": "2015-06-25T12:16:01", "url": "https://files.pythonhosted.org/packages/fe/f5/71c1c86df39cf96413909de4bb1f4ab8e831ace2437b1796fad73d6afd74/hackerearth_box-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "917a81fad16c2e4e9370d87f8c650863", "sha256": "da1355f796c781d5d71ef796c3c35fc1be5b684af44b5b526ca144fca8ed590c" }, "downloads": -1, "filename": "hackerearth-box-0.2.1.tar.gz", "has_sig": false, "md5_digest": "917a81fad16c2e4e9370d87f8c650863", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4197, "upload_time": "2015-06-25T12:15:47", "url": "https://files.pythonhosted.org/packages/79/23/b59f598769e096dd30066a773a98a7de7af490f5f41b57ad1c9429964562/hackerearth-box-0.2.1.tar.gz" } ] }