{ "info": { "author": "Samapriya Roy", "author_email": "samapriya.roy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: GIS" ], "description": "# Google Earth Engine Batch Asset Manager with Addons\r\n\r\n[![PyPI version](https://badge.fury.io/py/geeadd.svg)](https://badge.fury.io/py/geeadd)\r\n![Build Status](https://img.shields.io/badge/dynamic/json.svg?label=downloads&url=https%3A%2F%2Fpypistats.org%2Fapi%2Fpackages%2Fgeeadd%2Frecent%3Fperiod%3Dmonth&query=%24.data.last_month&colorB=blue&suffix=%2fmonth)\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1194308.svg)](https://doi.org/10.5281/zenodo.1194308)\r\n[![Can I Use Python 3?](https://caniusepython3.com/project/geeadd.svg)](https://caniusepython3.com/project/geeadd)\r\n[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/samapriya)\r\n\r\nGoogle Earth Engine Batch Asset Manager with Addons is an extension of the one developed by Lukasz [here](https://github.com/tracek/gee_asset_manager) and additional tools were added to include functionality for moving assets, conversion of objects to fusion table, cleaning folders, querying tasks. The ambition is apart from helping user with batch actions on assets along with interacting and extending capabilities of existing GEE CLI. It is developed case by case basis to include more features in the future as it becomes available or as need arises.\r\n\r\n## Table of contents\r\n* [Installation](#installation)\r\n* [Getting started](#getting-started)\r\n* [Uploading](#uploading)\r\n* [Usage examples](#usage-examples)\r\n * [EE User](#ee-user)\r\n * [Asset List](#asset-list)\r\n * [Asset Size](#asset-size)\r\n * [Earth Engine Asset Report](#earth-engine-asset-report)\r\n * [Task Query](#task-query)\r\n * [App to Script](#app-to-script)\r\n * [Task Report](#task-report)\r\n * [Delete a collection with content:](#delete-a-collection-with-content)\r\n * [Assets Move](#assets-move)\r\n * [Assets Copy](#assets-copy)\r\n * [Assets Access](#assets-access)\r\n * [Set Collection Property](#set-collection-property)\r\n * [Cancel all tasks](#cancel-all-tasks)\r\n\r\n## Installation\r\nWe assume Earth Engine Python API is installed and EE authorised as desribed [here](https://developers.google.com/earth-engine/python_install).\r\n\r\nQuick installation **```pip install geeadd```**\r\n\r\nTo install using github:\r\n```\r\ngit clone https://github.com/samapriya/gee_asset_manager_addon\r\ncd gee_asset_manager_addon && pip install -r requirements.txt\r\npython setup.py install\r\n```\r\n\r\nInstallation is an optional step; the application can be also run\r\ndirectly by executing geeadd.py script. The advantage of having it\r\ninstalled is being able to execute geeadd as any command line tool. I\r\nrecommend installation within virtual environment. To install run\r\n```\r\npython setup.py develop or python setup.py install\r\n\r\nIn a linux distribution\r\nsudo python setup.py develop or sudo python setup.py install\r\n```\r\n\r\n\r\n## Getting started\r\n\r\nAs usual, to print help:\r\n\r\n![geeadd_main](https://user-images.githubusercontent.com/6677629/57304133-c139fe80-70ac-11e9-987c-532aa5ee2ed8.png)\r\n\r\nTo obtain help for a specific functionality, simply call it with _help_ switch, e.g.: `geeadd upload -h`. If you didn't install geeadd, then you can run it just by going to _geeadd_ directory and running `python\r\ngeeadd.py [arguments go here]`\r\n\r\n## Uploading\r\nYou can upload tables and rasters using [geeup](https://github.com/samapriya/geeup). This uses selenium to handle uploading and hence cannot be used in a headless environment.\r\n\r\n## Usage examples\r\n\r\n### EE User\r\nThis tool is designed to allow different users to change earth engine authentication credentials. The tool invokes the authentication call and copies the authentication key verification website to the clipboard which can then be pasted onto a browser and the generated key can be pasted back\r\n\r\n### Create\r\nThis tool allows you to create a collection or folder in your earth engine root directory. The tool uses the system cli to achieve this and this has been included so as to reduce the need to switch between multiple tools and CLI.\r\n```\r\nusage: geeadd.py create [-h] --typ TYP --path PATH\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --typ TYP Specify type: collection or folder\r\n --path PATH This is the path for the earth engine asset to be created full\r\n path is needsed eg: users/johndoe/collection\r\n```\r\n### Asset List\r\nThis tool is designed to either print or output asset lists within folders or collections using earthengine ls tool functions.\r\n```\r\nusage: geeadd.py lst [-h] --location LOCATION --typ TYP [--items ITEMS]\r\n [--output OUTPUT]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --location LOCATION This it the location of your folder/collection\r\n --typ TYP Whether you want the list to be printed or output as\r\n text[print/report]\r\n\r\nOptional named arguments:\r\n --items ITEMS Number of items to list\r\n --output OUTPUT Folder location for report to be exported\r\n```\r\n\r\n### Asset Size\r\nThis tool allows you to query the size of any Earth Engine asset[Images, Image Collections, Tables and Folders] and prints out the number of assets and total asset size in non-byte encoding meaning KB, MB, GB, TB depending on size.\r\n\r\n```\r\nusage: geeadd assetsize [-h] --asset ASSET\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --asset ASSET Earth Engine Asset for which to get size properties\r\n```\r\n\r\n### App to Script\r\nThis tool writes out or prints the underlying earthengine code for any public earthengine app. The tool has an option to export the code into a javascript file that you can then paste into Google Earth Engine code editor.\r\n\r\n```\r\ngeeadd app2script -h\r\nusage: geeadd app2script [-h] --url URL [--outfile OUTFILE]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --url URL Earthengine app url\r\n\r\nOptional named arguments:\r\n --outfile OUTFILE Write the script out to a .js file: Open in any text\r\n editor\r\n```\r\n\r\nSimple setup can be\r\n\r\n```\r\ngeeadd app2script --url \"https://gena.users.earthengine.app/view/urban-lights\"\r\n```\r\n\r\nor write to a javascript file which you can then open with any text editor and paste in earthengine code editor\r\n\r\n```\r\ngeeadd app2script --url \"https://gena.users.earthengine.app/view/urban-lights\" --outfile \"Full path to javascript.js\"\r\n```\r\n\r\n### Earth Engine Asset Report\r\nThis tool recursively goes through all your assets(Includes Images, ImageCollection,Table,) and generates a report containing the following fields\r\n[Type,Asset Type, Path,Number of Assets,size(MB),unit,owner,readers,writers].\r\n\r\n```\r\nusage: geeadd.py ee_report [-h] --outfile OUTFILE\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --outfile OUTFILE This it the location of your report csv file\r\n```\r\nA simple setup is the following\r\n``` geeadd --outfile \"C:\\johndoe\\report.csv\"```\r\n\r\n### Task Query\r\nThis script counts all currently running and ready tasks along with failed tasks.\r\n```\r\nusage: geeadd.py tasks [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\ngeeadd.py tasks\r\n```\r\n\r\n### Task Report\r\nSometimes it is important to generate a report based on all tasks that is running or has finished. Generated report includes taskId, data time, task status and type\r\n```\r\nusage: geeadd taskreport [-h] [--r R]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --r R Folder Path where the reports will be saved\r\n```\r\n\r\n### Delete a collection with content:\r\n\r\nThe delete is recursive, meaning it will delete also all children assets: images, collections and folders. Use with caution!\r\n```\r\ngeeadd delete users/johndoe/test\r\n```\r\n\r\nConsole output:\r\n```\r\n2016-07-17 16:14:09,212 :: oauth2client.client :: INFO :: Attempting refresh to obtain initial access_token\r\n2016-07-17 16:14:09,213 :: oauth2client.client :: INFO :: Refreshing access_token\r\n2016-07-17 16:14:10,842 :: root :: INFO :: Attempting to delete collection test\r\n2016-07-17 16:14:16,898 :: root :: INFO :: Collection users/johndoe/test removed\r\n```\r\n\r\n### Delete all directories / collections based on a Unix-like pattern\r\n\r\n```\r\ngeeadd delete users/johndoe/*weird[0-9]?name*\r\n```\r\n\r\n### Assets Move\r\nThis script allows us to recursively move assets from one collection to the other.\r\n```\r\nusage: geeadd.py mover [-h] [--assetpath ASSETPATH] [--finalpath FINALPATH]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --assetpath ASSETPATH\r\n Existing path of assets\r\n --finalpath FINALPATH\r\n New path for assets\r\ngeeadd.py mover --assetpath \"users/johndoe/myfolder/myponycollection\" --destination \"users/johndoe/myfolder/myotherponycollection\"\r\n```\r\n\r\n### Assets Copy\r\nThis script allows us to recursively copy assets from one collection to the other. If you have read acess to assets from another user this will also allow you to copy assets from their collections.\r\n```\r\nusage: geeadd.py copy [-h] [--initial INITIAL] [--final FINAL]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --initial INITIAL Existing path of assets\r\n --final FINAL New path for assets\r\ngeeadd.py mover --initial \"users/johndoe/myfolder/myponycollection\" --final \"users/johndoe/myfolder/myotherponycollection\"\r\n```\r\n\r\n### Assets Access\r\nThis tool allows you to set asset acess for either folder , collection or image recursively meaning you can add collection access properties for multiple assets at the same time.\r\n```\r\nusage: geeadd.py access [-h] --asset ASSET --user USER --role ROLE\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --asset ASSET This is the path to the earth engine asset whose permission\r\n you are changing folder/collection/image\r\n --user USER Full email address of the user, try using \"AllUsers\" to make\r\n it public\r\n --role ROLE Choose between reader, writer or delete\r\n```\r\n\r\n### Set Collection Property\r\nThis script is derived from the ee tool to set collection properties and will set overall properties for collection.\r\n```\r\nusage: geeadd.py collprop [-h] [--coll COLL] [--p P]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --coll COLL Path of Image Collection\r\n --p P \"system:description=Description\"/\"system:provider_url=url\"/\"sys\r\n tem:tags=tags\"/\"system:title=title\r\n```\r\n\r\n### Cancel all tasks\r\nThis is a simpler tool, can be called directly from the earthengine cli as well\r\n```\r\nearthengine cli command\r\nearthengine task cancel all\r\n\r\nusage: geeadd.py cancel [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\n### Changelog\r\n\r\n#### v0.3.3\r\n- General improvements\r\n- Added tool to get underlying code from earthengine app\r\n\r\n#### v0.3.1\r\n- Updated list and asset size functions\r\n- Updated function to generate earthengine asset report\r\n- General optimization and improvements to distribution\r\n- Better error handling\r\n\r\n#### v0.3.0\r\n- Removed upload function\r\n- Upload handles by [geeup](https://github.com/samapriya/geeup)\r\n- General optimization and improvements to distribution\r\n- Better error handling\r\n\r\n#### v0.2.8\r\n- Uses poster for streaming upload more stable with memory issues and large files\r\n- Poster dependency limits use to Py 2.7 will fix in the new version\r\n\r\n#### v0.2.6\r\n- Major improvement to move, batch copy, and task reporting\r\n- Major improvements to access tool to allow users read/write permission to entire Folder/collection.\r\n\r\n#### v0.2.5\r\n- Handles bandnames during upload thanks to Lukasz for original upload code\r\n- Removed manifest option, that can be handled by seperate tool (ppipe)\r\n\r\n#### v0.2.3\r\n- Removing the initialization loop error\r\n\r\n#### v0.2.2\r\n- Added improvement to earthengine authorization\r\n\r\n#### v0.2.1\r\n- Added capability to handle PlanetScope 4Band Surface Reflectance Metadata Type\r\n- General Improvements\r\n\r\n#### v0.2.0\r\n- Tool improvements and enhancements\r\n\r\n#### v0.1.9\r\n- New tool EE_Report was added\r\n\r\n#### v0.1.8\r\n- Fixed issues with install\r\n- Dependencies now part of setup.py\r\n- Updated Parser and general improvements\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/samapriya/gee_asset_manager_addon", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "geeadd", "package_url": "https://pypi.org/project/geeadd/", "platform": "", "project_url": "https://pypi.org/project/geeadd/", "project_urls": { "Homepage": "https://github.com/samapriya/gee_asset_manager_addon" }, "release_url": "https://pypi.org/project/geeadd/0.3.3/", "requires_dist": [ "earthengine-api (>=0.1.191)", "requests (>=2.10.0)", "retrying (>=1.3.3)", "clipboard (>=0.0.4)", "beautifulsoup4 (>=4.7.1)", "requests-toolbelt (>=0.7.0)", "lxml (>=4.3.3)", "pytest (>=3.0.0)", "future (>=0.16.0)", "google-cloud-storage (>=1.1.1)", "oauth2client (>=4.1.3)" ], "requires_python": "", "summary": "Google Earth Engine Batch Assets Manager with Addons", "version": "0.3.3" }, "last_serial": 5935721, "releases": { "0.2.4": [ { "comment_text": "", "digests": { "md5": "9bf2ee415a8bb9308e00ceccbbc89f34", "sha256": "0d77c03c090151a539d0936f94a72a0ee5acc1d3f2a5f33801efb0d060c8885a" }, "downloads": -1, "filename": "geeadd-0.2.4.tar.gz", "has_sig": false, "md5_digest": "9bf2ee415a8bb9308e00ceccbbc89f34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15616, "upload_time": "2018-05-17T17:53:35", "url": "https://files.pythonhosted.org/packages/c1/03/d46abb9f198030f89ce374623051c8e30fa376068648f93351cbcad58ed9/geeadd-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "0589242d46b59c56fe5b202e42a2dfa6", "sha256": "c47b6a05d7de12cd8206cdb17d54b6382b5699d5a78707d49d0d5804198fa252" }, "downloads": -1, "filename": "geeadd-0.2.5.tar.gz", "has_sig": false, "md5_digest": "0589242d46b59c56fe5b202e42a2dfa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15236, "upload_time": "2018-05-20T12:15:42", "url": "https://files.pythonhosted.org/packages/24/bd/4f4d689ada860399db9eebcb0937d849b231f56977c6370bfc9d85275673/geeadd-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "4e23f0072786d2b32b353ae09c162d45", "sha256": "5e1d589293e7b3868ca808dfcc8f33f8c18d1cc397cd0992732fe0e6aa74f7d6" }, "downloads": -1, "filename": "geeadd-0.2.6.tar.gz", "has_sig": false, "md5_digest": "4e23f0072786d2b32b353ae09c162d45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25460, "upload_time": "2018-11-10T23:18:50", "url": "https://files.pythonhosted.org/packages/b8/81/28a84937a56b8dc42463bd64b70869f4e67f5a82c4918784ed1a82ae5949/geeadd-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "deb53819105da66d39c64911bb1508e6", "sha256": "d0305fdd0ea3e41ef0c25b948f1d2cce8fdf54fad0230d42031138d1c322753d" }, "downloads": -1, "filename": "geeadd-0.2.7.tar.gz", "has_sig": false, "md5_digest": "deb53819105da66d39c64911bb1508e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25466, "upload_time": "2018-11-15T16:42:06", "url": "https://files.pythonhosted.org/packages/ce/c1/4feaef2796e96f1ad2219f1ece3ffd77a8faf8b26318a5f854fc2a4a937a/geeadd-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "1d9b48f4f494b2843daf647011af3eab", "sha256": "36b3ced232397f07bbe286f89996a3437ca99f5a52455d6117809c9d670bb30f" }, "downloads": -1, "filename": "geeadd-0.2.8.tar.gz", "has_sig": false, "md5_digest": "1d9b48f4f494b2843daf647011af3eab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25764, "upload_time": "2018-12-19T14:19:00", "url": "https://files.pythonhosted.org/packages/1a/c4/70f346cfe6eee9e90f13520ea9e2df0321116532b897a0d1b65decdc6fdf/geeadd-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "0f2b5d39286fe914ab343afe25dca548", "sha256": "f89744300f492a014a65d718e30590d06882618c059fa661c776762465262150" }, "downloads": -1, "filename": "geeadd-0.2.9.tar.gz", "has_sig": false, "md5_digest": "0f2b5d39286fe914ab343afe25dca548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26222, "upload_time": "2019-01-01T16:45:06", "url": "https://files.pythonhosted.org/packages/be/3c/dc2dca287ce90dbad6c751fc22f6fa7a8969bf2d4605db19f1e5dacfffc0/geeadd-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "bfee59df6e4cffa62091e3cfd512cd2f", "sha256": "77a6d7761fe70273f38c646553c62f962ba16a65a08e718c2c829c82393a4ec5" }, "downloads": -1, "filename": "geeadd-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bfee59df6e4cffa62091e3cfd512cd2f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18361, "upload_time": "2019-05-07T13:47:20", "url": "https://files.pythonhosted.org/packages/98/54/3081518063971a339adc171068cab3211f70ebf215c12eede3a3d1421481/geeadd-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8504fdc42f89901bd0f0e477748dbde", "sha256": "591e6ff2847122598ed5b0452a892a76e332ce227d4ba75e4d03eca2c7a4beea" }, "downloads": -1, "filename": "geeadd-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d8504fdc42f89901bd0f0e477748dbde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13942, "upload_time": "2019-05-07T13:47:21", "url": "https://files.pythonhosted.org/packages/65/7c/e4381ca95e0e81903cc1b3e11eb3b60b4a977d41003fae254e8ab768f325/geeadd-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "cee7e9c873056420b6499dde576ddf68", "sha256": "f4d12339082a138fd036b2523ec276f822dd1cbd7188d4795a95fa3f9563f5fa" }, "downloads": -1, "filename": "geeadd-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cee7e9c873056420b6499dde576ddf68", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19028, "upload_time": "2019-08-27T10:56:26", "url": "https://files.pythonhosted.org/packages/86/bb/96fa65139581b811768fa071a0a7cff370a2b915e994b0109813b390ddf0/geeadd-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9d0b9633f91cb7526c5fa2c0278002e", "sha256": "e9aac5862a43aeb9ab021f7207ac6e499c4da6a36b2f8081ea609140d0e0055b" }, "downloads": -1, "filename": "geeadd-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b9d0b9633f91cb7526c5fa2c0278002e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13989, "upload_time": "2019-08-27T10:56:27", "url": "https://files.pythonhosted.org/packages/e5/a9/b0a59dd74dd9790efeae57c04317b72e26a9b6f0eeca441330c24c41b000/geeadd-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "5df96f376e2f190e4a957fd6e821463a", "sha256": "02c05a94a7267e0052b33a7a7a9a85e78b49e75e2be2c170ef14607d11625029" }, "downloads": -1, "filename": "geeadd-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5df96f376e2f190e4a957fd6e821463a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19049, "upload_time": "2019-08-27T11:04:20", "url": "https://files.pythonhosted.org/packages/55/b8/08379eaead86c9f6066b14ca73d0dfeb21c01601778baefdaa504b7b8b34/geeadd-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34635b259ab12697bf2ec2e70bbdb6be", "sha256": "bdd433eb41561c14bd76860d45b9a7711631676e63177064cae1277bd4c1c7ae" }, "downloads": -1, "filename": "geeadd-0.3.2.tar.gz", "has_sig": false, "md5_digest": "34635b259ab12697bf2ec2e70bbdb6be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14000, "upload_time": "2019-08-27T11:04:22", "url": "https://files.pythonhosted.org/packages/79/ec/52fd65dfd842956a40b3c9edbe65a274a2a9a3001289acb20b98fa1ef596/geeadd-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "3c3bb88c7013f12606f89f1eeb8671c6", "sha256": "43c1aff008e031aa1ee2513fe4ed8018dab279f5ec8c46c3fbbd51007dd623e4" }, "downloads": -1, "filename": "geeadd-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c3bb88c7013f12606f89f1eeb8671c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20153, "upload_time": "2019-10-06T19:26:46", "url": "https://files.pythonhosted.org/packages/f5/88/c4c925fe8545d1bb43b0d940e5a8f29b38e4d348d2aae09e20d2027f66df/geeadd-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8fcabeb1b79aceecb0ffba54c55c383", "sha256": "0210e7c619a987130a2ffb592ec80754db46fa253b29528af0cc7352ecaf236a" }, "downloads": -1, "filename": "geeadd-0.3.3.tar.gz", "has_sig": false, "md5_digest": "b8fcabeb1b79aceecb0ffba54c55c383", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15020, "upload_time": "2019-10-06T19:26:47", "url": "https://files.pythonhosted.org/packages/60/b6/3e9ef68f8faa0df07589d566415e389a088de38de0a93b3420c98769fddc/geeadd-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c3bb88c7013f12606f89f1eeb8671c6", "sha256": "43c1aff008e031aa1ee2513fe4ed8018dab279f5ec8c46c3fbbd51007dd623e4" }, "downloads": -1, "filename": "geeadd-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3c3bb88c7013f12606f89f1eeb8671c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20153, "upload_time": "2019-10-06T19:26:46", "url": "https://files.pythonhosted.org/packages/f5/88/c4c925fe8545d1bb43b0d940e5a8f29b38e4d348d2aae09e20d2027f66df/geeadd-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b8fcabeb1b79aceecb0ffba54c55c383", "sha256": "0210e7c619a987130a2ffb592ec80754db46fa253b29528af0cc7352ecaf236a" }, "downloads": -1, "filename": "geeadd-0.3.3.tar.gz", "has_sig": false, "md5_digest": "b8fcabeb1b79aceecb0ffba54c55c383", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15020, "upload_time": "2019-10-06T19:26:47", "url": "https://files.pythonhosted.org/packages/60/b6/3e9ef68f8faa0df07589d566415e389a088de38de0a93b3420c98769fddc/geeadd-0.3.3.tar.gz" } ] }