skip to navigation
skip to content

Not Logged In

D2LValence 0.1.8

D2LValence client library for Python.

Latest Version: 1.1.0

======================================
Desire2Learn Client Library for Python
======================================

Our Python client library SDK is currently in experimental form. Currently, we
use this libary as a quick way to rapidly, and interactively, prototype or
hand-test back-end LMS services for trouble shooting purposes: it's not intended
for rigorous production use.

**Feedback and contributions welcome**. If you have any feedback or additions
you'd like to make to the Python client library, please feel free to
contact Valence@Desire2Learn.com to coordinate with our development team.

.. note::

   You can find the latest version of this documentation, and related
   topics in our
   `Valence API documentation <http://docs.valence.desire2learn.com/clients/python/index.html>`_.

Installation
============
You can find the
`latest build <http://code.google.com/p/desire2learn-valence/downloads/list?q=label:pythonlatestclient>`_
of the client library SDK on our repository download page.

**Dependencies**. In order to use the Python client library SDK, you'll need to
first ensure you have a working Python development environment:

* Python 3 (the reference environment uses Python 3.2).

* The `Requests Python package <http://docs.python-requests.org/en/latest/index.html>`_
  gets used in our :py:mod:`service <d2lvalence.service>` module to make the
  calls through to the back-end service, and in our :py:mod:`auth <d2lvalence.auth>`
  module so that you can use a calling user context object as an authentication
  helper for Requests.

* The `Bottle Python package <http://bottlepy.org/docs/dev/>`_ if you want to
  use the samples available in conjunction with this client library (not a
  dependency for the client library itself).


Modules
=======
The Python library divides functionality into a number of modules:

**Authentication**. The :py:mod:`d2lvalence.auth` module provides assistance for
the authentication needed to invoke Valence APIs. You use the module's functions
(and perhaps also classes) to create a
:py:class:`calling user context <d2lvalence.auth.D2LUserContext>` object that
you can then employ in conjunction with the Reqeusts package as an
authentication helper.

**Data**. The :py:mod:`d2lvalence.data` module provides classes to encapsulate
the JSON data structures passed back and forth through the Valence APIs. All the
classes inherit from a :py:class:`D2LStructure generic base class
<d2lvalence.data.D2LStructure>`.

Note that currently we drive additions to the `data` module by the needs of our
samples and ongoing testing: it does not cover all the structures present in the
Valence API.

**Service**. The :py:mod:`d2lvalence.service` module contains a suite of helper
functions you can use to make Valence API calls and partially digest the data
results passed back. In general, the data passed back by a service function is
either a pre-defined class inheriting from :py:class:`D2LStructure
<d2lvalence.data.D2LStructure>`, or one or more dictionaries formed from the
retrieved JSON data.


.. :changelog:

History
-------

0.1.8()
+++++++
* added support to the `auth` module for building an anonymous user context
  (context with no user ID/Key pair) -- clients can use such a context to make
  calls to the various API Property/Version routes to query LMS for API versions
* moved auth to use direct `==` comparison to check for empty parameters instead
  of use `in (singleItemList,)` pattern.
* factored out process of fetching contents of Requests objects into a single
  funtion, moved to examine `request.headers['content.type']` to determine how
  to handle contents rather than just `try` to fetch r.JSON and default to
  r.content
* repaired `service.check_versions()` to pass the `supported_version_request_array`
  as json data
* fixed `service._simple_upload()` to seek underlying buffer stream to head
  position before and after read, instead of trying to seek on the byte-string
  we read the stream into
* added support to the `service` library for distinguishing between anonymous and
  non-anonymous user contexts, and let version calls be made with anonymous
  contexts, raise errors in the case of all other calls that demand a user context
* added more grade routes for fetching 'my' grades

0.1.7 (2012-08-10)
++++++++++++++++++
* added `service.get_profile_by_user_id()`
* added `data.LockerItem`, `data.LockerFolder`, `data.GroupLocker` to support
  locker operations
* added to suite of locker functions to the `service` module to assist with locker
  operations: this includes an example of how you might want to handle the
  "simple upload" process for those Valence routes that use simple file upload.

0.1.6 (2012-07-13)
++++++++++++++++++
* Fix bug in `update_social_media_url_by_url()`... we should look
  for 'url'-keyed entries, not 'name'-keyed entries.

* Some documentation revisions

* Remove 'exceptions' module as not utilized

0.1.5 (2012-07-11)
++++++++++++++++++
* Changed `D2LStructure.as_json()` to kick back a deep-copy of the encapsulated
  data, instead of a ref to the instance's internal data structure.

* Bug fixes

0.1.4 (2012-07-06)
++++++++++++++++++
* Refactoring and re-building of the libraries: moved data-structures into
  `data` module and service-related functions into `service` module;
  auth-related functionality remains in `auth`

* Re-worked samples to be more in line with design for the other client
  libraries.

0.1.0 (2012-06-02)
++++++++++++++++++
* Initial version
 
File Type Py Version Uploaded on Size
D2LValence-0.1.8.tar.gz (md5) Source 2012-10-03 15KB
  • Downloads (All Versions):
  • 81 downloads in the last day
  • 390 downloads in the last week
  • 1143 downloads in the last month