{ "info": { "author": "di-dip-unistra", "author_email": "di-dip@unistra.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7" ], "description": "Pydiploy\n========\n\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n :alt: Join the chat at https://gitter.im/unistra/pydiploy\n :target: https://gitter.im/unistra/pydiploy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. image:: https://secure.travis-ci.org/unistra/pydiploy.png?branch=master\n :target: https://travis-ci.org/unistra/pydiploy\n :alt: Build\n\n.. image:: http://coveralls.io/repos/unistra/pydiploy/badge.png?branch=master\n :target: http://coveralls.io/r/unistra/pydiploy?branch=master\n :alt: Coverage\n\n.. image:: https://img.shields.io/pypi/v/pydiploy.svg\n :target: https://pypi.python.org/pypi/pydiploy\n :alt: Version\n\n.. image:: https://img.shields.io/pypi/pyversions/pydiploy.svg\n :target: https://pypi.python.org/pypi/pydiploy\n :alt: Python Version\n\n.. image:: https://img.shields.io/pypi/status/pydiploy.svg\n :target: https://pypi.python.org/pypi/pydiploy\n :alt: Status\n\n.. image:: https://img.shields.io/pypi/l/pydiploy.svg\n :target: https://docs.python.org/2/license.html\n :alt: Licence\n\n.. image:: https://img.shields.io/pypi/dm/pydiploy.svg\n :target: https://pypi.python.org/pypi/pydiploy\n :alt: Download\n\n.. image:: https://landscape.io/github/unistra/pydiploy/master/landscape.svg?style=flat\n :target: https://landscape.io/github/unistra/pydiploy/master\n :alt: Code Health\n\n`Pydiploy` is a library used to deal with administration and deployment of applications on several environments (i.e : dev, test, pre-production, production) The library is based on fabric and fabtools.\nThe purpose of the project is to deliver bunch of tools as generic as possible to standardize deployments and administrations tasks.\nTo use it : create a fabfile (fabfile.py or fabfile/__init__.py) and start playing with your new toy !\n\nCurrently, it only works with :\n\n* django applications based on the `django-drybones `_ template (default).\n* simple python applications based on the `simple-python-drybones `_ template.\n* bottle applications based on the `bottle-drybones `_ template.\n\nInstall\n-------\n\n - Requirements : python2.7, fabtools, fabric and a application based on django-drybones, simple-python-drybones or bottle-drybones\n\n - Installation : ::\n\n $ pip install pydiploy\n\nUsage\n-----\n\n - See the example in the doc to setup correctly a fabfile (fabric,fabtools and pydiploy should be installed)\n\n - If env.user is not defined in fabfile (stage part or in main part of the fabfile) you can pass its value by command line : ::\n\n $ fab test pre_install -u your_user\n\n - Use following command to install/deploy an application in test stage : ::\n\n $ fab tag:master test pre_install deploy post_install\n\n - Just remember that the tag parameter is just used for the 'deploy' task if not set pydiploy will prompt you to choose a tag.\n\n - Use following command to install/deploy an application in production stage : ::\n\n $ fab tag:master prod pre_install deploy post_install\n\n - To deploy a new tag/release on production stage : ::\n\n $ fab tag:1.0.1 prod deploy\n\n - if something went wrong during deploy process you could rollback previous release : ::\n\n $ fab prod rollback\n\n - To deploy with arguments : ::\n\n $ fab tag:master test --set default_db_host='localhost',default_db_name='mydb',default_db_user='myuser',default_db_password='mypass' deploy\n\n - Be carefull with --set if you want to pass booleans argument for example verbose_output=False : ::\n\n $ fab tag:master test --set verbose_output= deploy\n\n - See fabric documentation for more infos : http://fabric.readthedocs.org\n\nTips\n----\n\n\n.. _databases-part:\n\nDatabases\n~~~~~~~~~\n\n - django+sqlite3 : if you use sqlite3 with django, don't put your .db file in the same folder as your application. It will be erased for each deployement !\n\n - Specific oracle installation optional settings for django and bottle applications : ::\n\n env.oracle_client_version = '11.2'\n env.oracle_download_url = 'http://librepo.net/lib/oracle/'\n env.oracle_remote_dir = 'oracle_client'\n env.oracle_packages = ['instantclient-basic-linux-x86-64-11.2.0.2.0.zip',\n 'instantclient-sdk-linux-x86-64-11.2.0.2.0.zip',\n 'instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip']\n\n\n.. _maintenance-mode:\n\nMaintenance mode\n~~~~~~~~~~~~~~~~\n\n - For a django (or bottle) webapp deployement you can set the webserver to be in maintenance mode before deploying. For that purpose you could import in your fabfile pydiploy.django.set_app_up and pydiploy.django.set_app_down in a task :\n\n .. code-block:: python\n\n from pydiploy.django import (set_app_up as pydiploy_set_up,\n set_app_down as pydiploy_set_down)\n\n\n @roles('web_server_role')\n @task\n def set_down():\n \"\"\" Set app to maintenance mode \"\"\"\n execute(pydiploy_set_down)\n\n\n @roles('web_server_role')\n @task\n def set_up():\n \"\"\" Set app to up mode \"\"\"\n execute(pydiploy_set_up)\n\n - Then you could call directly the new tasks to toggle between up and down mode a maintenance.html will be used rendered with a 503 http status\n\n - Toggle to maintenance mode and active maintenance page : ::\n\n $ fab prod set_down\n\n - When setting the site in maintenance mode you could customize title and text of the maintenance page : ::\n\n fab prod set_down --set maintenance_title='Webapp is down !',maintenance_text='Time for maintenance, please come back later'\n\n - If you want to permanently change the default maintenance page you could set env vars in fabfile :\n\n .. code-block:: python\n\n # Put this somewhere in the fabfile\n\n env.maintenance_title='Webapp is down !'\n env.maintenance_text='Time for maintenance, please come back later'\n\n - Toggle to up mode and deactivate maintenance page : ::\n\n $ fab prod set_up\n\nRun tasks in parallel\n~~~~~~~~~~~~~~~~~~~~~\n\n - By default pydiploy (via fabric) executes tasks serially : ::\n\n for example if you have 4 servers :\n\n $ fab tag:master test deploy\n\n will run like this :\n deploy on web1\n deploy on web2\n deploy on web3\n deploy on web4\n\n instead you can use fabric's parallel mode :\n\n $ fab -P tag:master test deploy (or set a env.parallel = True in fabfile)\n\n will run like this :\n\n deploy on web1,web2,web3,web4\n\n - Be carefull with parallel mode as env.vars are reseted not all tasks are callable for now !\n\n - For password prompt use fab -I\n\n - see also : Fabric documentation http://docs.fabfile.org/en/latest/usage/parallel.html for parallel execution mode\n\n - see also : Fabric documentation http://docs.fabfile.org/en/latest/usage/fab.html#cmdoption-I for forcing a password prompt at the start of the session\n\nManaging output\n~~~~~~~~~~~~~~~\n\n - By default fabric and so pydiploy is very verbose all levels (ie debug), are on.\n\n - When using command line you can add --hide=LEVELS or --show=LEVELS parameters.\n\n - You can disable verbose output on configuration checking by setting env.verbost_ouput=False or in terminal : ::\n\n $ fab test --set verbose_ouput=\n\n - You can disable also configuration checking by setting env.no_config_test=True or in terminal : ::\n\n $ fab test --set no_config_test\n\n - see also Fabric documentation http://docs.fabfile.org/en/latest/usage/output_controls.html for output levels\n\n\nOptional parameters\n~~~~~~~~~~~~~~~~~~~\n\n - dest_path specifies a local temp dir if dest_path not set /tmp is used : ::\n\n env.dest_path = '/home/myuser/deploy/tmp'\n\n - excluded_files used to specify files that should be excluded when deploying app for files that are not in .gitignore file : ::\n\n env.excluded_files = ['config.py-DIST','README.rst']\n\n - extra_ppa_to_install adds extra(s) ppa's sourc(e)s when setting server : ::\n\n extra_ppa_to_install = ['ppa:vincent-c/ponysay']\n\n - extra_source_to_install adds extra(s) debian sourc(e)s when setting server : ::\n\n extra_source_to_install = [['mongodb', 'http://downloads-distro.mongodb.org/repo/ubuntu-upstart', 'dist', '10gen'], ['deb-src', 'http://site.example.com/debian', 'distribution', 'component1', 'component2', 'component3']] \n\n - extra_pkg_to_install adds extra(s) package(s) when setting server : ::\n\n env.extra_pkg_to_install = ['ponysay','cowsay']\n\n - cfg_shared_files puts configuration's file(s) in shared directory on remote server. File(s) will be 'symlinked' from shared to current directory : ::\n\n env.cfg_shared_files = ['/app/path/to/config/config_file']\n\n - extra_symlink_dirs puts extra(s) dir(s) to shared directory : ::\n\n env.extra_symlink_dirs = ['mydir','/app/mydir']\n\n - extra_goals adds extra(s) goal to defaults test,dev,prod stages : ::\n\n env.extra_goals = ['preprod','customer-preprod']\n\n - verbose True by default if False the configuration checker will not lists whole parameters : ::\n\n env.verbose = False\n\n - req_pydiploy_version could be used to require a pydiploy version installed for fabfile file. Pydiploy will check that version installed is not too recent for fabfile provided comparing pydiploy version x.x on version req_pydiploy_version : ::\n\n env.req_pydiploy_version = \"1.0\"\n\n - no_config_test if True it disables the check of configuration (required env vars...) be carefull if you set it TRUE : ::\n\n env.no_config_test = True\n\n - maintenance_title and maintenance_text (see `maintenance-mode`_ for more infos) : ::\n\n env.maintenance_title='Webapp is down !'\n env.maintenance_text='Time for maintenance, please come back later'\n\n - circus_package_name provides an alternate repository url for specific circus package : ::\n\n env.circus_package_name = 'https://github.com/githubaccount/circus/archive/master.zip'\n\n - no_circus_web if sets to True, circus-web package will not be installed during pre_install process : ::\n\n env.no_circus_web = True\n\n - nginx_location_extra_directives adds specific directives in location part of nginx config file : ::\n\n env.nginx_location_extra_directives = ['proxy_read_timeout 120']\n\n - env.nginx_force_start if True, it forces to start nginx when nginx is not started : ::\n\n env.nginx_force_start = False\n\n - oracle_* : see `databases`_ for more infos on required parameters.\n\n - socket_host used to force a socket host other thant hostname in circus app config file : ::\n\n env.socket_host = True\n", "description_content_type": "", "docs_url": "https://pythonhosted.org/pydiploy/", "download_url": "http://pypi.python.org/pypi/pydiploy", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/unistra/pydiploy", "keywords": "deploy", "license": "PSF", "maintainer": "", "maintainer_email": "", "name": "pydiploy", "package_url": "https://pypi.org/project/pydiploy/", "platform": "", "project_url": "https://pypi.org/project/pydiploy/", "project_urls": { "Download": "http://pypi.python.org/pypi/pydiploy", "Homepage": "https://github.com/unistra/pydiploy" }, "release_url": "https://pypi.org/project/pydiploy/1.1.8/", "requires_dist": null, "requires_python": "", "summary": "A tool to deploy applications, and automate processing with fabric", "version": "1.1.8" }, "last_serial": 5385604, "releases": { "0.0.0": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "81582b77af62c4a6688df5635dbabd31", "sha256": "9840ae68cdb89fde01bb5de5f90e2f607fd11a5a13a2de89750c6649ac6ecf7f" }, "downloads": -1, "filename": "pydiploy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "81582b77af62c4a6688df5635dbabd31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16439, "upload_time": "2014-04-23T08:32:50", "url": "https://files.pythonhosted.org/packages/59/d2/4c5c35616da664d6bf5833b1cd60cec8329af1b856e66d16b576c1034bf6/pydiploy-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d1f91e2fa10665b20e2bf7dc5d1ff5f5", "sha256": "f1dd58764ec6bb0d4d99c49a42a5c6d37c26c70b7466c41830355c4154f02ca8" }, "downloads": -1, "filename": "pydiploy-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d1f91e2fa10665b20e2bf7dc5d1ff5f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18350, "upload_time": "2014-04-25T09:53:15", "url": "https://files.pythonhosted.org/packages/f1/2e/2443f7864bf0da8fd61f5cefa29d1e191fd1db9db4a5024a87dfe20a51bd/pydiploy-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "bc619c5e2ce8f817d170e8e044e4bc06", "sha256": "f509cd31327a0ed034ff98b70a11d39b15f7f3a8da62bd5c78258163403d4758" }, "downloads": -1, "filename": "pydiploy-1.0.2.tar.gz", "has_sig": false, "md5_digest": "bc619c5e2ce8f817d170e8e044e4bc06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18690, "upload_time": "2014-07-18T13:50:05", "url": "https://files.pythonhosted.org/packages/f4/48/b5d66dcc8abe2ca8d6604c78523737f90a0320c2c60c0c3dcea026c3ed70/pydiploy-1.0.2.tar.gz" } ], "1.0.2.1": [ { "comment_text": "", "digests": { "md5": "0ee4c2e24bb094f5e8c65fa7fbe09cd9", "sha256": "893283cf29e96bee3cbe4789dabd7955c28777949ebf1767d4ad3d64f522b95b" }, "downloads": -1, "filename": "pydiploy-1.0.2.1.tar.gz", "has_sig": false, "md5_digest": "0ee4c2e24bb094f5e8c65fa7fbe09cd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18878, "upload_time": "2014-08-26T09:51:46", "url": "https://files.pythonhosted.org/packages/04/f1/916f9f3c59393bb29dda0cd47eb906db00e9135be23ed39cc5ff512e9f1e/pydiploy-1.0.2.1.tar.gz" } ], "1.0.2.2": [ { "comment_text": "", "digests": { "md5": "b17a436bc9a9e89c4acb623b0ee1164b", "sha256": "8768737fac73057cf626799fb21eb892b141db8f40bb7f6b8dc678186a2bc3ee" }, "downloads": -1, "filename": "pydiploy-1.0.2.2.tar.gz", "has_sig": false, "md5_digest": "b17a436bc9a9e89c4acb623b0ee1164b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18203, "upload_time": "2014-09-02T07:29:33", "url": "https://files.pythonhosted.org/packages/d5/91/dd5cff4d426937bf56ddbf452991f250b7e0c712744bb6bc02ec30f8a26e/pydiploy-1.0.2.2.tar.gz" } ], "1.0.2.3": [ { "comment_text": "", "digests": { "md5": "f3d9c023cf8d15c6cab91308d3a38239", "sha256": "dd1ce27d57d72fb8bd2e1c12c4b593e77519e0f7e8681f56008940a532f5d13a" }, "downloads": -1, "filename": "pydiploy-1.0.2.3.tar.gz", "has_sig": false, "md5_digest": "f3d9c023cf8d15c6cab91308d3a38239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17582, "upload_time": "2014-09-04T12:44:38", "url": "https://files.pythonhosted.org/packages/5e/2c/4f4442df039dbbbd3cfa13ff40f3f13def9acca6158259968183a3624059/pydiploy-1.0.2.3.tar.gz" } ], "1.0.2.4": [ { "comment_text": "", "digests": { "md5": "c8446dbbd78f8111762a2c77f52fc9de", "sha256": "81ffbc3f85dc505bf46f643e9cdf68d3c38790d3d847e5b5a7129cd7636b765e" }, "downloads": -1, "filename": "pydiploy-1.0.2.4.tar.gz", "has_sig": false, "md5_digest": "c8446dbbd78f8111762a2c77f52fc9de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17870, "upload_time": "2014-09-09T13:16:58", "url": "https://files.pythonhosted.org/packages/17/9c/9ddb9c10f9f9a2266280bf53b5b16e18c8120ef30183b4c6c51210b71862/pydiploy-1.0.2.4.tar.gz" } ], "1.0.2.5": [ { "comment_text": "", "digests": { "md5": "e15133ad4841bc464bff76375f29dc1a", "sha256": "4179c9fdbfd6f0a4165fcedbfe66126deed9f220eab1e68c06320c940678243f" }, "downloads": -1, "filename": "pydiploy-1.0.2.5.tar.gz", "has_sig": false, "md5_digest": "e15133ad4841bc464bff76375f29dc1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17917, "upload_time": "2014-09-10T13:30:26", "url": "https://files.pythonhosted.org/packages/3d/6f/3523e276bb617179d05eb4214888b8f7a31182632c4d52e7642307a9be27/pydiploy-1.0.2.5.tar.gz" } ], "1.0.2.6": [ { "comment_text": "", "digests": { "md5": "1932b6dd22c4c60a8b17b68b4606e02d", "sha256": "88424732afb97823e5d113ecaca95d8ae5385cd8e8ddb040786d5d6539d08209" }, "downloads": -1, "filename": "pydiploy-1.0.2.6.tar.gz", "has_sig": false, "md5_digest": "1932b6dd22c4c60a8b17b68b4606e02d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19219, "upload_time": "2014-09-12T11:42:06", "url": "https://files.pythonhosted.org/packages/19/4b/13e2bf2c5c2fe3f7ce8cfeaec0fbdcd5cd35381c63d5f437598578d70e0c/pydiploy-1.0.2.6.tar.gz" } ], "1.0.2.7": [ { "comment_text": "", "digests": { "md5": "2cf674b4effe3028001736c57e968ecd", "sha256": "b9f77fee8fd7d7c5a357f6ff9d4b49cdfc77debaae740055cba6d47a5a48cf57" }, "downloads": -1, "filename": "pydiploy-1.0.2.7.tar.gz", "has_sig": false, "md5_digest": "2cf674b4effe3028001736c57e968ecd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19231, "upload_time": "2014-09-15T07:19:42", "url": "https://files.pythonhosted.org/packages/73/e9/3dc1c52e90c4d4cba458e971381a7e0a44115af977f21448372a12fde9bf/pydiploy-1.0.2.7.tar.gz" } ], "1.0.2.8": [ { "comment_text": "", "digests": { "md5": "d5f44ddcfb689ae7c8bc45e9080c348c", "sha256": "ebbe7ba0084280416e3838a38a6a668eaca184aeb9ef2a9f5114b587deb31636" }, "downloads": -1, "filename": "pydiploy-1.0.2.8.tar.gz", "has_sig": false, "md5_digest": "d5f44ddcfb689ae7c8bc45e9080c348c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22513, "upload_time": "2014-09-17T14:37:56", "url": "https://files.pythonhosted.org/packages/28/3e/26adf706f00a37dc5532786f9961af803acc075162087091f749a3bc44d6/pydiploy-1.0.2.8.tar.gz" } ], "1.0.2.9": [ { "comment_text": "", "digests": { "md5": "63aa6ffc715ae52a5a890634e3e4cb50", "sha256": "34717e18f26ce2c7a9972b2fa463f272e7c2fb2ffdde42df18932e8035e635e4" }, "downloads": -1, "filename": "pydiploy-1.0.2.9.tar.gz", "has_sig": false, "md5_digest": "63aa6ffc715ae52a5a890634e3e4cb50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22544, "upload_time": "2014-09-19T13:10:16", "url": "https://files.pythonhosted.org/packages/ff/61/922d33345439826e74e526e8dcdb2087e3b7b322c8a59ebd63fa1365dea2/pydiploy-1.0.2.9.tar.gz" } ], "1.0.3.0": [ { "comment_text": "", "digests": { "md5": "ddfb00ec1cd5bd001fcf62e12cd6a158", "sha256": "5f75ef22c9824d44e7bec24fcdf97b50eee82f4522a44ef855ce7b17be588bb5" }, "downloads": -1, "filename": "pydiploy-1.0.3.0.tar.gz", "has_sig": false, "md5_digest": "ddfb00ec1cd5bd001fcf62e12cd6a158", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23216, "upload_time": "2014-09-26T11:29:08", "url": "https://files.pythonhosted.org/packages/db/3b/61287f40bcbe55d34be93eebfae7f280a9c9de8d8dd4a4e053d9d22442fc/pydiploy-1.0.3.0.tar.gz" } ], "1.1.0.0": [ { "comment_text": "", "digests": { "md5": "acecbb9a376ce549245d53b177bd0721", "sha256": "242585d189b1894b6efe947ddb0042f23aa9c52d3d5053b08d63fccced72d266" }, "downloads": -1, "filename": "pydiploy-1.1.0.0.tar.gz", "has_sig": false, "md5_digest": "acecbb9a376ce549245d53b177bd0721", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32717, "upload_time": "2014-10-23T14:11:27", "url": "https://files.pythonhosted.org/packages/5e/ab/a99d7555b65afe2ee1a5923d6796f8dbe36fc8dfb33a4e5310b9477c8272/pydiploy-1.1.0.0.tar.gz" } ], "1.1.1.0": [ { "comment_text": "", "digests": { "md5": "60546cc508299981f2e4402b077080fb", "sha256": "1ba427c1ba04b136bc52351ff1498c651ad595b5732e62e0054ee1657c700d81" }, "downloads": -1, "filename": "pydiploy-1.1.1.0.tar.gz", "has_sig": false, "md5_digest": "60546cc508299981f2e4402b077080fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33216, "upload_time": "2014-11-24T14:11:00", "url": "https://files.pythonhosted.org/packages/d5/12/48a55ec4054605a482b9d02e48c1336391f7b0581a36309b5f1d41708abd/pydiploy-1.1.1.0.tar.gz" } ], "1.1.2.0": [ { "comment_text": "", "digests": { "md5": "64222b5143afe6542e9e129f7fa2e75f", "sha256": "99616a4c913c023236f71f533fdeb7dc91b5675370cbd762f4e8d6704c2c793e" }, "downloads": -1, "filename": "pydiploy-1.1.2.0.tar.gz", "has_sig": false, "md5_digest": "64222b5143afe6542e9e129f7fa2e75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41192, "upload_time": "2015-03-12T13:03:06", "url": "https://files.pythonhosted.org/packages/2d/60/f2bd5c2d3a4ffd9e22d8bbd450e885112e8102708c6cc9735fceee995a79/pydiploy-1.1.2.0.tar.gz" } ], "1.1.3.0": [ { "comment_text": "", "digests": { "md5": "c742f9caba9c3c5339a6228071505a11", "sha256": "7a6fa81f73db89f8b28bb5b16438634726860bd45177469ccc7d2f393b04fe8c" }, "downloads": -1, "filename": "pydiploy-1.1.3.0.tar.gz", "has_sig": false, "md5_digest": "c742f9caba9c3c5339a6228071505a11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39081, "upload_time": "2015-03-20T14:44:42", "url": "https://files.pythonhosted.org/packages/04/44/c227451f9ddb78f30a51309cd3ebe4ebb39fbaf88bac423904eeaaee2014/pydiploy-1.1.3.0.tar.gz" } ], "1.1.4.0": [ { "comment_text": "", "digests": { "md5": "816cdd0d5aab86f08a39d3c73f2dd3ea", "sha256": "0f91fe65d017ea8f7eef7ddaee6574dd81f7e34b84c66ba2a0d458dea5eddb54" }, "downloads": -1, "filename": "pydiploy-1.1.4.0.tar.gz", "has_sig": false, "md5_digest": "816cdd0d5aab86f08a39d3c73f2dd3ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43197, "upload_time": "2015-07-08T14:25:05", "url": "https://files.pythonhosted.org/packages/bc/40/eeb543b09c2ef0fb25a543dc00679371e1bdef725b95e79b4a787578b66e/pydiploy-1.1.4.0.tar.gz" } ], "1.1.4.1": [ { "comment_text": "", "digests": { "md5": "1cd7b904d1d9fb936a0a1a2b0a3b6c23", "sha256": "e4f9d8218df19339943507d2e1caf35c73d28ba93f99d3727a0d1bcf13e2cd76" }, "downloads": -1, "filename": "pydiploy-1.1.4.1.tar.gz", "has_sig": false, "md5_digest": "1cd7b904d1d9fb936a0a1a2b0a3b6c23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43160, "upload_time": "2015-10-29T15:45:36", "url": "https://files.pythonhosted.org/packages/e7/f3/f92c2fed9fb76f164d476ac543ef7e2e5b7e54bcfc5039c8d86cdc00e39d/pydiploy-1.1.4.1.tar.gz" } ], "1.1.4.2": [ { "comment_text": "", "digests": { "md5": "4ffc6e130d366f76b43c92363297d4a6", "sha256": "ebb3ea1f088c0e4aae4264fb715de44ac78b12a7c45ada33ccc6b09f0c965985" }, "downloads": -1, "filename": "pydiploy-1.1.4.2.tar.gz", "has_sig": false, "md5_digest": "4ffc6e130d366f76b43c92363297d4a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43430, "upload_time": "2015-12-07T16:12:56", "url": "https://files.pythonhosted.org/packages/96/15/6c9d80cb738ae7c0f56ee286870a0501a7dd6aa38bdaa5d1bb194d4b5f29/pydiploy-1.1.4.2.tar.gz" } ], "1.1.4.3": [ { "comment_text": "", "digests": { "md5": "373531ca09a93420b2f1c87addfa3425", "sha256": "de2c3e7c50fdf78bccf87f7f3a1aa97c12177c86949f76249f7d751d90d38b7a" }, "downloads": -1, "filename": "pydiploy-1.1.4.3.tar.gz", "has_sig": false, "md5_digest": "373531ca09a93420b2f1c87addfa3425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43536, "upload_time": "2015-12-08T15:06:29", "url": "https://files.pythonhosted.org/packages/84/0b/1885f3e929487661f49fd1efa82308a60be904e551d1e56189e52b67e8e8/pydiploy-1.1.4.3.tar.gz" } ], "1.1.5.0": [ { "comment_text": "", "digests": { "md5": "2400fb65d34ca7b55e1f1aad0054a922", "sha256": "8cc417b6290edaa9f277c5b82ff9709a66f708c33dc99647406878a707802f6e" }, "downloads": -1, "filename": "pydiploy-1.1.5.0.tar.gz", "has_sig": false, "md5_digest": "2400fb65d34ca7b55e1f1aad0054a922", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46055, "upload_time": "2015-12-31T14:02:59", "url": "https://files.pythonhosted.org/packages/c3/1d/73ce39af56ee9b6ccf6ec18a3c404215d70839ef37433b9461d8aedd100d/pydiploy-1.1.5.0.tar.gz" } ], "1.1.6.0": [ { "comment_text": "", "digests": { "md5": "b6bb24668f68ab095d1504376f21848a", "sha256": "44767c8a2f5652fb48137d9c771a9a5b07f99845b7dec0096d0525ab2cb871db" }, "downloads": -1, "filename": "pydiploy-1.1.6.0.tar.gz", "has_sig": false, "md5_digest": "b6bb24668f68ab095d1504376f21848a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48358, "upload_time": "2016-01-06T10:41:36", "url": "https://files.pythonhosted.org/packages/05/55/503227b7bb215bde4fcf7d4f7ff63030c1cc07f2e67a4f0439eff86c37f8/pydiploy-1.1.6.0.tar.gz" } ], "1.1.7.0": [ { "comment_text": "", "digests": { "md5": "e422697d5f568d0e878313a05b137432", "sha256": "04e2ea592a1f37237cdc6134f31c2349fa59a0a1902f32ee05fa0092bbc4bb21" }, "downloads": -1, "filename": "pydiploy-1.1.7.0.tar.gz", "has_sig": false, "md5_digest": "e422697d5f568d0e878313a05b137432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62765, "upload_time": "2016-05-24T09:15:12", "url": "https://files.pythonhosted.org/packages/cb/72/fc05ea18cdd0d5b167be449d3ef4ece2cc5fd320a22c6dbdb5af309885d1/pydiploy-1.1.7.0.tar.gz" } ], "1.1.7.1": [ { "comment_text": "", "digests": { "md5": "5c4fc0f0248d0b2900b90e7857923956", "sha256": "98925fdc00184001c0249193533c1e7f26edabeda55f77dddfc8b3a5618032b1" }, "downloads": -1, "filename": "pydiploy-1.1.7.1.tar.gz", "has_sig": false, "md5_digest": "5c4fc0f0248d0b2900b90e7857923956", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62781, "upload_time": "2016-05-25T08:00:01", "url": "https://files.pythonhosted.org/packages/37/73/4c322669ac4937884d86fdd55857f13911826a7be0792110b3196fe37d43/pydiploy-1.1.7.1.tar.gz" } ], "1.1.7.2": [ { "comment_text": "", "digests": { "md5": "6a6aa2faeb2971bcb798447292201723", "sha256": "38bbb00457f2bb6b1acd5b1cfe1e16956a10644b8346731052db6946b9d2baa7" }, "downloads": -1, "filename": "pydiploy-1.1.7.2.tar.gz", "has_sig": false, "md5_digest": "6a6aa2faeb2971bcb798447292201723", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64459, "upload_time": "2016-09-13T13:37:27", "url": "https://files.pythonhosted.org/packages/7f/44/ce84503fc70be8282f861c361c8a78016d051470420352961d5fd7b26b17/pydiploy-1.1.7.2.tar.gz" } ], "1.1.7.3": [ { "comment_text": "", "digests": { "md5": "89fe670cf06e3101babe6cb2ff41c20f", "sha256": "7c8820914fe3b9417744a6b1cbd8dbc6c969db50760d8dbd99421cd9e42cf0c8" }, "downloads": -1, "filename": "pydiploy-1.1.7.3.tar.gz", "has_sig": false, "md5_digest": "89fe670cf06e3101babe6cb2ff41c20f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64636, "upload_time": "2017-01-13T15:40:01", "url": "https://files.pythonhosted.org/packages/94/10/26b913609d952f944f22e06a169362cba3c57d42c360323a0c4380b426b4/pydiploy-1.1.7.3.tar.gz" } ], "1.1.7.4": [ { "comment_text": "", "digests": { "md5": "e43ca79efb19fc6ffed226efc52ad616", "sha256": "10847ba2842a2de270c3308358ef415dd63934f3a438dee6f4f2c66a90d1d5c3" }, "downloads": -1, "filename": "pydiploy-1.1.7.4.tar.gz", "has_sig": false, "md5_digest": "e43ca79efb19fc6ffed226efc52ad616", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64832, "upload_time": "2017-10-23T13:42:36", "url": "https://files.pythonhosted.org/packages/2a/e9/2b0afae41c2257a84c03d9341a66a97620e712c25959c58b42a912158b4e/pydiploy-1.1.7.4.tar.gz" } ], "1.1.7.5": [ { "comment_text": "", "digests": { "md5": "cab667b4d75b2012c223d4c9653371bc", "sha256": "d2cebb34f9159c203c11f76d3ef29d3ce3d50567c7d7c77108f8193fc859833b" }, "downloads": -1, "filename": "pydiploy-1.1.7.5.tar.gz", "has_sig": false, "md5_digest": "cab667b4d75b2012c223d4c9653371bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64828, "upload_time": "2017-10-24T08:05:54", "url": "https://files.pythonhosted.org/packages/51/50/c4bcc0a1641b42d52ad5b29b2f437ee5217a9de9c841de5d1cfea76623ed/pydiploy-1.1.7.5.tar.gz" } ], "1.1.7.6": [ { "comment_text": "", "digests": { "md5": "dd5fc17fe2449de02a8b606287ab8178", "sha256": "9a8880211d3de7325fb37a99f1e6cda54172526c6a3ac069b3fa69e7472890bd" }, "downloads": -1, "filename": "pydiploy-1.1.7.6.tar.gz", "has_sig": false, "md5_digest": "dd5fc17fe2449de02a8b606287ab8178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64820, "upload_time": "2018-01-12T13:16:14", "url": "https://files.pythonhosted.org/packages/7c/79/4a302bc86a35261600f53d872873b18bc1d254996112b01ae03ed2c0e177/pydiploy-1.1.7.6.tar.gz" } ], "1.1.7.7": [ { "comment_text": "", "digests": { "md5": "ad9b7c297a2ac5a1b080f8cae12090a4", "sha256": "869394263318218f8ab93352a07e0c7053841336e7b5dae8d965ff1621a45df1" }, "downloads": -1, "filename": "pydiploy-1.1.7.7.tar.gz", "has_sig": false, "md5_digest": "ad9b7c297a2ac5a1b080f8cae12090a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45518, "upload_time": "2018-06-28T09:41:07", "url": "https://files.pythonhosted.org/packages/d2/a0/517c8a61ac911d126b51c9fe9f2368fb900c742d793ce3178ff8ad56d7df/pydiploy-1.1.7.7.tar.gz" } ], "1.1.7.8": [ { "comment_text": "", "digests": { "md5": "ffef407bf29445577cfbc5b9ea5cb3c8", "sha256": "4cb7fff0841637d2fc3cfc0b4e82bfca6cb1b6d7060a515ba4f7c5a010921ec6" }, "downloads": -1, "filename": "pydiploy-1.1.7.8.tar.gz", "has_sig": false, "md5_digest": "ffef407bf29445577cfbc5b9ea5cb3c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61002, "upload_time": "2018-10-08T12:30:31", "url": "https://files.pythonhosted.org/packages/4b/05/65fdba2eeccf8339f184ca0937dedd28a9a5d2cec77521a2470aa6f8e52a/pydiploy-1.1.7.8.tar.gz" } ], "1.1.7.9": [ { "comment_text": "", "digests": { "md5": "b03629162866b553532444138d27e87e", "sha256": "9755cea6d0a254fc95e0e4bd4c882bb0c962430ed511220e02ac737a50dabe79" }, "downloads": -1, "filename": "pydiploy-1.1.7.9.tar.gz", "has_sig": false, "md5_digest": "b03629162866b553532444138d27e87e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63394, "upload_time": "2018-10-19T11:13:53", "url": "https://files.pythonhosted.org/packages/53/93/442725600e923a557c68d46d83f72d6994e2aa7e57c87e167bbca6131d0d/pydiploy-1.1.7.9.tar.gz" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "393ce477951b040b9f9524d0a5d6b65b", "sha256": "d120db5e7e7aa7a604d55e0d8447c29a76187404b78bd6a40d976bc50c32ff47" }, "downloads": -1, "filename": "pydiploy-1.1.8.tar.gz", "has_sig": false, "md5_digest": "393ce477951b040b9f9524d0a5d6b65b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61215, "upload_time": "2019-06-11T09:09:25", "url": "https://files.pythonhosted.org/packages/16/cc/6ff35f52c0cdb49e390e646c4e113276195795d3daef01e8a39b335864ea/pydiploy-1.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "393ce477951b040b9f9524d0a5d6b65b", "sha256": "d120db5e7e7aa7a604d55e0d8447c29a76187404b78bd6a40d976bc50c32ff47" }, "downloads": -1, "filename": "pydiploy-1.1.8.tar.gz", "has_sig": false, "md5_digest": "393ce477951b040b9f9524d0a5d6b65b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61215, "upload_time": "2019-06-11T09:09:25", "url": "https://files.pythonhosted.org/packages/16/cc/6ff35f52c0cdb49e390e646c4e113276195795d3daef01e8a39b335864ea/pydiploy-1.1.8.tar.gz" } ] }