 Copyright (C) 2006-2010 Google Inc.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

    For more information on the GData Python client library, please see the 
project on code.google.com's hosting service here: 
http://code.google.com/p/gdata-python-client/

    Dependency Modules

  ElementTree - For XML parsing, download here: 
http://effbot.org/zone/element-index.htm

  httplib - Part of the core Python library since version 2.0, so it should
already be present.

  urllib - For URL creation and URL encoding, should already be present in
current versions of Python.  
