Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F120596599
Pyblio.Store.Database-class.html
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jul 5, 12:14
Size
20 KB
Mime Type
text/xml
Expires
Mon, Jul 7, 12:14 (2 d)
Engine
blob
Format
Raw Data
Handle
27209111
Attached To
R3596 pybliographer
Pyblio.Store.Database-class.html
View Options
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pyblio.Store.Database</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="Pyblio-module.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
pybliographer 1.3.3
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="Pyblio-module.html">Package Pyblio</a> ::
<a href="Pyblio.Store-module.html">Module Store</a> ::
Class Database
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="../private/Pyblio.Store.Database-class.html">show private</a> | hide private]</font></td></tr>
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="Pyblio.Store.Database-class.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Type Database</h2>
<pre class="base-tree">
<a href="__builtin__.object-class.html"><code>object</code></a> --+
|
<b>Database</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="Pyblio.Adapter.Adapter-class.html"><code>Adapter</code></a>,
<a href="Pyblio.Stores.bsddbstore.Database-class.html"><code>Database</code></a>,
<a href="Pyblio.Stores.filestore.Database-class.html"><code>Database</code></a></dd></dl>
<hr/>
<p>A bibliographic database.</p>
A database behaves like a dictionnary, linking a <a
href="Pyblio.Store.Key-class.html" class="link"><code>key</code></a> with
a <a href="Pyblio.Store.Record-class.html"
class="link"><code>record</code></a>. The records are <b>typed</b>, and
must follow the specifications of a <a href="Pyblio.Schema-module.html"
class="link"><code>Schema</code></a>.
<h1 class="heading">Adding a new record</h1>
To add a new record r to a database db:
<pre class="doctestblock">
<span class="py-src"><span class="py-prompt">>>> </span>record = Record ()
<span class="py-prompt">>>> </span>record [<span class="py-string">'title'</span>] = Attribute.Text (<span class="py-string">'my title'</span>)
>>><span class="py-keyword"> # ...</span>
<span class="py-prompt">>>> </span>key = db.add (record)</span></pre>
When the record is added, a <a href="Pyblio.Store.Key-class.html"
class="link"><code>key</code></a> is generated which uniquely
references the record.
<h1 class="heading">Accessing a record</h1>
It is possible to use the database as a dictionnary. So, given a key
k:
<pre class="doctestblock">
<span class="py-src"><span class="py-prompt">>>> </span>r = db [k]</span></pre>
Alternatively, one can access all the records in a database in
random order:
<pre class="doctestblock">
<span class="py-src"><span class="py-prompt">>>> </span><span class="py-keyword">for</span> key, record <span class="py-keyword">in</span> db.entries.iteritems ():
<span class="py-prompt">>>> </span> <span class="py-keyword"> # do something with the record...</span></span></pre>
<h1 class="heading">Updating a record</h1>
Simply store the record back once it is updated:
<pre class="doctestblock">
<span class="py-src"><span class="py-prompt">>>> </span>record = db [key]
<span class="py-prompt">>>> </span>...<span class="py-keyword"> # update the record</span>
<span class="py-prompt">>>> </span>db [key] = record</span></pre>
<hr/>
<p><b>Attention:</b> getting a record from the database returns a <i>new copy</i> at each
access. Updating this copy <i>does not</i> change the stored value.
</p>
<p><b>See Also:</b> <a href="Pyblio.Query-module.html"
class="link"><code>queries</code></a>
</p>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>key</span>)</span></code>
<br />
Get a record by key.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>key</span>,
<span class=summary-sig-arg>record</span>)</span></code>
<br />
Update a record.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#add" class="summary-sig-name"><code>add</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>record</span>,
<span class=summary-sig-arg>key</span>)</span></code>
<br />
Insert a new entry in the database.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#collate" class="summary-sig-name"><code>collate</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rs</span>,
<span class=summary-sig-arg>field</span>)</span></code>
<br />
Partition the result set in a list of sets for every value taken by
the specified field</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#has_key" class="summary-sig-name"><code>has_key</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>key</span>)</span></code>
<br />
Check for the existence of a key.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="query"></a><span class="summary-sig"><span class="summary-sig-name">query</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>query</span>,
<span class=summary-sig-arg>permanent</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="save"></a><span class="summary-sig"><span class="summary-sig-name">save</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#validate" class="summary-sig-name"><code>validate</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>entry</span>)</span></code>
<br />
Check an entry for conformance against the Schema.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="xmlread"></a><span class="summary-sig"><span class="summary-sig-name">xmlread</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>fd</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="Pyblio.Store.Database-class.html#xmlwrite" class="summary-sig-name"><code>xmlwrite</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>fd</span>)</span></code>
<br />
Output a database in XML format</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from object</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
<br />
x.__delattr__('name') <==> del x.name</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
<br />
x.__getattribute__('name') <==> x.name</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
<br />
x.__hash__() <==> hash(x)</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
<span class=summary-sig-arg>S</span>,
<span class="summary-sig-vararg">...</span>)</span></code>
<br />
T.__new__(S, ...) -> a new object with type S, a subtype of T</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
<br />
helper for pickle</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
<br />
helper for pickle</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
<br />
x.__repr__() <==> repr(x)</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
<br />
x.__setattr__('name', value) <==> x.name = value</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
<br />
x.__str__() <==> str(x)</td></tr>
</table><br />
<!-- =========== START OF PROPERTY SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Property Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><a name="entries"></a><b><code>entries</code></b></td></tr><tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><a name="txo"></a><b><code>txo</code></b></td></tr></table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><a name="entries"></a><b><code>entries</code></b> = <a href="Pyblio.Store.Database-class.html#entries"><code>Pyblio.Store.Database.entries</code></a></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><b><a href="Pyblio.Store.Database-class.html#rs"><code>rs</code></a></b>: a <a href="Pyblio.Store.ResultSetStore-class.html"
class="link"><code>ResultSetStore</code></a> instance, containing all the
result sets defined on this database.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><a name="txo"></a><b><code>txo</code></b> = <a href="Pyblio.Store.Database-class.html#txo"><code>Pyblio.Store.Database.txo</code></a></td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="__getitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>key</span>)</span>
<br /><i>(Indexing operator)</i>
</h3>
Get a record by key.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>key</b></code> -
the key of the requested record
<br /><i>
(type=a <a href="Pyblio.Store.Key-class.html"
class="link"><code>Key</code></a>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="__setitem__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>key</span>,
<span class=sig-arg>record</span>)</span>
<br /><i>(Index assignment operator)</i>
</h3>
<p>Update a record.</p>
Updates a record with a new value.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>key</b></code> -
the record's key
<br /><i>
(type=a <a href="Pyblio.Store.Key-class.html"
class="link"><code>Key</code></a>)</i>
<dd><code><b>record</b></code> -
the new value of the record
<br /><i>
(type=a <a href="Pyblio.Store.Record-class.html"
class="link"><code>Record</code></a>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="add"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">add</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>record</span>,
<span class=sig-arg>key</span>=<span class=sig-default>None</span>)</span>
</h3>
<p>Insert a new entry in the database.</p>
New entries <b>MUST</b> be added with this method, not via an update
with a hand-made Key.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>record</b></code> -
the new record to add
<br /><i>
(type=a <a href="Pyblio.Store.Record-class.html"
class="link"><code>Record</code></a>)</i>
<dd><code><b>key</b></code> -
only useful for importing an existing database, by
<i>proposing</i> a key choice.
<br /><i>
(type=a <a href="Pyblio.Store.Key-class.html"
class="link"><code>Key</code></a>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="collate"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">collate</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>rs</span>,
<span class=sig-arg>field</span>)</span>
</h3>
Partition the result set in a list of sets for every value taken by
the specified field
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="has_key"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">has_key</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>key</span>)</span>
</h3>
Check for the existence of a key.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>key</b></code> -
the key to check for
<br /><i>
(type=a <a href="Pyblio.Store.Key-class.html"
class="link"><code>Key</code></a>)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="validate"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">validate</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>entry</span>)</span>
</h3>
Check an entry for conformance against the Schema. This method may
modify the entry to normalize certain fields.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="xmlwrite"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">xmlwrite</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>fd</span>)</span>
</h3>
Output a database in XML format
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="rs"></a>
<h3>rs</h3>
a <a href="Pyblio.Store.ResultSetStore-class.html"
class="link"><code>ResultSetStore</code></a> instance, containing all the
result sets defined on this database.
</td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="Pyblio-module.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
pybliographer 1.3.3
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.1 on Sun Sep 24 23:52:43 2006</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>
Event Timeline
Log In to Comment