{ "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": "# pobatch: porder wrapper for Ordersv2 Batch Client\r\n![35ffb6a5-2b6f-4bd0-92b9-c974f0ede76e_200x200](https://user-images.githubusercontent.com/6677629/58644819-10500980-82d0-11e9-843b-9eea7f735be1.png) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3263015.svg)](https://doi.org/10.5281/zenodo.3263015)\r\n[![PyPI version](https://badge.fury.io/py/pobatch.svg)](https://badge.fury.io/py/pobatch)\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n\r\n\r\n**This tool is an add-on to the porder tool, so [read about the project here](https://github.com/samapriya/porder) and make sure you take additional installation steps before starting with this**. This tool fits the need to order large orders in terms of spatial and temporal grids, splitting them into smaller manageable orders while keeping in mind the concurrency limits(number of orders you can place simultaneously). In this case, the user sets a concurrency limit, and the tool automatically checks and waits before placing the next order. The tool can also estimate order size in terms of bytes per order download. The last step is to perform the same, download using porder's downloaders and an order list as created by multiorder tools. The design of this tool is kept simple, meaning you are relying on mixed use or **porder** and **pobatch** to perform these operations. [Ordersv2 is the next iteration of Planet's API](https://developers.planet.com/docs/orders/) in getting Analysis Ready Data (ARD) delivered to you. Orders v2 allows you to improved functionality in this domain, including the capability to submit an number of images in a batch order, and perform operations such as top of atmospheric reflectance, compression, coregistration and also enhanced notifications such as email and webhooks.\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 find this tool useful, star and cite it as below\r\n\r\n```\r\nSamapriya Roy. (2019, June 30). samapriya/pobatch: pobatch: porder wrapper for Ordersv2 Batch Client (Version 0.0.5). Zenodo.\r\nhttp://doi.org/10.5281/zenodo.3263015\r\n```\r\n\r\n## Table of contents\r\n* [Installation](#installation)\r\n* [Getting started](#getting-started)\r\n* [porder wrapper for Ordersv2 Batch Client](#porder wrapper for Ordersv2 Batch Client)\r\n * [quota](#quota)\r\n * [idlist](#idlist)\r\n * [idsplit](#idsplit)\r\n * [multiorder](#multiorder)\r\n * [ordsize](#ordsize)\r\n * [downloader](#downloader)\r\n * [Example Setup](#example-setup)\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 tested this only on python 2.7.15 but it should run on python 3.\r\n\r\nShapely is notoriously tricky as a library to install on windows machines so follow the steps mentioned from [Shapely\u2019s PyPI package page](https://pypi.org/project/Shapely/). You can download and install from the [Unofficial Wheel files from here](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely) download depending on the python version you have. You will get a wheel file or a file ending with .whl. You can now simply browse to the folder or migrate to it in your command prompt, for example in my case I was running Python 2.7.15 and win32 version so the command was\r\n\r\n```pip install Shapely-1.6.4.post1-cp27-cp27m-win32.whl```\r\n\r\nOr you can use [anaconda to install](https://conda-forge.github.io/). Again, both of these options are mentioned on [Shapely\u2019s Official PyPI page](https://pypi.org/project/Shapely/). **Fiona** is a recommended install used by the simplify tool, but it is not necessary. You can find installation instructions [here](https://pypi.org/project/Fiona/1.8.6/#description)\r\n\r\nOnce you have shapely configured. To install **pobatch: porder wrapper for Ordersv2 Batch Client** you can install using two methods\r\n\r\n```pip install pobatch```\r\n\r\non Ubuntu I found it helps to specify the pip type and use sudo\r\n\r\n```sudo pip2 install pobatch or sudo pip3 install pobatch```\r\n\r\nor you can also try\r\n\r\n```\r\ngit clone https://github.com/samapriya/pobatch.git\r\ncd pobatch\r\npython setup.py install\r\n```\r\nFor linux use sudo or --user.\r\n\r\nInstallation is an optional step; the application can also be run directly by executing pobatch.py script. The advantage of having it installed is being able to execute pobatch as any command line tool. I recommend installation within a virtual environment. If you don't want to install, browse into the pobatch folder and try ```python pobatch.py``` to get to the same result.\r\n\r\n\r\n## Getting started\r\n\r\nMake sure you initialized planet client by typing ```planet init``` or ```export``` or ```set PL_API_KEY=Your API Key``` As usual, to print help:\r\n\r\n```\r\npobatch -h\r\nusage: pobatch [-h] {idsplit,multiorder,ordsize,downloader} ...\r\n\r\nporder wrapper for Ordersv2 Batch Client\r\n\r\npositional arguments:\r\n {quota,idsplit,multiorder,ordsize,downloader}\r\n idlist Get idlist using geometry & filters\r\n quota Prints your Planet Quota Details\r\n idsplit Splits ID list incase you want to run them in small\r\n batches\r\n multiorder Place multiple orders based on idlists in folder\r\n ordsize Estimates total download size for each completed\r\n order(Takes times)\r\n downloader Download using order url list\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.: `pobatch idsplit -h`. If you didn't install pobatch, then you can run it just by going to *pobatch* directory and running `python pobatch.py [arguments go here]`\r\n\r\n## porder wrapper for Ordersv2 Batch Client\r\nThe tool is built as a wrapper around the [porder tool](https://github.com/samapriya/porder). The **porder tool** contains additionally useful tools such as convert shapefile to geojson, base64 encode your gcs credentials, simplify your geometry to fit the 500 vertices requirements and so on. So the idea is to use both of those tools in conjunction and make desired pipelines as needed. This tools is created to give the user some control over long and tedious order queue and implement push and pull of data in a batch manner.\r\n\r\n### quota\r\nJust a simple tool to print your planet subscription quota quickly.\r\n\r\n```\r\nporder quota\r\n```\r\n\r\n### idlist\r\nCreate an idlist for your geometry based on some basic filters, including geometry, start and end date and cloud cover. If no cloud cover is specified, everything from 0 to 100% cloud cover is included. For now the tool can handle geojson,json and kml files. The output is a csv file with ids. The tool also allows you to make sure you get percentage overlap, when selecting image, for clip operations adjust it accordingly (usally --ovp 1 for orders not to fail during clip). The tool now also prints estimated area in Square kilometers for the download and estimated area if you clipped your area with the geometry you are searching (just estimates).\r\n\r\n**I have changed the setup to now do the following two things**\r\n\r\n* The number option is optional, so it can look for all images in the time range, but be careful if the area is too large, _use at own risk_. A better option is to supply the number.\r\n\r\n* It is possible to often forget about the different asset types, so you can now not pass an item and the script will return every possible type of asset for each item type depending on the bundle.\r\n\r\n```\r\npobatch idlist -h\r\nusage: pobatch idlist [-h] --input INPUT --start START --end END --item ITEM\r\n [--asset ASSET] --outfile OUTFILE [--cmin CMIN]\r\n [--cmax CMAX] [--number NUMBER] [--overlap OVERLAP]\r\n [--filters FILTERS [FILTERS ...]]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --input INPUT Input geometry file for now geojson/json/kml\r\n --start START Start date in format YYYY-MM-DD\r\n --end END End date in format YYYY-MM-DD\r\n --item ITEM Item Type PSScene4Band|PSOrthoTile|REOrthoTile etc\r\n --asset ASSET Asset Type analytic, analytic_sr,visual etc\r\n --outfile OUTFILE Output csv file\r\n\r\nOptional named arguments:\r\n --cmin CMIN Minimum cloud cover\r\n --cmax CMAX Maximum cloud cover\r\n --number NUMBER Total number of assets, give a large number if you are\r\n not sure\r\n --overlap OVERLAP Percentage overlap of image with search area range\r\n between 0 to 100\r\n --filters FILTERS [FILTERS ...]\r\n Add an additional string or range filter\r\n\r\n```\r\n\r\nA simple setup would be the following for 800 max item ids and an overlap of 5% with the geometry we pass to the filter\r\n```\r\npobatch idlist --input \"path to geometry.geojson\" --start \"YYYY-MM-DD\" --end \"YYYY-MM-DD\" --item \"PSScene4Band\" --asset \"analytic_sr\" --number 800 --outfile \"path to idlist.csv file\" --overlap 5\r\n```\r\n\r\nTo run an experiment to add additional filter, you can now pass an additional string or range filter or both flag for string and range filters, a setup would be. The additional filters are optional\r\n\r\n```\r\npobatch idlist --input \"Path to geojson file\" --start \"YYYY-MM-DD\" --end \"YYYY-MM-DD\" --item \"PSScene4Band\" --asset \"analytic\" --outfile \"Path to idlist.csv\" --filters range:clear_percent:55:100 --number 20\r\n\r\npobatch idlist --input \"Path to geojson file\" --start \"YYYY-MM-DD\" --end \"YYYY-MM-DD\" --item \"PSScene4Band\" --asset \"analytic\" --outfile \"Path to idlist.csv\" --filters string:satellite_id:\"1003,1006,1012,1020,1038\" --number 20\r\n\r\npobatch idlist --input \"Path to geojson file\" --start \"YYYY-MM-DD\" --end \"YYYY-MM-DD\" --item \"PSScene4Band\" --asset \"analytic\" --outfile \"Path to idlist.csv\" --filters string:satellite_id:\"1003,1006,1012,1020,1038\" range:clear_percent:55:100 --number 20\r\n```\r\n\r\nThe idlist tool can now use a multipolygon and iteratively look for scenes.\r\n\r\n### idsplit\r\nThis allows you to split your idlist into small csv files to created batches of orders.\r\n\r\n```\r\nusage: pobatch idsplit [-h] [--idlist IDLIST] [--lines LINES] [--local LOCAL]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n --idlist IDLIST Idlist txt file to split\r\n --lines LINES Maximum number of lines in each split files\r\n --local LOCAL Output folder where split files will be exported\r\n```\r\n\r\nA simple setup would be\r\n```\r\npobatch idsplit --idlist \"path to idlist.csv\" --lines \"number of lines in each idlist\" --local \"folder path to export split id lists\"\r\n```\r\n\r\n### multiorder\r\nThis tool allows you to place the order using the idlist that you created earlier. the ```--op``` argument allows you to take operations, delivery and notifications in a sequence for example ```--op toar clip email``` performs Top of Atmospheric reflectance, followed by clipping to your geometry and send you an email notification once the order has completed, failed or had any change of status. The list of operations is below and **order is important**.\r\n\r\n
\r\n\r\nop | description |\r\n------------------|-------------------------------------------------------------------------------|\r\nclip | Clip imagery can handle single and multi polygon verify or create geojson.io\r\ntoar | Top of Atmosphere Reflectance imagery generated for imagery\r\ncomposite | Composite number of images in a given order\r\nzip | Zip bundles together and creates downloads (each asset has a single bundle so multiple zip files)\r\nzipall | Create a single zip file containing all assets\r\ncompression | Use image compression\r\nprojection | Reproject before downloaing image\r\naws | Option called to specify delivery to AWS\r\nazure | Option called to specify delivery to AZURE\r\ngcs | Option called to specify delivery to GCS\r\nemail | Email notification to your planet registered email\r\n\r\n
\r\n\r\n\r\nYou can now add some predefined indices for PlanetScope 4 band items with a maximum of 5 indices for a single setup . This is experimental. The list of indices include\r\n\r\n
\r\n\r\nIndex | Source |\r\n------------------|-------------------------------------------------------------------------------|\r\nSimple ratio (SR) | [Jordan 1969](https://esajournals.onlinelibrary.wiley.com/doi/abs/10.2307/1936256)\r\nNormalized Difference Vegetation Index (NDVI) | [Rouse et al 1973](https://ntrs.nasa.gov/search.jsp?R=19740022614)\r\nGreen Normalized Difference Index (GNDVI) | [Gitelson et al 1996](https://www.sciencedirect.com/science/article/abs/pii/S0034425796000727)\r\nBlue Normalized Difference Vegetation Index (BNDVI) | [Wang et al 2007](https://www.sciencedirect.com/science/article/pii/S1672630807600274)\r\nTransformed Vegetation Index (TVI) | [Broge and Leblanc 2000](https://www.sciencedirect.com/science/article/abs/pii/S0034425700001978)\r\nOptimized Soil Adjusted Vegetation Index (OSAVI) | [Rondeaux et al 1996](https://www.sciencedirect.com/science/article/abs/pii/0034425795001867)\r\nEnhanced Vegetation Index (EVI2) | [Jian et al 2008](https://www.sciencedirect.com/science/article/abs/pii/S0034425708001971)\r\nNormalized Difference Water Index (NDWI) | [Gao 1996](https://www.sciencedirect.com/science/article/abs/pii/S0034425796000673)\r\nModified Soil-adjusted Vegetation Index v2 (MSAVI2) | [Qi 1994](https://www.sciencedirect.com/science/article/abs/pii/0034425794901341?via%3Dihub)\r\n\r\n
\r\n\r\nThis tool makes use of the FIFO (first in first out) concept in queue implementation in python. It checks to see if you have reached your concurrent order limit and then waits for 5 minutes before trying to place the order again iteratively.\r\n\r\n```\r\nusage: pobatch multiorder [-h] --infolder INFOLDER --outfile OUTFILE --max MAX\r\n --item ITEM --asset ASSET [--boundary BOUNDARY]\r\n [--projection PROJECTION] [--kernel KERNEL]\r\n [--compression COMPRESSION] [--aws AWS]\r\n [--azure AZURE] [--gcs GCS] [--op OP [OP ...]]\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --infolder INFOLDER Folder with multiple order list\r\n --outfile OUTFILE CSV file with list of order urls\r\n --max MAX Maximum concurrent orders allowed on account\r\n --item ITEM Item Type PSScene4Band|PSOrthoTile|REOrthoTile etc\r\n --asset ASSET Asset Type analytic, analytic_sr,visual etc\r\n\r\nOptional named arguments:\r\n --boundary BOUNDARY Boundary/geometry for clip operation geojson|json|kml\r\n --projection PROJECTION\r\n Projection for reproject operation of type \"EPSG:4326\"\r\n --kernel KERNEL Resampling kernel used \"near\", \"bilinear\", \"cubic\",\r\n \"cubicspline\", \"lanczos\", \"average\" and \"mode\"\r\n --compression COMPRESSION\r\n Compression type used for tiff_optimize tool,\r\n \"lzw\"|\"deflate\"\r\n --aws AWS AWS cloud credentials config yml file\r\n --azure AZURE Azure cloud credentials config yml file\r\n --gcs GCS GCS cloud credentials config yml file\r\n --op OP [OP ...] Add operations, delivery & notification clip|toar|comp\r\n osite|zip|zipall|compression|projection|kernel|aws|azu\r\n re|gcs|email :\r\n ndvi|gndvi|bndvi|ndwi|tvi|osavi|evi2|msavi2|sr\r\n```\r\n\r\n### ordsize\r\n\r\n\r\n```\r\nusage: pobatch ordsize [-h] --infile INFILE\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --infile INFILE CSV file with order list\r\n```\r\n\r\n### downloader\r\nThe tool now allows you to estimate the total download size for a specific order.\r\n\r\n```\r\nusage: pobatch downloader [-h] --infile INFILE --folder FOLDER --method METHOD\r\n\r\noptional arguments:\r\n -h, --help show this help message and exit\r\n\r\nRequired named arguments.:\r\n --infile INFILE CSV file with order list\r\n --folder FOLDER Local folder to save order files\r\n --method METHOD Method to be utilized for downloading\r\n download|multipart|multiproc\r\n```\r\n\r\n\r\n### Example Setup\r\n\r\n* Get idlist for geometry using porder (porder is installed as a dependency for this tool)\r\n\r\n```\r\npobatch idlist --input \"geometry file.geojson\" --start \"2018-01-01\" --end \"2019-02-01\" --item \"PSScene4Band\" --asset \"analytic\" --outfile \"path to idlist.csv\"\r\n```\r\n\r\n* Split idlist into smaller subparts\r\n\r\n```\r\npobatch idsplit --idlist \"idlist file created earlier\" --lines \"number of lines in split files\" --local \"folder where we save the split id files\"\r\n```\r\n\r\n* Now place order using idlists that you created. This requires you to set up a limit on the maximum number of concurrent orders you can place. This setups clips the image to a geometry, zips them and send you an email notification on completion.\r\n\r\n```\r\npobatch multiorder --infolder \"folder where we save the split id files\" --max \"Maximum concurrent orders you can placed and allowed on your account\" --outfile \"path to an orderlist with order url\" --item \"PSScene4Band\" --asset \"analytic\" --boundary \"path to geometry.geojson\" --op clip zip email\r\n```\r\n\r\n* Estimate order download size for each order (This is optional)\r\n\r\n```\r\npobatch ordsize --infile \"Path to order url list\"\r\n```\r\n\r\n* Finally download the order, and choose the download method (choose from sequential download or download| multipart download or multiproc or multiprocessing download)\r\n\r\n```\r\npobatch downloader --infile \"Path to order url list\" --folder \"download folder\" --method \"multipart\"\r\n```\r\n\r\n### Changelog\r\n\r\n**v0.0.7**\r\n* Now prints version information\r\n* Added bundle and subscription id arguments to multiorder tool.\r\n* Updated idlist tool to handle multipolygon geometry better\r\n* General improvements.\r\n\r\n**v0.0.6**\r\n* Fixed bundles and removed deprecated bundle types.\r\n* Created errorlog if issues submitting orders\r\n* Now downloads both complete and partial order outputs.\r\n\r\n**v0.0.5**\r\n* Fixed issues with utf decoding\r\n* Logging and verbose call issue fixed\r\n* Now returns number of items found while searching using idlist\r\n\r\n**v0.0.4**\r\n* Added quota tool to main to prevent compatability issues\r\n* Fixed issues with handling with and without op orders\r\n* Added improvements to make shell runs function properly.\r\n\r\n**v0.0.3**\r\n* Added queue support to downloader for better handling order list\r\n* General improvements to overall tool\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/pobatch", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pobatch", "package_url": "https://pypi.org/project/pobatch/", "platform": "", "project_url": "https://pypi.org/project/pobatch/", "project_urls": { "Homepage": "https://github.com/samapriya/pobatch" }, "release_url": "https://pypi.org/project/pobatch/0.0.7/", "requires_dist": [ "requests (>=2.19.1)", "planet (>=1.2.3)", "porder (>=0.4.1)" ], "requires_python": "", "summary": "porder wrapper for Ordersv2 Batch Client", "version": "0.0.7" }, "last_serial": 5721516, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b55e55172c6fa850d0963a6398d2ff66", "sha256": "e0587cc0e32bc25a3178dfc392bb63cb1cbb53a519ccda62a3b909edafe4cb8b" }, "downloads": -1, "filename": "pobatch-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b55e55172c6fa850d0963a6398d2ff66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13639, "upload_time": "2019-05-29T06:21:59", "url": "https://files.pythonhosted.org/packages/2a/41/a2fc03cb5a6adf8306d8dcd0e56d073e1828ab6fa5f1354840f9e2e00019/pobatch-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49201c87dae3567ecc7b0e3136b50393", "sha256": "d104e879c16da066d3c40fff642e9bd3c8450de1fb533d4c090ba2390b527bc1" }, "downloads": -1, "filename": "pobatch-0.0.1.tar.gz", "has_sig": false, "md5_digest": "49201c87dae3567ecc7b0e3136b50393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14584, "upload_time": "2019-05-29T06:22:00", "url": "https://files.pythonhosted.org/packages/6f/bd/bac1bfee858aeab6af83c59fa9f40eaa37334aae7e447b784af6e92398fd/pobatch-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "be21253eb5de4ef3bf0bb5eb3b5e20e4", "sha256": "4522790d12e5da13a7cb32d14aa0e447252809b23e7bd274d57d67c568a564d0" }, "downloads": -1, "filename": "pobatch-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be21253eb5de4ef3bf0bb5eb3b5e20e4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20464, "upload_time": "2019-05-29T14:00:10", "url": "https://files.pythonhosted.org/packages/71/01/2211aee49b995b9845bf612b1d28e01adf5740f357637e9f195852d36dc6/pobatch-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93e072f096f4ad0045a483c74206c4c", "sha256": "ad0b761630fc83f5ff5e37f49c89e0a49bf646f63836124ae6562ac00980f014" }, "downloads": -1, "filename": "pobatch-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d93e072f096f4ad0045a483c74206c4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22986, "upload_time": "2019-05-29T14:00:11", "url": "https://files.pythonhosted.org/packages/72/9a/dfda62f030b7b40d323557459594a6ee8d33f2b8681c99f76a12077984ab/pobatch-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "4f7a74a6407d222ec490e4246884923c", "sha256": "0354370f4b57feee3949decbc506fd3fa06eb554e5673949c1b3346aba3f621c" }, "downloads": -1, "filename": "pobatch-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f7a74a6407d222ec490e4246884923c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20915, "upload_time": "2019-06-12T12:52:14", "url": "https://files.pythonhosted.org/packages/d1/ca/cfed61c3dceba7cb0917ea8df2c504624252ce5d0f32a378eeb88822a934/pobatch-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9053888ef1ae595f5323de4a7b9f27d", "sha256": "42db767a97bced61f13cfd6e1f32bf99ce0d8207e7c3f6a8ba7dc392349836cc" }, "downloads": -1, "filename": "pobatch-0.0.3.tar.gz", "has_sig": false, "md5_digest": "d9053888ef1ae595f5323de4a7b9f27d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23452, "upload_time": "2019-06-12T12:52:16", "url": "https://files.pythonhosted.org/packages/f7/bd/e78957e5254aee67276007a72964da51ec2dd2867e33e17c5fb52ecf4625/pobatch-0.0.3.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a0b232528de21a26d8a19a3697f031d7", "sha256": "3794f880f2a88daa146b0ea3392cbdec8f838c920be9370faf671f7a0c400026" }, "downloads": -1, "filename": "pobatch-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0b232528de21a26d8a19a3697f031d7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20309, "upload_time": "2019-06-30T06:02:42", "url": "https://files.pythonhosted.org/packages/06/fb/ba2c18c5c0ffc77cb39c52dbb6ca08455b8b59c2cb66ffe5235443f4688c/pobatch-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "518ee0c0a6d2e5175dcfc4a722f9b87f", "sha256": "7eaedd6118cfefcdab796717987b504789536ca6673370cdabe5a91f2cb16031" }, "downloads": -1, "filename": "pobatch-0.0.5.tar.gz", "has_sig": false, "md5_digest": "518ee0c0a6d2e5175dcfc4a722f9b87f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23712, "upload_time": "2019-06-30T06:02:44", "url": "https://files.pythonhosted.org/packages/6b/a9/974ab246382ccc23e220dbcfe987cbe916499ea4053e50c59f240a7e9569/pobatch-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c274963881b48281105fd6e382af9f09", "sha256": "e454bf4a482921ca70053cab3075371d25e33dffcf97a587501b24eebdf8ad43" }, "downloads": -1, "filename": "pobatch-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c274963881b48281105fd6e382af9f09", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20805, "upload_time": "2019-08-22T03:46:04", "url": "https://files.pythonhosted.org/packages/1f/b8/b3db41c4e9840459f5791f1a07e8d65bf4623c598433140770eea1d4bd58/pobatch-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15a3eabcff32f3725d8c6d0c69089ad7", "sha256": "0d36dd313e091fbf4be3b1dd86cb0cc84e09551292ca5624a9aa488d10de01a3" }, "downloads": -1, "filename": "pobatch-0.0.6.tar.gz", "has_sig": false, "md5_digest": "15a3eabcff32f3725d8c6d0c69089ad7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24357, "upload_time": "2019-08-22T03:46:05", "url": "https://files.pythonhosted.org/packages/70/82/5150f27fb301921b39871cbcee3616cd851951bb396bdec7ad25ebb43232/pobatch-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "3edcb2ca4dc4e9e60faed944f28480b6", "sha256": "2fc8e384af691191b5ea1f2eb247975093d1529a1750c347149bb8018274f494" }, "downloads": -1, "filename": "pobatch-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3edcb2ca4dc4e9e60faed944f28480b6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21359, "upload_time": "2019-08-23T16:08:20", "url": "https://files.pythonhosted.org/packages/db/06/52888aba6dabe2ae70deb26156335c6990633c3f5e223414054d76db6511/pobatch-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46295a262bdcdde5d355d7e98d3c3046", "sha256": "b9b2b51a050a887a34e263a9e1404be0a3a5cc9935e2cfd6933f382af7a9efda" }, "downloads": -1, "filename": "pobatch-0.0.7.tar.gz", "has_sig": false, "md5_digest": "46295a262bdcdde5d355d7e98d3c3046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24910, "upload_time": "2019-08-23T16:08:22", "url": "https://files.pythonhosted.org/packages/bf/f4/f7bc6a09f7bd917d4e3b5d8302af00fd018aa6c7c8345e074b22a43a0f20/pobatch-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3edcb2ca4dc4e9e60faed944f28480b6", "sha256": "2fc8e384af691191b5ea1f2eb247975093d1529a1750c347149bb8018274f494" }, "downloads": -1, "filename": "pobatch-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3edcb2ca4dc4e9e60faed944f28480b6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21359, "upload_time": "2019-08-23T16:08:20", "url": "https://files.pythonhosted.org/packages/db/06/52888aba6dabe2ae70deb26156335c6990633c3f5e223414054d76db6511/pobatch-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46295a262bdcdde5d355d7e98d3c3046", "sha256": "b9b2b51a050a887a34e263a9e1404be0a3a5cc9935e2cfd6933f382af7a9efda" }, "downloads": -1, "filename": "pobatch-0.0.7.tar.gz", "has_sig": false, "md5_digest": "46295a262bdcdde5d355d7e98d3c3046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24910, "upload_time": "2019-08-23T16:08:22", "url": "https://files.pythonhosted.org/packages/bf/f4/f7bc6a09f7bd917d4e3b5d8302af00fd018aa6c7c8345e074b22a43a0f20/pobatch-0.0.7.tar.gz" } ] }