{ "info": { "author": "Daniel Poon", "author_email": "daniel.poon.wenjie@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5" ], "description": "=======\ngwrappy\n=======\n\n\n.. image:: https://img.shields.io/pypi/v/gwrappy.svg\n :target: https://pypi.python.org/pypi/gwrappy\n\n.. image:: https://readthedocs.org/projects/gwrappy/badge/?version=latest\n :target: https://gwrappy.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nUser friendly wrapper for Google APIs.\n\n\nFeatures\n--------\n\n* Easily connect to the following Google APIs (more to come eventually)\n * BigQuery\n * Cloud Storage\n * Drive\n * Gmail\n * Compute Engine\n\n.. code-block:: python\n\n # BigQuery\n from gwrappy.bigquery import BigqueryUtility\n bq_obj = BigqueryUtility()\n results = bq_obj.sync_query('my_project', 'SELECT * FROM [foo.bar]')\n\n # Cloud Storage\n from gwrappy.storage import GcsUtility\n gcs_obj = GcsUtility()\n gcs_obj.download_object('bucket_name', 'object_name', 'path/to/write')\n gcs_obj.upload_object('bucket_name', 'object_name', 'path/to/read')\n\n # Drive\n from gwrappy.drive import DriveUtility\n drive_obj = DriveUtility(json_credentials_path, client_id)\n drive_obj.download_object('file_id', 'path/to/write')\n drive_obj.upload_file('path/to/read')\n\n # Gmail\n from gwrappy.gmail import GmailUtility\n gmail_obj = GmailUtility(json_credentials_path, client_id)\n gmail_obj.send_email(sender='Daniel Poon', to=['recipient_1@xx.com', 'recipient_2@yy.com'], subject='Hello World!', message_text='My First Email')\n\n\nInstallation\n------------\n\n.. code-block:: bash\n\n $ pip install gwrappy\n\n\n=======\nHistory\n=======\n\n0.4.3 (2016-12-16)\n------------------\n* Bugfix in gwrappy.drive.DriveUtility.upload_file()\n\n0.4.2 (2016-12-16)\n------------------\n* Bugfix in gwrappy.dataproc.DataprocUtility.delete_cluster()\n\n0.4.1 (2016-12-14)\n------------------\n* Breaking Changes:\n * gwrappy.dataproc.DataprocUtility takes project_id in its constructor rather than a method parameter.\n* gwrappy.dataproc.DataprocUtility operation/job methods return Response objects when wait_finish=True\n* pandas dependency removed from requirements.txt as its functionality is limited to specific functions and largely unnecessary otherwise.\n\n0.4.0 (2016-11-21)\n------------------\n* Added gwrappy.dataproc for Google Dataproc\n* Minor Changes\n * gwrappy.storage.GcsUtility.update_object() added\n * Added ability to set object Acl on upload with gwrappy.storage.GcsUtility.upload_object()\n\n0.3.0 (2016-10-31)\n------------------\n* Python 3 compatibility\n * Most API functions were already compatible, most changes were done for the utilities functions.\n* Minor Bugfixes/Changes\n * BigqueryUtility().poll_resp_list() now doesn't break once an exception is encountered. The respective Error object is returned and job checking is uninterrupted.\n * Fixed int columns being interpreted as float for pandas 0.19.0 when querying to dataframe.\n\n0.2.1 (2016-10-20)\n------------------\n* Minor Bugfixes:\n * bigquery.utils.read_sql properly checks kwargs.\n * BigqueryUtility queries with return_type='dataframe' uses inferred dtypes for integer columns to stop pandas from breaking if column contains NaN.\n\n0.2.0 (2016-09-27)\n------------------\n* Added gwrappy.compute for Google Compute Engine.\n* Minor Bugfixes:\n * drive.DriveUtility.list_files(): Removed fields, added orderBy and filter_exp.\n * bigquery.utils.JobResponse: time_taken in __repr__ for some job types fixed.\n\n0.1.6 (2016-09-08)\n------------------\n* Added more utilities\n * utils.month_range: Chunk dates into months.\n * utils.simple_mail: Send basic emails for alerts or testing. *Note*: For greater security and flexibility, do still use the gmail functionality within this package.\n * utils.StringLogger: Simply wrapper for logging with a string handler and convenience functions for retrieving logs as a string.\n* Added dateutil as a dependency\n\n0.1.5 (2016-08-30)\n------------------\n* list methods now return a generator for memory efficiency\n* BigQuery:\n * list_jobs takes 2 new args *projection* and *earliest_date*\n* Documentation updates\n\n0.1.4 (2016-08-29)\n------------------\n* gwrappy.errors no longer imports service specific error objects. To access JobError, import it from gwrappy.bigquery.errors\n* simple date range generator function added to gwrappy.utils\n\n0.1.3 (2016-08-23)\n------------------\n* BigQuery:\n * JobResponse now only sets time_taken if data is available.\n * Fixed bug that raised KeyError when wait_finish=False, since endTime was unavailable in the API response.\n * poll_resp_list returns JobReponse objects. Also propagates 'description' attribute if available.\n\n0.1.2 (2016-08-19)\n------------------\n* Bug Fixes\n* Documentation updates\n\n0.1.1 (2016-08-16)\n------------------\n* Completed docstrings and amendments to documentation\n* Added list_to_html under gwrappy.gmail.utils\n* Added tabulate as a dependency\n\n0.1.0 (2016-08-15)\n------------------\n* New and improved version of https://github.com/danielpoonwj/gcloud_custom_utilities\n* First release on PyPI.", "description_content_type": null, "docs_url": "https://pythonhosted.org/gwrappy/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/danielpoonwj/gwrappy", "keywords": "google,cloud,gcloud", "license": "Apache Software License 2.0", "maintainer": null, "maintainer_email": null, "name": "gwrappy", "package_url": "https://pypi.org/project/gwrappy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gwrappy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/danielpoonwj/gwrappy" }, "release_url": "https://pypi.org/project/gwrappy/0.4.3/", "requires_dist": null, "requires_python": null, "summary": "User friendly wrapper for Google APIs", "version": "0.4.3" }, "last_serial": 2542067, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0f59b341927ce0c7ea571a04fed666e7", "sha256": "a7c01ef7df45f885062014e5bf350186cfc9d7cb846bf3f2aa1053240c7ac2e4" }, "downloads": -1, "filename": "gwrappy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0f59b341927ce0c7ea571a04fed666e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27113, "upload_time": "2016-08-15T17:31:54", "url": "https://files.pythonhosted.org/packages/0b/a9/75596160d1c85279b0e60eee52586e3a1de750d47fc50ebf94988e43d9b6/gwrappy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4c85d2529d01e41535795601032ea25a", "sha256": "ae7bce9e7a6487c359e4dfab34823acc78ccc48fcc8cee1d968b4e8a554c4123" }, "downloads": -1, "filename": "gwrappy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "4c85d2529d01e41535795601032ea25a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29293, "upload_time": "2016-08-16T07:00:46", "url": "https://files.pythonhosted.org/packages/56/22/f10b93a9224c7cf8f5b22a157c185346e320d17d80f2268fed01aec782ff/gwrappy-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "107c6212f607b4fe574a3c579efd207d", "sha256": "9af2a80483dc1efa09e0a2bc2f1d5a4ab23b3aafec7c1d9c87b9177a94f89967" }, "downloads": -1, "filename": "gwrappy-0.1.2.tar.gz", "has_sig": false, "md5_digest": "107c6212f607b4fe574a3c579efd207d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29570, "upload_time": "2016-08-19T08:15:17", "url": "https://files.pythonhosted.org/packages/90/39/0a68c675876fd811d41b58819d9966e6e67e60b8205d4c53817dd599978c/gwrappy-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7387005ff801be1ce81dd73b2a081ed2", "sha256": "537574a1bcfa731af764e1d11513723d95167ed038106f3db78864d33e54b066" }, "downloads": -1, "filename": "gwrappy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7387005ff801be1ce81dd73b2a081ed2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29815, "upload_time": "2016-08-23T08:56:50", "url": "https://files.pythonhosted.org/packages/bf/80/77a55c252d94fffc58cc57b063de4dafbd282f54e7b99bd753fbf78d8145/gwrappy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "574d8951752e1bb7c5a89657ae3bf970", "sha256": "2247316d994635b90253fbfe73799bc1f1419e6777cd8844ae80ca602658945d" }, "downloads": -1, "filename": "gwrappy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "574d8951752e1bb7c5a89657ae3bf970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30082, "upload_time": "2016-08-29T05:00:45", "url": "https://files.pythonhosted.org/packages/cf/f3/d61e880fe8640efa712a38fa035a53957bacaf623aebf1e426eaf213fa09/gwrappy-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2d6c10a67d6e2c7c8294f7b0d6f5f6b1", "sha256": "434addeb39be972710076b2b583598ff13124ee88fcd1c1dde9bc8c3bd2de8ce" }, "downloads": -1, "filename": "gwrappy-0.1.5.tar.gz", "has_sig": false, "md5_digest": "2d6c10a67d6e2c7c8294f7b0d6f5f6b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30979, "upload_time": "2016-08-30T10:00:26", "url": "https://files.pythonhosted.org/packages/8f/ec/a47ddf5ba49bfef51e35ee3cefa75631c42f3489889dfd45dda2ea3f6eb2/gwrappy-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "de6347a48fb1fe985bbdc3ab7927142d", "sha256": "85a71179e0274faa592075ae0ba7eaef5d7cfb36f907d1139af66fb08301a1e7" }, "downloads": -1, "filename": "gwrappy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "de6347a48fb1fe985bbdc3ab7927142d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32598, "upload_time": "2016-09-08T08:36:20", "url": "https://files.pythonhosted.org/packages/9b/51/74f17e62a30fc15d19f5dbaa57e75898b23d2e032708ec9fa7a4c2344177/gwrappy-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a5faee9c93a6c7b28466b0531750376d", "sha256": "e848f483a4f09470d216c7e2581d99f3d268cfe65b41c01e25a7556e1ea21703" }, "downloads": -1, "filename": "gwrappy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a5faee9c93a6c7b28466b0531750376d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34818, "upload_time": "2016-09-27T10:24:40", "url": "https://files.pythonhosted.org/packages/d8/cf/d74d306255c0233e433d4b0282b162f553ce4ec97f42af16fc0460ee8311/gwrappy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6b5d050b34a2ad2d81a57fa17a89f5ac", "sha256": "d6a1f1264fb52785ecfce3ad3e40d5a109f6baf1c41e8e3e4783ff5147fee5a4" }, "downloads": -1, "filename": "gwrappy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6b5d050b34a2ad2d81a57fa17a89f5ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34960, "upload_time": "2016-10-20T04:06:39", "url": "https://files.pythonhosted.org/packages/e5/89/3bca0e50f581105d4862d8eda62ce421af53625cbb9c637455fe3446dd08/gwrappy-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "13c985b3138a0af11a2eb49eb94e9ccc", "sha256": "8b56fa2014262312612747e3fcaa5587b40a76e66a17657cc4ecb9ffedaf13ef" }, "downloads": -1, "filename": "gwrappy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "13c985b3138a0af11a2eb49eb94e9ccc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35531, "upload_time": "2016-10-31T07:54:50", "url": "https://files.pythonhosted.org/packages/b7/b5/253934a5dda2e1d8e50b0ff5d776469207a227eea44f92306b3c0f60f1e2/gwrappy-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "94b52e2d752dc6777cb0241422de9ae4", "sha256": "0ec1096c58e28b581d380663c35ef0b17a76cfe30c4d9fc02c5c814761cefcd8" }, "downloads": -1, "filename": "gwrappy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "94b52e2d752dc6777cb0241422de9ae4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38332, "upload_time": "2016-11-21T11:57:18", "url": "https://files.pythonhosted.org/packages/15/52/198a64fa2915da538547c4bd6024bb797e1a1a1245d8d8cf3a354d4d8e90/gwrappy-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b7da8571ea256b83720cbabc33fdc826", "sha256": "5ee87ea2dfecbf913cd55073c04ebdcef014aa9a37782c033f34270b9322e369" }, "downloads": -1, "filename": "gwrappy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "b7da8571ea256b83720cbabc33fdc826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39286, "upload_time": "2016-12-14T12:03:32", "url": "https://files.pythonhosted.org/packages/65/36/ede1fcff88f5d75ab73b756d14d1f67dcc665f6a2f286223bbcbb88d1a79/gwrappy-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "02bd4f418ccda8181e422498bc398b2c", "sha256": "fabe39ba1decc56bcdfb475b56638b7de8ae5ee7b1e18755c1561027c9dfdb3b" }, "downloads": -1, "filename": "gwrappy-0.4.2.tar.gz", "has_sig": false, "md5_digest": "02bd4f418ccda8181e422498bc398b2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39317, "upload_time": "2016-12-16T07:38:13", "url": "https://files.pythonhosted.org/packages/66/eb/c3c3f8f06a73077381884446ddd84e99d7c8417e0a726a0fb0a903af829a/gwrappy-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "f3a1d02f2ffac31bff5c2ba306819e0f", "sha256": "2a36674830c2a4b98b740bfa9692cff3f294c62a74c4c09b07be23b80a0674e0" }, "downloads": -1, "filename": "gwrappy-0.4.3.tar.gz", "has_sig": false, "md5_digest": "f3a1d02f2ffac31bff5c2ba306819e0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39336, "upload_time": "2016-12-28T08:15:23", "url": "https://files.pythonhosted.org/packages/6b/67/f2e0dd04c15a5759cc33c2df1745cee6a2aa413103444c5f80241b6b8019/gwrappy-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f3a1d02f2ffac31bff5c2ba306819e0f", "sha256": "2a36674830c2a4b98b740bfa9692cff3f294c62a74c4c09b07be23b80a0674e0" }, "downloads": -1, "filename": "gwrappy-0.4.3.tar.gz", "has_sig": false, "md5_digest": "f3a1d02f2ffac31bff5c2ba306819e0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39336, "upload_time": "2016-12-28T08:15:23", "url": "https://files.pythonhosted.org/packages/6b/67/f2e0dd04c15a5759cc33c2df1745cee6a2aa413103444c5f80241b6b8019/gwrappy-0.4.3.tar.gz" } ] }