2005.12.23

* Added a validator for log level data types in adytum.config.zconfig.

=======
2006.01.22

* Updated the trac plugin to differentiate between project types, displaying
sections, etc.

2005.12.19

* Fixed the setup*.py's to no longer use the deprecated utiltiies module.
* Updated ez_setup.py to the latest version.

2005.12.17

* Added ez_setup.py for bootstrapping.
* Added pymon_setup.py for pymon adytum module distribution.
* Changed the setup scripts to use setuptools instead of distutils.
* Created a release builder script.
* Renamed pymon_setup.py to setup_pymon.py.
* Added config.zconfig to the library for custom ZConfig datatypes/validation.
* Incremented minor version number.
* Tweaked the version-getter in the setups.

2005.12.10

* Had to revert some of the old adytum.math.base code.

2005.11.13

* Added trac wiki/tickey RSS urls to be checked by the supybot RSS plugin.

2005.11.11

* Added try/excepts around RSS feed parsing in supybot plugin to keep the
daemon from dying when it couldn't parse incoming data.

2005.11.09

* Added a plugin for supybot to get news/blog rss feeds and post them to IRC.
* Fixed an import typo in the new rssfeeds file.
* Added an import for os and pickle.
* Fixed a date-parsing bug.
* Added a try/except block for loading pickles.
* Added more info messages.
* Fixed a save pickle bug.
* Added a "hack" for dealing with LiveJournal's non-standard time tag. This
now requires mx.DateTime for date parsing of LJ sites.
* Added a "hack" for dealing with pythonware's complete lack of dates.
* Converted data for posting to IRC from unicode to ascii.
* Tweaked the msg output to IRC a little.

2005.11.08

* Tons of work on the sidereal time code. It produces good results for static
data, however it is not returning the same time as the USNO sideral time
clock.

2005.11.07

* Added a datetime package with a time and timezone module.
* Moved date.py into datetime.
* Renamed datetime.time to datetime.timetime; this silliness was necessary to
avoid name collisions with the python standard library's time package.
* Added the datetime subpackage to setup.py so that it would actually install.

2005.10.27

* Added utility for returning python datetime object from a ctime
formated timestamp.

2005.10.25

* Fixed bug in math.base.
* Added a file for xmlrpc BasicAuthentication.

2005.09.07

* Added plugins.amazon.subscription.ID.
* Updated setup.py to include the amazon subdir.
* Updated config.xml.XmlDict with the ability to ignore namespaces 
from ElementTree.
* Refactored config.xml to support smarter generation of XmlDict and XmlList
config objects.

2005.08.29

* Added z3.typse.pages sub-package and pages.simple type.

2005.08.27

* Created z3.types.equipment namespace.
* Created new equipment type and interfaces.
* Updated setup.py to reflect the new additions of and in adytum.z3.
* Updated ChangeLog with old missing entries (copied from svn log).

2005.08.26

* Created namespace for Zope 3 components.
* Added base types and interfaces.

2005.05.30

* Cleaned up ping parser code a little and added getHostname() method.
* Fixed docstrings and IPHOST_LINE.

2005.05.28

* Created a URI parsing class.
* Added an extra doctest to check for a bug.

2005.05.23

* Added an extra doctest; written a while ago and omitted from a commit.
* Fixed a bug in dsn.py; done a while ago and omitted from a commit.
* Changed the formatting and fixed a typo in the doc strings. Yes, a while
ago. Yes, I forgot to commit.

2005.05.20

* Added missing __init__.py file.

2005.05.15

* Deprecated adytum.utilities and created a copy of utilities as adytum.util.
* Added a DSN creator in adytum.util.dsn.
* Moved Singleton out of adytum.util.python and into adytum.patterns.
* Reorganized patterns into a module instead of a classfile.
* Changed the dict update to occur in processDict instead of __init__ for
config.base.DictConfig.
* Removed the check for empty text strings in config.xml.XmlListConfig and
XmlDictConfig in order to allow the creation of empty 
attributes.
* Put the check back in for empty text strings in config.xml.XmlListConfig and
XmlDictConfig.
* Added a custom __getattr__ to confnig.base.DictConfig so that when an
attribute is called for that doesn't exist, an empty defa
ult is provided.
* Added a custom __repr__ to change what's printed out based on the emptiness
of self.__dict__.
* Added a doctest to confnig.xml to check these additions.
XmlDictConfig.
* Fixed null values being added to dsn in dsn.createDsn().
* Created a better null values fix in dsn.createDsn().

2005.05.10

* Updated math.base to auto generate classes for allowed bases. Borrowed code
from twisted.application.internet to do this.
* Updated the convert method as posted by Douglas Bagnall on ASPN (where I
added part of this class as a recipe). His convert was very clean, with no
recursion.

2005.05.08

* Fixed logic in doctests to more accurately represent 'recovery' workflow.
* Implemented to changes to the ElementTree usage in config.XmlListConfig
based on recommendations from Fredrick Lundh, the author of ElementTree.
* Implemented to changes to the ElementTree usage in config.XmlDictConfig
based on recommendations from Fredrick Lundh, the author of ElementTree.

2005.05.07

* Fixed a bug in Hettinger's code (missing brackets around two list
comprehensions).
* Added Brian Beck's 'switch' recipe to utilities.python (Source: ASPN).
* Added a Singleton class to utilities.python.
* Fixed the doctests for utilities.Singleton.
* Added singleton workflow classes.

2005.05.06

* Added a components.py file from Zoran Isailovski's Inversion Of Control
(source: ASPN).
* Modified components.py to use doctests.
* Added the Conway Sequence (in math.conway) code I wrote for solving part 
of the python puzzle online.
* Added workflow module, based on itools from ikaaro.

2005.05.02

* Added a __call__ method to config.base.ListConfig that takes a keyword
parameter to extract a particular list itme.
* Changed config.base.DictConfig to subclass dict.
* Fixed a bug in (and added a docttest for) config.xml where an empty tag
set would get inserted as '\n' + spaces.

2005.05.01

* Changed the default list type in config.base from IterConfig to ListConfig.

2005.04.20

* Added Raymond Hettinger's floating point summation that prevents rounding
errors (source: ASPN).

2005.04.17

* Moved adytum.config to adytum.config.base.
* Added adytum.config.xml which contains three classes:
 - XmlListConfig - a subclass of the built-in list object
 - XmlDictConfig - a subclass of the built-in dict object
 - XmlConfig - a subclass of the adytum.config.base.DictConfig object
* Got single and multiple elements that map to dictionaries working.
* Bug: multiple sibling elements with the same tag name are not getting
propery mapped to lists.
* Bug: tag attributes are not getting mapped to dict key/val pairs.
* Bug Fix: tag attributes are now properly getting mapped to dict key/val
pairs.
* Bug Fix: sibling tags with the same tag name are now properly being created
as lists.
* Finished implementing the doc tests and fixed all the bugs that were
uncovered in the process.
* Updated docstring and doctest in config.base and xml.

2005.04.16

* Added adytum.config module for creating configuration objects from
dictionaries and lists, such that you can access values via dotted
object/attribute notation.

2005.03.23

* Changed the "replace newline" code from nothing to one space. This should
improve readability somewhat.
* Changed the separators for the
plugins.svn.convert.Commit2IRCMessage.render().
* Added support for base70 conversions in math.base with the Base70 class. 

2005.03.22

* Added os.nodecheck.runOnce() to use with twisted scheduler.
* Fixed a documentation/comment error in os.nodedaemon.
* Wrote a little API for commit log files so that there is now and "adytum
standard" for reading and writing them.
* Created plugins.supybot.svn.

2005.03.21

* Created dirs for subversion and supybot plugins.
* Added empty, placeholder files and copied the supybot URL plugin to act as a
starting point for the Subversion plugin.
* Removed extraneous code in plugins.supybot.Subversion and replaced URL with 
Subversion to get it ready to customize.
* Added an example supybot configuration.

2005.03.09

* Added a class file for handling HTTP requests, and added a class for parsing
HTTP request headers.
* Added a unit/doctest for HTTP request parser.

2005.02.17

* Started filling in some of the stubbed code.

2005.02.16

* Added a pluggin for managing tinydns/djbdns records. Most of it is stubbed
out.

2005.01.02

* Added a decision function and a Walk class to adytum.math.randomwalk.

2004.12.30

* Added support for sorted directories in
adytum.plugins.trac.MultipleProjectsIndex.

2004.12.25

* Added adytum.plugins.trac.MultipleProjectsIndex to be used in trac's
mod_python handler.

2004.12.23

* Added adytum.net.traceroute.

2004.12.11

* Fixed a bug in utilities.numerology where the calculated value for a string
was incorrect when the resulting sum was greater than 2 digits in length; did
this by adding a recursive call.

2004.11.29

* Sorted the NOTATION*'s into alpha-numerical order, so that programs that
utilize these notations list things in the proper order and not out of
sequence.

2004.11.27

* Added support for base36 and base68 math, the original intended use being
to shorten numeric components of URLs.
* Added a sandbox (created last August).
* Added a utilitiy to strip all non-numerics out of a string and return an
integer.
* Converted base module from a container of functions to an actual class file.

2004.10.08

* Re-org'ed the svn repository for adytum libs by moving everything that
should be in trunk into trunk.

2004.10.01

* Improved data passing for NotificationServer.run()
* Developed a usefull callback() function in the daemon.
* Game an exmaple of how to check for deletion and addition of files or
subdirectories in a monitored directory.

2004.09.30

* Added a new os package and "node" (file/dir, etc.) checker.
* Updated ChangeLog with old svn commit comments that were missing.
* Updated the comments os.nodechange to give credit to initial source of
inspiration.
* Formatted spacing on os.nodedaemon.
* Added TODO file.
* Added support for atime and ctime in os.nodechange.CheckNode.setNodeData()
and updated sumString() accordingly.
* Changed os.nodechange.CheckNode.getType() from a series of if's to if + a
series of elif's. Should be more efficient now.
* Updated main docstring in os.nodechange.
* Got rid of unused or badly named constants; added useful ones.
* Added trunk, releases and branches dirs so that I can reorg later, when
ready.
* Added LICENSE file.
* Removed html module, since it has been replaced by the PyHTMLWidgets
project.

2004.08.05

* Added DNS libs and an HTTP place-holder.
* Updated setup.py file.
* Moved reports into lib dir.
* Updated the directory structure so that it would be easier to install
with a setup.py file.
* Added the dotprojects reporting tool and the html module.

2004.08.01

* Renamed files according to the Adytum naming convention.
* Moving files around, using temp names.
* Cleaned up some criz-azy crap with recursive directories in net/dns
dir.
* More organization of net.
* Added utilities, started organizing net tools.

2004.06.30

* Initial import.
