summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b237810)
raw | patch | inline | side by side (parent: b237810)
author | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Tue, 10 Sep 2002 00:11:50 +0000 (00:11 +0000) | ||
committer | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Tue, 10 Sep 2002 00:11:50 +0000 (00:11 +0000) |
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1108 57a73879-2fb5-44c3-a270-3262357dd7e2
index b5e38c013a31bfa3143f486a90c25e1c4d1c69db..931de121f1d577a8ae662a240b8ee9bec1c0c10b 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: __init__.py,v 1.15 2002-08-23 04:48:10 richard Exp $
+# $Id: __init__.py,v 1.16 2002-09-10 00:11:49 richard Exp $
__all__ = []
metakit = back_metakit
__all__.append('metakit')
-#
-# $Log: not supported by cvs2svn $
-# Revision 1.14 2002/08/22 07:56:51 richard
-# Whee! It's not finished yet, but I can create a new instance and play with
-# it a little bit :)
-#
-# Revision 1.13 2002/07/11 01:11:03 richard
-# Added metakit backend to the db tests and fixed the more easily fixable test
-# failures.
-#
-# Revision 1.12 2002/05/22 00:32:33 richard
-# . changed the default message list in issues to display the message body
-# . made backends.__init__ be more specific about which ImportErrors it really
-# wants to ignore
-# . fixed the example addresses in the templates to use correct example domains
-# . cleaned out the template stylesheets, removing a bunch of junk that really
-# wasn't necessary (font specs, styles never used) and added a style for
-# message content
-#
-# Revision 1.11 2002/02/16 08:39:42 richard
-# . #516854 ] "My Issues" and redisplay
-#
-# Revision 1.10 2002/01/22 07:08:50 richard
-# I was certain I'd already done this (there's even a change note in
-# CHANGES)...
-#
-# Revision 1.9 2001/12/12 02:30:51 richard
-# I fixed the problems with people whose anydbm was using the dbm module at the
-# backend. It turns out the dbm module modifies the file name to append ".db"
-# and my check to determine if we're opening an existing or new db just
-# tested os.path.exists() on the filename. Well, no longer! We now perform a
-# much better check _and_ cope with the anydbm implementation module changing
-# too!
-# I also fixed the backends __init__ so only ImportError is squashed.
-#
-# Revision 1.8 2001/12/10 22:20:01 richard
-# Enabled transaction support in the bsddb backend. It uses the anydbm code
-# where possible, only replacing methods where the db is opened (it uses the
-# btree opener specifically.)
-# Also cleaned up some change note generation.
-# Made the backends package work with pydoc too.
-#
-# Revision 1.7 2001/12/10 00:57:38 richard
-# From CHANGES:
-# . Added the "display" command to the admin tool - displays a node's values
-# . #489760 ] [issue] only subject
-# . fixed the doc/index.html to include the quoting in the mail alias.
-#
-# Also:
-# . fixed roundup-admin so it works with transactions
-# . disabled the back_anydbm module if anydbm tries to use dumbdbm
-#
-# Revision 1.6 2001/08/07 00:24:42 richard
-# stupid typo
-#
-# Revision 1.5 2001/08/07 00:15:51 richard
-# Added the copyright/license notice to (nearly) all files at request of
-# Bizar Software.
-#
-#
-#
# vim: set filetype=python ts=4 sw=4 et si
index b9e33a1004954adad3da569f413157c9fc729bda..2a338a0bb7ba250a088606c5c0ab9c454726638c 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-#$Id: back_anydbm.py,v 1.72 2002-09-05 00:33:22 richard Exp $
+#$Id: back_anydbm.py,v 1.73 2002-09-10 00:11:49 richard Exp $
'''
This module defines a backend that saves the hyperdatabase in a database
chosen by anydbm. It is guaranteed to always be available in python
Class.__init__(self, db, classname, **properties)
#
-#$Log: not supported by cvs2svn $
-#Revision 1.71 2002/09/04 07:12:19 richard
-#better error message
-#
-#Revision 1.70 2002/09/04 04:29:36 richard
-#bugfix
-#
-#Revision 1.69 2002/09/03 07:33:01 richard
-#allow overiding of the index args roundup/cgi/templating.py
-#
-#Revision 1.68 2002/09/03 05:46:20 richard
-#handle disappearing users for journaltags
-#
-#Revision 1.67 2002/09/03 02:53:53 richard
-#Fixed nasty bug that was preventing changes to multilinks going through.
-#
-#Revision 1.66 2002/09/01 04:32:30 richard
-#. Lots of cleanup in the classic html (stylesheet, search page, index page, ...)
-#. Reinstated searching, but not query saving yet
-#. Filtering only allows sorting and grouping by one property - all backends
-# now implement this behaviour.
-#. Nosy list journalling turned off by default, everything else is on.
-#. Added some convenience methods (reverse, propchanged, [item] accesses, ...)
-#. Did I mention the stylesheet is much cleaner now? :)
-#
-#Revision 1.65 2002/08/30 08:35:45 richard
-#minor edits
-#
-#Revision 1.64 2002/08/22 07:57:11 richard
-#Consistent quoting
-#
-#Revision 1.63 2002/08/22 04:42:28 richard
-#use more robust date stamp comparisons in pack(), make journal smaller too
-#
-#Revision 1.62 2002/08/21 07:07:27 richard
-#In preparing to turn back on link/unlink journal events (by default these
-#are turned off) I've:
-#- fixed back_anydbm so it can journal those events again (had broken it
-# with recent changes)
-#- changed the serialisation format for dates and intervals to use a
-# numbers-only (and sign for Intervals) string instead of tuple-of-ints.
-# Much smaller.
-#
-#Revision 1.61 2002/08/19 02:53:27 richard
-#full database export and import is done
-#
-#Revision 1.60 2002/08/19 00:23:19 richard
-#handle "unset" initial Link values (!)
-#
-#Revision 1.59 2002/08/16 04:28:13 richard
-#added is_retired query to Class
-#
-#Revision 1.58 2002/08/01 15:06:24 gmcm
-#Use same regex to split search terms as used to index text.
-#Fix to back_metakit for not changing journaltag on reopen.
-#Fix htmltemplate's do_link so [No <whatever>] strings are href'd.
-#Fix bogus "nosy edited ok" msg - the **d syntax does NOT share d between caller and callee.
-#
-#Revision 1.57 2002/07/31 23:57:36 richard
-# . web forms may now unset Link values (like assignedto)
-#
-#Revision 1.56 2002/07/31 22:04:33 richard
-#cleanup
-#
-#Revision 1.55 2002/07/30 08:22:38 richard
-#Session storage in the hyperdb was horribly, horribly inefficient. We use
-#a simple anydbm wrapper now - which could be overridden by the metakit
-#backend or RDB backend if necessary.
-#Much, much better.
-#
-#Revision 1.54 2002/07/26 08:26:59 richard
-#Very close now. The cgi and mailgw now use the new security API. The two
-#templates have been migrated to that setup. Lots of unit tests. Still some
-#issue in the web form for editing Roles assigned to users.
-#
-#Revision 1.53 2002/07/25 07:14:06 richard
-#Bugger it. Here's the current shape of the new security implementation.
-#Still to do:
-# . call the security funcs from cgi and mailgw
-# . change shipped templates to include correct initialisation and remove
-# the old config vars
-#... that seems like a lot. The bulk of the work has been done though. Honest :)
-#
-#Revision 1.52 2002/07/19 03:36:34 richard
-#Implemented the destroy() method needed by the session database (and possibly
-#others). At the same time, I removed the leading underscores from the hyperdb
-#methods that Really Didn't Need Them.
-#The journal also raises IndexError now for all situations where there is a
-#request for the journal of a node that doesn't have one. It used to return
-#[] in _some_ situations, but not all. This _may_ break code, but the tests
-#pass...
-#
-#Revision 1.51 2002/07/18 23:07:08 richard
-#Unit tests and a few fixes.
-#
-#Revision 1.50 2002/07/18 11:50:58 richard
-#added tests for number type too
-#
-#Revision 1.49 2002/07/18 11:41:10 richard
-#added tests for boolean type, and fixes to anydbm backend
-#
-#Revision 1.48 2002/07/18 11:17:31 gmcm
-#Add Number and Boolean types to hyperdb.
-#Add conversion cases to web, mail & admin interfaces.
-#Add storage/serialization cases to back_anydbm & back_metakit.
-#
-#Revision 1.47 2002/07/14 23:18:20 richard
-#. fixed the journal bloat from multilink changes - we just log the add or
-# remove operations, not the whole list
-#
-#Revision 1.46 2002/07/14 06:06:34 richard
-#Did some old TODOs
-#
-#Revision 1.45 2002/07/14 04:03:14 richard
-#Implemented a switch to disable journalling for a Class. CGI session
-#database now uses it.
-#
-#Revision 1.44 2002/07/14 02:05:53 richard
-#. all storage-specific code (ie. backend) is now implemented by the backends
-#
-#Revision 1.43 2002/07/10 06:30:30 richard
-#...except of course it's nice to use valid Python syntax
-#
-#Revision 1.42 2002/07/10 06:21:38 richard
-#Be extra safe
-#
-#Revision 1.41 2002/07/10 00:21:45 richard
-#explicit database closing
-#
-#Revision 1.40 2002/07/09 04:19:09 richard
-#Added reindex command to roundup-admin.
-#Fixed reindex on first access.
-#Also fixed reindexing of entries that change.
-#
-#Revision 1.39 2002/07/09 03:02:52 richard
-#More indexer work:
-#- all String properties may now be indexed too. Currently there's a bit of
-# "issue" specific code in the actual searching which needs to be
-# addressed. In a nutshell:
-# + pass 'indexme="yes"' as a String() property initialisation arg, eg:
-# file = FileClass(db, "file", name=String(), type=String(),
-# comment=String(indexme="yes"))
-# + the comment will then be indexed and be searchable, with the results
-# related back to the issue that the file is linked to
-#- as a result of this work, the FileClass has a default MIME type that may
-# be overridden in a subclass, or by the use of a "type" property as is
-# done in the default templates.
-#- the regeneration of the indexes (if necessary) is done once the schema is
-# set up in the dbinit.
-#
-#Revision 1.38 2002/07/08 06:58:15 richard
-#cleaned up the indexer code:
-# - it splits more words out (much simpler, faster splitter)
-# - removed code we'll never use (roundup.roundup_indexer has the full
-# implementation, and replaces roundup.indexer)
-# - only index text/plain and rfc822/message (ideas for other text formats to
-# index are welcome)
-# - added simple unit test for indexer. Needs more tests for regression.
-#
-#Revision 1.37 2002/06/20 23:52:35 richard
-#More informative error message
-#
-#Revision 1.36 2002/06/19 03:07:19 richard
-#Moved the file storage commit into blobfiles where it belongs.
-#
-#Revision 1.35 2002/05/25 07:16:24 rochecompaan
-#Merged search_indexing-branch with HEAD
-#
-#Revision 1.34 2002/05/15 06:21:21 richard
-# . node caching now works, and gives a small boost in performance
-#
-#As a part of this, I cleaned up the DEBUG output and implemented TRACE
-#output (HYPERDBTRACE='file to trace to') with checkpoints at the start of
-#CGI requests. Run roundup with python -O to skip all the DEBUG/TRACE stuff
-#(using if __debug__ which is compiled out with -O)
-#
-#Revision 1.33 2002/04/24 10:38:26 rochecompaan
-#All database files are now created group readable and writable.
-#
-#Revision 1.32 2002/04/15 23:25:15 richard
-#. node ids are now generated from a lockable store - no more race conditions
-#
-#We're using the portalocker code by Jonathan Feinberg that was contributed
-#to the ASPN Python cookbook. This gives us locking across Unix and Windows.
-#
-#Revision 1.31 2002/04/03 05:54:31 richard
-#Fixed serialisation problem by moving the serialisation step out of the
-#hyperdb.Class (get, set) into the hyperdb.Database.
-#
-#Also fixed htmltemplate after the showid changes I made yesterday.
-#
-#Unit tests for all of the above written.
-#
-#Revision 1.30.2.1 2002/04/03 11:55:57 rochecompaan
-# . Added feature #526730 - search for messages capability
-#
-#Revision 1.30 2002/02/27 03:40:59 richard
-#Ran it through pychecker, made fixes
-#
-#Revision 1.29 2002/02/25 14:34:31 grubert
-# . use blobfiles in back_anydbm which is used in back_bsddb.
-# change test_db as dirlist does not work for subdirectories.
-# ATTENTION: blobfiles now creates subdirectories for files.
-#
-#Revision 1.28 2002/02/16 09:14:17 richard
-# . #514854 ] History: "User" is always ticket creator
-#
-#Revision 1.27 2002/01/22 07:21:13 richard
-#. fixed back_bsddb so it passed the journal tests
-#
-#... it didn't seem happy using the back_anydbm _open method, which is odd.
-#Yet another occurrance of whichdb not being able to recognise older bsddb
-#databases. Yadda yadda. Made the HYPERDBDEBUG stuff more sane in the
-#process.
-#
-#Revision 1.26 2002/01/22 05:18:38 rochecompaan
-#last_set_entry was referenced before assignment
-#
-#Revision 1.25 2002/01/22 05:06:08 rochecompaan
-#We need to keep the last 'set' entry in the journal to preserve
-#information on 'activity' for nodes.
-#
-#Revision 1.24 2002/01/21 16:33:20 rochecompaan
-#You can now use the roundup-admin tool to pack the database
-#
-#Revision 1.23 2002/01/18 04:32:04 richard
-#Rollback was breaking because a message hadn't actually been written to the file. Needs
-#more investigation.
-#
-#Revision 1.22 2002/01/14 02:20:15 richard
-# . changed all config accesses so they access either the instance or the
-# config attriubute on the db. This means that all config is obtained from
-# instance_config instead of the mish-mash of classes. This will make
-# switching to a ConfigParser setup easier too, I hope.
-#
-#At a minimum, this makes migration a _little_ easier (a lot easier in the
-#0.5.0 switch, I hope!)
-#
-#Revision 1.21 2002/01/02 02:31:38 richard
-#Sorry for the huge checkin message - I was only intending to implement #496356
-#but I found a number of places where things had been broken by transactions:
-# . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename
-# for _all_ roundup-generated smtp messages to be sent to.
-# . the transaction cache had broken the roundupdb.Class set() reactors
-# . newly-created author users in the mailgw weren't being committed to the db
-#
-#Stuff that made it into CHANGES.txt (ie. the stuff I was actually working
-#on when I found that stuff :):
-# . #496356 ] Use threading in messages
-# . detectors were being registered multiple times
-# . added tests for mailgw
-# . much better attaching of erroneous messages in the mail gateway
-#
-#Revision 1.20 2001/12/18 15:30:34 rochecompaan
-#Fixed bugs:
-# . Fixed file creation and retrieval in same transaction in anydbm
-# backend
-# . Cgi interface now renders new issue after issue creation
-# . Could not set issue status to resolved through cgi interface
-# . Mail gateway was changing status back to 'chatting' if status was
-# omitted as an argument
-#
-#Revision 1.19 2001/12/17 03:52:48 richard
-#Implemented file store rollback. As a bonus, the hyperdb is now capable of
-#storing more than one file per node - if a property name is supplied,
-#the file is called designator.property.
-#I decided not to migrate the existing files stored over to the new naming
-#scheme - the FileClass just doesn't specify the property name.
-#
-#Revision 1.18 2001/12/16 10:53:38 richard
-#take a copy of the node dict so that the subsequent set
-#operation doesn't modify the oldvalues structure
-#
-#Revision 1.17 2001/12/14 23:42:57 richard
-#yuck, a gdbm instance tests false :(
-#I've left the debugging code in - it should be removed one day if we're ever
-#_really_ anal about performace :)
-#
-#Revision 1.16 2001/12/12 03:23:14 richard
-#Cor blimey this anydbm/whichdb stuff is yecchy. Turns out that whichdb
-#incorrectly identifies a dbm file as a dbhash file on my system. This has
-#been submitted to the python bug tracker as issue #491888:
-#https://sourceforge.net/tracker/index.php?func=detail&aid=491888&group_id=5470&atid=105470
-#
-#Revision 1.15 2001/12/12 02:30:51 richard
-#I fixed the problems with people whose anydbm was using the dbm module at the
-#backend. It turns out the dbm module modifies the file name to append ".db"
-#and my check to determine if we're opening an existing or new db just
-#tested os.path.exists() on the filename. Well, no longer! We now perform a
-#much better check _and_ cope with the anydbm implementation module changing
-#too!
-#I also fixed the backends __init__ so only ImportError is squashed.
-#
-#Revision 1.14 2001/12/10 22:20:01 richard
-#Enabled transaction support in the bsddb backend. It uses the anydbm code
-#where possible, only replacing methods where the db is opened (it uses the
-#btree opener specifically.)
-#Also cleaned up some change note generation.
-#Made the backends package work with pydoc too.
-#
-#Revision 1.13 2001/12/02 05:06:16 richard
-#. We now use weakrefs in the Classes to keep the database reference, so
-# the close() method on the database is no longer needed.
-# I bumped the minimum python requirement up to 2.1 accordingly.
-#. #487480 ] roundup-server
-#. #487476 ] INSTALL.txt
-#
-#I also cleaned up the change message / post-edit stuff in the cgi client.
-#There's now a clearly marked "TODO: append the change note" where I believe
-#the change note should be added there. The "changes" list will obviously
-#have to be modified to be a dict of the changes, or somesuch.
-#
-#More testing needed.
-#
-#Revision 1.12 2001/12/01 07:17:50 richard
-#. We now have basic transaction support! Information is only written to
-# the database when the commit() method is called. Only the anydbm
-# backend is modified in this way - neither of the bsddb backends have been.
-# The mail, admin and cgi interfaces all use commit (except the admin tool
-# doesn't have a commit command, so interactive users can't commit...)
-#. Fixed login/registration forwarding the user to the right page (or not,
-# on a failure)
-#
-#Revision 1.11 2001/11/21 02:34:18 richard
-#Added a target version field to the extended issue schema
-#
-#Revision 1.10 2001/10/09 23:58:10 richard
-#Moved the data stringification up into the hyperdb.Class class' get, set
-#and create methods. This means that the data is also stringified for the
-#journal call, and removes duplication of code from the backends. The
-#backend code now only sees strings.
-#
-#Revision 1.9 2001/10/09 07:25:59 richard
-#Added the Password property type. See "pydoc roundup.password" for
-#implementation details. Have updated some of the documentation too.
-#
-#Revision 1.8 2001/09/29 13:27:00 richard
-#CGI interfaces now spit up a top-level index of all the instances they can
-#serve.
-#
-#Revision 1.7 2001/08/12 06:32:36 richard
-#using isinstance(blah, Foo) now instead of isFooType
-#
-#Revision 1.6 2001/08/07 00:24:42 richard
-#stupid typo
-#
-#Revision 1.5 2001/08/07 00:15:51 richard
-#Added the copyright/license notice to (nearly) all files at request of
-#Bizar Software.
-#
-#Revision 1.4 2001/07/30 01:41:36 richard
-#Makes schema changes mucho easier.
-#
-#Revision 1.3 2001/07/25 01:23:07 richard
-#Added the Roundup spec to the new documentation directory.
-#
-#Revision 1.2 2001/07/23 08:20:44 richard
-#Moved over to using marshal in the bsddb and anydbm backends.
-#roundup-admin now has a "freshen" command that'll load/save all nodes (not
-# retired - mod hyperdb.Class.list() so it lists retired nodes)
-#
-#
index ce4a6a1fa437052923d2f089d9cb0b3d0b64245e..9ffd906821caf64593ea9d939ac34aabc8ddd056 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-#$Id: back_bsddb.py,v 1.22 2002-09-09 02:58:34 richard Exp $
+#$Id: back_bsddb.py,v 1.23 2002-09-10 00:11:50 richard Exp $
'''
This module defines a backend that saves the hyperdatabase in BSDDB.
'''
l = [entry]
db[nodeid] = marshal.dumps(l)
-
-#
-#$Log: not supported by cvs2svn $
-#Revision 1.21 2002/09/03 07:33:01 richard
-#allow overiding of the index args roundup/cgi/templating.py
-#
-#Revision 1.20 2002/07/19 03:36:34 richard
-#Implemented the destroy() method needed by the session database (and possibly
-#others). At the same time, I removed the leading underscores from the hyperdb
-#methods that Really Didn't Need Them.
-#The journal also raises IndexError now for all situations where there is a
-#request for the journal of a node that doesn't have one. It used to return
-#[] in _some_ situations, but not all. This _may_ break code, but the tests
-#pass...
-#
-#Revision 1.19 2002/07/14 02:05:53 richard
-#. all storage-specific code (ie. backend) is now implemented by the backends
-#
-#Revision 1.18 2002/05/15 06:21:21 richard
-# . node caching now works, and gives a small boost in performance
-#
-#As a part of this, I cleaned up the DEBUG output and implemented TRACE
-#output (HYPERDBTRACE='file to trace to') with checkpoints at the start of
-#CGI requests. Run roundup with python -O to skip all the DEBUG/TRACE stuff
-#(using if __debug__ which is compiled out with -O)
-#
-#Revision 1.17 2002/04/03 05:54:31 richard
-#Fixed serialisation problem by moving the serialisation step out of the
-#hyperdb.Class (get, set) into the hyperdb.Database.
-#
-#Also fixed htmltemplate after the showid changes I made yesterday.
-#
-#Unit tests for all of the above written.
-#
-#Revision 1.16 2002/02/27 03:40:59 richard
-#Ran it through pychecker, made fixes
-#
-#Revision 1.15 2002/02/16 09:15:33 richard
-#forgot to patch bsddb backend too
-#
-#Revision 1.14 2002/01/22 07:21:13 richard
-#. fixed back_bsddb so it passed the journal tests
-#
-#... it didn't seem happy using the back_anydbm _open method, which is odd.
-#Yet another occurrance of whichdb not being able to recognise older bsddb
-#databases. Yadda yadda. Made the HYPERDBDEBUG stuff more sane in the
-#process.
-#
-#Revision 1.13 2001/12/10 22:20:01 richard
-#Enabled transaction support in the bsddb backend. It uses the anydbm code
-#where possible, only replacing methods where the db is opened (it uses the
-#btree opener specifically.)
-#Also cleaned up some change note generation.
-#Made the backends package work with pydoc too.
-#
-#Revision 1.12 2001/11/21 02:34:18 richard
-#Added a target version field to the extended issue schema
-#
-#Revision 1.11 2001/10/09 23:58:10 richard
-#Moved the data stringification up into the hyperdb.Class class' get, set
-#and create methods. This means that the data is also stringified for the
-#journal call, and removes duplication of code from the backends. The
-#backend code now only sees strings.
-#
-#Revision 1.10 2001/10/09 07:25:59 richard
-#Added the Password property type. See "pydoc roundup.password" for
-#implementation details. Have updated some of the documentation too.
-#
-#Revision 1.9 2001/08/12 06:32:36 richard
-#using isinstance(blah, Foo) now instead of isFooType
-#
-#Revision 1.8 2001/08/07 00:24:42 richard
-#stupid typo
-#
-#Revision 1.7 2001/08/07 00:15:51 richard
-#Added the copyright/license notice to (nearly) all files at request of
-#Bizar Software.
-#
-#Revision 1.6 2001/07/30 02:36:23 richard
-#Handle non-existence of db files in the other backends (code from anydbm).
-#
-#Revision 1.5 2001/07/30 01:41:36 richard
-#Makes schema changes mucho easier.
-#
-#Revision 1.4 2001/07/23 08:25:33 richard
-#more handling of bad journals
-#
-#Revision 1.3 2001/07/23 08:20:44 richard
-#Moved over to using marshal in the bsddb and anydbm backends.
-#roundup-admin now has a "freshen" command that'll load/save all nodes (not
-# retired - mod hyperdb.Class.list() so it lists retired nodes)
-#
-#Revision 1.2 2001/07/23 07:56:05 richard
-#Storing only marshallable data in the db - no nasty pickled class references.
-#
-#Revision 1.1 2001/07/23 07:22:13 richard
-#*sigh* some databases have _foo.so as their underlying implementation.
-#This time for sure, Rocky.
-#
-#Revision 1.1 2001/07/23 07:15:57 richard
-#Moved the backends into the backends package. Anydbm hasn't been tested at all.
-#
-#Revision 1.1 2001/07/23 06:23:41 richard
-#moved hyper_bsddb.py to the new backends package as bsddb.py
-#
-#Revision 1.2 2001/07/22 12:09:32 richard
-#Final commit of Grande Splite
-#
-#Revision 1.1 2001/07/22 11:58:35 richard
-#More Grande Splite
-#
index cb1034d2837f024925815070e9800e497b1e4934..0a701950871ebeb7e363fd0f9b9f86750f8123e5 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-#$Id: back_bsddb3.py,v 1.15 2002-07-19 03:36:34 richard Exp $
+#$Id: back_bsddb3.py,v 1.16 2002-09-10 00:11:50 richard Exp $
import bsddb3, os, marshal
from roundup import hyperdb, date
l = [entry]
db[nodeid] = marshal.dumps(l)
-
-#
-#$Log: not supported by cvs2svn $
-#Revision 1.14 2002/07/14 02:05:54 richard
-#. all storage-specific code (ie. backend) is now implemented by the backends
-#
-#Revision 1.13 2002/07/08 06:41:03 richard
-#Was reopening the database with 'n'.
-#
-#Revision 1.12 2002/05/21 05:52:11 richard
-#Well whadya know, bsddb3 works again.
-#The backend is implemented _exactly_ the same as bsddb - so there's no
-#using its transaction or locking support. It'd be nice to use those some
-#day I suppose.
-#
-#Revision 1.11 2002/01/14 02:20:15 richard
-# . changed all config accesses so they access either the instance or the
-# config attriubute on the db. This means that all config is obtained from
-# instance_config instead of the mish-mash of classes. This will make
-# switching to a ConfigParser setup easier too, I hope.
-#
-#At a minimum, this makes migration a _little_ easier (a lot easier in the
-#0.5.0 switch, I hope!)
-#
-#Revision 1.10 2001/11/21 02:34:18 richard
-#Added a target version field to the extended issue schema
-#
-#Revision 1.9 2001/10/09 23:58:10 richard
-#Moved the data stringification up into the hyperdb.Class class' get, set
-#and create methods. This means that the data is also stringified for the
-#journal call, and removes duplication of code from the backends. The
-#backend code now only sees strings.
-#
-#Revision 1.8 2001/10/09 07:25:59 richard
-#Added the Password property type. See "pydoc roundup.password" for
-#implementation details. Have updated some of the documentation too.
-#
-#Revision 1.7 2001/08/12 06:32:36 richard
-#using isinstance(blah, Foo) now instead of isFooType
-#
-#Revision 1.6 2001/08/07 00:24:42 richard
-#stupid typo
-#
-#Revision 1.5 2001/08/07 00:15:51 richard
-#Added the copyright/license notice to (nearly) all files at request of
-#Bizar Software.
-#
-#Revision 1.4 2001/08/03 02:45:47 anthonybaxter
-#'n' -> 'c' for create.
-#
-#Revision 1.3 2001/07/30 02:36:23 richard
-#Handle non-existence of db files in the other backends (code from anydbm).
-#
-#Revision 1.2 2001/07/30 01:41:36 richard
-#Makes schema changes mucho easier.
-#
-#Revision 1.1 2001/07/24 04:26:03 anthonybaxter
-#bsddb3 implementation. For now, it's the bsddb implementation with a "3"
-#added in crayon.
-#
-#Revision 1.4 2001/07/23 08:25:33 richard
-#more handling of bad journals
-#
-#Revision 1.3 2001/07/23 08:20:44 richard
-#Moved over to using marshal in the bsddb and anydbm backends.
-#roundup-admin now has a "freshen" command that'll load/save all nodes (not
-# retired - mod hyperdb.Class.list() so it lists retired nodes)
-#
-#Revision 1.2 2001/07/23 07:56:05 richard
-#Storing only marshallable data in the db - no nasty pickled class references.
-#
-#Revision 1.1 2001/07/23 07:22:13 richard
-#*sigh* some databases have _foo.so as their underlying implementation.
-#This time for sure, Rocky.
-#
-#Revision 1.1 2001/07/23 07:15:57 richard
-#Moved the backends into the backends package. Anydbm hasn't been tested at all.
-#
-#Revision 1.1 2001/07/23 06:23:41 richard
-#moved hyper_bsddb.py to the new backends package as bsddb.py
-#
-#Revision 1.2 2001/07/22 12:09:32 richard
-#Final commit of Grande Splite
-#
-#Revision 1.1 2001/07/22 11:58:35 richard
-#More Grande Splite
-#
index ad156d23af769b9d8aa0c062e066aa256f760cde..8b01acc1cefdade654fafa7302e93c27084253da 100644 (file)
-# $Id: back_gadfly.py,v 1.14 2002-09-05 00:33:22 richard Exp $
+# $Id: back_gadfly.py,v 1.15 2002-09-10 00:11:50 richard Exp $
__doc__ = '''
About Gadfly
============
if not properties.has_key('superseder'):
properties['superseder'] = hyperdb.Multilink(classname)
Class.__init__(self, db, classname, **properties)
-
-#
-# $Log: not supported by cvs2svn $
-# Revision 1.13 2002/09/04 07:12:19 richard
-# better error message
-#
-# Revision 1.12 2002/09/04 04:30:18 richard
-# bugfix
-#
-# Revision 1.11 2002/09/03 22:11:50 richard
-# *** empty log message ***
-#
-# Revision 1.10 2002/09/03 06:08:50 richard
-# oops
-#
-# Revision 1.9 2002/09/03 05:46:21 richard
-# handle disappearing users for journaltags
-#
-# Revision 1.8 2002/09/03 02:53:53 richard
-# Fixed nasty bug that was preventing changes to multilinks going through.
-#
-# Revision 1.7 2002/09/01 04:32:30 richard
-# . Lots of cleanup in the classic html (stylesheet, search page, index page, ...)
-# . Reinstated searching, but not query saving yet
-# . Filtering only allows sorting and grouping by one property - all backends
-# now implement this behaviour.
-# . Nosy list journalling turned off by default, everything else is on.
-# . Added some convenience methods (reverse, propchanged, [item] accesses, ...)
-# . Did I mention the stylesheet is much cleaner now? :)
-#
-# Revision 1.6 2002/08/30 08:35:16 richard
-# very basic filter support
-#
-# Revision 1.5 2002/08/23 05:33:32 richard
-# implemented multilink changes (and a unit test)
-#
-# Revision 1.4 2002/08/23 05:00:38 richard
-# fixed read-only gadfly retire()
-#
-# Revision 1.3 2002/08/23 04:58:00 richard
-# ahhh, I understand now
-#
-# Revision 1.2 2002/08/23 04:48:10 richard
-# That's gadfly done, mostly. Things left:
-# - Class.filter (I'm a wuss ;)
-# - schema changes adding new non-multilink properties are not implemented.
-# gadfly doesn't have an ALTER TABLE command, making that quite difficult :)
-#
-# I had to mangle two unit tests to get this all working:
-# - gadfly also can't handle two handles open on the one database, so
-# testIDGeneration doesn't try that.
-# - testNewProperty is disabled as per the second comment above.
-#
-# I noticed test_pack was incorrect, and the *dbm tests fail there now.
-# Looking into it...
-#
-# Revision 1.1 2002/08/22 07:56:51 richard
-# Whee! It's not finished yet, but I can create a new instance and play with
-# it a little bit :)
-#
-# Revision 1.80 2002/08/16 04:28:13 richard
-# added is_retired query to Class
-#
-# Revision 1.79 2002/07/29 23:30:14 richard
-# documentation reorg post-new-security
-#
-# Revision 1.78 2002/07/21 03:26:37 richard
-# Gordon, does this help?
-#
-# Revision 1.77 2002/07/18 11:27:47 richard
-# ws
-#
-# Revision 1.76 2002/07/18 11:17:30 gmcm
-# Add Number and Boolean types to hyperdb.
-# Add conversion cases to web, mail & admin interfaces.
-# Add storage/serialization cases to back_anydbm & back_metakit.
-#
-# Revision 1.75 2002/07/14 02:05:53 richard
-# . all storage-specific code (ie. backend) is now implemented by the backends
-#
-# Revision 1.74 2002/07/10 00:24:10 richard
-# braino
-#
-# Revision 1.73 2002/07/10 00:19:48 richard
-# Added explicit closing of backend database handles.
-#
-# Revision 1.72 2002/07/09 21:53:38 gmcm
-# Optimize Class.find so that the propspec can contain a set of ids to match.
-# This is used by indexer.search so it can do just one find for all the index matches.
-# This was already confusing code, but for common terms (lots of index matches),
-# it is enormously faster.
-#
-# Revision 1.71 2002/07/09 03:02:52 richard
-# More indexer work:
-# - all String properties may now be indexed too. Currently there's a bit of
-# "issue" specific code in the actual searching which needs to be
-# addressed. In a nutshell:
-# + pass 'indexme="yes"' as a String() property initialisation arg, eg:
-# file = FileClass(db, "file", name=String(), type=String(),
-# comment=String(indexme="yes"))
-# + the comment will then be indexed and be searchable, with the results
-# related back to the issue that the file is linked to
-# - as a result of this work, the FileClass has a default MIME type that may
-# be overridden in a subclass, or by the use of a "type" property as is
-# done in the default templates.
-# - the regeneration of the indexes (if necessary) is done once the schema is
-# set up in the dbinit.
-#
-# Revision 1.70 2002/06/27 12:06:20 gmcm
-# Improve an error message.
-#
-# Revision 1.69 2002/06/17 23:15:29 richard
-# Can debug to stdout now
-#
-# Revision 1.68 2002/06/11 06:52:03 richard
-# . #564271 ] find() and new properties
-#
-# Revision 1.67 2002/06/11 05:02:37 richard
-# . #565979 ] code error in hyperdb.Class.find
-#
-# Revision 1.66 2002/05/25 07:16:24 rochecompaan
-# Merged search_indexing-branch with HEAD
-#
-# Revision 1.65 2002/05/22 04:12:05 richard
-# . applied patch #558876 ] cgi client customization
-# ... with significant additions and modifications ;)
-# - extended handling of ML assignedto to all places it's handled
-# - added more NotFound info
-#
-# Revision 1.64 2002/05/15 06:21:21 richard
-# . node caching now works, and gives a small boost in performance
-#
-# As a part of this, I cleaned up the DEBUG output and implemented TRACE
-# output (HYPERDBTRACE='file to trace to') with checkpoints at the start of
-# CGI requests. Run roundup with python -O to skip all the DEBUG/TRACE stuff
-# (using if __debug__ which is compiled out with -O)
-#
-# Revision 1.63 2002/04/15 23:25:15 richard
-# . node ids are now generated from a lockable store - no more race conditions
-#
-# We're using the portalocker code by Jonathan Feinberg that was contributed
-# to the ASPN Python cookbook. This gives us locking across Unix and Windows.
-#
-# Revision 1.62 2002/04/03 07:05:50 richard
-# d'oh! killed retirement of nodes :(
-# all better now...
-#
-# Revision 1.61 2002/04/03 06:11:51 richard
-# Fix for old databases that contain properties that don't exist any more.
-#
-# Revision 1.60 2002/04/03 05:54:31 richard
-# Fixed serialisation problem by moving the serialisation step out of the
-# hyperdb.Class (get, set) into the hyperdb.Database.
-#
-# Also fixed htmltemplate after the showid changes I made yesterday.
-#
-# Unit tests for all of the above written.
-#
-# Revision 1.59.2.2 2002/04/20 13:23:33 rochecompaan
-# We now have a separate search page for nodes. Search links for
-# different classes can be customized in instance_config similar to
-# index links.
-#
-# Revision 1.59.2.1 2002/04/19 19:54:42 rochecompaan
-# cgi_client.py
-# removed search link for the time being
-# moved rendering of matches to htmltemplate
-# hyperdb.py
-# filtering of nodes on full text search incorporated in filter method
-# roundupdb.py
-# added paramater to call of filter method
-# roundup_indexer.py
-# added search method to RoundupIndexer class
-#
-# Revision 1.59 2002/03/12 22:52:26 richard
-# more pychecker warnings removed
-#
-# Revision 1.58 2002/02/27 03:23:16 richard
-# Ran it through pychecker, made fixes
-#
-# Revision 1.57 2002/02/20 05:23:24 richard
-# Didn't accomodate new values for new properties
-#
-# Revision 1.56 2002/02/20 05:05:28 richard
-# . Added simple editing for classes that don't define a templated interface.
-# - access using the admin "class list" interface
-# - limited to admin-only
-# - requires the csv module from object-craft (url given if it's missing)
-#
-# Revision 1.55 2002/02/15 07:27:12 richard
-# Oops, precedences around the way w0rng.
-#
-# Revision 1.54 2002/02/15 07:08:44 richard
-# . Alternate email addresses are now available for users. See the MIGRATION
-# file for info on how to activate the feature.
-#
-# Revision 1.53 2002/01/22 07:21:13 richard
-# . fixed back_bsddb so it passed the journal tests
-#
-# ... it didn't seem happy using the back_anydbm _open method, which is odd.
-# Yet another occurrance of whichdb not being able to recognise older bsddb
-# databases. Yadda yadda. Made the HYPERDBDEBUG stuff more sane in the
-# process.
-#
-# Revision 1.52 2002/01/21 16:33:19 rochecompaan
-# You can now use the roundup-admin tool to pack the database
-#
-# Revision 1.51 2002/01/21 03:01:29 richard
-# brief docco on the do_journal argument
-#
-# Revision 1.50 2002/01/19 13:16:04 rochecompaan
-# Journal entries for link and multilink properties can now be switched on
-# or off.
-#
-# Revision 1.49 2002/01/16 07:02:57 richard
-# . lots of date/interval related changes:
-# - more relaxed date format for input
-#
-# Revision 1.48 2002/01/14 06:32:34 richard
-# . #502951 ] adding new properties to old database
-#
-# Revision 1.47 2002/01/14 02:20:15 richard
-# . changed all config accesses so they access either the instance or the
-# config attriubute on the db. This means that all config is obtained from
-# instance_config instead of the mish-mash of classes. This will make
-# switching to a ConfigParser setup easier too, I hope.
-#
-# At a minimum, this makes migration a _little_ easier (a lot easier in the
-# 0.5.0 switch, I hope!)
-#
-# Revision 1.46 2002/01/07 10:42:23 richard
-# oops
-#
-# Revision 1.45 2002/01/02 04:18:17 richard
-# hyperdb docstrings
-#
-# Revision 1.44 2002/01/02 02:31:38 richard
-# Sorry for the huge checkin message - I was only intending to implement #496356
-# but I found a number of places where things had been broken by transactions:
-# . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename
-# for _all_ roundup-generated smtp messages to be sent to.
-# . the transaction cache had broken the roundupdb.Class set() reactors
-# . newly-created author users in the mailgw weren't being committed to the db
-#
-# Stuff that made it into CHANGES.txt (ie. the stuff I was actually working
-# on when I found that stuff :):
-# . #496356 ] Use threading in messages
-# . detectors were being registered multiple times
-# . added tests for mailgw
-# . much better attaching of erroneous messages in the mail gateway
-#
-# Revision 1.43 2001/12/20 06:13:24 rochecompaan
-# Bugs fixed:
-# . Exception handling in hyperdb for strings-that-look-like numbers got
-# lost somewhere
-# . Internet Explorer submits full path for filename - we now strip away
-# the path
-# Features added:
-# . Link and multilink properties are now displayed sorted in the cgi
-# interface
-#
-# Revision 1.42 2001/12/16 10:53:37 richard
-# take a copy of the node dict so that the subsequent set
-# operation doesn't modify the oldvalues structure
-#
-# Revision 1.41 2001/12/15 23:47:47 richard
-# Cleaned up some bare except statements
-#
-# Revision 1.40 2001/12/14 23:42:57 richard
-# yuck, a gdbm instance tests false :(
-# I've left the debugging code in - it should be removed one day if we're ever
-# _really_ anal about performace :)
-#
-# Revision 1.39 2001/12/02 05:06:16 richard
-# . We now use weakrefs in the Classes to keep the database reference, so
-# the close() method on the database is no longer needed.
-# I bumped the minimum python requirement up to 2.1 accordingly.
-# . #487480 ] roundup-server
-# . #487476 ] INSTALL.txt
-#
-# I also cleaned up the change message / post-edit stuff in the cgi client.
-# There's now a clearly marked "TODO: append the change note" where I believe
-# the change note should be added there. The "changes" list will obviously
-# have to be modified to be a dict of the changes, or somesuch.
-#
-# More testing needed.
-#
-# Revision 1.38 2001/12/01 07:17:50 richard
-# . We now have basic transaction support! Information is only written to
-# the database when the commit() method is called. Only the anydbm
-# backend is modified in this way - neither of the bsddb backends have been.
-# The mail, admin and cgi interfaces all use commit (except the admin tool
-# doesn't have a commit command, so interactive users can't commit...)
-# . Fixed login/registration forwarding the user to the right page (or not,
-# on a failure)
-#
-# Revision 1.37 2001/11/28 21:55:35 richard
-# . login_action and newuser_action return values were being ignored
-# . Woohoo! Found that bloody re-login bug that was killing the mail
-# gateway.
-# (also a minor cleanup in hyperdb)
-#
-# Revision 1.36 2001/11/27 03:16:09 richard
-# Another place that wasn't handling missing properties.
-#
-# Revision 1.35 2001/11/22 15:46:42 jhermann
-# Added module docstrings to all modules.
-#
-# Revision 1.34 2001/11/21 04:04:43 richard
-# *sigh* more missing value handling
-#
-# Revision 1.33 2001/11/21 03:40:54 richard
-# more new property handling
-#
-# Revision 1.32 2001/11/21 03:11:28 richard
-# Better handling of new properties.
-#
-# Revision 1.31 2001/11/12 22:01:06 richard
-# Fixed issues with nosy reaction and author copies.
-#
-# Revision 1.30 2001/11/09 10:11:08 richard
-# . roundup-admin now handles all hyperdb exceptions
-#
-# Revision 1.29 2001/10/27 00:17:41 richard
-# Made Class.stringFind() do caseless matching.
-#
-# Revision 1.28 2001/10/21 04:44:50 richard
-# bug #473124: UI inconsistency with Link fields.
-# This also prompted me to fix a fairly long-standing usability issue -
-# that of being able to turn off certain filters.
-#
-# Revision 1.27 2001/10/20 23:44:27 richard
-# Hyperdatabase sorts strings-that-look-like-numbers as numbers now.
-#
-# Revision 1.26 2001/10/16 03:48:01 richard
-# admin tool now complains if a "find" is attempted with a non-link property.
-#
-# Revision 1.25 2001/10/11 00:17:51 richard
-# Reverted a change in hyperdb so the default value for missing property
-# values in a create() is None and not '' (the empty string.) This obviously
-# breaks CSV import/export - the string 'None' will be created in an
-# export/import operation.
-#
-# Revision 1.24 2001/10/10 03:54:57 richard
-# Added database importing and exporting through CSV files.
-# Uses the csv module from object-craft for exporting if it's available.
-# Requires the csv module for importing.
-#
-# Revision 1.23 2001/10/09 23:58:10 richard
-# Moved the data stringification up into the hyperdb.Class class' get, set
-# and create methods. This means that the data is also stringified for the
-# journal call, and removes duplication of code from the backends. The
-# backend code now only sees strings.
-#
-# Revision 1.22 2001/10/09 07:25:59 richard
-# Added the Password property type. See "pydoc roundup.password" for
-# implementation details. Have updated some of the documentation too.
-#
-# Revision 1.21 2001/10/05 02:23:24 richard
-# . roundup-admin create now prompts for property info if none is supplied
-# on the command-line.
-# . hyperdb Class getprops() method may now return only the mutable
-# properties.
-# . Login now uses cookies, which makes it a whole lot more flexible. We can
-# now support anonymous user access (read-only, unless there's an
-# "anonymous" user, in which case write access is permitted). Login
-# handling has been moved into cgi_client.Client.main()
-# . The "extended" schema is now the default in roundup init.
-# . The schemas have had their page headings modified to cope with the new
-# login handling. Existing installations should copy the interfaces.py
-# file from the roundup lib directory to their instance home.
-# . Incorrectly had a Bizar Software copyright on the cgitb.py module from
-# Ping - has been removed.
-# . Fixed a whole bunch of places in the CGI interface where we should have
-# been returning Not Found instead of throwing an exception.
-# . Fixed a deviation from the spec: trying to modify the 'id' property of
-# an item now throws an exception.
-#
-# Revision 1.20 2001/10/04 02:12:42 richard
-# Added nicer command-line item adding: passing no arguments will enter an
-# interactive more which asks for each property in turn. While I was at it, I
-# fixed an implementation problem WRT the spec - I wasn't raising a
-# ValueError if the key property was missing from a create(). Also added a
-# protected=boolean argument to getprops() so we can list only the mutable
-# properties (defaults to yes, which lists the immutables).
-#
-# Revision 1.19 2001/08/29 04:47:18 richard
-# Fixed CGI client change messages so they actually include the properties
-# changed (again).
-#
-# Revision 1.18 2001/08/16 07:34:59 richard
-# better CGI text searching - but hidden filter fields are disappearing...
-#
-# Revision 1.17 2001/08/16 06:59:58 richard
-# all searches use re now - and they're all case insensitive
-#
-# Revision 1.16 2001/08/15 23:43:18 richard
-# Fixed some isFooTypes that I missed.
-# Refactored some code in the CGI code.
-#
-# Revision 1.15 2001/08/12 06:32:36 richard
-# using isinstance(blah, Foo) now instead of isFooType
-#
-# Revision 1.14 2001/08/07 00:24:42 richard
-# stupid typo
-#
-# Revision 1.13 2001/08/07 00:15:51 richard
-# Added the copyright/license notice to (nearly) all files at request of
-# Bizar Software.
-#
-# Revision 1.12 2001/08/02 06:38:17 richard
-# Roundupdb now appends "mailing list" information to its messages which
-# include the e-mail address and web interface address. Templates may
-# override this in their db classes to include specific information (support
-# instructions, etc).
-#
-# Revision 1.11 2001/08/01 04:24:21 richard
-# mailgw was assuming certain properties existed on the issues being created.
-#
-# Revision 1.10 2001/07/30 02:38:31 richard
-# get() now has a default arg - for migration only.
-#
-# Revision 1.9 2001/07/29 09:28:23 richard
-# Fixed sorting by clicking on column headings.
-#
-# Revision 1.8 2001/07/29 08:27:40 richard
-# Fixed handling of passed-in values in form elements (ie. during a
-# drill-down)
-#
-# Revision 1.7 2001/07/29 07:01:39 richard
-# Added vim command to all source so that we don't get no steenkin' tabs :)
-#
-# Revision 1.6 2001/07/29 05:36:14 richard
-# Cleanup of the link label generation.
-#
-# Revision 1.5 2001/07/29 04:05:37 richard
-# Added the fabricated property "id".
-#
-# Revision 1.4 2001/07/27 06:25:35 richard
-# Fixed some of the exceptions so they're the right type.
-# Removed the str()-ification of node ids so we don't mask oopsy errors any
-# more.
-#
-# Revision 1.3 2001/07/27 05:17:14 richard
-# just some comments
-#
-# Revision 1.2 2001/07/22 12:09:32 richard
-# Final commit of Grande Splite
-#
-# Revision 1.1 2001/07/22 11:58:35 richard
-# More Grande Splite
-#
-#
-# vim: set filetype=python ts=4 sw=4 et si
index e099a97cfe4da8ebc0b1911beec6c0036e3e99ce..0008ba60c468aacf0f7bfe91acb97fb23a72d9fa 100644 (file)
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-#$Id: blobfiles.py,v 1.8 2002-07-19 03:36:34 richard Exp $
+#$Id: blobfiles.py,v 1.9 2002-09-10 00:11:50 richard Exp $
'''
This module exports file storage for roundup backends.
Files are stored into a directory hierarchy.
if os.path.exists(name+".tmp"):
os.remove(name+".tmp")
-# $Log: not supported by cvs2svn $
-# Revision 1.7 2002/07/14 06:14:40 richard
-# Some more TODOs
-#
-# Revision 1.6 2002/07/09 03:02:52 richard
-# More indexer work:
-# - all String properties may now be indexed too. Currently there's a bit of
-# "issue" specific code in the actual searching which needs to be
-# addressed. In a nutshell:
-# + pass 'indexme="yes"' as a String() property initialisation arg, eg:
-# file = FileClass(db, "file", name=String(), type=String(),
-# comment=String(indexme="yes"))
-# + the comment will then be indexed and be searchable, with the results
-# related back to the issue that the file is linked to
-# - as a result of this work, the FileClass has a default MIME type that may
-# be overridden in a subclass, or by the use of a "type" property as is
-# done in the default templates.
-# - the regeneration of the indexes (if necessary) is done once the schema is
-# set up in the dbinit.
-#
-# Revision 1.5 2002/07/08 06:58:15 richard
-# cleaned up the indexer code:
-# - it splits more words out (much simpler, faster splitter)
-# - removed code we'll never use (roundup.roundup_indexer has the full
-# implementation, and replaces roundup.indexer)
-# - only index text/plain and rfc822/message (ideas for other text formats to
-# index are welcome)
-# - added simple unit test for indexer. Needs more tests for regression.
-#
-# Revision 1.4 2002/06/19 03:07:19 richard
-# Moved the file storage commit into blobfiles where it belongs.
-#
-# Revision 1.3 2002/02/27 07:33:34 grubert
-# . add, vim line and cvs log key.
-#
-#
# vim: set filetype=python ts=4 sw=4 et si
index 982c985747e703f0cd418437dfa73f1a6655b510..6c64618a1a0960106f9e3a4efd53d0ba877ccd16 100644 (file)
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-# $Id: locking.py,v 1.1 2002-04-15 23:25:15 richard Exp $
+# $Id: locking.py,v 1.2 2002-09-10 00:11:50 richard Exp $
'''This module provides a generic interface to acquire and release
exclusive access to a file.
'''Release our lock on the given path
'''
portalocker.unlock(file)
-
-#
-# $Log: not supported by cvs2svn $
-#
-#
index 32563bf2a6a9d9c33a134c1ca5d4cd640069da44..31c48c97d87244089bd6b4a91ddd6fef7d511500 100644 (file)
-#$Id: sessions.py,v 1.2 2002-09-09 02:58:35 richard Exp $
+#$Id: sessions.py,v 1.3 2002-09-10 00:11:50 richard Exp $
'''
This module defines a very basic store that's used by the CGI interface
to store session information.
def commit(self):
pass
-
-#
-#$Log: not supported by cvs2svn $
-#Revision 1.1 2002/07/30 08:22:38 richard
-#Session storage in the hyperdb was horribly, horribly inefficient. We use
-#a simple anydbm wrapper now - which could be overridden by the metakit
-#backend or RDB backend if necessary.
-#Much, much better.
-#
-#
-#