byu-oit-core-appeng/byu-ws-sdk-python — pull request #11 by chadgh (2014-12-31 14:34:43+00:00)
Title: BYU Models

Proposed features to simplify the use of BYU web services in applications.

These changes would provide a `Person` model (and in the future a `Course` model along with others as needed) to be used in Python programs to represent a person at BYU (student, staff, faculty). The basic usage of how this might work can be found in the included `test_helpers.py` file (specifically in the `setUp` method of the test case found there).

The `Person` model could be instantiated alone and populated as needed, supporting many use cases, as well as allowing programs to use the same model to represent a person at BYU even if they are not getting information about that person from BYU web services.

In the `helpers.py` file is contained a `PersonFactory` class that could provide a simple (multithreaded) way of calling multiple web services to populate a `Person` model.

The main benefit to these features being that, one would not have to know much about the underlying BYU web services to take advantage of the information they offer. This solution makes some assumptions about which bits of information about a person should come from which services. This however isn't restrictive, programs could still call other services and populate information in a `Person` model manually (without the help of the `PersonFactory` helper).

I plan on updating the README file with examples of how to use these new features as well as add more comments to the code itself before this request is accepted, but I just wanted to get it submitted so we can start discussing it, if need be.