ANNOUNCE: KirbyBase 1.8
Jamey Cribbs
jcribbs at twmi.rr.com
Sun Feb 20 17:06:01 EST 2005
KirbyBase is a simple, plain-text, database management system written in
Python. It can be used either embedded in a python script or in a
client/server, multi-user mode. You use python code to express your
queries instead of having to use another language such as SQL.
KirbyBase is disk-based, not memory-based. Database changes are
immediately written to disk.
You can find more information on KirbyBase at:
http://www.netpromi.com/kirbybase.html
You can download KirbyBase for Python at:
http://www.netpromi.com/files/KirbyBase_Python_1.8.zip
The most noticeable things about this release are (1) the ability to
sort the result set by multiple fields, (2) the ability to have the
result set returned as a nicely formatted report, suitable for printing,
and (3) the ability to do an insert or an update using a record object
(thanks, Fred Pacquier, for the suggestion).
The manual has also been updated to reflect the new features.
Also, for those of you who have asked how Kirby is doing, I have a
couple of new pictures of him on the website. :-)
I would like to thank everyone who has emailed me with comments, bug
reports, and enhancement requests/ideas. Hearing from people who
actually use KirbyBase is what makes working on it worthwhile. Please
keep the emails coming!
Changes in Version 1.8:
******** IMPORTANT - Method Interface Changes ****************
-Added the ability to sort the result set of a select by multiple
fields and to specify whether each field should be sorted
ascending or descending. This necessitated a change to the
interface of the select method. I moved the position of sortField
in the argument list and also changed it to be a list instead of a
string. I also changed the name of sortField to sortFields. I
also moved sortDesc in the arguement list and also made it a list.
******************************************************************
-Added another allowable value, 'report', to the keyword
parameter, returnType in the select method. This returns the
result set in a pretty print format. Along with this, added
another keyword parameter called rptSettings to the select method.
This is only used if rptType is 'report'. It is a 2 element list.
The first element specifies the number of records to print on a
page. The second element is boolean specifying whether to print
a dashed line between records.
-Added ability to pass field values to update and insert using an
object with attributes set equal to the field names.
-Fixed a bug in _getMatches. If a field of type int or float had
a blank value in the table (i.e. ''), the code was attempting to
convert it to it's proper type (i.e. int or float) before
doing the match comparison. This would cause an exception to
occur. Now, if the field is an int,float,date or datetime and it
is blank, I convert it to None. This allows the numeric
comparisons to work correctly for null fields.
-Fixed a bug in select. If a field in the result set was equal
to '', I was letting it stay that way, when I should really be
converting it to None before returning the result set.
-Cleaned up the internals a bit. Mainly, I tried to use functions
in the operator module like lt and ge instead of hardcoding < and
>= in an if statement.
Jamey Cribbs
jcribbs at twmi.rr.com
More information about the Python-list
mailing list