skip to navigation
skip to content

Not Logged In

LearnSprout 0.1.0

A simple python client for working with the LearnSprout API.

Latest Version: 0.2.5

learnsprout-python
==================

For best readability, open this document in a Markdown viewer

`learnsprout-python` is a simple python library for access to student information via the LearnSprout REST API.  You can view documentation for the REST API at LearnSprout's [interactive console](http://developers.learnsprout.com/interactive)

## Installation

    pip install learnsprout

#### Dependencies

[requests - HTTP for Humans](http://docs.python-requests.org)

## Using the client

The `LearnSproutClient` only requires an `apikey` to use. [Requesting one](http://learnsprout.com/developers) for your own use is simple.  There is also a public sample API which only has access to sample data.

    from learnsprout.client import LearnSproutClient
    client = LearnSproutClient("fcb8534c-e4ee-4e02-8b22-9328db1dac18")

Alternatively, you can provide OS environment variables

    export LEARNSPROUT_APIKEY="fcb8534c-e4ee-4e02-8b22-9328db1dac18"

then in Python, the `apikey` will be inferred automagically from the var above

    client = LearnSproutClient()

### Organizations

Organizations are the root level element.  Organizations can be accessed off the root level.

    orgs = client.organizations.iter_all()


This will return an IterableResult which can be iterated over for the resources.

    orgs = client.organizations.iter_all()
    for org in orgs:
        print org

You can also go through each resource one at a time.

    orgs = client.organizations.iter_all()
    for org in orgs:
        print org


Resources have the same properties as listed in the REST API, with the exception of the *id* which has been renamed *ls_id* to not collide with Python ids.

### Schools

Schools are subresources of organizations.  Subresources are available off of resource instances.

    org = orgs[0]
    schools = org.schools.iter_all()

### Pagination

Note that schools, like some other resources, are paginated.  However, when iterating over a IterableResult, if you exhaust all the elements in the page, the client will fetch additional results so you should not need to worry about paging.

### Partials
LearnSprout also supports grabbing resources that have been updated after a certain timestamp. ResourceInstances have a *time_updated* property. Specifying that as an argument to iter_all() will only return ResourceInstances with time_updated greater than the value provided.

    schools_resource = org.schools
    time_since = schools_resource.iter_all().next().time_updated
    schools_resource.list(since=time_since)

### Other supported resources

* Course
* Section
* Student
* Teacher
* Term

### Terms

When accessing the terms collection off of a School, there is a special ResourceInstance available off the terms collection.  The *current* property refers to the current term in the school.
 
File Type Py Version Uploaded on Size
LearnSprout-0.1.0.tar.gz (md5) Source 2012-07-25 9KB
  • Downloads (All Versions):
  • 41 downloads in the last day
  • 197 downloads in the last week
  • 1154 downloads in the last month