---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 18:23:49 2007 -0400

Bugfix for TaskManagerEx (multitask); refactoring Task.

loopy.py_multitask.core.TaskManagerEx
* Handle possibility of having an empty queue after handling tasks
  waiting for io or are timing out i.e. don't process the queue in
  that iteration

loopy.py_multitask.core.MultiTaskLoop
* Use the new run_one() method of TaskManagerEx instead of run_next()

loopy.py_multitask.core.Task
* Remove '_closed' internal attribute and 'closed' property
  - Status is handled by the state property
* Properly set state flags when the generator callback is running
  and when the callback finishes
* Override the _on_close() method instead of the close() method
  - Register a generator that closes an event that's been
    removed from the event loop through the low-level TaskManagerEx
    object

Clean up the py_multitask examples.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 18:10:37 2007 -0400

Allow sending keyword arguments when calling BaseEvent objects.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 15:25:06 2007 -0400

Remove debugging code.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 15:20:40 2007 -0400

Added finer-grained control over run cycles giving ability to stop mid-cycle.

This is achieved by subclassing multitask.TaskManager and adding
a new method run_one() which run_next() calls.

run_one() returns a boolean: False will mean that the loop's close()
method was called.

This also introduces a new module: loopy.misc

loopy.misc is where all the small helper functions get put into. For now,
there's only one such function: loopy.misc.cleanlist()


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 00:48:48 2007 -0400

Add more points to TODO list.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 00:48:27 2007 -0400

Add first attempt at loopy implementation of sched standard library module.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue May 29 00:46:39 2007 -0400

Factor out the more general bits from libevent into the general interface.

This is basically the state flags and providing more overridable
methods and hiding setting of state and the loopy event storage
mechanisms.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 28 22:22:58 2007 -0400

First attempt at implementing a multitask based event loop.

Multitask is an event loop implementation using python2.5's
new generator features, with co-routines being featured most
prominently.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 28 22:22:41 2007 -0400

Add TODO file


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 28 22:18:38 2007 -0400

Flesh out BaseEventLoop and BaseEvent interfaces a bit more.

Move some methods/attributes from libevent implementation to
the generic interface.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 28 15:16:27 2007 -0400

First attempt at implementing a generic event loop interface.

Constructed a libevent-based event loop with examples.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 21 18:54:18 2007 -0400

Use generic "__name__" string instead of package name.

VERSIONINFO was first written for the TestRun project, so
need to change to the generic placeholder.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon May 21 18:53:04 2007 -0400

Create VERSIONINFO file.

VERSIONINFO contains information on how to interpret
the python package version string.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Fri May 18 20:25:06 2007 -0400

Create essential files.

The following files were created (with dummy contents)
* COPYING
* INSTALL
* README
* changelog


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Fri May 18 11:10:35 2007 -0400

Add Ned Batchelder's coverage module to tests/ directory.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue Mar 27 19:11:33 2007 -0400

Retool docs/ hierarchy for epydoc3 documentation.

reStructredText doctests should now go under docs/usage/

docs/html/ should not be placed under revision control.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Thu Mar 22 22:36:48 2007 -0400

Ignore directory created from egg creation process


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Wed Mar 21 15:38:37 2007 -0400

Ignore .svn directories


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Mon Mar 19 19:38:46 2007 -0400

doc/ is not a python package.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Sun Mar 18 00:54:42 2007 -0400

BUGFIX: TestDocTests not getting correct doc directory


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Sat Mar 17 22:25:00 2007 -0400

Update tests/all/TestUnitTests.py to include unit tests in tests/unit


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Sat Mar 17 13:53:21 2007 -0400

Change policy so that documentation and tests are outside of the package.

Is still included when making a source distribution, so the MANIFEST.in
file is changed accordingly.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue Mar 13 21:21:56 2007 -0400

BUGFIX: package_data argument for setuptools.setup function requires dict values to be lists.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Tue Mar 13 20:15:50 2007 -0400

Redo structure for creating python egg distributions.

The directory structure is now as follows:

src/
   All packages, modules, and resources are placed here
   as python packages i.e. a directory containing a file
   named '__init__.py'. Any directory with a name containing
   the string '__name__' should have that string replaced with
   the name of the python package.

   __name__/
      The main python package.

   __name___tests/
      All tests go in this directory.

      all/
         Runs all tests.

      doc/
         Runs doc tests.

      unit/
         Contains and runs unit tests.

         data/
            Any data required by the unit tests.

   __name___docs/
      Contains all documentation.

      api/
         Contains api documentation, usually as reStructuredText
         files.

util/
   Any utility programs dealing with egg management.

   python/
      For python scripts.


---------------------------
user:  "Ariel De Ocampo <arieldeocampo@gmail.com>"
date:  Wed Jan 03 16:49:43 2007 -0500

Initial commit.

This is the default layout of a python project.

doc/
   All documentation, including api documentation in the form
   of reStructuredText (*.rst) files.

pkg/
   Third party modules go here.

src/
   The project's packages go here.

tests/
   Files needed to run all unittests and all doctests as well as
   any other kind of tests needed to run project wide. If main
   project package is named `foo`, assumes a module `foo.tests`
   containing unittests exists.

util/
   Utilities such as scripts or programs, and any utility python
   packages needed either for project maintenance or project-wide
   testing.

util/python/
   Python utility packages go here. Default sub-modules: version.py


