Package Pyblio :: Module Store :: Class Record
[show private | hide private]
[frames | no frames]

Type Record

object --+    
         |    
      dict --+
             |
            Record


A database record.

It behaves like a dictionnary, which returns a list of attributes for each key. The attributes types depend on the database Schema.

As a convenience, it is possible to use Record.add to build up a Record, instead of setting its fields manually.

Note: this class is shared by all stores

Method Summary
  __init__(self)
  add(self, field, value, constructor)
Adds a new value to a field of this record.
  deep_equal(self, other)
  get(self, key, default)
Get a field, understanding the dotted notation of the add method
  xmlwrite(self, fd, offset)
Export as XML.
    Inherited from dict
  __cmp__(x, y)
x.__cmp__(y) <==> cmp(x,y)
  __contains__(x, y)
x.__contains__(y) <==> y in x
  __delitem__(x, y)
x.__delitem__(y) <==> del x[y]
  __eq__(x, y)
x.__eq__(y) <==> x==y
  __ge__(x, y)
x.__ge__(y) <==> x>=y
  __getattribute__(...)
x.__getattribute__('name') <==> x.name
  __getitem__(x, y)
x.__getitem__(y) <==> x[y]
  __gt__(x, y)
x.__gt__(y) <==> x>y
  __hash__(x)
x.__hash__() <==> hash(x)
  __iter__(x)
x.__iter__() <==> iter(x)
  __le__(x, y)
x.__le__(y) <==> x<=y
  __len__(x)
x.__len__() <==> len(x)
  __lt__(x, y)
x.__lt__(y) <==> x<y
  __ne__(x, y)
x.__ne__(y) <==> x!=y
  __new__(T, S, ...)
T.__new__(S, ...) -> a new object with type S, a subtype of T
  __repr__(x)
x.__repr__() <==> repr(x)
  __setitem__(x, i, y)
x.__setitem__(i, y) <==> x[i]=y
  clear(D)
D.clear() -> None.
  copy(D)
D.copy() -> a shallow copy of D
  has_key(D, k)
D.has_key(k) -> True if D has a key k, else False
  items(D)
D.items() -> list of D's (key, value) pairs, as 2-tuples
  iteritems(D)
D.iteritems() -> an iterator over the (key, value) items of D
  iterkeys(D)
D.iterkeys() -> an iterator over the keys of D
  itervalues(D)
D.itervalues() -> an iterator over the values of D
  keys(D)
D.keys() -> list of D's keys
  pop(D, k, d)
If key is not found, d is returned if given, otherwise KeyError is raised
  popitem(D)
2-tuple; but raise KeyError if D is empty
  setdefault(D, k, d)
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
  update(D, E)
D.update(E) -> None.
  values(D)
D.values() -> list of D's values
    Inherited from object
  __delattr__(...)
x.__delattr__('name') <==> del x.name
  __reduce__(...)
helper for pickle
  __reduce_ex__(...)
helper for pickle
  __setattr__(...)
x.__setattr__('name', value) <==> x.name = value
  __str__(x)
x.__str__() <==> str(x)
    Inherited from type
  fromkeys(dict, S, v)
v defaults to None.

Instance Variable Summary
instance of Key key: the key of the record, unique over the whole database.

Method Details

add(self, field, value, constructor=None)

Adds a new value to a field of this record.

This function allows you to add an item to a record. It converts the specified 'value' by calling 'constructor' on it, and appends the resulting attribute to the record.

If you specify something like 'a.b' in fields, the 'b' qualifier for field 'a' is set, for the last 'a' added. It is possible, if you know that you will only have one 'a', to set 'a.b' before 'a'.

Example:
>>> rec.add ('title', u'My title', Attribute.Text)
>>> rec.add ('title.subtitle', u'My subtitle', Attribute.Text)
>>> rec.add ('author', definition, author_parser)
Parameters:
field - the field we want to add in the record
           (type=a string, possibly containing a '.' in the case of structured attributes)
value - the 'source' value to set in the record. This value has not yet been converted into an Pyblio.Attribute instance.
constructor - a function that will turn a 'value' into a proper attribute.

get(self, key, default=None)

Get a field, understanding the dotted notation of the add method
Overrides:
__builtin__.dict.get

xmlwrite(self, fd, offset=1)

Export as XML.

Writes the content of the record as an XML fragment.
Parameters:
fd - file descriptor to write to.

Instance Variable Details

key

the key of the record, unique over the whole database. It is generated by the actual storage layer.
Type:
instance of Key

Generated by Epydoc 2.1 on Wed Feb 15 23:19:37 2006 http://epydoc.sf.net