8000 GitHub - datastax/astrapy at v0.2.3
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

datastax/astrapy

Repository files navigation

AstraPy

Actions Status

AstraPy is a Pythonic SDK for DataStax Astra and Stargate

Resources

Getting Started

Install AstraPy

pip install astrapy

Setup your Astra client

from astrapy.client import create_astra_client

astra_client = create_astra_client(astra_database_id=ASTRA_DB_ID,
                                   astra_database_region=ASTRA_DB_REGION,
                                   astra_application_token=ASTRA_DB_APPLICATION_TOKEN)

Take a look at the client tests and the collection tests for specific endpoint examples.

Using the Ops Client

You can use the Ops client to work the with Astra DevOps API. API Reference

# astra_client created above
# create a keyspace using the Ops API
astra_client.ops.create_keyspace(database=ASTRA_DB_ID, keyspace=KEYSPACE_NAME)

Using the REST Client

You can use the REST client to work with the Astra REST API. API Reference

# astra_client created above
# search a table
res = astra_client.rest.search_table(keyspace=ASTRA_DB_KEYSPACE,
                                     table=TABLE_NAME,
                                     query={"firstname": {"$eq": "Cliff"}})
print(res["count"]) # number of results
print(res["data"]) # list of rows

Using the Schemas Client

You can use the Schemas client to work with the Astra Schemas API. API Reference

# astra_client created above
# create a table
astra_client.schemas.create_table(keyspace=ASTRA_DB_KEYSPACE, table_definition={
    "name": "my_table",
    "columnDefinitions": [
        {
            "name": "firstname",
            "typeDefinition": "text"
        },
        {
            "name": "lastname",
            "typeDefinition": "text"
        },
        {
            "name": "favorite_color",
            "typeDefinition": "text",
        }
    ],
    "primaryKey": {
        "partitionKey": [
            "firstname"
        ],
        "clusteringKey": [
            "lastname"
        ]
    }
})

Using the Collections Client

You can use the Collections client to work with the Astra Document API. API Reference

# astra_client created above
# create multiple documents using the collections API
my_collection = astra_client.namespace(ASTRA_DB_KEYSPACE).collection(COLLECTION_NAME)
my_collection.batch(documents=[
    {
        "first_name": "Dang",
        "last_name": "Son",
    }, {
        "first_name": "Yep",
        "last_name": "Boss",
    }])

Using the GraphQL Client

You can use the GraphQL client to work with the Astra GraphQL API. API Reference

# astra_client created above
# create multiple documents using the GraphQL API
astra_client.gql.execute(keyspace=ASTRA_DB_KEYSPACE, query="""
        mutation insert2Books {
            moby: insertbook(value: {title:"Moby Dick", author:"Herman Melville"}) {
                value {
                    title
                }
            }
            catch22: insertbook(value: {title:"Catch-22", author:"Joseph Heller"}) {
                value {
                    title
                }
            }
        }
    """)

Using the HTTP Client

You can use the HTTP client to work with any Astra/Stargate endpoint directly. API Reference

# astra_client created above
# create a document on Astra using the Document API
astra_client._rest_client.request(
    method="PUT",
    path=f"/api/rest/v2/namespaces/my_namespace/collections/my_collection/user_1",
    json_data={
        "first_name": "Cliff",
        "last_name": "Wicklow",
        "emails": ["cliff.wicklow@example.com"],
    })

About

AstraPy is a Pythonic interface for DataStax Astra DB and the Data API

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 13

  • 3765
0