{ "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", "Topic :: Scientific/Engineering :: GIS" ], "description": "# Planet GEE Pipeline CLI\r\n\r\n[![PyPI version](https://badge.fury.io/py/ppipe.svg)](https://badge.fury.io/py/ppipe)\r\n![Build Status](https://img.shields.io/badge/dynamic/json.svg?label=downloads&url=https%3A%2F%2Fpypistats.org%2Fapi%2Fpackages%2Fppipe%2Frecent%3Fperiod%3Dmonth&query=%24.data.last_month&colorB=blue&suffix=%2fmonth)\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3479525.svg)](https://doi.org/10.5281/zenodo.3479525)\r\n[![Planet](https://img.shields.io/badge/SupportedBy%3A-Planet%20Ambassador%20Program-brightgreen.svg)](https://www.planet.com/markets/education-and-research/)\r\n[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/samapriya)\r\n\r\nThis tool is designed to facilitate moving data from Planet's API into Google Earth Engine and using a metadata library. The tool downloads data into a local storage and allows you to process the metadata before uploading into Google Earth Engine. This tool has been updated to account for metadata property type by going through each metadata column and then uses the **upload manifest** function to upload images for ingestion to EE. This tool also draws from an additional tool I created with is the [Google Earth Engine Asset Manager Addon](https://github.com/samapriya/gee_asset_manager_addon) This includes the batch upload feature, but now additional tools such as generating reports of Earth Engine assets and querying quota to name just a few. The ambition is apart from helping users 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 the need arises. I have now released this as a [PyPI package](https://pypi.org/project/ppipe/) for easy installation and this will be updated along with the the GitHub package.\r\n\r\nThough this tool is designed to download planet imagery, use [porder](https://github.com/samapriya/porder) to use the new ordersv2 API to download planet imagery. This includes additional filter capabilities along with capability to clip and download.\r\n\r\n**Please note: This tool is in no way an official tool or Planet offering, but is a personal project created and maintained by Samapriya Roy**\r\n\r\nIf you use this tool to download data for your research, and find this tool useful, star and cite it as below\r\n\r\n```\r\nSamapriya Roy. (2019, October 10). samapriya/Planet-GEE-Pipeline-CLI: Planet-GEE-Pipeline-CLI (Version 0.4.8). Zenodo.\r\nhttp://doi.org/10.5281/zenodo.3479525\r\n```\r\n\r\n## Table of contents\r\n* [Installation](#installation)\r\n* [Getting started](#getting-started)\r\n* [Usage examples](#usage-examples)\r\n* [Planet Tools](#planet-tools)\r\n\t* [Planet Key](#planet-key)\r\n\t* [Planet Quota](#planet-quota)\r\n\t* [Download Async](#download-async)\r\n\t* [Download Saved Searches](#download-saved-searches)\r\n\t* [Metadata Parser](#metadata-parser)\r\n* [Earth Engine Tools](#earth-engine-tools)\r\n * [selenium update](#selenium-update)\r\n * [gee selsetup](#gee-selsetup)\r\n\t* [EE User](#ee-user)\r\n\t* [EE Quota](#ee-quota)\r\n\t* [Create](#create)\r\n\t* [Batch uploader](#batch-uploader)\r\n\t* [Asset List](#asset-list)\r\n\t* [Asset Size](#asset-size)\r\n\t* [Task Query](#task-query)\r\n\t* [Assets Access](#assets-access)\r\n\t* [Cancel all tasks](#cancel-all-tasks)\r\n* [Credits](#credits)\r\n\r\n## Installation\r\nThis assumes that you have native python & pip installed in your system, you can test this by going to the terminal (or windows command prompt) and trying\r\n\r\n```python``` and then ```pip list```\r\n\r\nIf you get no errors and you have python 2.7.14 or higher you should be good to go. Please note that I have released this as a python 2.7 but can be easily modified for python 3.\r\n\r\n**Make sure you install OpenSSL from [this page](https://www.openssl.org/)**\r\n\r\n**This toolbox also uses some functionality from GDAL**\r\nFor installing GDAL in Ubuntu\r\n```\r\nsudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update\r\nsudo apt-get install gdal-bin\r\nsudo apt-get install python-gdal\r\n```\r\nFor Windows I found this [guide](https://sandbox.idre.ucla.edu/sandbox/tutorials/installing-gdal-for-windows) from UCLA\r\n\r\nTo install **Planet-GEE-Pipeline-CLI:**\r\nYou can install using two methods\r\n\r\n```pip install ppipe```\r\n\r\nor you can also try\r\n\r\n```\r\ngit clone https://github.com/samapriya/Planet-GEE-Pipeline-CLI.git\r\ncd Planet-GEE-Pipeline-CLI\r\npython setup.py install\r\n```\r\nFor linux use sudo. This release also contains a windows installer which bypasses the need for you to have admin permission, it does however require you to have python in the system path meaning when you open up command prompt you should be able to type python and start it within the command prompt window. Post installation using the installer you can just call ppipe using the command prompt similar to calling python. Give it a go post installation type\r\n\r\n```\r\nppipe -h\r\n```\r\n\r\nInstallation is an optional step; the application can be also run directly by executing ppipe.py script. The advantage of having it installed is being able to execute ppipe as any command line tool. I recommend installation within virtual environment. If you don't want to install, browse into the ppipe folder and try ```python ppipe.py``` to get to the same result.\r\n\r\n## Getting started\r\n\r\nAs usual, to print help:\r\n\r\n```\r\n> ppipe -h\r\nusage: ppipe [-h]\r\n {\r\n ,planetkey,pquota,dasync,savedsearch,metadata,update,selsetup,ee_user,quota,create,selupload,lst,assetsize,tasks,access,ca\r\n ...\r\n\r\nPlanet Pipeline with Google Earth Engine Batch Addons\r\n\r\npositional arguments:\r\n { ,planetkey,pquota,dasync,savedsearch,metadata,update,selsetup,ee_user,quota,create,selupload,lst,assetsize,tasks,access,cancel}\r\n ---------------------------------------\r\n -----Choose from Planet Tools Below-----\r\n ---------------------------------------\r\n planetkey Enter your planet API Key\r\n pquota Prints your Planet Quota Details\r\n dasync Uses the Planet Client Async Downloader to download\r\n Planet Assets: Does not require activation\r\n savedsearch Tool to download saved searches from Planet Explorer\r\n metadata Tool to tabulate and convert all metadata files from\r\n Planet or Digital Globe Assets\r\n -------------------------------------------\r\n ----Choose from Earth Engine Tools Below----\r\n -------------------------------------------\r\n update Updates Selenium drivers for firefox\r\n selsetup Non headless setup for new google account, use if\r\n upload throws errors\r\n ee_user Get Earth Engine API Key & Paste it back to Command\r\n line/shell to change user\r\n quota Print Earth Engine total quota and used quota\r\n create Allows the user to create an asset collection or\r\n folder in Google Earth Engine\r\n selupload Batch Asset Uploader for Planet Items & Assets using\r\n Selenium\r\n lst List assets in a folder/collection or write as text\r\n file\r\n assetsize Prints collection size in Human Readable form & Number\r\n of assets\r\n tasks Queries current task status\r\n [completed,running,ready,failed,cancelled]\r\n access Sets Permissions for items in folder\r\n cancel Cancel all running tasks\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\nTo obtain help for a specific functionality, simply call it with _help_ switch, e.g.: `ppipe upload -h`. If you didn't install ppipe, then you can run it just by going to _ppipe_ directory and running `python ppipe.py [arguments go here]`\r\n\r\n## Usage examples\r\nUsage examples have been segmented into two parts focusing on both planet tools as well as earth engine tools, earth engine tools include additional developments in CLI which allows you to recursively interact with their python API\r\n\r\n## Planet Tools\r\nThe Planet Toolsets consists of tools required to access control and download planet labs assets (PlanetScope and RapidEye OrthoTiles) as well as parse metadata in a tabular form which maybe required by other applications.\r\n\r\n### Planet Key\r\nThis tool basically asks you to input your Planet API Key using a password prompt this is then used for all subsequent tools. This tool now includes an option for a quiet authentication using the API key incase it is unable to invoke an interactive environment such as in Google colaboratory. You can also perform ```planet init``` to set the key as the tool can read from it directly.\r\n\r\n```\r\nusage: ppipe planetkey [-h] [--type TYPE] [--key KEY]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nOptional named arguments:\r\n --type TYPE For direct key entry type --type quiet\r\n --key KEY Your Planet API Key\r\n```\r\n\r\nIf using on a private machine the Key is saved as a csv file for all future runs of the tool.\r\n\r\n### Planet Quota\r\nThis tool prints your Planet quota including allocation name, Total quota, quota used and quota remaining. Calling it is simple\r\n\r\n```\r\nppipe pquota\r\n```\r\n\r\n### Download Async\r\nThis tool is built as a wrapper around the Planet Client's own download tool. The tool included in the planet client is multithreaded and allows the user to activate, poll and download at the same time. This will allow you to pass geometry in terms of a geojson files or all filter like start and end date and time using the .json files you created using the ```aoijson``` tool earlier.\r\n\r\n```\r\nusage: ppipe dasync [-h] [--infile INFILE] [--item ITEM] [--asset ASSET]\r\n [--local LOCAL] [--start START] [--end END]\r\n [--cmin CMIN] [--cmax CMAX]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --infile INFILE Choose a geojson from geojson.io or the aoi-json you\r\n created earlier using ppipe aoijson\r\n --item ITEM Choose from Planet Item types Example: PSScene4Band,\r\n PSOrthoTile, REOrthoTile etc\r\n --asset ASSET Choose an asset type example: anlaytic,\r\n analytic_dn,analytic_sr,analytic_xml etc\r\n --local LOCAL Local Path where Planet Item and asset types are saved\r\n\r\nOptional named arguments:\r\n --start START Start date filter format YYYY-MM-DD\r\n --end END End date filter format YYYY-MM-DD\r\n --cmin CMIN Cloud cover minimum between 0-1\r\n --cmax CMAX Cloud cover maximum between 0-1\r\n```\r\nA setup using geojson needs to include other filters too and a typical setup would be\r\n\r\n```\r\nppipe dasync --infile \"C:\\Users\\johndoe\\geometry.geojson\" --item \"PSScene4Band\" --asset \"analytic\" --local \"C:\\planet\" --start \"2018-06-01\" --end \"2018-08-01\" --cmin 0 --cmax 0.4\r\n```\r\n\r\nUsing a stuctured json file that you might have created earlier means you don't have to pass additional filters everytime\r\n\r\n```\r\npython ppipe.py dasync --infile \"C:\\Users\\johndoe\\geometry.json\" --item \"PSScene4Band\" --asset \"analytic_xml\" --local \"C:\\planet_demo\"\r\n```\r\n\r\nHowever, you can still decide to pass the filters and the filters you pass will overwrite existing filters\r\n\r\n```\r\npython ppipe.py dasync --infile \"C:\\Users\\johndoe\\geometry.json\" --item \"PSScene4Band\" --asset \"analytic_xml\" --local \"C:\\planet_demo\" --start \"2018-06-01\" --end \"2018-08-01\" --cmin \"0\" --cmax 0.4\r\n```\r\n\r\n### Download Saved Searches\r\nDownload assets from saved searches which are saved in your planet explorer.\r\n\r\n```\r\nusage: ppipe savedsearch [-h] [--name NAME] [--asset ASSET] [--local LOCAL]\r\n [--limit LIMIT]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --name NAME Name of your saved search(It is case sensitive)\r\n --asset ASSET Choose asset type analytic, analytic_xml, analytic_sr,\r\n analytic_dn etc\r\n --local LOCAL Local Path (full path address) where PlanetAssets are saved\r\n\r\nOptional named arguments:\r\n --limit LIMIT Choose number of assets you want to download\r\n ```\r\n\r\n### Metadata Parser\r\nThe metadata tab is a more powerful tool and consists of metadata parsing for All PlanetScope and RapiEye Assets along with Digital Globe MultiSpectral and DigitalGlobe PanChromatic datasets. This was developed as a standalone to process xml metadata files from multiple sources and is important step is the user plans to upload these assets to Google Earth Engine.\r\n\r\n```\r\nusage: ppipe metadata [-h] [--asset ASSET] [--mf MF] [--mfile MFILE]\r\n [--errorlog ERRORLOG] [--dir DIR]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --asset ASSET Choose PS OrthoTile(PSO)|PS OrthoTile DN(PSO_DN)|PS\r\n OrthoTile Visual(PSO_V)|PS4Band Analytic(PS4B)|PS4Band\r\n DN(PS4B_DN)|PS4Band SR(PS4B_SR)|PS3Band\r\n Analytic(PS3B)|PS3Band DN(PS3B_DN)|PS3Band\r\n Visual(PS3B_V)|RE OrthoTile (REO)|RE OrthoTile\r\n Visual(REO_V)|DigitalGlobe\r\n MultiSpectral(DGMS)|DigitalGlobe\r\n Panchromatic(DGP)|PolarGeospatial CenterDEM\r\n Strip(PGCDEM)?\r\n --mf MF Metadata folder?\r\n --mfile MFILE Metadata filename to be exported along with Path.csv\r\n --errorlog ERRORLOG Errorlog to be exported along with Path.csv\r\n\r\nOptional named arguments:\r\n --dir DIR Path to Image Directory to be used to get ImageTags\r\n with metadata. use only with PS4B_SR\r\n```\r\n\r\n## Earth Engine Tools\r\nThe 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. This is also a seperate package for earth engine users to use and can be downloaded [here](https://github.com/samapriya/gee_asset_manager_addon)\r\n\r\n### selenium update\r\n**This is a key step since all upload function depends on this step, so make sure you run this**. This downloads selenium driver and places to your local directory for windows and Linux subsystems. This is the first step to use selenium supported upload.\r\n\r\n``` ppipe update```\r\n\r\n### gee selsetup\r\nOnce in a while the geckodriver requires manual input before signing into the google earth engine, this tool will allow you to interact with the initialization of Google Earth Engine code editor window. It allows the user to specify the account they want to use, and should only be needed once.\r\n\r\n```geeup selsetup```\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. This command takes in no arguments.\r\n\r\n```ppipe ee_user```\r\n### EE Quota\r\nThis tool prints earthengine quota tools, used and remaining quota. No argument is required\r\n\r\n```ppipe quota```\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: ppipe.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\r\n### Batch uploader\r\nThe script creates an Image Collection from GeoTIFFs in your local directory. By default, the image name in the collection is the same as the local directory name; with the optional parameter you can provide a different name.You have to process the metadata for images, which is covered in the next section along with a manifest type for Planet image and asset:\r\n[Metadata parser](#metadata-parser).\r\n\r\n```\r\nusage: ppipe selupload [-h] --source SOURCE --dest DEST [-m METADATA]\r\n [--large] [--nodata NODATA] [--bands BANDS]\r\n [-u USER] [-b BUCKET]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --source SOURCE Path to the directory with images for upload.\r\n --dest DEST Destination. Full path for upload to Google Earth\r\n Engine, e.g. users/pinkiepie/myponycollection\r\n -u USER, --user USER Google account name (gmail address).\r\n\r\nOptional named arguments:\r\n -m METADATA, --metadata METADATA\r\n Path to CSV with metadata.\r\n --large (Advanced) Use multipart upload. Might help if upload\r\n of large files is failing on some systems. Might cause\r\n other issues.\r\n --nodata NODATA The value to burn into the raster as NoData (missing\r\n data)\r\n --bands BANDS Comma-separated list of names to use for the image\r\n bands. Spacesor other special characters are not\r\n allowed.\r\n -b BUCKET, --bucket BUCKET\r\n Google Cloud Storage bucket name.\r\n```\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: ppipe 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: ppipe 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### Task Query\r\nThis script counts all currently running,ready,completed,failed and cancelled tasks along with failed tasks. This is linked to the account you initialized with your google earth engine account. This takes no argument.\r\n```\r\nusage: ppipe.py tasks [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nppipe.py tasks\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: ppipe.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### 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 using this tool\r\n```\r\nusage: ppipe cancel [-h]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n```\r\n\r\n### Credits\r\n[JetStream](https://jetstream-cloud.org/) A portion of the work is suported by JetStream Grant TG-GEO160014.\r\n\r\nAlso supported by [Planet Labs Ambassador Program](https://www.planet.com/markets/ambassador-signup/)\r\n\r\nOriginal upload function adapted from [Lukasz's asset manager tool](https://github.com/tracek/gee_asset_manager)\r\n\r\n\r\n# Changelog\r\n\r\n### v0.4.9\r\n- fixed issue with selsetup\r\n\r\n### v0.4.8\r\n- fixed raw_input vs input for py2 and py3 cases\r\n- updated selenium setup path for windows vs other operating systems\r\n\r\n### v0.4.7\r\n- Download selenium drivers for all operating systems\r\n- updated asset size, acl changer and other tools\r\n- fixed metadata tool to work with python3\r\n- overall general improvements to the tool and updates\r\n- added selenium setup tools\r\n\r\n### v0.4.6\r\n- added fix for downloading selenium drivers\r\n- improved error handling\r\n\r\n### v0.4.4\r\n- Fixed selenium download path\r\n- Streamlined overall functions of the tool\r\n- Handles metadata for clipped assets (use [porder](https://github.com/samapriya/porder) to clip)\r\n- Updated selenium uploader to function with earthengine-api\r\n- Overall improvements and stability check\r\n\r\n### v0.4.3\r\n- Added selenium uploader to upload images to Earth Engine after auth issues\r\n- Overall improvements to the tools and added notifications and contribution notices\r\n\r\n### v0.4.1\r\n- Major improvements to earth engine tools including better task reporting, batch copy and move\r\n- Improvement to the access tool which allows you to add read/write permissions for entire EE folder and collections for specific users\r\n\r\n### v0.3.8\r\n\r\n- Now include a tool to print your planet quota details ```pquota```\r\n- Tool includes ```dasync``` which uses the [Planet's Python Client Downloader](https://github.com/planetlabs/planet-client-python) to activate, download using multithreading\r\n\r\n### v0.3.7\r\n\r\n- Now allows users to download from saved searches in planet explorer\r\n\r\n### v0.3.6\r\n\r\n- Now handles complex geometry by using a bounding box for GeoJSON files\r\n\r\n### v0.3.5\r\n\r\n- Fixed issues with space function\r\n- Improved file size parsing\r\n\r\n### v0.3.2\r\n\r\n- Generalized CLI arguments\r\n- Fixed subprocess shell issue for upload\r\n\r\n### v0.3.0\r\n\r\n- Allows for quiet authentication for use in Google Colab or non interactive environments\r\n- Improved planet key entry and authentication protocols\r\n\r\n### v0.2.91\r\n\r\n- Fixed issue with Surface Reflectance metadata and manifest lib\r\n- Improved ingestion support for (PSScene4Band analytic_Sr)[PS4B_SR]\r\n\r\n### v0.2.9\r\n\r\n- Fixed issues with generating id list\r\n- Improved overall security of command calls\r\n\r\n### v0.2.2\r\n\r\n- Major improvements to ingestion using manifest ingest in Google Earth Engine\r\n- Contains manifest for all commonly used Planet Data item and asset combinations\r\n- Added additional tool to Earth Engine Enhancement including quota check before upload to GEE\r\n\r\n### v0.2.1\r\n- Fixed initialization loop issue\r\n\r\n### v0.2.0\r\n- Metadata parser and Uploader Can now handle PlanetScope 4 Band Surface Reflectance Datasets\r\n- General Improvements\r\n\r\n### v0.1.9\r\n- Changes made to reflect updated GEE Addon tools\r\n- general improvements\r\n\r\n### v0.1.8\r\n- Minor fixes to parser and general improvements\r\n- Planet Key is now stored in a configuration folder which is safer \"C:\\users\\.config\\planet\"\r\n- Earth Engine now requires you to assign a field type for metadata meaning an alphanumeric column like satID cannot also have numeric values unless specified explicitly . Manifest option has been added to handle this (just use -mf \"planetscope\")\r\n- Added capability to query download size and local disk capacity before downloading planet assets.\r\n- Added the list function to generate list of collections or folders including reports\r\n- Added the collection size tool which allows you to estimate total size or quota used from your allocated quota.\r\n- ogr2ft feature is removed since Earth Engine now allows vector and table uploading.\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/Planet-GEE-Pipeline-CLI", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "ppipe", "package_url": "https://pypi.org/project/ppipe/", "platform": "", "project_url": "https://pypi.org/project/ppipe/", "project_urls": { "Homepage": "https://github.com/samapriya/Planet-GEE-Pipeline-CLI" }, "release_url": "https://pypi.org/project/ppipe/0.4.9/", "requires_dist": [ "bs4 (>=0.0.1)", "clipboard (>=0.0.4)", "earthengine-api (>=0.1.138)", "future (>=0.16.0)", "google-cloud-storage (>=1.5.0)", "planet (>=1.1.0)", "pandas (>=0.23.0)", "psutil (>=5.4.5)", "pyOpenSSL (>=19.0.0)", "pyshp (>=1.2.12)", "pytest (>=3.5.1)", "requests-toolbelt (>=0.8.0)", "retrying (>=1.3.3)", "simplejson (>=3.15.0)", "selenium (>=3.13.0)", "pathlib (>=1.0.1)", "lxml (>=4.1.1)", "beautifulsoup4 (>=4.5.1)", "pypiwin32; platform_system == \"Windows\"", "pywin32; platform_system == \"Windows\"", "pySmartDL (==1.2.5); python_version < \"3.4\"", "pySmartDL (>=1.3.1); python_version > \"3.4\"" ], "requires_python": "", "summary": "Planet API Pipeline & Google Earth Engine Batch Assets Manager with Addons", "version": "0.4.9", "yanked": false, "yanked_reason": null }, "last_serial": 6033903, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "8b3b18248c6edbb453b6254beff3433f", "sha256": "4b5df22b65702dbaa4ec8c52f7f0843b00ec807468016cca4063b171188f21d3" }, "downloads": -1, "filename": "ppipe-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8b3b18248c6edbb453b6254beff3433f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325221, "upload_time": "2018-05-17T03:06:52", "upload_time_iso_8601": "2018-05-17T03:06:52.982755Z", "url": "https://files.pythonhosted.org/packages/d6/13/3d16b982de887842fefd1e82c40f07b343136a6a4437d1eab9f01cd8f55b/ppipe-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "6e40f9fd663140ad2c0665ce2dcd0f58", "sha256": "1e0b8764ea09f8c45bde04f616675ee7fc3549a0c43b8d4ffd6fd70e43b7d90c" }, "downloads": -1, "filename": "ppipe-0.2.3.tar.gz", "has_sig": false, "md5_digest": "6e40f9fd663140ad2c0665ce2dcd0f58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325506, "upload_time": "2018-05-17T03:23:43", "upload_time_iso_8601": "2018-05-17T03:23:43.226495Z", "url": "https://files.pythonhosted.org/packages/83/58/f3d216c6d1e7af7a1f7b1b6030b68da2dbc7ad015fbb73c79a251e82e6c6/ppipe-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "266d0253ab6cd62f89f42c5ab1c4f2c6", "sha256": "ae26a950990382e29823240abc6feb5ab0d1e182c1d1dd78bb8d4a605a46d584" }, "downloads": -1, "filename": "ppipe-0.2.4.tar.gz", "has_sig": false, "md5_digest": "266d0253ab6cd62f89f42c5ab1c4f2c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325692, "upload_time": "2018-05-17T03:34:11", "upload_time_iso_8601": "2018-05-17T03:34:11.246614Z", "url": "https://files.pythonhosted.org/packages/6c/d5/bb0d56d17dfc80c3ee531835342d1d308134badc7d7a67aa51a1d91a5d71/ppipe-0.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "63ba659c057fe2ff78f964d27ce4d9ff", "sha256": "80562daff73afcb6f0d9c3f91cf7cfc22c352b413e2c51ecd783d00692d878a9" }, "downloads": -1, "filename": "ppipe-0.2.5.tar.gz", "has_sig": false, "md5_digest": "63ba659c057fe2ff78f964d27ce4d9ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325700, "upload_time": "2018-05-17T13:52:27", "upload_time_iso_8601": "2018-05-17T13:52:27.690202Z", "url": "https://files.pythonhosted.org/packages/b3/ff/25fed37aa42e22ee029a6f88fca2c284de2ae7b1cbe93d803565d1b089b4/ppipe-0.2.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "5f66f74c7f9f5fe9c1abc42eb38202c9", "sha256": "89df47a4c3f9e15450cf3d6e77b748b388226a5c593b7ed353d1ec9bec144dd2" }, "downloads": -1, "filename": "ppipe-0.2.6.tar.gz", "has_sig": false, "md5_digest": "5f66f74c7f9f5fe9c1abc42eb38202c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325683, "upload_time": "2018-05-17T14:13:27", "upload_time_iso_8601": "2018-05-17T14:13:27.690265Z", "url": "https://files.pythonhosted.org/packages/71/ed/4ecb145e6cca95e93fbacddd305c622889c8a3411f27ad8202529504e718/ppipe-0.2.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.6b0": [ { "comment_text": "", "digests": { "md5": "eff9fa841e87ae327f0cfbc814d17157", "sha256": "d51a3f1d46f51dd2481890d04561ac472c39ad3799b82c77b8d0964fe683d3f4" }, "downloads": -1, "filename": "ppipe-0.2.6b0.tar.gz", "has_sig": false, "md5_digest": "eff9fa841e87ae327f0cfbc814d17157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325694, "upload_time": "2018-05-17T14:38:36", "upload_time_iso_8601": "2018-05-17T14:38:36.086495Z", "url": "https://files.pythonhosted.org/packages/eb/f0/5b53dde2068c8368a8214e241ab3093cb4ac732a58794a2bdfbdab430071/ppipe-0.2.6b0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "67db753ff786a8d109b840e802acee6d", "sha256": "b3653daea2dc9c51c0609027f59247e1249b4526a494fcb079e155a602fd384f" }, "downloads": -1, "filename": "ppipe-0.2.7.tar.gz", "has_sig": false, "md5_digest": "67db753ff786a8d109b840e802acee6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325686, "upload_time": "2018-05-17T14:44:09", "upload_time_iso_8601": "2018-05-17T14:44:09.095199Z", "url": "https://files.pythonhosted.org/packages/2e/8f/1966838cc3bfb201926a002cc4321dd88323897b0137dd515d0f99fda349/ppipe-0.2.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "aed0d32d04c84185ef7b76088d17332c", "sha256": "2e1bffc2c41680c2b7d004453c849125858a630fc6e3f7ee75aa74b1f5c702cb" }, "downloads": -1, "filename": "ppipe-0.2.8.tar.gz", "has_sig": false, "md5_digest": "aed0d32d04c84185ef7b76088d17332c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325903, "upload_time": "2018-05-19T21:22:14", "upload_time_iso_8601": "2018-05-19T21:22:14.837143Z", "url": "https://files.pythonhosted.org/packages/87/8d/896157d8dd2643f33809105a90e4662d513dcdfa664022f8f187386199a5/ppipe-0.2.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "04d198fc362435bc8cce07d0ce43c892", "sha256": "3bcde3f50227e337dfbc81d3052dbb6c0d6af9f5a03e1aa29f33b57a8357362a" }, "downloads": -1, "filename": "ppipe-0.2.9.tar.gz", "has_sig": false, "md5_digest": "04d198fc362435bc8cce07d0ce43c892", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3325972, "upload_time": "2018-05-31T17:06:09", "upload_time_iso_8601": "2018-05-31T17:06:09.826455Z", "url": "https://files.pythonhosted.org/packages/3b/36/166df63502b30414189d130888e387671b0826420268fb0de74d5241db3b/ppipe-0.2.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.91": [ { "comment_text": "", "digests": { "md5": "8a91c9be9c2fe22fa78be84c5f3e2e9e", "sha256": "ef2db29f43398cb78702763e6b0a26e97f6b147670dd6bca2cd9e639323df360" }, "downloads": -1, "filename": "ppipe-0.2.91.tar.gz", "has_sig": false, "md5_digest": "8a91c9be9c2fe22fa78be84c5f3e2e9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326162, "upload_time": "2018-06-02T18:31:51", "upload_time_iso_8601": "2018-06-02T18:31:51.313118Z", "url": "https://files.pythonhosted.org/packages/db/38/ff95b8d69efa4151c2adb25f65a7b2260cb8574aaeadd3a91802e184df63/ppipe-0.2.91.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d6cd8d221e8b3f72dd05222153d1b5c3", "sha256": "00e7b500b896bbc2d21de5ce40a64fb7465b3ad11348c5e8901ca6c6dc6027e9" }, "downloads": -1, "filename": "ppipe-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d6cd8d221e8b3f72dd05222153d1b5c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326436, "upload_time": "2018-06-23T13:00:53", "upload_time_iso_8601": "2018-06-23T13:00:53.317565Z", "url": "https://files.pythonhosted.org/packages/78/d2/e60b0eea74a445d35d3042cf56cb79c2cd948717b06aeaa6ef532b1a453e/ppipe-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "301a55e801db3df59e9a09d9e4e21523", "sha256": "7a8286a312122574d2947a6ef686b2ac86caa7f3fb7a1239b72163381b06d283" }, "downloads": -1, "filename": "ppipe-0.3.1.tar.gz", "has_sig": false, "md5_digest": "301a55e801db3df59e9a09d9e4e21523", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326440, "upload_time": "2018-06-24T18:56:11", "upload_time_iso_8601": "2018-06-24T18:56:11.653091Z", "url": "https://files.pythonhosted.org/packages/21/83/2b738f38dc79bdd596d8811d988e4f975be1837139476089e3cd607632c0/ppipe-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "46c566a958abdabbb3d2c996956e90e7", "sha256": "46d0c41d97b035f011f58f89dd7724208d862a57c758647bbb38bde45edfee91" }, "downloads": -1, "filename": "ppipe-0.3.2.tar.gz", "has_sig": false, "md5_digest": "46c566a958abdabbb3d2c996956e90e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326487, "upload_time": "2018-06-25T20:43:46", "upload_time_iso_8601": "2018-06-25T20:43:46.622322Z", "url": "https://files.pythonhosted.org/packages/86/ce/957680cf52437bc6e359ea3b178e4bd7adce0ab4b6c68ee31c378a5ae89d/ppipe-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "39ccf1c94260be93b547b2f8da08fb5d", "sha256": "96a78717c532f3b4b4bbe4958e6dc4e99e1d3bac0a36b16758b3164d3d3485b4" }, "downloads": -1, "filename": "ppipe-0.3.3.tar.gz", "has_sig": false, "md5_digest": "39ccf1c94260be93b547b2f8da08fb5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326484, "upload_time": "2018-06-25T21:33:43", "upload_time_iso_8601": "2018-06-25T21:33:43.047698Z", "url": "https://files.pythonhosted.org/packages/80/4d/713cd04d0bac56d68cb18fefc55cdca172cb853a785f188eb80a6c81961c/ppipe-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "5e605a3af90efe9f9fa99ec1d675faeb", "sha256": "9e4596d4e28c7e3b1aa4bdbb049751cb0ec31e38b8e78f58684b7deb2fb61ba1" }, "downloads": -1, "filename": "ppipe-0.3.4.tar.gz", "has_sig": false, "md5_digest": "5e605a3af90efe9f9fa99ec1d675faeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326480, "upload_time": "2018-06-26T00:20:56", "upload_time_iso_8601": "2018-06-26T00:20:56.554033Z", "url": "https://files.pythonhosted.org/packages/6f/15/ee53e27301933ae0361dfe7a573850e6e4d0cb8ebefec663c9bde8a4ad34/ppipe-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "79d1fa1d065491a8e0bb582d227f2274", "sha256": "e2f6958f895fe660c98797b887956565a894385154743d314a50f20298fa957c" }, "downloads": -1, "filename": "ppipe-0.3.5.tar.gz", "has_sig": false, "md5_digest": "79d1fa1d065491a8e0bb582d227f2274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326483, "upload_time": "2018-06-27T23:44:23", "upload_time_iso_8601": "2018-06-27T23:44:23.138413Z", "url": "https://files.pythonhosted.org/packages/af/c1/8c13cfb643e6372592f685e1c13af6a2a070e81d106b900a40b1a59c706f/ppipe-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "b1565bbafd89ebe4cdb6002b072feaff", "sha256": "feefae2227bebc9aadd8f39e6e22e92e1753f027bba408d0a922b5c612a9d45b" }, "downloads": -1, "filename": "ppipe-0.3.6.tar.gz", "has_sig": false, "md5_digest": "b1565bbafd89ebe4cdb6002b072feaff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3326824, "upload_time": "2018-07-02T18:29:37", "upload_time_iso_8601": "2018-07-02T18:29:37.936531Z", "url": "https://files.pythonhosted.org/packages/d1/09/31296fe56433a777d8832a3d8fc06a3c7146b0fe79cd698d11f780e007fc/ppipe-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "3fb64251c018723dff3c08035b6beb42", "sha256": "407cf2b0699578d46ac73bae1ab1bd132166f3c841cb54257932dd7024d412f9" }, "downloads": -1, "filename": "ppipe-0.3.7.tar.gz", "has_sig": false, "md5_digest": "3fb64251c018723dff3c08035b6beb42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3327804, "upload_time": "2018-07-04T17:21:02", "upload_time_iso_8601": "2018-07-04T17:21:02.390777Z", "url": "https://files.pythonhosted.org/packages/9e/a1/3bacf1952a4c1e2f71888cdb35946fff93b0f11876dc67290d4823cc4fee/ppipe-0.3.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "398883b212526faa9d9da1fcd3e9002d", "sha256": "a5b5c3be1573953937ca696c7bb0edff271dda1f8e52e9718e9260069a8efd0a" }, "downloads": -1, "filename": "ppipe-0.3.8.tar.gz", "has_sig": false, "md5_digest": "398883b212526faa9d9da1fcd3e9002d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3329804, "upload_time": "2018-08-07T16:37:13", "upload_time_iso_8601": "2018-08-07T16:37:13.853816Z", "url": "https://files.pythonhosted.org/packages/d2/37/bb8a5535691961aef5de8c4eac4812cc861f8ba1cb8a415d21f4243d5ae1/ppipe-0.3.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "84731578b75183930ee174d21c899114", "sha256": "e910ee0baa063883e9ed64769964c8cf352583fb6bdae657e3a474697e4e5460" }, "downloads": -1, "filename": "ppipe-0.3.9.tar.gz", "has_sig": false, "md5_digest": "84731578b75183930ee174d21c899114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3329825, "upload_time": "2018-08-08T05:09:26", "upload_time_iso_8601": "2018-08-08T05:09:26.718644Z", "url": "https://files.pythonhosted.org/packages/0f/65/4f877ee260c98a0c36d67f3c67da4094717d5f14cae49be6f0a93cb95753/ppipe-0.3.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "be59b2fbeeeb59cfaf785971bf74e175", "sha256": "1fa917ccfc90925b509b5fe1690b83fc224695c3ed1f576d51237e08edb217a5" }, "downloads": -1, "filename": "ppipe-0.4.0.tar.gz", "has_sig": false, "md5_digest": "be59b2fbeeeb59cfaf785971bf74e175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3356078, "upload_time": "2018-09-01T14:22:25", "upload_time_iso_8601": "2018-09-01T14:22:25.793540Z", "url": "https://files.pythonhosted.org/packages/6a/e5/7719c22f457ccae5fad9a0d1a70ab1efb4068532c08b819cc0c7ca73379e/ppipe-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "8257ac436c31b17ff6c41312641e9378", "sha256": "e751800d9f85215794df1bee0aa9ef811f5d563bc35a338a57b053c5b7c8d021" }, "downloads": -1, "filename": "ppipe-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8257ac436c31b17ff6c41312641e9378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3354983, "upload_time": "2018-11-10T23:13:09", "upload_time_iso_8601": "2018-11-10T23:13:09.987983Z", "url": "https://files.pythonhosted.org/packages/ff/97/1429063d93039c4a46a7311c95d5f55c759414cbbbd4c5174adff0022f3f/ppipe-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "993d68be1dcc70dfe8f9d463a188bf2e", "sha256": "cdfccf2f82a1892488020de16e2596a241d68f77cef1f0cdafe0f64899921b15" }, "downloads": -1, "filename": "ppipe-0.4.2.tar.gz", "has_sig": false, "md5_digest": "993d68be1dcc70dfe8f9d463a188bf2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3354978, "upload_time": "2018-11-12T05:08:24", "upload_time_iso_8601": "2018-11-12T05:08:24.012226Z", "url": "https://files.pythonhosted.org/packages/4a/c2/17450838ff790b763bddb033ec81eba018e894bd349522af058327156eb7/ppipe-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "56b77aeceedcf5449da9ca4735221c09", "sha256": "103228df1ebf1fd9ef83dc7d30847a1a4b3f5a5f2fff1ecfc7b3f20e10741df5" }, "downloads": -1, "filename": "ppipe-0.4.3.tar.gz", "has_sig": false, "md5_digest": "56b77aeceedcf5449da9ca4735221c09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3356548, "upload_time": "2019-02-07T03:22:48", "upload_time_iso_8601": "2019-02-07T03:22:48.359970Z", "url": "https://files.pythonhosted.org/packages/bc/58/6aaf3e0a23ca92e7753efb044b48ac3df9f0e9fd2126dfc0ce99f844cfaf/ppipe-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "4dd5dd6bd5598be8567060b0ef4f147c", "sha256": "abee7681d07dcf511ca79b460612b22b0feeb6e13e5f1177830a44814fe6be01" }, "downloads": -1, "filename": "ppipe-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dd5dd6bd5598be8567060b0ef4f147c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3374500, "upload_time": "2019-05-09T14:13:21", "upload_time_iso_8601": "2019-05-09T14:13:21.144557Z", "url": "https://files.pythonhosted.org/packages/86/ea/2d9c2654680769992e8c51ccc7a98800db960c0d06f31a63e1f6d60c6eb7/ppipe-0.4.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ab3321fc8144283674e039047fc5b42c", "sha256": "a7d6d032b81b0bc0c929304668b2180b39d6e9647e4cc5baccb9c2a74da05471" }, "downloads": -1, "filename": "ppipe-0.4.4.tar.gz", "has_sig": false, "md5_digest": "ab3321fc8144283674e039047fc5b42c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3340906, "upload_time": "2019-05-09T14:13:25", "upload_time_iso_8601": "2019-05-09T14:13:25.781346Z", "url": "https://files.pythonhosted.org/packages/50/41/07363e7f02af12ea51518de87af3067e1b0bce81cebd9675ef6e02fd00fb/ppipe-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "db532ac11d99d4a6a20fa020d084f65a", "sha256": "06fed899cf38561ad52d03dcccfb18ba3e0e5d19a4d3a858adcbecfad3dda937" }, "downloads": -1, "filename": "ppipe-0.4.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db532ac11d99d4a6a20fa020d084f65a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3374545, "upload_time": "2019-05-31T17:12:15", "upload_time_iso_8601": "2019-05-31T17:12:15.659230Z", "url": "https://files.pythonhosted.org/packages/db/9d/1fc5b37842f69a5025d237c15c296ac7040b98d10b1597332791876041ad/ppipe-0.4.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "12248380e924230cbb3487ec5aa09bcb", "sha256": "bfab38cb935c2cb08e989abf0e20f80a43cef2a48acb56d2777a804a01f09514" }, "downloads": -1, "filename": "ppipe-0.4.5.tar.gz", "has_sig": false, "md5_digest": "12248380e924230cbb3487ec5aa09bcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3340948, "upload_time": "2019-05-31T17:12:20", "upload_time_iso_8601": "2019-05-31T17:12:20.262976Z", "url": "https://files.pythonhosted.org/packages/57/a3/f9ac0f3956610ef1b9c4a0ff12ee6ba4b8364bd290c845d51b7ab16222a5/ppipe-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "2a9497d460d6626d2a928eccfffc78d0", "sha256": "e739a27479f43aed5ca2a1a5fe3a82485b97322cbf7352fdd6e87a225b789e29" }, "downloads": -1, "filename": "ppipe-0.4.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a9497d460d6626d2a928eccfffc78d0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3374594, "upload_time": "2019-07-29T13:53:37", "upload_time_iso_8601": "2019-07-29T13:53:37.496882Z", "url": "https://files.pythonhosted.org/packages/9b/16/2bf1fff6aa322d619eade27b3ddf5d5bbdc7f8306753e7a931e2a617a98d/ppipe-0.4.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cd04103a1c8a3f737bb4ad7ecba7ff50", "sha256": "1866588d8a3235ffa4670436be2547d2a6077f557a16e18cf5d26e3097458413" }, "downloads": -1, "filename": "ppipe-0.4.6.tar.gz", "has_sig": false, "md5_digest": "cd04103a1c8a3f737bb4ad7ecba7ff50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3340949, "upload_time": "2019-07-29T13:53:42", "upload_time_iso_8601": "2019-07-29T13:53:42.295755Z", "url": "https://files.pythonhosted.org/packages/96/31/dd7461542f59da0976a2dfd885e5fd83446fd883422a10fcf59c674bb548/ppipe-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "e32bcad298cc25fb800af56672dc4105", "sha256": "7287c83222fa2028902fe1dde252688638c0fc9797b15f9f13f2dcd853ce0ded" }, "downloads": -1, "filename": "ppipe-0.4.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e32bcad298cc25fb800af56672dc4105", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3369972, "upload_time": "2019-10-05T04:15:50", "upload_time_iso_8601": "2019-10-05T04:15:50.906786Z", "url": "https://files.pythonhosted.org/packages/cc/df/6a7cadc88d37d86bcdf6d7d83b2266c904a24bf16e378fcd2f247e74ae77/ppipe-0.4.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ef7155640f74824c8589be6d189371be", "sha256": "b94a164f07733d868f1f47868dada53adbaba91c4293981d96572090fbe36016" }, "downloads": -1, "filename": "ppipe-0.4.7.tar.gz", "has_sig": false, "md5_digest": "ef7155640f74824c8589be6d189371be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3336892, "upload_time": "2019-10-05T04:15:56", "upload_time_iso_8601": "2019-10-05T04:15:56.063453Z", "url": "https://files.pythonhosted.org/packages/4e/0b/c6336b262443f492f3c5db49a24896b16afa401a9a7f2714078734a90219/ppipe-0.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "415799139686e124342fe493413f5ab5", "sha256": "5e53c7b41ea3956e940cf8dbee04d52ce122cd387c30f5cb78167c4bdc6b64f5" }, "downloads": -1, "filename": "ppipe-0.4.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "415799139686e124342fe493413f5ab5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3370160, "upload_time": "2019-10-10T15:02:44", "upload_time_iso_8601": "2019-10-10T15:02:44.755723Z", "url": "https://files.pythonhosted.org/packages/5a/db/6159db0a140168b2bd889585cee12a84afc38fe31e97e92eb1229a34639c/ppipe-0.4.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a11e7389544a399a4f558f36d5ede208", "sha256": "7175da19e38bc146c36ffe5eca936486068333e6ce938d0dac03920d5f3f9925" }, "downloads": -1, "filename": "ppipe-0.4.8.tar.gz", "has_sig": false, "md5_digest": "a11e7389544a399a4f558f36d5ede208", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3338433, "upload_time": "2019-10-10T15:02:50", "upload_time_iso_8601": "2019-10-10T15:02:50.906782Z", "url": "https://files.pythonhosted.org/packages/98/43/d154e52d392760c3038abda137c422d84c9bef05cfde4ba92a66b3a20495/ppipe-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "51f97f9a49fcda28b6db32a12c359bc1", "sha256": "01c42df9e9c651dab1c7d8454888f39d4b3337d5d04ceac8753d55d8e10a68dc" }, "downloads": -1, "filename": "ppipe-0.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51f97f9a49fcda28b6db32a12c359bc1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3370314, "upload_time": "2019-10-26T13:58:11", "upload_time_iso_8601": "2019-10-26T13:58:11.893485Z", "url": "https://files.pythonhosted.org/packages/a5/80/6ab70f22dca811cbfb812f11ec80651724e1d7fe6eb19932e01c953a2c63/ppipe-0.4.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5e8377410718668622a180456903f53", "sha256": "549e8cdd262a9815b9fb817f3b97d0dc94770334f0c4a7427c3a21f97a0119cc" }, "downloads": -1, "filename": "ppipe-0.4.9.tar.gz", "has_sig": false, "md5_digest": "b5e8377410718668622a180456903f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3338753, "upload_time": "2019-10-26T13:58:16", "upload_time_iso_8601": "2019-10-26T13:58:16.664551Z", "url": "https://files.pythonhosted.org/packages/e4/73/a9e076627a42ce9774bae0df2b052b10a13109663ffb9b6cde4f8b5c5b75/ppipe-0.4.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "51f97f9a49fcda28b6db32a12c359bc1", "sha256": "01c42df9e9c651dab1c7d8454888f39d4b3337d5d04ceac8753d55d8e10a68dc" }, "downloads": -1, "filename": "ppipe-0.4.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51f97f9a49fcda28b6db32a12c359bc1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3370314, "upload_time": "2019-10-26T13:58:11", "upload_time_iso_8601": "2019-10-26T13:58:11.893485Z", "url": "https://files.pythonhosted.org/packages/a5/80/6ab70f22dca811cbfb812f11ec80651724e1d7fe6eb19932e01c953a2c63/ppipe-0.4.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b5e8377410718668622a180456903f53", "sha256": "549e8cdd262a9815b9fb817f3b97d0dc94770334f0c4a7427c3a21f97a0119cc" }, "downloads": -1, "filename": "ppipe-0.4.9.tar.gz", "has_sig": false, "md5_digest": "b5e8377410718668622a180456903f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3338753, "upload_time": "2019-10-26T13:58:16", "upload_time_iso_8601": "2019-10-26T13:58:16.664551Z", "url": "https://files.pythonhosted.org/packages/e4/73/a9e076627a42ce9774bae0df2b052b10a13109663ffb9b6cde4f8b5c5b75/ppipe-0.4.9.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }