I extended fdb.py a bit.
Version 0.2 is available where 0.1 used to be,
at http://stochasticsolutions.com/fluiddb/fdb.py,
but also at
http://stochasticsolutions.com/fluiddb/fdb0.2.py.
Version 0.1 is still available at
http://stochasticsolutions.com/fluiddb/fdb0.1.py.
(I know, I know, I should make it publicly available through a VCS,
and I will, but this is much easier for me right now.)
Main new features are:
- Ability to untag objects
- More tests
- Tests that work for users whose FluidDB name isn't njr
- More tag path manipulation
- Most (all?) of the commands on tags now accept relative or absolute tag names
It still doesn't support subnamespaces or (m)any queries yet, though.
The following code illustrates the new functionality:
import fdb import types db = fdb.FluidDB (fdb.Credentials (filename='/Users/njr/.fluidDBcredentials')) # Create an object with about='DADGAD' (or look up ID is already exists) o = db.create_object ('DADGAD') assert type (o) != types.IntType # Would indicate an error code id_DADGAD = o.id # Add njr/rating=10 to assert db.tag_object_by_id (id_DADGAD, 'rating', 10) == 0 # Read the value back and heck it's right (status, value) = db.get_tag_value_by_id (id_DADGAD, 'rating') assert value == 10 # Remove njr/rating from DADGAD object assert db.untag_object_by_id (id_DADGAD, 'rating') == 0 # Again, using absolute tag path assert db.untag_object_by_id (id_DADGAD, '/njr/rating') == 0 # Again, using absolute tag path assert db.untag_object_by_id (id_DADGAD, '/njr/rating') == 0 # Yet again, requesting error if the tag or object isn't there error = db.untag_object_by_id (id_DADGAD, '/njr/rating', False) assert error == fdb.STATUS.NOT_FOUND # 404 :-) print 'Well, that all worked!'
This produces:
zero:$ time python taguntag.py Well, that all worked! real 0m3.920s user 0m0.121s sys 0m0.068s
No comments:
Post a Comment