{ "info": { "author": "ShixiangWang", "author_email": "w_shixiang@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Programming Language :: Python" ], "description": "# loon - A Python toolkit for operating remote host\n\n![GitHub repo size](https://img.shields.io/github/repo-size/ShixiangWang/loon) \n[![PyPI](https://img.shields.io/pypi/v/loon?color=blue)](https://pypi.org/project/loon/) \n[![pylint](https://img.shields.io/badge/pylint%20score-10-blue.svg)](https://pypi.org/project/loon/)\n[![Documentation Status](https://readthedocs.org/projects/loon/badge/?version=latest)](https://loon.readthedocs.io/en/latest/?badge=latest) \n[![Downloads](https://pepy.tech/badge/loon)](https://pepy.tech/project/loon)\n[![HitCount](http://hits.dwyl.io/ShixiangWang/loon.svg)](http://hits.dwyl.io/ShixiangWang/loon)\n[![GitHub issues](https://img.shields.io/github/issues-raw/ShixiangWang/loon)](https://github.com/ShixiangWang/loon/issues?q=is%3Aopen+is%3Aissue) \n[![GitHub last commit](https://img.shields.io/github/last-commit/ShixiangWang/loon)](https://github.com/ShixiangWang/loon/commits/master) \n\n\n## Description\n\n**loon** is a Python toolkit for operating remote host based on SSH. Idea for developing **loon** comes from [**sync-deploy**](https://github.com/ShixiangWang/sync-deploy), which is limited by its pure bash code. Therefore, I use Python to implement it and more features will be added to it in the future. \n\n## Installation\n\nInstall from pypi:\n\n```bash\npip install loon\n```\n\nInstall from GitHub:\n\n```bash\npip install git+https://github.com/ShixiangWang/loon\n```\n\n## Usage\n\n### Configuration\n\nTo access remote host without typing password, you have to generate ssh key with `ssh-keygen` command if it is not available.\n\n```shell\n$ ssh-keygen\n```\n\nFollow the commands, for simplicity, just type `ENTER` to proceed.\n\nCopy your key to remote server, replace `user` with your `username` and `host` with your remote host ip address.\n\n```shell\n$ ssh-copy-id -i ~/.ssh/id_rsa user@host\n```\n\n### Host management\n\n- Add a remote host\n\n```shell\n$ loon add -U wsx -H 127.0.0.1 -P 22\n=> Added successfully!\n# Default port is 22, so don't need to specify it\n# And we can create a host alias, otherwise\n# it is same as username of remote host\n$ loon add -U wsx -H 127.0.0.2 -N host2 \n=> Added successfully!\n```\n\n- List all remote hosts\n\n```shell\n$ loon list\n+-----+--------+----------+----+\n|Alias|Username|IP address|Port|\n+-----+--------+----------+----+\n||wsx |127.0.0.1 |22 |\n+-----+--------+----------+----+\n|host2|wsx |127.0.0.2 |22 |\n+-----+--------+----------+----+\n\n```\n\n- Rename alias\n\n```shell\n$ loon rename wsx host1\n$ loon list\n+-------+--------+----------+----+\n|Alias |Username|IP address|Port|\n+-------+--------+----------+----+\n||wsx |127.0.0.1 |22 |\n+-------+--------+----------+----+\n|host2 |wsx |127.0.0.2 |22 |\n+-------+--------+----------+----+\n\n```\n\n- Switch active remote host\n\n```shell\n$ loon switch -N host2\n=> Activated.\n$ loon list\n+-------+--------+----------+----+\n|Alias |Username|IP address|Port|\n+-------+--------+----------+----+\n|host1 |wsx |127.0.0.1 |22 |\n+-------+--------+----------+----+\n||wsx |127.0.0.2 |22 |\n+-------+--------+----------+----+\n\n```\n\n- Delete a host\n\n```shell\n$ loon delete -N host2\n=> Removing host from available list...\n=> Removing active host...\n=> Changing active host to host1\n$ loon list\n+-------+--------+----------+----+\n|Alias |Username|IP address|Port|\n+-------+--------+----------+----+\n||wsx |127.0.0.1 |22 |\n+-------+--------+----------+----+\n\n```\n\n### Common tasks\n\n- Run commands\n\n```shell\n$ loon run 'ls -l ~'\ntotal 168\ndrwxr-xr-x 2 wsx liulab 25 Apr 7 23:26 bin\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Desktop\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Documents\ndrwxr-xr-x. 3 wsx liulab 69 Jun 10 16:57 Downloads\ndrwxr-xr-x 2 wsx liulab 6 Sep 30 10:23 facet\ndrwxr-xr-x 11 wsx liulab 4096 Sep 22 20:13 metawho\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Music\ndrwxr-xr-x 3 wsx liulab 60 Apr 30 17:50 Notebooks\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Pictures\ndrwxr-xr-x 6 wsx liulab 114 Sep 27 17:33 projects\ndrwxr-xr-x 6 wsx liulab 96 Jun 27 16:50 projects_bk\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Public\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Templates\ndrwxr-xr-x 5 wsx liulab 4096 Oct 3 12:24 test\ndrwxr-xr-x 3480 wsx liulab 114688 Oct 3 13:44 tmp\ndrwxr-xr-x 3 wsx liulab 32 Aug 22 17:13 tools\ndrwxr-xr-x. 2 wsx liulab 6 Apr 4 10:36 Videos\n```\n\n- Run local scripts\n\nThis will upload scripts to remote host firstly, then run them.\n\n```shell\n$ loon run -f ../../tests/scripts/t*.py\n=> Starting upload...\n\nt1.py 100% 50 49.0KB/s 00:00 \nt2.py 100% 50 77.6KB/s 00:00 \n\n=> Finished uploading in 1s\n=> Getting results:\nThis is t1 script.\nThis is t2 script.\n```\n\n- If input contains both files and directories, all files in directory will not be executed. This is a way to include child scripts which does not need to be executed. \n- If input is only a directory, all scripts (not including scripts in subdirectories) under it will be executed. This is the way to maintain an independent project.\n\nYou can include data directory using `--data` flag, specify program like `bash` or `python` using `--prog` flag and set remote directory using `--dir` flag.\n\n- Upload and download files \n\nUse them like `cp` command. At default, use `scp` command to do the job, set `--rsync` to use `rsync` command (`--rsync` is disabled in Windows). Note there are some differences between scp and rsync, especially processing directory.\n\n```shell\n$ loon upload -h\nusage: loon upload [-h] [-v] [--rsync] source [source ...] destination\n\npositional arguments:\n source Source files to upload\n destination Remote destination directory\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose set loglevel to INFO\n --rsync Use rsync instead of scp\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose set loglevel to INFO\n\n$ loon download -h\nusage: loon download [-h] [-v] [--rsync] source [source ...] destination\n\npositional arguments:\n source Source files to download\n destination Local destination directory, note '~' should be quoted in\n some cases\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose set loglevel to INFO\n --rsync Use rsync instead of scp\n```\n\n- Batch process commands\n\nBy providing a structed stdin/file (CSV, TSV etc) and a sample command with placeholders `{index}` refer to column index (0 based) or column name of file, `batch` command can be used to execute a batch of commands. Users can set thread number by `-T` flag and use `--dry` flag to dry run the code.\n\n```shell\n$ loon batch -f src/loon/data/samplefile.csv 'echo hello {0}'\nhello TCGA-2A-A8VO-01\nhello TCGA-2A-A8VT-01\nhello TCGA-2A-A8VV-01\nhello TCGA-2A-A8VX-01\n\n$ loon batch -f src/loon/data/samplefile.csv 'echo hello {0}' -T 4\nhello TCGA-2A-A8VO-01\nhello TCGA-2A-A8VT-01\nhello TCGA-2A-A8VV-01\nhello TCGA-2A-A8VX-01\n\n$ loon batch -f src/loon/data/samplefile.csv 'echo hello {0}' --dry\n=> Running echo hello TCGA-2A-A8VO-01\n=> Running echo hello TCGA-2A-A8VT-01\n=> Running echo hello TCGA-2A-A8VV-01\n=> Running echo hello TCGA-2A-A8VX-01\n```\n\nYou can also read the input from pipe.\n\n```shell\n$ echo \"yes,no\" | loon batch 'echo {0} is not {1}'\nyes is not no\n\n$ cat src/loon/data/samplefile.csv | loon batch 'echo sample {0} has a longer name {1}'\nsample TCGA-2A-A8VO-01 has a longer name TCGA-2A-A8VO-01-01\nsample TCGA-2A-A8VT-01 has a longer name TCGA-2A-A8VT-01-01\nsample TCGA-2A-A8VV-01 has a longer name TCGA-2A-A8VV-01-01\nsample TCGA-2A-A8VX-01 has a longer name TCGA-2A-A8VX-01-01\n```\n\nYou can also handle header and refer to column names with index or name!\n\n```\n$ cat tests/header.txt | loon batch 'echo hello {0}' \nhello user\nhello wsx\nhello zd\n\n$ cat tests/header.txt | loon batch 'echo hello {0}' --header\nhello wsx\nhello zd\n$ cat tests/header.txt | loon batch 'echo hello {0}, your score is {1}' --header\nhello wsx, your score is 100\nhello zd, your score is 100\n\n$ cat tests/header.txt | loon 'echo hello {user}, your score is {score}' --header\nhello wsx, your score is 100\nhello zd, your score is 100\n$ cat tests/header2.txt | loon 'echo hello {user name}, your score is {score}' --header\nhello wsx, your score is 100\nhello zd, your score is 100\n```\n\n\n- Generate a batch of (script) files\n\n`gen` command is similar to the `pbsgen` command below, but removes the `.pbs` file extension,\nso users have to add the file extension in the first column of the SAMPLEFILE if necessary.\n\nThe example files can be generated using `pbsgen_example`.\n\n```\nusage: loon gen [-h] [-v] [-t TEMPLATE] [-s SAMPLEFILE] [-m MAPFILE]\n [-o OUTPUT]\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose set loglevel to INFO\n -t TEMPLATE, --template TEMPLATE\n A template file containing placeholders\n -s SAMPLEFILE, --samplefile SAMPLEFILE\n A csv file containing unique filenames (the first\n column) and replacing labels\n -m MAPFILE, --mapfile MAPFILE\n A csv file containing placeholders and column index\n (0-based) indicating replacing labels in samplefile\n -o OUTPUT, --output OUTPUT\n Output directory\n```\n\n### PBS management and tasks\n\n* `pbstemp` - Generate a PBS template file\n* `pbsgen` - Generate a batch of PBS files\n* `pbsgen_example` - Generate example files for pbsgen command\n* `pbssub` - Submit PBS tasks\n* `pbsdeploy` - Upload a target directory and submit containing PBS files (have `.pbs` extension)\n* `pbscheck` - Check status of PBS job on remote host\n\nMore details please see `-h` option of the commands above.\n\n### Current usage info\n\n```shell\nusage: loon [-h] [-V] [--author]\n {add,delete,switch,list,rename,run,upload,download,gen,batch,pbstemp,pbsgen,pbsgen_example,pbssub,pbsdeploy,pbscheck}\n ...\n\nBe an efficient loon.\n\noptional arguments:\n -h, --help show this help message and exit\n --version show program's version number and exit\n --author show info of program's author\n\nsubcommands:\n {add,delete,switch,list,rename,run,upload,download,gen,batch,pbstemp,pbsgen,pbsgen_example,pbssub,pbsdeploy,pbscheck}\n description\n add Add a remote host\n delete Delete a remote host\n switch Switch active remote host\n list List all remote hosts\n rename Rename host alias\n run Run commands or scripts on remote\n upload Upload files to active remote host\n download Download files from active remote host\n gen Generate a batch of (script) files\n batch Batch process commands with placeholders\n pbstemp Generate a PBS template file\n pbsgen Generate a batch of PBS files (with .pbs extension)\n pbsgen_example Generate example files for pbsgen command\n pbssub Submit PBS tasks\n pbsdeploy Deploy target destination to remote host\n pbscheck Check status of PBS job on remote host\n```\n\n## Note\n\nThis project has been set up using PyScaffold 3.2.2. For details and usage\ninformation on PyScaffold see https://pyscaffold.org/.\n\n\n", "description_content_type": "text/markdown; charset=UTF-8", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ShixiangWang/loon", "keywords": "", "license": "mit", "maintainer": "", "maintainer_email": "", "name": "loon", "package_url": "https://pypi.org/project/loon/", "platform": "any", "project_url": "https://pypi.org/project/loon/", "project_urls": { "Documentation": "https://github.com/ShixiangWang/loon", "Homepage": "https://github.com/ShixiangWang/loon" }, "release_url": "https://pypi.org/project/loon/0.4.2/", "requires_dist": [ "ssh2-python", "pytest ; extra == 'testing'", "pytest-cov ; extra == 'testing'" ], "requires_python": ">=3.5", "summary": "A Python toolkit for operating remote host based on SSH", "version": "0.4.2", "yanked": false, "yanked_reason": null }, "last_serial": 7275797, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cdbc87eec8af190174b711d9cbf425dc", "sha256": "24eadfc13cae266d49e695d0676164943d61546613b81068f233e3cbde6da1ef" }, "downloads": -1, "filename": "loon-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cdbc87eec8af190174b711d9cbf425dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12621, "upload_time": "2019-10-03T12:37:44", "upload_time_iso_8601": "2019-10-03T12:37:44.258189Z", "url": "https://files.pythonhosted.org/packages/2d/b5/0300e5688d232d5c4e5c35f05e72513f2f8f908f1f5065fc2fea76a102cc/loon-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6172487646ce4c550ae3236553537294", "sha256": "79608ccddb879545ae2f5bffbfdebce11b0ff36f325a7290fa07563be0cd23d0" }, "downloads": -1, "filename": "loon-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6172487646ce4c550ae3236553537294", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16396, "upload_time": "2019-10-03T12:37:47", "upload_time_iso_8601": "2019-10-03T12:37:47.411023Z", "url": "https://files.pythonhosted.org/packages/6f/ec/f9b973c4d488098bbdd968a92a020e7fff5dc7fdc597b38f297e57f86c08/loon-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "d37dc4cbf72935839a11082862325120", "sha256": "736d3f7c9c5bae533cbf1b7a33ed843d2edbf69057584544b93379a691e10855" }, "downloads": -1, "filename": "loon-0.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d37dc4cbf72935839a11082862325120", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 17471, "upload_time": "2019-10-29T14:26:16", "upload_time_iso_8601": "2019-10-29T14:26:16.365943Z", "url": "https://files.pythonhosted.org/packages/44/dd/8030db7c719e6db183177d983aed107ecb782fc5778fe9d87242f1125131/loon-0.1.10-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "23602cd7360490b2a224e4d5255919c3", "sha256": "e4d434962359ad1e778084de1cb8919b3dccdc7bc4ffe6eddac611000be2389a" }, "downloads": -1, "filename": "loon-0.1.10.tar.gz", "has_sig": false, "md5_digest": "23602cd7360490b2a224e4d5255919c3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25191, "upload_time": "2019-10-29T14:26:18", "upload_time_iso_8601": "2019-10-29T14:26:18.696884Z", "url": "https://files.pythonhosted.org/packages/58/b4/e13905bc06dc7756bf84bc0fb23bc2daab5bdceb7cda26b6d760ab81ee4e/loon-0.1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "eb0b3077191eeab04fbb1f165df4d9ce", "sha256": "d2e562b9441690552a532396f1acb0c5cacd08c9dcc65ca78db2599ec74eed4c" }, "downloads": -1, "filename": "loon-0.1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb0b3077191eeab04fbb1f165df4d9ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 16266, "upload_time": "2019-10-30T04:55:17", "upload_time_iso_8601": "2019-10-30T04:55:17.107169Z", "url": "https://files.pythonhosted.org/packages/fe/cf/72987f965e76501e096362b619a719510137ca5543d8252d17e685ee015c/loon-0.1.11-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "08cdc40120bdd7cfb6a3bdd1929c80f1", "sha256": "e40db498075dd5df80a38a12d93e8c685927b8eed00df5795298889132dbddc2" }, "downloads": -1, "filename": "loon-0.1.11.tar.gz", "has_sig": false, "md5_digest": "08cdc40120bdd7cfb6a3bdd1929c80f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26750, "upload_time": "2019-10-30T04:55:19", "upload_time_iso_8601": "2019-10-30T04:55:19.176863Z", "url": "https://files.pythonhosted.org/packages/5d/fb/efdd97c0bddc6631b61e7567f04751a379cde454f9b3602302a1fc8a56c7/loon-0.1.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "21a726c512cfa556386fcc8b6aa79327", "sha256": "ee636b3c48fc052c24240b1bfe9fae039cb5dc93d4e617f92f389419771b49ba" }, "downloads": -1, "filename": "loon-0.1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21a726c512cfa556386fcc8b6aa79327", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19832, "upload_time": "2019-10-30T16:07:54", "upload_time_iso_8601": "2019-10-30T16:07:54.272567Z", "url": "https://files.pythonhosted.org/packages/e7/a9/9b468a42d8797cc9bbd27b7463b6a87522c0d47fc965fa8d8792d896a859/loon-0.1.12-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7600a96ade64c0fcca705e44d9027547", "sha256": "b697ecb6817113161897547a69dfd75856e9e18a5c32e9583de7291d3869efbc" }, "downloads": -1, "filename": "loon-0.1.12.tar.gz", "has_sig": false, "md5_digest": "7600a96ade64c0fcca705e44d9027547", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 27319, "upload_time": "2019-10-30T16:07:57", "upload_time_iso_8601": "2019-10-30T16:07:57.830526Z", "url": "https://files.pythonhosted.org/packages/98/9f/8c50cb87743d3ae6c426f60ffb17b031d7e62517baabff3342b0fd45ce0c/loon-0.1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "710854e95adb11152f10a07ee938b119", "sha256": "df64b74b664c25203ac9fb30e179b1b229f412d6eae291eacee2082f69338b47" }, "downloads": -1, "filename": "loon-0.1.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "710854e95adb11152f10a07ee938b119", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 16975, "upload_time": "2019-10-31T09:09:54", "upload_time_iso_8601": "2019-10-31T09:09:54.165576Z", "url": "https://files.pythonhosted.org/packages/83/a3/94b864735d34e2725b0a442ac19ae7b6cdf2a2ca57e83e4e563aae564ce9/loon-0.1.13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c009ba8b9a5de3b8f0aec94a2aede01e", "sha256": "2e7e489773952b10170d7a37fdf4691950b7fa7a464accaacf7c9a478ab6e146" }, "downloads": -1, "filename": "loon-0.1.13.tar.gz", "has_sig": false, "md5_digest": "c009ba8b9a5de3b8f0aec94a2aede01e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 27655, "upload_time": "2019-10-31T09:09:55", "upload_time_iso_8601": "2019-10-31T09:09:55.991440Z", "url": "https://files.pythonhosted.org/packages/85/2c/26c8dd91232859a017cd8e55b29cbcdc1593c503ffd71ce746bd41bf39be/loon-0.1.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "e6aea1e82a63a030b159a518060a88ed", "sha256": "d064a9ec6ee8600255e6d32580af0f13a466b3f07e7d6d4a187ffb77aad9f7ec" }, "downloads": -1, "filename": "loon-0.1.14-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6aea1e82a63a030b159a518060a88ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 16983, "upload_time": "2019-10-31T09:18:45", "upload_time_iso_8601": "2019-10-31T09:18:45.022781Z", "url": "https://files.pythonhosted.org/packages/25/2a/6d36e73b9f089bf0bfc736276d2b72d6a618a6d1c9f88f89a1110e91f485/loon-0.1.14-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b57c925446868445c6b72d1c9b530e07", "sha256": "9232827182d7883919c0dfdafd3549f00aeefa77478651059d823d7a9d0429de" }, "downloads": -1, "filename": "loon-0.1.14.tar.gz", "has_sig": false, "md5_digest": "b57c925446868445c6b72d1c9b530e07", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 27672, "upload_time": "2019-10-31T09:18:46", "upload_time_iso_8601": "2019-10-31T09:18:46.730663Z", "url": "https://files.pythonhosted.org/packages/86/1e/ef82757f4fb249b7062547c217ee2b0cf0425b69a2aa0e0b91837a7ea98f/loon-0.1.14.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "04869babf7e05be4f9b0321987d8f465", "sha256": "6f6d8e7a477d02dee4737ebaa164b137d5c28398433955d55fb0a85f07c133d5" }, "downloads": -1, "filename": "loon-0.1.15-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "04869babf7e05be4f9b0321987d8f465", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20245, "upload_time": "2019-10-31T15:17:28", "upload_time_iso_8601": "2019-10-31T15:17:28.416768Z", "url": "https://files.pythonhosted.org/packages/b7/b7/ed61d953200868d77f518726353e2b54d6e27555ccfff55fe38d8e57e678/loon-0.1.15-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7e4ac848bfc70393f8752c916471d9cc", "sha256": "d8c47d848824aa824e0ba947290e7af5eaccff5e94da4107366ce2b56bc8cf99" }, "downloads": -1, "filename": "loon-0.1.15.tar.gz", "has_sig": false, "md5_digest": "7e4ac848bfc70393f8752c916471d9cc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 27995, "upload_time": "2019-10-31T15:17:29", "upload_time_iso_8601": "2019-10-31T15:17:29.954865Z", "url": "https://files.pythonhosted.org/packages/b6/4e/c79bc61be28da8ab745f25521e5521191f4f1c2ceae76099785a4413636d/loon-0.1.15.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "f4b4927d83080bc144bb12eca2621d38", "sha256": "df7b1795a29ae4349182ffe4b8816e4a15bf1a393a26c0193fcf1009c68af237" }, "downloads": -1, "filename": "loon-0.1.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4b4927d83080bc144bb12eca2621d38", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20398, "upload_time": "2019-10-31T16:23:07", "upload_time_iso_8601": "2019-10-31T16:23:07.355249Z", "url": "https://files.pythonhosted.org/packages/fe/7e/82076e500f104e9af516c25bd1322ec9c1e3f454fdd39bf7a4519db394ac/loon-0.1.16-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a9ce7f1bc107f3effcf57c2cee80a99c", "sha256": "b45793527b13b8258a74b66a6a0036c15c2e2207d7012a5c19fe4213fa4847d6" }, "downloads": -1, "filename": "loon-0.1.16.tar.gz", "has_sig": false, "md5_digest": "a9ce7f1bc107f3effcf57c2cee80a99c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28386, "upload_time": "2019-10-31T16:23:09", "upload_time_iso_8601": "2019-10-31T16:23:09.532828Z", "url": "https://files.pythonhosted.org/packages/4f/5b/57287acca91c3fd6fe29aae65b2be7103cbb41d4c897139a915b0a0c3f3d/loon-0.1.16.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "64caaf7f45299963111c517e99b56f2c", "sha256": "3b17a84a9e1cb77bf3b63d4e115ccb536eade2bd6584434ef76982a3dc36501e" }, "downloads": -1, "filename": "loon-0.1.17-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "64caaf7f45299963111c517e99b56f2c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 21337, "upload_time": "2019-11-01T16:50:13", "upload_time_iso_8601": "2019-11-01T16:50:13.915339Z", "url": "https://files.pythonhosted.org/packages/26/ee/26981dfeb437d14e869bcc5181e184a4bc608bfa32f6f6f1d6019939bfe6/loon-0.1.17-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f82e53a4b81d009fc3ac686188756fca", "sha256": "8ed59d1fdba76fc6ad6114c1d6a5431eb736cc8b615b834b2dc2c49a4b74514a" }, "downloads": -1, "filename": "loon-0.1.17.tar.gz", "has_sig": false, "md5_digest": "f82e53a4b81d009fc3ac686188756fca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 28944, "upload_time": "2019-11-01T16:50:15", "upload_time_iso_8601": "2019-11-01T16:50:15.806000Z", "url": "https://files.pythonhosted.org/packages/82/a4/bf713ee285b36f7465f2c05da046e26d02fab1d65ef990dbba355bee965a/loon-0.1.17.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "a2d4adc9189f41ef7590bbecce29076e", "sha256": "a999b312bafa035d2fbeac9e8646c40fc1c80f0d89e7745a55151bd80380c311" }, "downloads": -1, "filename": "loon-0.1.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a2d4adc9189f41ef7590bbecce29076e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 21568, "upload_time": "2019-11-01T17:04:10", "upload_time_iso_8601": "2019-11-01T17:04:10.444249Z", "url": "https://files.pythonhosted.org/packages/33/f0/039159767ca01f76710c6bc2c8047d9651e5b563d15ef2b9ef37d1402ffc/loon-0.1.18-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "33d0f484742af5a393d737fa5f2a1455", "sha256": "098620753356ca765f1804d566d850e3690ac47133fce8cda277dd50854b07e2" }, "downloads": -1, "filename": "loon-0.1.18.tar.gz", "has_sig": false, "md5_digest": "33d0f484742af5a393d737fa5f2a1455", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29480, "upload_time": "2019-11-01T17:04:12", "upload_time_iso_8601": "2019-11-01T17:04:12.459267Z", "url": "https://files.pythonhosted.org/packages/86/05/74eb1b967c37d0ff3326c417352da4d16fe9df39bfbffde9442584db4036/loon-0.1.18.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "924d493a2a9192445ce52e2b81e82b38", "sha256": "c4efee819e306469bae3a82f4042dfd1134df700b074bd14747ce3cde37eae3f" }, "downloads": -1, "filename": "loon-0.1.19-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "924d493a2a9192445ce52e2b81e82b38", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 21581, "upload_time": "2019-11-01T17:18:12", "upload_time_iso_8601": "2019-11-01T17:18:12.927148Z", "url": "https://files.pythonhosted.org/packages/93/33/f33e8a65a4cbf3e2e28085ba505567e17811f68049dd154f6acd6eb4f6e2/loon-0.1.19-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0bf9b5b7c0a92400c5094a933709d745", "sha256": "be87b42084385c1a29b821992dc3e8c343287ace32e18944e6d3f66c6c702359" }, "downloads": -1, "filename": "loon-0.1.19.tar.gz", "has_sig": false, "md5_digest": "0bf9b5b7c0a92400c5094a933709d745", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29528, "upload_time": "2019-11-01T17:18:14", "upload_time_iso_8601": "2019-11-01T17:18:14.771842Z", "url": "https://files.pythonhosted.org/packages/94/09/d509317b23d87322bf28ff0ac1f926cd988c1fffca54e32e65a5f68bded6/loon-0.1.19.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "352d39fbfbc0bec31c9200a4819db3c9", "sha256": "f5086af2a1c9dd298c76c2977331fbec923275ac7c784cc7a2a943bf1d72be83" }, "downloads": -1, "filename": "loon-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "352d39fbfbc0bec31c9200a4819db3c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13816, "upload_time": "2019-10-03T13:10:00", "upload_time_iso_8601": "2019-10-03T13:10:00.610468Z", "url": "https://files.pythonhosted.org/packages/fa/cc/9af9341732a981d5309a5ea5e896a5050487f46221359f11404df46df26f/loon-0.1.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "176684eb62f4214e7bfe876529b8efce", "sha256": "b89ac5c1b91d885858c6b95c95edf1c020526316c369d2786fed40c3c6ac1bdf" }, "downloads": -1, "filename": "loon-0.1.3.tar.gz", "has_sig": false, "md5_digest": "176684eb62f4214e7bfe876529b8efce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17931, "upload_time": "2019-10-03T13:10:02", "upload_time_iso_8601": "2019-10-03T13:10:02.697177Z", "url": "https://files.pythonhosted.org/packages/12/f5/6027d588ffbcf498c1ce0117b006a0a7e4bc1f8d4cccf30a12cc5c41c158/loon-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2c1e96c791e32955309b281ca893c847", "sha256": "6a75f526230ab7890cea335dd94bafaf859e033167bec2f56ac0d1c96b4092b5" }, "downloads": -1, "filename": "loon-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c1e96c791e32955309b281ca893c847", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 14026, "upload_time": "2019-10-03T14:40:10", "upload_time_iso_8601": "2019-10-03T14:40:10.062195Z", "url": "https://files.pythonhosted.org/packages/f3/e0/48d41ee22c36a1340c1d8a46e0eaaf5caaeab8aa9408193a7cc99a947a2c/loon-0.1.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f66b5693298486b6086ca30c5aca8e5c", "sha256": "aac04ac4d6f46d5a2560808aef815185e3058e1fe0feb8710b3161411d05b5ca" }, "downloads": -1, "filename": "loon-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f66b5693298486b6086ca30c5aca8e5c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 18381, "upload_time": "2019-10-03T14:40:11", "upload_time_iso_8601": "2019-10-03T14:40:11.589836Z", "url": "https://files.pythonhosted.org/packages/08/d4/8a16ea63cdb24b57dc8a9ede97296c68134395ef8671d23793a17b1e485d/loon-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "7ed88b1bb7f13259a32b2ffc3c26e316", "sha256": "9ad7fc5a930b03aabedfbdf9c106d61ea54391afde703d0cd74d35f8bfe40002" }, "downloads": -1, "filename": "loon-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ed88b1bb7f13259a32b2ffc3c26e316", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 14557, "upload_time": "2019-10-04T11:19:36", "upload_time_iso_8601": "2019-10-04T11:19:36.606734Z", "url": "https://files.pythonhosted.org/packages/58/bc/36b43a94be2fec0d89766f6158b8da1d9a8fa5d8cf63afdea065f2515015/loon-0.1.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8722da939864823c63838f97faa7e6dd", "sha256": "c396d0e36abdc35cde66ea1a3cec5e8093e07a752d307ef2f4a1f5b8a6e146b3" }, "downloads": -1, "filename": "loon-0.1.5.tar.gz", "has_sig": false, "md5_digest": "8722da939864823c63838f97faa7e6dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 18935, "upload_time": "2019-10-04T11:19:38", "upload_time_iso_8601": "2019-10-04T11:19:38.452423Z", "url": "https://files.pythonhosted.org/packages/eb/65/203e2df136c399e6dcf9a204c25a60f2ac69dc97a8d336fd53978e2966ae/loon-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "7568e492e4ed873cc1fb2e177702da58", "sha256": "87cbc6db2a71a5f0a93a2cfd94c82788521fb352ea4a2ab90b80e1f8267ff8c5" }, "downloads": -1, "filename": "loon-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7568e492e4ed873cc1fb2e177702da58", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 13722, "upload_time": "2019-10-29T03:07:27", "upload_time_iso_8601": "2019-10-29T03:07:27.508674Z", "url": "https://files.pythonhosted.org/packages/27/8d/90167b90fe4950b366c88fcd12bce533987d2c9ad5682303711629e8e80c/loon-0.1.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5a332e0d72e65dd02cd09d68fd51182", "sha256": "722fd9a2a2a2369b660f425fd5b9120c4cd449a2b182746dd79cdba11576d53b" }, "downloads": -1, "filename": "loon-0.1.7.tar.gz", "has_sig": false, "md5_digest": "b5a332e0d72e65dd02cd09d68fd51182", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24032, "upload_time": "2019-10-29T03:07:29", "upload_time_iso_8601": "2019-10-29T03:07:29.219584Z", "url": "https://files.pythonhosted.org/packages/40/08/1ecdbfeccec0ed470156b19dd520a44254ba2ba92f6f7fc0bc6d3cd0f282/loon-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "d9095f93608b7b7384c6f8a0c81e6058", "sha256": "45d2db7eb74333ad370f22088b1ba51cb7fcfda29d5d60d334c4c16a29d4cadc" }, "downloads": -1, "filename": "loon-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d9095f93608b7b7384c6f8a0c81e6058", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 13721, "upload_time": "2019-10-29T03:17:57", "upload_time_iso_8601": "2019-10-29T03:17:57.537872Z", "url": "https://files.pythonhosted.org/packages/18/c9/b464bbc2e07142e60122e4019ccc0fd796d7bebf5e08d8b895f9a2f735eb/loon-0.1.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8372ad69b33f86c07b5908936e3bb79", "sha256": "3bab0a0ce83609c9006de4cc84e27c4e9da9e4ff3c5776abc18a225138224ff1" }, "downloads": -1, "filename": "loon-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a8372ad69b33f86c07b5908936e3bb79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 23999, "upload_time": "2019-10-29T03:17:59", "upload_time_iso_8601": "2019-10-29T03:17:59.447190Z", "url": "https://files.pythonhosted.org/packages/93/b7/56b7c3436a47bb5afaff7f140c183332383b06ed50c1f89dd0286e26206f/loon-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "80175bdcc93366ab9ad85feb30db5f19", "sha256": "9b4b30b082303fa82e92ff47961771cc018464f0196032b1898b85beb058a985" }, "downloads": -1, "filename": "loon-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "80175bdcc93366ab9ad85feb30db5f19", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 13720, "upload_time": "2019-10-29T04:07:49", "upload_time_iso_8601": "2019-10-29T04:07:49.802127Z", "url": "https://files.pythonhosted.org/packages/18/7b/d6cafb226621856f03affdb509dbeb3fc6d15703ceaf085ff62e056fee13/loon-0.1.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "21f4be9415e2b70175321eff43d46465", "sha256": "ce724049fc45bb495ac0dec621d66fdf9d4beeabfc8b20b577226a010865d080" }, "downloads": -1, "filename": "loon-0.1.9.tar.gz", "has_sig": false, "md5_digest": "21f4be9415e2b70175321eff43d46465", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 24026, "upload_time": "2019-10-29T04:07:51", "upload_time_iso_8601": "2019-10-29T04:07:51.962171Z", "url": "https://files.pythonhosted.org/packages/30/82/53a6d6b1d8a934b83bbe483a89f63d8ce633535cafaabe038c05564afd64/loon-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cccc941cb16bf582e68d67d0fa20a5a8", "sha256": "b1a57a1c06ef08a19a4084ca13dfec07230651b4977a3d400e172db4b95ece07" }, "downloads": -1, "filename": "loon-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cccc941cb16bf582e68d67d0fa20a5a8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 21864, "upload_time": "2019-11-02T14:34:03", "upload_time_iso_8601": "2019-11-02T14:34:03.523924Z", "url": "https://files.pythonhosted.org/packages/20/21/d800716ca55e6e798ff72c3d674409d3595584ae7586ad16210089d14a1b/loon-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "230469963bb8b5f9ddde6969f6fc1ba8", "sha256": "695e44a326bdfa316c49e155b07dc7b4cf3fa935b0d98bebb388950984c72f16" }, "downloads": -1, "filename": "loon-0.2.0.tar.gz", "has_sig": false, "md5_digest": "230469963bb8b5f9ddde6969f6fc1ba8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29816, "upload_time": "2019-11-02T14:34:07", "upload_time_iso_8601": "2019-11-02T14:34:07.461043Z", "url": "https://files.pythonhosted.org/packages/8d/17/0dace3fd72fd492a7b414a3b8937d4d7d483f23b87935427eac6d5b0da4b/loon-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7526880d16358026c3e3cacc81ff19b8", "sha256": "4331e22e0c4bcdb584e3cebc4bf95192745d0b97fa96659404084fd042aeac7f" }, "downloads": -1, "filename": "loon-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7526880d16358026c3e3cacc81ff19b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 21865, "upload_time": "2019-11-03T02:53:26", "upload_time_iso_8601": "2019-11-03T02:53:26.720407Z", "url": "https://files.pythonhosted.org/packages/7e/b4/b92eefd755fd7541a4fa6c9641b5273135770ea80d571daa051a29328339/loon-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "733e3db121bdcf3cf605f749b9e7e652", "sha256": "cd60129039b62199a5e1e04024d03e8deae959662230e4d1d3659ddadc0cef94" }, "downloads": -1, "filename": "loon-0.2.1.tar.gz", "has_sig": false, "md5_digest": "733e3db121bdcf3cf605f749b9e7e652", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29828, "upload_time": "2019-11-03T02:53:28", "upload_time_iso_8601": "2019-11-03T02:53:28.681527Z", "url": "https://files.pythonhosted.org/packages/40/77/a5cdd2c2bcd54dc2e0fb3a1ffc484e22a6571f7e2751bb0844df24a28269/loon-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9e63c29870a01aff34fe8cd48134b3f4", "sha256": "e6437614d0ebe65ecae5fd0890a41eb67aa85fe4d196ef54351d44b5f3384fb4" }, "downloads": -1, "filename": "loon-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9e63c29870a01aff34fe8cd48134b3f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19053, "upload_time": "2019-11-15T10:44:37", "upload_time_iso_8601": "2019-11-15T10:44:37.298045Z", "url": "https://files.pythonhosted.org/packages/9c/cb/a52922f4bba4ce0c383a8988c239c4e5da8f2942affb797b81ae84e45bad/loon-0.2.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ed0f7df2b6c9d46acf402bc4a804682e", "sha256": "2b5b75a46194a0743eb92b9d605680e3d82fa72271b96bdd2b084a80486354a4" }, "downloads": -1, "filename": "loon-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ed0f7df2b6c9d46acf402bc4a804682e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30725, "upload_time": "2019-11-15T10:44:39", "upload_time_iso_8601": "2019-11-15T10:44:39.068190Z", "url": "https://files.pythonhosted.org/packages/05/9a/4fa934d8d2fd154091015c6069a235ea8a1730cb4099e28a4c543968f871/loon-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "56c8ba880f1428c2761306c6bcab2733", "sha256": "2abcf0f8ab86208c39d42a66705ea36e2ee4acb669225b8a9d14f494fcb1ab5e" }, "downloads": -1, "filename": "loon-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56c8ba880f1428c2761306c6bcab2733", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19168, "upload_time": "2019-11-27T04:49:22", "upload_time_iso_8601": "2019-11-27T04:49:22.661009Z", "url": "https://files.pythonhosted.org/packages/f0/f5/16704acf5333fa1ae2faa9dadea847c8949172976abd8bfe4ccfce14c2a9/loon-0.2.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "30dd041c207a27cdba1c66634e300959", "sha256": "676f9ac0edb1287933dea42f88d29d709df6b13e709f28c1abddd560fdded9da" }, "downloads": -1, "filename": "loon-0.2.3.tar.gz", "has_sig": false, "md5_digest": "30dd041c207a27cdba1c66634e300959", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30962, "upload_time": "2019-11-27T04:49:24", "upload_time_iso_8601": "2019-11-27T04:49:24.486946Z", "url": "https://files.pythonhosted.org/packages/66/3b/11b9e9b8aa7935ec489aa5eb659eacd584b07e6ebeb0690765bbf63514df/loon-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2ae79a3c988cb5b59bdfdbe3c26816dd", "sha256": "1e1689b2676428fa8a2f2e758aab2f5f8d949bf0f4fa1af6f7711eb31b0f6719" }, "downloads": -1, "filename": "loon-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ae79a3c988cb5b59bdfdbe3c26816dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19531, "upload_time": "2019-11-30T17:14:40", "upload_time_iso_8601": "2019-11-30T17:14:40.622086Z", "url": "https://files.pythonhosted.org/packages/fb/d0/f52578893e26cc03382fad928872a59e7b4c432f8ced451d2f781ec0e3ed/loon-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "133262ede27cb0f8e527daacd482b832", "sha256": "77fb1e839a5ca05d4e873e2eef27556bb2d3b5dc0a493c1bee8167655283684e" }, "downloads": -1, "filename": "loon-0.3.0.tar.gz", "has_sig": false, "md5_digest": "133262ede27cb0f8e527daacd482b832", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31335, "upload_time": "2019-11-30T17:14:42", "upload_time_iso_8601": "2019-11-30T17:14:42.516009Z", "url": "https://files.pythonhosted.org/packages/ea/52/f8f50c37f64a006304049ec11ffc7da87769ff6e4d41cc0093c50dfe387e/loon-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "13102db4087f2af4f7340988968a31b1", "sha256": "c384d5772b8076a44c4f34f12229e3bf234a75a8c6472db0c786e070595b6e8a" }, "downloads": -1, "filename": "loon-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13102db4087f2af4f7340988968a31b1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19544, "upload_time": "2019-11-30T17:28:26", "upload_time_iso_8601": "2019-11-30T17:28:26.962582Z", "url": "https://files.pythonhosted.org/packages/e5/94/3ded7cfc1b58070c61c451a158aee739581e6e6092086b92b5fcd7a55737/loon-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "09627f5e9730aa595317581a28dcb9c8", "sha256": "8bf7b430c567159ac67eff58dba7d41b8f3bfc9e9dd88871ec89fc9f80146e02" }, "downloads": -1, "filename": "loon-0.3.1.tar.gz", "has_sig": false, "md5_digest": "09627f5e9730aa595317581a28dcb9c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31366, "upload_time": "2019-11-30T17:28:28", "upload_time_iso_8601": "2019-11-30T17:28:28.966995Z", "url": "https://files.pythonhosted.org/packages/eb/20/c0092931537fd7ffa5cbba90911488d5bffbbee7c5f75efeabcd687a3cae/loon-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "fb5db02b8225ef0f56b85c551d526410", "sha256": "347f4499eb3ae1d37c1f01463a88ff5e189073f3653174299a4aa4147d2b1a65" }, "downloads": -1, "filename": "loon-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fb5db02b8225ef0f56b85c551d526410", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19755, "upload_time": "2019-12-16T15:12:32", "upload_time_iso_8601": "2019-12-16T15:12:32.960137Z", "url": "https://files.pythonhosted.org/packages/2b/2b/4eeffe70d2b8cfa69f76b7d50ce11b9f9468987b93901254c52a46f9829f/loon-0.3.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a22bebdf360ea449276c8e8e782d794e", "sha256": "6fea93f73e0c143fa36fc1346e6c9f1a891a3f956197a955f5c5558e8e4e606a" }, "downloads": -1, "filename": "loon-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a22bebdf360ea449276c8e8e782d794e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31797, "upload_time": "2019-12-16T15:12:34", "upload_time_iso_8601": "2019-12-16T15:12:34.706782Z", "url": "https://files.pythonhosted.org/packages/60/f6/ca79e725e3f0df87d49775444db2cc3ba45c9d2987a55125c14d53289c99/loon-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "17d4da0bd1dcdefa238e61dca10caaf1", "sha256": "5ec2f1e2636c11053ece78d40cdcf9ef2d0561dbfb057e45aa6d9acce19bda82" }, "downloads": -1, "filename": "loon-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "17d4da0bd1dcdefa238e61dca10caaf1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 19752, "upload_time": "2019-12-16T15:15:21", "upload_time_iso_8601": "2019-12-16T15:15:21.343677Z", "url": "https://files.pythonhosted.org/packages/59/f4/99693af7b429355699e1ed057125cf3d6eb74cdaa085a3075679e9459253/loon-0.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3dc96c4899d0287ac327809feb4e4e04", "sha256": "cac7543249c65d9a9e44890545a87e796ee70eafba10d830fa6b2acd599e0e22" }, "downloads": -1, "filename": "loon-0.3.3.tar.gz", "has_sig": false, "md5_digest": "3dc96c4899d0287ac327809feb4e4e04", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 31802, "upload_time": "2019-12-16T15:15:23", "upload_time_iso_8601": "2019-12-16T15:15:23.393505Z", "url": "https://files.pythonhosted.org/packages/1e/b6/0f049dd136b770bcf117a7b7c19b63e7b909f62a48b55e011a2a53495535/loon-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "bea1974ff09aeb1d0f51aa4d43691e8b", "sha256": "0052b2665d14c2e36f7bbd185f0fd6133fdc3538fd23ed4497825e322a4987eb" }, "downloads": -1, "filename": "loon-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bea1974ff09aeb1d0f51aa4d43691e8b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20007, "upload_time": "2019-12-17T05:57:36", "upload_time_iso_8601": "2019-12-17T05:57:36.129770Z", "url": "https://files.pythonhosted.org/packages/d7/b7/07ec13297c64a88667faa4cebb11e8d745cf215cc47ae4c4ec7ea74c99ee/loon-0.3.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3541b118d65c5491e46c6acaaa6e90e3", "sha256": "3c3fbe35f395064e5f501b33795865bae49bbe24c1fd7a577d6a31530499cf58" }, "downloads": -1, "filename": "loon-0.3.4.tar.gz", "has_sig": false, "md5_digest": "3541b118d65c5491e46c6acaaa6e90e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32173, "upload_time": "2019-12-17T05:57:38", "upload_time_iso_8601": "2019-12-17T05:57:38.190600Z", "url": "https://files.pythonhosted.org/packages/4f/52/1a7a6bc2c94743510a5c172ecd6aab2995bdaac7074b61166ca516645c2f/loon-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "2161aa8748b61178fa512b9fd0dff2bd", "sha256": "0dd0f0c45055277ca760fe78da33a3736d5ff673b4bbb38b7cc8addedfae4627" }, "downloads": -1, "filename": "loon-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2161aa8748b61178fa512b9fd0dff2bd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20321, "upload_time": "2019-12-17T06:39:39", "upload_time_iso_8601": "2019-12-17T06:39:39.303593Z", "url": "https://files.pythonhosted.org/packages/a5/d0/5ce29e334edcdc2c7ac099853d691859ef4b537b8946f2d2ed4beb3bf3a3/loon-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a93c5a10f813a14da557065961afdb21", "sha256": "b95b11a6ea1730fe401161e271d266dd58c11392990185ad628da38ead7c9992" }, "downloads": -1, "filename": "loon-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a93c5a10f813a14da557065961afdb21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32802, "upload_time": "2019-12-17T06:39:43", "upload_time_iso_8601": "2019-12-17T06:39:43.031013Z", "url": "https://files.pythonhosted.org/packages/02/41/9f446c2d1a39fcb8b6ed8b4aba8c23801232161f65527e5235acefea20d1/loon-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5fa06f7451eea1c6ed8b60a99d48249f", "sha256": "7ae2b45ade2af19c62465bc0cf6b55393bdc125a70878a41ea29585d20500db6" }, "downloads": -1, "filename": "loon-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5fa06f7451eea1c6ed8b60a99d48249f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20959, "upload_time": "2019-12-24T04:23:12", "upload_time_iso_8601": "2019-12-24T04:23:12.180588Z", "url": "https://files.pythonhosted.org/packages/df/3b/05bc48b461c92225724cb4d4e82254e0661c291cf891c50be7e38a9ca23c/loon-0.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a194bf66f5c43a939d87cb76193c5a8e", "sha256": "0de96d72e771a272ed88591639e691a99c56fe56ca0f0793ddb2392124a3db92" }, "downloads": -1, "filename": "loon-0.4.1.tar.gz", "has_sig": false, "md5_digest": "a194bf66f5c43a939d87cb76193c5a8e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 33514, "upload_time": "2019-12-24T04:23:14", "upload_time_iso_8601": "2019-12-24T04:23:14.636840Z", "url": "https://files.pythonhosted.org/packages/8b/40/10f7679c07b1084ffcfdb1e490ca683703856542792a1135c75c1ea6b30c/loon-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "f99e80cac7526fbdc0e17a72b8ebee5f", "sha256": "62ee4f1a3047208939ae7c767855240cae070ce64c09f545a74ab815ff34d79a" }, "downloads": -1, "filename": "loon-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f99e80cac7526fbdc0e17a72b8ebee5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20973, "upload_time": "2020-05-19T08:21:57", "upload_time_iso_8601": "2020-05-19T08:21:57.628216Z", "url": "https://files.pythonhosted.org/packages/49/54/db4fa7fa33b1adab9aa5a5695c40aa304d4630e9c418f81439affd8a265d/loon-0.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2cbae2ad23cec7bf2107d2bd3dddf916", "sha256": "9e5179c776838b1c6b2f7842038b36a2b48d1eb915c867a74ebb57d219b127eb" }, "downloads": -1, "filename": "loon-0.4.2.tar.gz", "has_sig": false, "md5_digest": "2cbae2ad23cec7bf2107d2bd3dddf916", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 33543, "upload_time": "2020-05-19T08:21:59", "upload_time_iso_8601": "2020-05-19T08:21:59.421482Z", "url": "https://files.pythonhosted.org/packages/24/89/b62428fc80106e2094d897d8e3e18522dc46eda39bebc2dc0d5c39f0c814/loon-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f99e80cac7526fbdc0e17a72b8ebee5f", "sha256": "62ee4f1a3047208939ae7c767855240cae070ce64c09f545a74ab815ff34d79a" }, "downloads": -1, "filename": "loon-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f99e80cac7526fbdc0e17a72b8ebee5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 20973, "upload_time": "2020-05-19T08:21:57", "upload_time_iso_8601": "2020-05-19T08:21:57.628216Z", "url": "https://files.pythonhosted.org/packages/49/54/db4fa7fa33b1adab9aa5a5695c40aa304d4630e9c418f81439affd8a265d/loon-0.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2cbae2ad23cec7bf2107d2bd3dddf916", "sha256": "9e5179c776838b1c6b2f7842038b36a2b48d1eb915c867a74ebb57d219b127eb" }, "downloads": -1, "filename": "loon-0.4.2.tar.gz", "has_sig": false, "md5_digest": "2cbae2ad23cec7bf2107d2bd3dddf916", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 33543, "upload_time": "2020-05-19T08:21:59", "upload_time_iso_8601": "2020-05-19T08:21:59.421482Z", "url": "https://files.pythonhosted.org/packages/24/89/b62428fc80106e2094d897d8e3e18522dc46eda39bebc2dc0d5c39f0c814/loon-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }