Project: gcloud

API Client library for Google Cloud

Project Details

Latest version
0.18.3
Home Page
https://github.com/GoogleCloudPlatform/gcloud-python
PyPI Page
https://pypi.org/project/gcloud/

Project Popularity

PageRank
0.0017285872750039569
Number of downloads
1740691

Google Cloud Python Client

Python idiomatic client for `Google Cloud Platform`_ services.

.. _Google Cloud Platform: https://cloud.google.com/

|pypi| |versions|

google-cloud

Warning: This package has moved. It has been renamed to google-cloud on PyPI_. No new releases will be made for gcloud.

.. _google-cloud on PyPI: https://pypi.python.org/pypi/google-cloud

Overview

  • Homepage_
  • API Documentation_

.. _Homepage: https://googlecloudplatform.github.io/gcloud-python/ .. _API Documentation: http://googlecloudplatform.github.io/gcloud-python/stable/

This client supports the following Google Cloud Platform services:

  • Google Cloud Datastore_
  • Google Cloud Storage_
  • Google Cloud Pub/Sub_
  • Google BigQuery_
  • Google Cloud Resource Manager_
  • Google Stackdriver Logging_

.. _Datastore: https://github.com/GoogleCloudPlatform/gcloud-python#google-cloud-datastore .. _Storage: https://github.com/GoogleCloudPlatform/gcloud-python#google-cloud-storage .. _Pub/Sub: https://github.com/GoogleCloudPlatform/gcloud-python#google-cloud-pubsub .. _BigQuery: https://github.com/GoogleCloudPlatform/gcloud-python#google-bigquery .. _Resource Manager: https://github.com/GoogleCloudPlatform/gcloud-python#google-cloud-resource-manager .. _Stackdriver Logging: https://github.com/GoogleCloudPlatform/gcloud-python#google-cloud-logging

If you need support for other Google APIs, check out the Google APIs Python Client library_.

.. _Google APIs Python Client library: https://github.com/google/google-api-python-client

Quick Start

::

$ pip install --upgrade gcloud

Example Applications

  • getting-started-python_ - A sample and tutorial_ that demonstrates how to build a complete web application using Cloud Datastore, Cloud Storage, and Cloud Pub/Sub and deploy it to Google App Engine or Google Compute Engine.
  • gcloud-python-expenses-demo_ - A sample expenses demo using Cloud Datastore and Cloud Storage

.. _getting-started-python: https://github.com/GoogleCloudPlatform/getting-started-python .. _tutorial: https://cloud.google.com/python .. _gcloud-python-expenses-demo: https://github.com/GoogleCloudPlatform/gcloud-python-expenses-demo

Authentication

With gcloud-python we try to make authentication as painless as possible. Check out the Authentication section_ in our documentation to learn more. You may also find the authentication document_ shared by all the gcloud-* libraries to be helpful.

.. _Authentication section: http://gcloud-python.readthedocs.org/en/latest/gcloud-auth.html .. _authentication document: https://github.com/GoogleCloudPlatform/gcloud-common/tree/master/authentication

Google Cloud Datastore

Google Cloud Datastore_ (Datastore API docs_) is a fully managed, schemaless database for storing non-relational data. Cloud Datastore automatically scales with your users and supports ACID transactions, high availability of reads and writes, strong consistency for reads and ancestor queries, and eventual consistency for all other queries.

.. _Cloud Datastore: https://cloud.google.com/datastore/docs .. _Datastore API docs: https://cloud.google.com/datastore/docs/apis/v1beta3/

See the gcloud-python API datastore documentation_ to learn how to interact with the Cloud Datastore using this Client Library.

.. _datastore documentation: https://googlecloudplatform.github.io/gcloud-python/stable/datastore-client.html

See the official Google Cloud Datastore documentation_ for more details on how to activate Cloud Datastore for your project.

.. _official Google Cloud Datastore documentation: https://cloud.google.com/datastore/docs/activate

.. code:: python

from gcloud import datastore
# Create, populate and persist an entity
entity = datastore.Entity(key=datastore.Key('EntityKind'))
entity.update({
    'foo': u'bar',
    'baz': 1337,
    'qux': False,
})
# Then query for entities
query = datastore.Query(kind='EntityKind')
for result in query.fetch():
    print result

Google Cloud Storage

Google Cloud Storage_ (Storage API docs_) allows you to store data on Google infrastructure with very high reliability, performance and availability, and can be used to distribute large data objects to users via direct download.

.. _Cloud Storage: https://cloud.google.com/storage/docs .. _Storage API docs: https://cloud.google.com/storage/docs/json_api/v1

See the gcloud-python API storage documentation_ to learn how to connect to Cloud Storage using this Client Library.

.. _storage documentation: https://googlecloudplatform.github.io/gcloud-python/stable/storage-client.html

You need to create a Google Cloud Storage bucket to use this client library. Follow along with the official Google Cloud Storage documentation_ to learn how to create a bucket.

.. _official Google Cloud Storage documentation: https://cloud.google.com/storage/docs/cloud-console#_creatingbuckets

.. code:: python

from gcloud import storage
client = storage.Client()
bucket = client.get_bucket('bucket-id-here')
# Then do other things...
blob = bucket.get_blob('remote/path/to/file.txt')
print blob.download_as_string()
blob.upload_from_string('New contents!')
blob2 = bucket.blob('remote/path/storage.txt')
blob2.upload_from_filename(filename='/local/path.txt')

Google Cloud Pub/Sub

Google Cloud Pub/Sub_ (Pub/Sub API docs_) is designed to provide reliable, many-to-many, asynchronous messaging between applications. Publisher applications can send messages to a topic and other applications can subscribe to that topic to receive the messages. By decoupling senders and receivers, Google Cloud Pub/Sub allows developers to communicate between independently written applications.

.. _Cloud Pub/Sub: https://cloud.google.com/pubsub/docs .. _Pub/Sub API docs: https://cloud.google.com/pubsub/reference/rest/

See the gcloud-python API Pub/Sub documentation_ to learn how to connect to Cloud Pub/Sub using this Client Library.

.. _Pub/Sub documentation: https://googlecloudplatform.github.io/gcloud-python/stable/pubsub-usage.html

To get started with this API, you'll need to create

.. code:: python

from gcloud import pubsub

client = pubsub.Client()
topic = client.topic('topic_name')
topic.create()

topic.publish('this is the message_payload',
              attr1='value1', attr2='value2')

Google BigQuery

Querying massive datasets can be time consuming and expensive without the right hardware and infrastructure. Google BigQuery__ (BigQuery API docs_) solves this problem by enabling super-fast, SQL-like queries against append-only tables, using the processing power of Google's infrastructure.

.. _BQ-indirect: https://cloud.google.com/bigquery/what-is-bigquery .. BigQuery API docs: https://cloud.google.com/bigquery/docs/reference/v2/ __ BQ-indirect

This package is still being implemented, but it is almost complete!

Load data from CSV


.. code:: python

    import csv

    from gcloud import bigquery
    from gcloud.bigquery import SchemaField

    client = bigquery.Client()

    dataset = client.dataset('dataset_name')
    dataset.create()  # API request

    SCHEMA = [
        SchemaField('full_name', 'STRING', mode='required'),
        SchemaField('age', 'INTEGER', mode='required'),
    ]
    table = dataset.table('table_name', SCHEMA)
    table.create()

    with open('csv_file', 'rb') as readable:
        table.upload_from_file(
            readable, source_format='CSV', skip_leading_rows=1)

Perform a synchronous query

.. code:: python

# Perform a synchronous query.
QUERY = (
    'SELECT name FROM [bigquery-public-data:usa_names.usa_1910_2013] '
    'WHERE state = "TX"')
query = client.run_sync_query('%s LIMIT 100' % QUERY)
query.timeout_ms = TIMEOUT_MS
query.run()

for row in query.rows:
    print row

See the gcloud-python API BigQuery documentation_ to learn how to connect to BigQuery using this Client Library.

.. _BigQuery documentation: https://googlecloudplatform.github.io/gcloud-python/stable/bigquery-usage.html

Google Cloud Resource Manager

The Cloud Resource Manager__ API (Resource Manager API docs_) provides methods that you can use to programmatically manage your projects in the Google Cloud Platform.

.. _RM-indirect: https://cloud.google.com/resource-manager/ .. Resource Manager API docs: https://cloud.google.com/resource-manager/reference/rest/ __ RM-indirect

See the gcloud-python API Resource Manager documentation_ to learn how to manage projects using this Client Library.

.. _Resource Manager documentation: https://googlecloudplatform.github.io/gcloud-python/stable/resource-manager-api.html

Google Stackdriver Logging

Stackdriver Logging__ API (Logging API docs_) allows you to store, search, analyze, monitor, and alert on log data and events from Google Cloud Platform.

.. _SL-indirect: https://cloud.google.com/logging/ .. Logging API docs: https://cloud.google.com/logging/docs/ __ SL-indirect

.. code:: python

from gcloud import logging
client = logging.Client()
logger = client.logger('log_name')
logger.log_text("A simple entry")  # API call

Example of fetching entries:

.. code:: python

entries, token = logger.list_entries()
for entry in entries:
    print entry.payload

See the gcloud-python API logging documentation_ to learn how to connect to Stackdriver Logging using this Client Library.

.. _logging documentation: https://googlecloudplatform.github.io/gcloud-python/stable/logging-usage.html

Contributing

Contributions to this library are always welcome and highly encouraged.

See CONTRIBUTING doc_ for more information on how to get started.

.. _CONTRIBUTING doc: https://github.com/GoogleCloudPlatform/gcloud-python/blob/master/CONTRIBUTING.rst

License

Apache 2.0 - See the LICENSE_ for more information.

.. _the LICENSE: https://github.com/GoogleCloudPlatform/gcloud-python/blob/master/LICENSE

.. |build| image:: https://travis-ci.org/GoogleCloudPlatform/gcloud-python.svg?branch=master :target: https://travis-ci.org/GoogleCloudPlatform/gcloud-python .. |coverage| image:: https://codecov.io/gh/GoogleCloudPlatform/gcloud-python/branch/master/graph/badge.svg :target: https://codecov.io/gh/GoogleCloudPlatform/gcloud-python .. |pypi| image:: https://img.shields.io/pypi/v/gcloud.svg :target: https://pypi.python.org/pypi/gcloud .. |versions| image:: https://img.shields.io/pypi/pyversions/gcloud.svg :target: https://pypi.python.org/pypi/gcloud