Skip to content

Montage-Inc/python-montage

Repository files navigation

python-montage

CircleCI Coverage

Python library for Montage

Usage

>>> import montage
>>> client = montage.Client(subdomain[, token])
>>> client.authenticate(email, password)  # sets client.token

# Current user
>>> client.user()

# Querying and scripting
>>> query = (montage.Query('movies')
        .order_by(index='year')
        .filter(
            montage.Field('year') >= 1990
            montage.Field('year') < 2000
        )
    )
>>> script = montage.Script('imdb/fetch-reviews.py', environ={
        'IMDB_MIN_SCORE': 8
    })
>>> client.run(nineties_movies=query, reviews=script)
{
    "data": {
        "nineties_movies": [ ... ],
        "reviews": " ... ",
    }
}

# Schemas
>>> client.schemas.list()
>>> client.schemas.get('schema')

# Data
>>> client.documents.save(schema, *documents)
>>> client.documents.get(schema, document_id)
>>> client.documents.replace(schema, document)
>>> client.documents.update(schema, document)
>>> client.documents.delete(schema, document_id)

# Files
>>> client.files.list()
>>> client.files.save(*files)
>>> client.files.get(file_id)
>>> client.files.delete(file_id)

# Users
>>> client.users.list()
>>> client.users.list(email__endswith='gmail.com')
>>> client.users.create(
...     full_name='Test User',
...     email='[email protected]',
...     password='letmein'
... )
>>> client.users.get(user_id)
>>> client.users.update(user_id, password='changeme')
>>> client.users.delete(user_id)

# Roles
>>> client.roles.list()
>>> client.roles.create(name='admins', add_users=['<user_id>'])
>>> client.roles.get('admins')
>>> client.roles.update('admins',
        add_users=['<user_id>'],
        remove_users=['<user_id>']
    )
>>> client.roles.delete('admins')

About

🐍 Python library for Montage

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages