Sat Mar 28 19:44:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/index.html,setup.py: Update version number for 0.3 release.

Sat Mar 28 01:06:45 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/autodoc.py: Fix autodoc description of validated
	  parameters.

Fri Mar 27 19:06:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: Avoid deprecation warning in 2.6

Fri Mar 20 09:44:32 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/unittests/pathinfo.py,wsgiwapi/validation.py:
	  Return ValidationError for pathinfo not being valid, rather than
	  HTTPNotFound (which can be rather confusing when debugging).

Tue Mar 17 18:00:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/__init__.py: Expose ValidationError.

Tue Mar 17 17:59:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py,wsgiwapi/validation.py: Remove some
	  debugging, and move ValidationError to application.py

Tue Mar 17 16:49:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/validation.py: Some more re.UNICODE options.

Tue Mar 17 16:48:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: Compare to None, rather than generic
	  truth test.

Tue Mar 17 16:47:32 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/decorators.py: Use UNICODE for patterns, to allow
	  unicode characters in \w.

Tue Mar 17 15:15:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/testsupport/makesuite.py: Fix coverage output when not
	  run from top dir.

Tue Mar 17 14:54:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/__init__.py,wsgiwapi/decorators.py: Add allow_PUT and
	  allow_DELETE decorators.

Tue Mar 17 08:41:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py,wsgiwapi/unittests/flaturls.py: Allow
	  None to be used as a key in the dict to match the current path
	  without a trailing '/'.  Support this in the url unflattening
	  code, so that an application can support, say, both 'foo' and
	  'foo/'.  Not sure if this is really the right approach yet (it's
	  more code than I'd like, mainly), so not planning to document it
	  yet.

Mon Mar 16 12:50:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/decorators.py,wsgiwapi/html_entity_names.py: Warn if
	  HTML entity names are used as parameter names: doing so is
	  technically valid, but it means that users who cut and paste urls
	  without properly escaping them are likely to end up with invalid
	  urls in their pages.  Better to avoid using the troublesome names
	  at all.

Sun Mar 15 23:22:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/,docs/introduction.rst,wsgiwapi/application.py,
	  wsgiwapi/unittests/harness.py: Change make_application() to
	  return an instance of the application class, rather than the
	  class; there's really no use that I can see for the class, other
	  than to instantiate it once, so it's better to just return an
	  instantiated object.

Tue Mar 10 07:18:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* README: Update about python2.4 (non-supported).

Tue Mar 10 07:10:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/jsonsupport.py,wsgiwapi/postdata.py,wsgiwapi/unittests/:
	  Update some comments, and some code tidying.  Use makeapp in more
	  of the unittests (allows easier control of the logger, and will
	  allow me to improve test error reporting in future by using a
	  custom logger).  Don't require simplejson in testsuite.

Tue Mar 10 07:01:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/jsonsupport.py: Check that the "json" module has the
	  "dumps" function - a third-party json module for python2.5
	  doesn't have it, so we need to fall back to simplejson if we end
	  up with that.

Sun Mar 08 09:15:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/reference.rst: Updates.
	* wsgiwapi/__init__.py,wsgiwapi/decorators.py,
	  wsgiwapi/unittests/postdata.py: Rename post_stream decorator to
	  rawinput.

Sun Mar 08 09:14:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/postdata.py: Use jsonsupport, lazily imported, instead
	  of simplejson always imported.

Sun Mar 08 09:13:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: Remove unneccessary import.

Sun Mar 08 09:11:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* README: mention that the json module can be used instead of
	  simplejson.

Sun Mar 08 00:25:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: Reformat for readability.

Sat Mar 07 17:14:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Add note about mime-types of json returning decorators.

Sat Mar 07 17:12:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/jsonsupport.py: Use json instead of simplejson if it's
	  available.  Add method to parse a json post body.

Sat Mar 07 00:42:07 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/unittests/flaturls.py: Add test of supplying flat urls
	  to the urls.

Fri Mar 06 22:41:07 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/unittests/harness.py: Add utility function "makeapp()"
	  to make applications for testing.

Fri Mar 06 21:13:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: Allow multiple url pieces to be
	  specified together.

Fri Mar 06 15:14:15 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py,wsgiwapi/unittests/pathinfo.py: Add
	  support for '*' as a wildcard for a path component.

Fri Mar 06 15:02:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/validation.py: Fix bug in checking for optional
	  parameters preceding required ones.

Fri Mar 06 11:49:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: If a '' handler is specified as well as
	  a 'foo' handler - 'foo' wins, but '' is used for fallback.  If
	  the 'foo' handler is a subtree, the '' handler is also used if
	  that subtree fails to match.

Fri Mar 06 11:47:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/unittests/pathinfo.py: Turn off VerboseLogger.

Thu Mar 05 12:34:50 GMT 2009  Tom Mortimer <tom@lemurconsulting.com>

	* wsgiwapi/__init__.py: Exposed new post_stream decorator.
	* wsgiwapi/decorators.py: Added post_stream decorator, which
	  prevents default POST data processing.
	* wsgiwapi/unittests/postdata.py: Added test for post_stream
	  decorator.
	* wsgiwapi/unittests/harness.py: Added text/plain type to
	  simulate_post.

Thu Mar 05 11:53:33 GMT 2009  Tom Mortimer <tom@lemurconsulting.com>

	* wsgiwapi/application.py: Changed postdata default function name.
	* wsgiwapi/wsgisupport.py: Added content_type attribute. Plus a
	  FIXME reminder for chunked encoding.
	* wsgiwapi/postdata.py: Split out _read_raw_post_data. Added JSON
	  handling.
	* wsgiwapi/unittests/postdata.py: Added JSON test.
	* wsgiwapi/unittests/harness.py: Added JSON encoding to
	  simulate_post.
	* wsgiwapi/unittests/methodswitch.py: Removed VerboseLogger.

Thu Mar 05 10:58:55 GMT 2009  Tom Mortimer <tom@lemurconsulting.com>

	* wsgiwapi/application.py: Added code to do default postdata handling.
	* wsgiwapi/wsgisupport.py: Removed postdata handling from here.
	* wsgiwapi/postdata.py: Moved default postdata code to new module.
	* wsgiwapi/unittests/postdata.py: Added simple postdata test.

Wed Mar 04 18:06:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py: Remove traceback printing debugging
	  code, add a FIXME about something I'd previously overlooked, and
	  add a documentation comment.

Wed Mar 04 17:39:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* ChangeLog,wsgiwapi/application.py,wsgiwapi/decorators.py,
	  wsgiwapi/unittests/harness.py,wsgiwapi/unittests/methodswitch.py,
	  wsgiwapi/wsgisupport.py: Tidy up whitespace in various places,
	  and fix a couple of comments.

Wed Mar 04 17:17:26 GMT 2009  Tom Mortimer <tom@lemurconsulting.com>

	* wsgiwapi/unittests/methodswitch.py: tests for MethodSwitch.
	* wsgiwapi/__init__.py: exposed MethodSwitch from application.py.
	* wsgiwapi/application.py: moved MethodSwitch here, changed
	  _do_call to ensure that MethodSwitch handlers are handled the
	  same way as standard handlers.
	* wsgiwapi/wsgisupport.py: removed MethodSwitch.

Wed Mar 04 13:55:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/unittests/decorators.py: Add basic test of the
	  "decorate" decorator.

Wed Mar 04 13:11:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Start todo list for documentation and tests.

Wed Mar 04 12:22:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/reference.rst: Start a list of specific things which need
	  more documentation.

Wed Mar 04 08:21:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: Make MethodSwitch into a new-style
	  class.

Tue Mar 03 10:49:53 GMT 2009  Tom Mortimer <tom@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: added class MethodSwitch to allow
	  different callables to be selected for a particular resource
	  based on request method.
	* wsgiwapi/__init__.py: exposed MethodSwitch in API.

Tue Feb 10 00:32:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/application.py,wsgiwapi/decorators.py: Rework the
	  decorators - the pre and post checks are now called by the
	  calling code in application.py, rather than in the decorator's
	  wrapper function.  The wrapper function could possibly be removed
	  now, but I need to ensure that this couldn't lead to security
	  issues first (as described in a code comment).

Tue Feb 10 00:20:50 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: Add encoding with rfc2231 for parameter
	  values if they contain non US-ASCII characters.

Mon Feb 09 14:18:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Add a note about making the decorators better.

Sun Feb 08 23:56:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO,maintainer/release-checklist: Updates with latest
	  work.

Sun Feb 08 23:55:33 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/reference.rst: Updates to the "philosophy" section, and some
	  tweaks elsewhere.

Sun Feb 08 23:54:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: Much improved handling of response
	  headers.

Sun Feb 08 00:01:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwapi/wsgisupport.py: Raise an error if the status line is set
	  to a bytes string which is not a valid us-ascii value.

Sun Feb 08 00:00:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst,docs/reference.rst: Updates, mainly about
	  unicode issues.

Sat Feb 07 22:59:42 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/media/base.css,docs/media/rst.css: Remove centered text,
	  don't really want this anywhere.

Sat Feb 07 13:07:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/index.html: Update version number.

Sat Feb 07 12:59:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* LICENSE,MANIFEST.in,README,docs/examples/,docs/index.html,
	  docs/introduction.rst,docs/reference.rst,maintainer/make_docs.sh,
	  runtests.py,setup.py,wsgiwapi/,wsgiwapi/testsupport/makesuite.py,
	  wsgiwapi/unittests/,wsgiwapi/wsgisupport.py,wsgiwebapi/__init__.py,
	  wsgiwebapi/application.py,wsgiwebapi/autodoc.py,
	  wsgiwebapi/cpwsgiserver/__init__.py,wsgiwebapi/,
	  wsgiwebapi/testsupport/coverage.py,
	  wsgiwebapi/testsupport/makesuite.py,wsgiwebapi/unittests/,
	  wsgiwebapi/validation.py,wsgiwebapi/wsgisupport.py: Change name
	  from wsgiwebapi to wsgiwapi.

Sat Feb 07 12:00:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py,wsgiwebapi/autodoc.py,
	  wsgiwebapi/validation.py: Fixes for autodoc support.

Wed Feb 04 20:57:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst: Fix typo, spotted by James Aylett.

Tue Feb 03 09:23:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/release-checklist,setup.py: More things I missed
	  making the release.

Tue Feb 03 09:17:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/index.html,maintainer/release-checklist,setup.py: Update for
	  release 0.1.1.

Tue Feb 03 09:15:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/apps.py,wsgiwebapi/unittests/validation.py,
	  wsgiwebapi/validation.py: Fix bug with default parameters, and
	  add regression test.

Mon Feb 02 16:28:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/release-checklist: Update checklist for next time.

Mon Feb 02 15:37:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* setup.py: Update download path.

Mon Feb 02 15:06:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* README: Update name of introductory documentation file.

Mon Feb 02 15:05:41 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* MANIFEST.in,ez_setup.py,setup.py: Use distutils instead of
	  setuptools.  Setuptools lacks sufficient accurate documentation
	  for me to be able to get it to work, nice though its feature list
	  sounds.

Mon Feb 02 14:47:12 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/pathinfoapp.py: Update to match .rst file.

Mon Feb 02 11:26:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* README: Tidy up grammar.

Mon Feb 02 10:00:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/make_docs.sh: Move module name to end.

Mon Feb 02 10:01:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/reference.rst: First stab at a basic structure for this,
	  with a few piece of text from the old introduction slotted into
	  place, and a few new pieces of text.

Mon Feb 02 09:45:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Update list.

Mon Feb 02 09:43:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/pathinfo.py: Test use of wsgiwebapi.decorate
	  to make a bad decorator behave.

Mon Feb 02 09:40:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/decorators.py: Add "decorate"
	  decorator, for making other decorators behave well with
	  WSGIWebAPI.

Mon Feb 02 08:55:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py,wsgiwebapi/unittests/pathinfo.py,
	  wsgiwebapi/wsgisupport.py: Store the handler's properties in the
	  request object, so that decorated methods can check that they
	  match the properties in the decorated method.  Test that custom
	  decorators which don't do copyprops raise an appropriate
	  exception.

Mon Feb 02 08:44:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/decorators.py: Add copyprops
	  method, and check that the properties on the handler match those
	  found inside the decorator.  Raise an error if they don't to
	  ensure that it gets fixed.

Mon Feb 02 08:05:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/media/rst.css: Formatting for note and warning blocks.

Sun Feb 01 17:31:16 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Add suggested new feature.

Sun Feb 01 17:30:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* runtests.py: Parameterize the arguments to print.

Sun Feb 01 17:30:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst: Update to reflect changes in api for
	  pathinfo support.

Sun Feb 01 17:28:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py,wsgiwebapi/validation.py: Lots of
	  updates for pathinfo support.  Passes most tests now.
	  Precompile patterns for parameter checking.

Sun Feb 01 17:27:56 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Add a __str__ method for requests.

Sun Feb 01 17:19:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/logging.py: Add VerboseLogger.

Sun Feb 01 17:17:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/pathinfo.py: Replace join_with_comma() with
	  inline version, since it's short, and wasn't being called
	  correctly anyway.  Remove leading argument name from "tail"
	  arguments.  Add a docstring.

Sun Feb 01 17:16:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/pathinfo.py: Add vim fileencoding line.

Sat Jan 31 11:40:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py,wsgiwebapi/wsgisupport.py: Set
	  request.pathinfo to a PathInfo object with the trailing
	  components.

Sat Jan 31 11:38:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/pathinfo.py: Add a class representing path info.

Sat Jan 31 11:36:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/pathinfo.py: Remove test of accessing
	  pathinfo as object attributes - not sure if this would be a good
	  idea, but it we do do it in future, it should be as object
	  attributes of an object with has no other methods, to avoid
	  collisions.

Sat Jan 31 10:17:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/index.html,docs/media/base.css,docs/media/docs.css,
	  docs/media/rst.css,maintainer/make_docs.sh: Add some styling to
	  the documentation.

Wed Jan 28 00:12:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/: Start of implementation of pathinfo support.

Tue Jan 27 23:56:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Wacky idea.

Tue Jan 27 23:48:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/path_components.py,
	  wsgiwebapi/unittests/pathinfo.py: Rename path_components to
	  pathinfo, add a few more tests, and adjust to planned new API.

Tue Jan 27 23:46:18 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py: Add function to get the properties (for
	  internal use), and add documentation comment to param decorator.

Tue Jan 27 23:41:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Update

Tue Jan 27 23:38:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/,docs/introduction.rst: Rename examples to remove
	  the _cp suffix (since they're using the internal server).  More
	  work on the design of the pathinfo support.

Tue Jan 27 16:08:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst: Add specification for the pathinfo
	  decorator, as designed on the train this morning.  (Not yet
	  implemented, but I think this is probably as good a design as I'm
	  likely to come up with soon.)

Mon Jan 26 13:15:15 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* ez_setup.py,setup.py: Preliminary setuptools setup script.

Mon Jan 26 13:05:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* LICENSE,ext/coverage.py,runtests.py,
	  wsgiwebapi/testsupport/__init__.py,
	  wsgiwebapi/testsupport/makesuite.py: Move most of runtests.py
	  into wsgiwebapi/testsupport, and move coverage.py to join it.
	  Leave only the commandline processing in runtests.py.  Allows us
	  to pass an appropriate module to setuptools for testing.

Mon Jan 26 11:16:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/TODO: Update.

Mon Jan 26 11:11:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py,wsgiwebapi/logging.py: Pass the
	  exception information to loggers on request failure, and avoid
	  double calling the logger in this case.

Mon Jan 26 11:08:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/path_components.py: Correct test for errors
	  reported inside function, and add test of decorated functions.

Mon Jan 26 07:55:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/path_components.py: Add a handler which
	  produces an error due to making a call with invalid arguments, to
	  ensure we don't confuse this error for one due to bad URL paths.

Mon Jan 26 07:45:50 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/path_components.py,
	  wsgiwebapi/unittests/simpleapi.py: Add tests that invalid path
	  components result in 404 errors (currently failing).

Sun Jan 25 22:12:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py: Convert tab indentation to spaces.

Sun Jan 25 22:10:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/application.py: Remove
	  make_latestapi() - not particularly general, so probably better
	  to require applications to make their own.

Sun Jan 25 22:09:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst: Mention that extra url components can be
	  passed.

Sun Jan 25 17:12:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* runtests.py: Don't run tests with -h.

Sun Jan 25 17:11:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* runtests.py: Add briefest of usage statements.

Sun Jan 25 17:05:14 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/autodoc.py: Use inspect.getdoc() instead of direct
	  access to __doc__ to get cleaned up version.  Add description of
	  additional path components to documentation.
	* docs/reference.rst,maintainer/TODO: Small updates.

Sun Jan 25 12:06:45 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/introduction.rst,docs/reference.rst: Cut down the
	  introduction a bit, and copy it into reference.rst so we can use
	  the cut-out bits as part of the reference manual.

Sun Jan 25 11:49:31 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Move into maintainer/

Sun Jan 25 11:48:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Update.

Sun Jan 25 11:44:35 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/index.html: Add a basic unstyled index page for the docs.

Sun Jan 25 11:41:15 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* maintainer/make_docs.sh: Add script for building documentation.

Sun Jan 25 11:36:59 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py: Use `` instead of ` to stop epydoc
	  complaining.

Sun Jan 25 11:24:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Remove unused "versioned" parameter.

Sun Jan 25 11:14:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/jsonsumapp_cp.py,docs/examples/sumapp_cp.py,
	  docs/intro.rst,docs/introduction.rst: Move intro.rst to
	  introduction.rst, and replace use of request.GET with
	  request.params.

Sun Jan 25 00:02:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/autodoc.py: Display allowed methods, and allowed
	  parameters.

Sun Jan 25 00:02:23 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Add enhancement note about validation error handlers.

Sun Jan 25 00:01:41 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/jsonsumapp_cp.py,docs/intro.rst: Extend docs a bit,
	  and add some more decorators to the jsonsumapp example.

Sun Jan 25 00:00:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/validation.py: Add import of re, and update to accept
	  doc parameter for validation.

Sat Jan 24 22:51:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/jsonsumapp_cp.py,docs/intro.rst,wsgiwebapi/__init__.py,
	  wsgiwebapi/decorators.py,wsgiwebapi/unittests/apps.py,
	  wsgiwebapi/unittests/validation.py: Change decorator name for
	  validation from "validparam" to "param".  Add an optional "doc"
	  arg to the decorator, for documentation of the parameter.

Sat Jan 24 22:38:55 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/autodoc.py,wsgiwebapi/unittests/simpleapi.py,
	  wsgiwebapi/unittests/validation.py: Use SilentLogger for tests,
	  to avoid noise.

Sat Jan 24 15:34:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* runtests.py: Add rudimentary option parsing to allow coverage and
	  profiling to be controlled.

Sat Jan 24 15:21:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Use the supplied Logger objects to log
	  calls.  Default to StdoutLogger.  Change call to
	  Response.set_status().
	* wsgiwebapi/wsgisupport.py: Documentation fix.

Sat Jan 24 15:11:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Remove debug line.

Fri Jan 23 23:37:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO: Update

Fri Jan 23 23:36:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Change status into a property, and
	  validate it when it's set.

Fri Jan 23 23:35:12 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py: Export the Loggers.

Fri Jan 23 23:34:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/wsgisupport.py: More extensive checks of
	  setting the status.

Fri Jan 23 23:33:55 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/harness.py: Make assertRaisesMessage take a
	  pattern rather than an exact target.

Fri Jan 23 16:36:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO,docs/intro.rst,runtests.py: Misc bits.

Fri Jan 23 16:35:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/wsgisupport.py: Start of unittest for the
	  wsgisupport stuff.

Fri Jan 23 16:33:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/: Add fileencoding lines for Vim.

Fri Jan 23 16:32:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/overlay_dict.py: Correct class name in
	  comment.

Fri Jan 23 16:31:31 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/logging.py: Add some logging support classes.

Fri Jan 23 16:29:15 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/reason_phrases.py: Change to holding the reason
	  phrases as byte strings in US-ASCII.

Wed Jan 21 15:50:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* TODO,wsgiwebapi/FIXME: Move TODO to appropriate place.

Tue Jan 20 23:44:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/overlaydict.py,wsgiwebapi/unittests/overlay_dict.py:
	  Assume that overlaydict values are lists, and append the two
	  lists together if keys are shared.

Tue Jan 20 23:43:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Use overlay dict to provide a
	  request.params object, returning either the GET or POST
	  parameters.

Tue Jan 20 22:47:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/overlaydict.py: Add a dictionary composed of two
	  dictionaries layered on top of each other, used for parameters.
	* wsgiwebapi/unittests/overlay_dict.py: Test of overlay dict.

Tue Jan 20 22:37:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Change default response body for
	  validation error failures, and fix some other exception handling
	  bits.   Document bind_addr a bit more.

Tue Jan 20 22:34:56 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/harness.py: Use wsgiref.validate to check
	  compliance with PEP 333 a bit more, and fix some issues raised by
	  this.

Tue Jan 20 22:33:59 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/validation.py: More tests of validation
	  support.

Tue Jan 20 22:32:42 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/validation.py: Use unicode for validation failure
	  messages.  After validation, put the validated parameters into
	  request.params, replacing the unvalidated ones.

Mon Jan 19 08:00:14 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Add configurable handler for
	  validation errors - return 400 status code with message in body,
	  for now.

Mon Jan 19 07:57:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py: Remove debug prints, and test for
	  setting constraints for a parameter repeatedly (which is probably
	  an error).

Mon Jan 19 07:56:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/validation.py: Fix test in check_no_params to be the
	  right way round.

Mon Jan 19 07:48:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/harness.py: Add support for query args.

Sun Jan 18 20:11:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/application.py,
	  wsgiwebapi/decorators.py,wsgiwebapi/unittests/apps.py,
	  wsgiwebapi/unittests/validation.py,wsgiwebapi/validation.py,
	  wsgiwebapi/wsgisupport.py: More validation support, and a
	  unittest.  (Not yet complete, or passing tests.)

Sun Jan 18 20:10:23 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/harness.py: Add special TestCase subclass,
	  with assertRaisesMessage method.

Sat Jan 17 13:50:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/intro.rst: Updated intro.

Sat Jan 17 13:49:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* README: Add a basic README.

Sat Jan 17 13:40:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/unittests/harness.py: Fix path to find wsgiwebapi at.
	* wsgiwebapi/validation.py: Make into valid python to avoid
	  breaking the test run.

Sat Jan 17 13:38:23 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* runtests.py: Add script to run all the tests.
	* wsgiwebapi/unittests/__init__.py: Make this into a module so that
	  runtests can do the imports easily.

Sat Jan 17 13:35:16 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* LICENSE,ext/coverage.py: Add a copy of coverage.py to ext/.

Sat Jan 17 12:03:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* unittest/: Move unittests into wsgiwebapi/unittests/

Sat Jan 17 11:08:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* unittest/apps.py,unittest/simpleapi.py: Basic test of returning
	  JSON.

Sat Jan 17 10:43:51 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py,wsgiwebapi/jsonsupport.py: Separate
	  JSON support out, to avoid dependency on simplejson unless it's
	  used.  Generalise method of applying decorators before and after
	  applying callable.  Add start of validation support.

Sat Jan 17 10:14:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Tweak imports, and assert that the
	  response is a Response object, to make it much easier to debug
	  incorrect response types.

Sat Jan 17 10:07:23 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/validation.py: Start of parameter validation support.

Sat Jan 17 09:45:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* LICENSE: Add file, to make the license _really_ clear. :)

Fri Jan 16 11:43:42 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/ext/CherryPyWSGIServer/cherrypy/wsgiserver/__init__.py,
	  docs/examples/jsonsumapp_cp.py,docs/examples/myfirstapp_cp.py,
	  docs/examples/sumapp_cp.py,docs/intro.rst: Remove the cherrypy
	  server from ext (it's in the main lib, now).  Various additions
	  to the introductory document.  Update the examples to use the
	  built-in copy of the server.

Fri Jan 16 11:42:45 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* unittest/apps.py,unittest/autodoc.py,unittest/simpleapi.py:
	  Update with recent changes, add a basic test of the autodoc
	  stuff, and separate the application creation code to a shared
	  module.

Fri Jan 16 11:41:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/decorators.py,wsgiwebapi/wsgisupport.py: Make
	  HTTPMethodNotAllowed do the response type checking, rather than
	  the caller, to make it more reusable.

Fri Jan 16 10:23:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/autodoc.py: Require GET method.  Sort display of
	  possible urls into alphabetical order.
	* wsgiwebapi/: Add allow_GETHEAD decorator.  Make autodoc import
	  lazy, to avoid adding overhead for apps which don't use it.  Copy
	  __doc__ of decorated methods to avoid breaking autodoc in this
	  case.

Thu Jan 15 17:36:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* docs/examples/jsonsumapp_cp.py,docs/examples/myfirstapp_cp.py,
	  docs/examples/sumapp_cp.py: Update examples to use built-in
	  server.

Thu Jan 15 17:30:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Add make_server() function, for
	  running with CherryPyWSGIServer easily.

Thu Jan 15 07:16:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Move method_known to here.

Wed Jan 14 11:21:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* unittest/harness.py,unittest/simpleapi.py: Add support for
	  testing POST requests (so far, only with urlencoding), and tests
	  for the new decorators.

Wed Jan 14 11:19:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/__init__.py,wsgiwebapi/decorators.py: Add
	  jsonpreturning, and allow_* decorators.

Wed Jan 14 11:17:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/application.py: Tidy code.

Wed Jan 14 11:16:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/wsgisupport.py: Add HTTPMethodNotAllowed class.

Wed Jan 14 11:16:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* wsgiwebapi/properties.py: Add method for getting dictionary of
	  all properties.

Tue Jan 13 07:52:07 GMT 2009  Richard Boulton <richard@lemurconsulting.com>

	* unittest/simpleapi.py: Fix expected body text on error page.

Mon Jan 12 18:16:12 GMT 2009  Richard Boulton <richard@tartarus.org>

	* docs/examples/jsonsumapp_cp.py,docs/intro.rst: Add a JSON
	  example, and some introductory documentation.

Mon Jan 12 18:14:46 GMT 2009  Richard Boulton <richard@tartarus.org>

	* wsgiwebapi/: Store properties, display in the autodoc whether the
	  return type is known to be JSON.

Mon Jan 12 17:40:52 GMT 2009  Richard Boulton <richard@tartarus.org>

	* docs/examples/myfirstapp_cp.py,docs/examples/sumapp_cp.py:
	  Further examples.

Mon Jan 12 16:25:21 GMT 2009  Richard Boulton <richard@tartarus.org>

	* docs/examples/myfirstapp_cp.py,
	  examples/ext/CherryPyWSGIServer/cherrypy/wsgiserver/__init__.py,
	  examples/myfirstapp_cp.py: Move the examples to live under docs/

Mon Jan 12 16:18:08 GMT 2009  Richard Boulton <richard@tartarus.org>

	* examples/myfirstapp_cp.py: Use lambda instead for shorter code.

Mon Jan 12 13:03:46 GMT 2009  Richard Boulton <richard@tartarus.org>

	* wsgiwebapi/application.py,wsgiwebapi/autodoc.py: Fix up automatic
	  documentation pages to give overview tree of current part of API,
	  and split autodoc stuff into separate file.

Sat Jan 10 12:54:40 GMT 2009  Richard Boulton <richard@tartarus.org>

	* examples/,unittest/,wsgiwebapi/: Initial checkin.
