2009.09.16

* Updated MANIFEST to include new docs directory.
* Added a node to the TODO about epydoc support.
* Added a comment to the demo.
* Removed debugging statement from .tac file.
* Updated the demo to use the new API client object.
* Added a site root class to the demo in order to set a client instance on the
site and take advantage of caching.
* Cleaned up the admin scripts a bit.
* Updated admin scripts.
* Added an admin script for running doctests.
* Added testing suite module.
* Updated HISTORY file.
* Added validation checking to a couple methods and added new unit tests for
this.
* Added utility for checking the validity of input values.
* Uncommented out the getAchievementIcon call from the payload update script.
* Updated the payload file with a sample achievement icon.
* Added an implementation for the getAchievementIcon.
* Changed the string concatenation in txspore.url.data to string substitution.
* Added implementation for achievementIconURL.
* Added missing unit test for _getModelsForSubNodes.
* Fixed typo in test name.
* Updated the HISTORY file.
* Updated the API docs to include the Cache object.
* Updated the FEATURES and HISTORY files.
* Updated the API-doc generator to skip private methods.
* Changed the methods that are not part of the API or not generally useful to
private methods.
* Updated docstrings.
* Renamed the static data url module to be consistent with the rest of txSpore.
* Rephrased a sentence.
* Added the missing API.txt file.
* Removed the old getMethods function.
* Updated the API-doc generator to include the atom aspect.
* Updated the API doc.
* Updated getLatestPayloads script to use the latest API changes and to include
the atom payloads.
* Added functions to atom url module.
* Added an AtomAspect class for the "RSS" Spore API and related unit tests.

2009.09.15

* Added a utility function to parse Atom dates.
* Added a utility function to scrub XML name spaces from ElementTree tags.
* Removed unused method.
* Removed debugging code in util module.
* Updated setup.py to include the API.txt file.
* Added a script for generating a API doc file.
* Updated TODO and HISTORY.

2009.09.14

* Fixed quotes in dist module and removed unused import.
* Updated docstrings.
* More TODO file updates.
* Updated the USAGE doc with changes for the new API.
* Updated TODO.
* Incremented the version number, due to the significant change in API.
* Updated the client object's openURL method to use caching.
* Added caching support to the Aspect base class.
* Created an AsyncClient class with a REST aspect and a static data aspect.
* Created aspect classes in the client (a base class and then one each for the
REST service and the static data service).
* Added example usage for the client in an interactive prompt.
* Fixed spelling typo in unit test.
* Updated the setup.py to use the new docs directory and the dist module.
* Updated text files to be ReST.
* Changed the util directory to a subpackage and added a dist module to it.

2009.09.13

* Updated the date in the license file.
* Added LICENSE and MANIFEST.in files.
* Updated the clean.sh admin script.
* Added installation instructions.
* Updated the setup.py to include the tests so that source installations from
PyPI can be checked with Twisted trial.
* Commented out some old junk in an admin script.
* Removed old model method.
* Added missing demo app.
* Updated the TODO.
* Updated the README.
* Created an async web demo.
* Moved old example for the sync API into its own directory.
* Updated the TODO.
* Finished adding the static data unit tests.
* Added a test case for the paints info XML.
* Added a test case for the parts info XML.
* Added a test case for the achievements XML.
* Created a recursive data model object for static XML data.
* Added a getChildren method to the parsing model.
* Fixed static data client function signatures.
* Added unit test for blockingSave.
* Updated binary payloads to be more specific.
* Removed old, unused static data client function.
* Added missing unit test files.
* Stubbed out remaining static data API unit tests.
* Updated static URL module and static data client functions.
* Added unit tests for saving to a file descriptor.
* Moved logError into util module.
* Cleaned up unused imports.
* Removed the unused fake server base test case and added a txSpore base test
case.
* Moved unit tests for functions that are shared by both static data and REST
APIs into their own test case.
* Removed useless logger base class test case.
* Moved the getXMLForREST unit test into the proper test case.
* Rearranged the order of the test cases to math the ordering in the other
files.
* Stubbed out remaining static data functions.
* Updated TODO.
* Fixed up inconsistencies with the usage of the two asset models.
* Fixed the buddy unit test (it was using the wrong model).
* Added client functions getInfoForAsset, getCommentsForAsset,
getBuddiesForUser, and searchAssets.
* Added missing unit test.
* Added client functions getAssetsForSporeCast and getAchievementsForUser.
* Fixed the achievement unit test (it was using the wrong model).
* Created a client callback for general use in creating lists of model
instances from returned element trees.
* Updated the FEATURE file.
* Added REST API client functions getStatsForCreature, getDailyStats,
getProfileInfo, and getAssetsForUser.
* Removed unnecessary model object.
* Added missing model test case for user assets.
* Rearranged the order of the model test cases to correlate with the order of
the REST URL imports (which correlate with the REST API order on the developer
section of the Spore website).

2009.09.12

* Added a asset search result model object.
* Added a buddy model object.
* Updated model docstrings.
* Made stringToList smarter.
* Added a FEATURES file.
* Added asset and spore cast asset objects to the model.
* Updated the base model to parse list-like attributes.
* Added a new string-to-list utility function.
* Tweaked some names in the payload script and payload.
* Added user, spore cast, and asset objects to the model.
* Updated an admin script.
* Added a model for the daily stats response XML.
* Updated parsing model's parseTree method to do more type checking.
* Updated model object docstrings.
* Updated client fetch methods to accept a path parameter.
* Filled in model XML parsing code.
* Added unit tests for model code.
* Added XML date parsing utility function.
* Added util unit tests.
* Added test file.
* Updated code comment.
* Updated TODO.
* Added a TODO for test_saveFileWithError, since I wan't able to get the
threading working properly with the exception and log message.
* Filled unit unit tests for functions with errors.
* Pulled blockingSave out of function so that it's testable.
* Added unit tests for log message.
* Got a response back on the developer forum (from user impiaaa) that the paint
icon REST method works if you use all lower-case (not mentioned in the docs).
Updated the static URL function as well as the testing payload.
* Updated TODO.
* Updated meta and setup files.
* Moved the different types of URLs into their own module.

2009.09.11

* Filled in most of the stubbed unit tests.
* Added missing static URL methods.
* Overrode some of the broken API methods in the original, sync API.
* Added script for updating the payloads module.
* Added admin directory and scripts.
* Fixed up base.FakeServerTestCase.
* Replaced the os calls in the client with methods on FilePath objects.
* Added an import to the model.
* Updated TODO.
* Fixed file endings in fetch-and-save functions.
* Added model module.

2009.09.10

* Added testing payload and base placeholders.
* Added unit test module for client.
* Added client and exception modules.
* Started adding code to the url module. 
* Updated the ChangeLog.
* Added a URL module.
* Added a README file.
* Added image files.
* Added placeholder files.
* Added official Python Spore APIs.
