You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
britney2-ubuntu/doc/html/classbritney_1_1Britney.html

1959 lines
77 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>briteny: britney.Britney Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="namespaces.html"><span>Packages</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="namespacebritney.html">britney</a>.<a class="el" href="classbritney_1_1Britney.html">Britney</a></div>
<h1>britney.Britney Class Reference</h1><!-- doxytag: class="britney::Britney" --><a href="classbritney_1_1Britney-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#5846d81eace24f479292c47e30fd1851">__init__</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#054f44c47f17c0c4f5a069e821b7f868">read_sources</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#1b2b0f42e4af1cee472f93e955b30421">read_binaries</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#f86b93b64ac43c1d04fe88a6a8b1777e">register_reverses</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#6c777aae69e7bec2efebaf23ddd4a86c">read_bugs</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#0a5591fc94b89d53d12cbb8f27d100a7">write_bugs</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#5a6af4a100cfd54e872a27fa7f48ac3c">normalize_bugs</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#085af5ac906813ea40fc2e623748f517">read_dates</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#83e0bd993e7a099e6bf89d760183a76b">write_dates</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#09fc27899506b4830b1961f125a7b6a4">read_urgencies</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#39248f0cfea1c8798b2ca5a97d37eaf8">read_approvals</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#46d535f617fcf1faaaf5d841ea23c184">read_hints</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#20f846da79d595d36628c8da3195ac7a">write_heidi</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#1a3695a37b15ebd7e81cc33683fde461">write_controlfiles</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#1dd8c704e1dab571e4bb62ae15f6ee52">write_nuninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#24fe2c117eadac8eb783e3cb86300265">read_nuninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#85d2e45e8431779b62f398c34972ddf1">same_source</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#5461f49e3e75a251ebedfd37d2a5ff0c">get_dependency_solvers</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#f51c60a69f3a9dc2bc5afdb2ffaf3990">excuse_unsat_deps</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#f8a6c9adbdec7a5a982dd2b74febcc08">should_remove_source</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#bd18d7acde434387e94344a39db5b0e5">should_upgrade_srcarch</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#94785175a85f44b1afaf3add167a211f">should_upgrade_src</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#be1b4af9d6c6650c70b24267412bc1a8">reversed_exc_deps</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#171969785db449d7a06c3f762774e0cd">invalidate_excuses</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#010f6deffca32f7f71ecf1f5c1bb4985">write_excuses</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#60ccd1851bcea5659fed15010541e244">newlyuninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#41c5ee0b9d64b2e76a0c1a1c2b28c73e">get_nuninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#e5c18b706e6598474435b1996313cf27">eval_nuninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#b8dd18ead23b6e1126bb4c2a5c3cd8ba">eval_uninst</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2f7401c8e41b8095bd99bd656bb41546"></a><!-- doxytag: member="britney::Britney::is_nuninst_asgood_generous" ref="2f7401c8e41b8095bd99bd656bb41546" args="" -->
def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#2f7401c8e41b8095bd99bd656bb41546">is_nuninst_asgood_generous</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#4c06ddd116a40752c62d4395e92a97df">check_installable</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#998b3ddbaedbb6cdb732b2307477e96f">check_conflicts</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#22af61b8a7f6fe71a79d28b5016cae1d">doop_source</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#a923f6b90e2574e3bb2bb099b05925dd">get_full_tree</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#d453398832baaa7f477f720cfb643029">iter_packages</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#3ef9b6f600eac492fc5aa4b31638198f">do_all</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#921effe0d64ed713c38888684a0a26d4">upgrade_testing</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#7bf70a5ad5754eb949205db3dc4b9c8a">do_hint</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#70115e28e2ee6aa3a09d1efbd81b4a87">sort_actions</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#c9c109f54ddce53b17513405e07dba1a">auto_hinter</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#39c07e55b274ff98cb9cecb5f051bc5d">old_libraries</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#7c45f1c5b1dbd442fb9b85fef3fe1823">old_libraries_format</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#b0406f20fbbbb08cd3c6e5e6b35f77d5">output_write</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#0e9551bdf927388f55be5ce15a48c94f">main</a></td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ebbe3f40cca59e2de275b0558556ee63"></a><!-- doxytag: member="britney::Britney::HINTS_STANDARD" ref="ebbe3f40cca59e2de275b0558556ee63" args="" -->
tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#ebbe3f40cca59e2de275b0558556ee63">HINTS_STANDARD</a> = (&quot;easy&quot;, &quot;hint&quot;, &quot;remove&quot;, &quot;block&quot;, &quot;unblock&quot;, &quot;urgent&quot;, &quot;approve&quot;)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a088d6fd96963f87f88c9c40cda10bfa"></a><!-- doxytag: member="britney::Britney::HINTS_ALL" ref="a088d6fd96963f87f88c9c40cda10bfa" args="" -->
tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbritney_1_1Britney.html#a088d6fd96963f87f88c9c40cda10bfa">HINTS_ALL</a> = (&quot;force&quot;, &quot;force-hint&quot;, &quot;block-all&quot;)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<div class="fragment"><pre class="fragment">Britney, the debian testing updater script
This is the script that updates the testing_ distribution. It is executed
each day after the installation of the updated packages. It generates the
`Packages' files for the testing distribution, but it does so in an
intelligent manner; it try to avoid any inconsistency and to use only
non-buggy packages.
For more documentation on this script, please read the Developers Reference.
</pre></div>
<p>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00212">212</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="5846d81eace24f479292c47e30fd1851"></a><!-- doxytag: member="britney::Britney::__init__" ref="5846d81eace24f479292c47e30fd1851" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.__init__ </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Class constructor
This method initializes and populates the data lists, which contain all
the information needed by the other methods of the class.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00218">218</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="c9c109f54ddce53b17513405e07dba1a"></a><!-- doxytag: member="britney::Britney::auto_hinter" ref="c9c109f54ddce53b17513405e07dba1a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.auto_hinter </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Auto hint circular dependencies
This method tries to auto hint circular dependencies analyzing the update
excuses relationships. If they build a circular dependency, which we already
know as not-working with the standard do_all algorithm, try to `easy` them.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02536">2536</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="998b3ddbaedbb6cdb732b2307477e96f"></a><!-- doxytag: member="britney::Britney::check_conflicts" ref="998b3ddbaedbb6cdb732b2307477e96f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.check_conflicts </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>broken</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>system</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>conflicts</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if a package can be installed satisfying the conflicts
This method checks if the `pkg` package from the `arch` architecture
can be installed (excluding `broken` packages) within the system
`system` along with all its dependencies. This means that all the
conflicts relationships are checked in order to achieve the test
co-installability of the package.
The method returns a boolean which is True if the given package is
co-installable in the given system.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01661">1661</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="4c06ddd116a40752c62d4395e92a97df"></a><!-- doxytag: member="britney::Britney::check_installable" ref="4c06ddd116a40752c62d4395e92a97df" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.check_installable </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>excluded</em> = <code>[]</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>conflicts</em> = <code>False</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if a package is installable
This method analyzes the dependencies of the binary package specified
by the parameter `pkg' for the architecture `arch' within the suite
`suite'. If the dependency can be satisfied in the given `suite` and
`conflicts` parameter is True, then the co-installability with
conflicts handling is checked.
The dependency fields checked are Pre-Depends and Depends.
The method returns a boolean which is True if the given package is
installable.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01620">1620</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="3ef9b6f600eac492fc5aa4b31638198f"></a><!-- doxytag: member="britney::Britney::do_all" ref="3ef9b6f600eac492fc5aa4b31638198f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.do_all </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>maxdepth</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>init</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>actions</em> = <code>None</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Testing update runner
This method tries to update testing checking the uninstallability
counters before and after the actions to decide if the update was
successful or not.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02258">2258</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="7bf70a5ad5754eb949205db3dc4b9c8a"></a><!-- doxytag: member="britney::Britney::do_hint" ref="7bf70a5ad5754eb949205db3dc4b9c8a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.do_hint </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>who</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkgvers</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Process hints
This method process `easy`, `hint` and `force-hint` hints. If the
requested version is not in unstable, than the hint is skipped.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02460">2460</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="22af61b8a7f6fe71a79d28b5016cae1d"></a><!-- doxytag: member="britney::Britney::doop_source" ref="22af61b8a7f6fe71a79d28b5016cae1d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.doop_source </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Apply a change to the testing distribution as requested by `pkg`
This method apply the changes required by the action `pkg` tracking
them so it will be possible to revert them.
The method returns a list of the package name, the suite where the
package comes from, the list of packages affected by the change and
the dictionary undo which can be used to rollback the changes.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01880">1880</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="e5c18b706e6598474435b1996313cf27"></a><!-- doxytag: member="britney::Britney::eval_nuninst" ref="e5c18b706e6598474435b1996313cf27" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.eval_nuninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nuninst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>original</em> = <code>None</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Return a string which represents the uninstallability counters
This method returns a string which represents the uninstallability
counters reading the uninstallability statistics `nuninst` and, if
present, merging the results with the `original` one.
An example of the output string is:
1+2: i-0:a-0:a-0:h-0:i-1:m-0:m-0:p-0:a-0:m-0:s-2:s-0
where the first part is the number of broken packages in non-break
architectures + the total number of broken packages for all the
architectures.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01568">1568</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="b8dd18ead23b6e1126bb4c2a5c3cd8ba"></a><!-- doxytag: member="britney::Britney::eval_uninst" ref="b8dd18ead23b6e1126bb4c2a5c3cd8ba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.eval_uninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nuninst</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Return a string which represents the uninstallable packages
This method returns a string which represents the uninstallable
packages reading the uninstallability statistics `nuninst`.
An example of the output string is:
* i386: broken-pkg1, broken-pkg2
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01598">1598</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="f51c60a69f3a9dc2bc5afdb2ffaf3990"></a><!-- doxytag: member="britney::Britney::excuse_unsat_deps" ref="f51c60a69f3a9dc2bc5afdb2ffaf3990" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.excuse_unsat_deps </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>excuse</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>excluded</em> = <code>[]</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>conflicts</em> = <code>False</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Find unsatisfied dependencies for a binary package
This method analyzes the dependencies of the binary package specified
by the parameter `pkg', built from the source package `src', for the
architecture `arch' within the suite `suite'. If the dependency can't
be satisfied in testing and/or unstable, it updates the excuse passed
as parameter.
The dependency fields checked are Pre-Depends and Depends.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00930">930</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="5461f49e3e75a251ebedfd37d2a5ff0c"></a><!-- doxytag: member="britney::Britney::get_dependency_solvers" ref="5461f49e3e75a251ebedfd37d2a5ff0c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.get_dependency_solvers </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>block</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>distribution</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>excluded</em> = <code>[]</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>strict</em> = <code>False</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Find the packages which satisfy a dependency block
This method returns the list of packages which satisfy a dependency
block (as returned by apt_pkg.ParseDepends) for the given architecture
and distribution.
It returns a tuple with two items: the first is a boolean which is
True if the dependency is satisfied, the second is the list of the
solving packages.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00889">889</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="a923f6b90e2574e3bb2bb099b05925dd"></a><!-- doxytag: member="britney::Britney::get_full_tree" ref="a923f6b90e2574e3bb2bb099b05925dd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.get_full_tree </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Calculate the full dependency tree for the given package
This method returns the full dependency tree for the package `pkg`,
inside the `arch` architecture for the suite `suite`.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02022">2022</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="41c5ee0b9d64b2e76a0c1a1c2b28c73e"></a><!-- doxytag: member="britney::Britney::get_nuninst" ref="41c5ee0b9d64b2e76a0c1a1c2b28c73e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.get_nuninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>requested_arch</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>build</em> = <code>False</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Return the uninstallability statistic for all the architectures
To calculate the uninstallability counters, the method checks the
installability of all the packages for all the architectures, and
tracking dependencies in a recursive way. The architecture
indipendent packages are checked only for the `nobreakall`
architectures.
It returns a dictionary with the architectures as keys and the list
of uninstallable packages as values.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01508">1508</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="171969785db449d7a06c3f762774e0cd"></a><!-- doxytag: member="britney::Britney::invalidate_excuses" ref="171969785db449d7a06c3f762774e0cd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.invalidate_excuses </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>valid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>invalid</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Invalidate impossible excuses
This method invalidates the impossible excuses, which depend
on invalid excuses. The two parameters contains the list of
`valid' and `invalid' excuses.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01344">1344</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="d453398832baaa7f477f720cfb643029"></a><!-- doxytag: member="britney::Britney::iter_packages" ref="d453398832baaa7f477f720cfb643029" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.iter_packages </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>packages</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>selected</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>hint</em> = <code>False</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nuninst</em> = <code>None</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Iter on the list of actions and apply them one-by-one
This method apply the changes from `packages` to testing, checking the uninstallability
counters for every action performed. If the action do not improve the it, it is reverted.
The method returns the new uninstallability counters and the remaining actions if the
final result is successful, otherwise (None, None).
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02038">2038</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="0e9551bdf927388f55be5ce15a48c94f"></a><!-- doxytag: member="britney::Britney::main" ref="0e9551bdf927388f55be5ce15a48c94f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.main </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Main method
This is the entry point for the class: it includes the list of calls
for the member methods which will produce the output files.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02612">2612</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="60ccd1851bcea5659fed15010541e244"></a><!-- doxytag: member="britney::Britney::newlyuninst" ref="60ccd1851bcea5659fed15010541e244" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.newlyuninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nuold</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nunew</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Return a nuninst statstic with only new uninstallable packages
This method subtract the uninstallabla packages of the statistic
`nunew` from the statistic `nuold`.
It returns a dictionary with the architectures as keys and the list
of uninstallable packages as values.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01493">1493</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="5a6af4a100cfd54e872a27fa7f48ac3c"></a><!-- doxytag: member="britney::Britney::normalize_bugs" ref="5a6af4a100cfd54e872a27fa7f48ac3c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.normalize_bugs </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Normalize the release critical bug summaries for testing and unstable
The method doesn't return any value: it directly modifies the
object attribute `bugs'.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00549">549</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="39c07e55b274ff98cb9cecb5f051bc5d"></a><!-- doxytag: member="britney::Britney::old_libraries" ref="39c07e55b274ff98cb9cecb5f051bc5d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.old_libraries </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Detect old libraries left in testing for smooth transitions
This method detect old libraries which are in testing but no longer
built from the source package: they are still there because other
packages still depend on them, but they should be removed as soon
as possible.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02576">2576</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="7c45f1c5b1dbd442fb9b85fef3fe1823"></a><!-- doxytag: member="britney::Britney::old_libraries_format" ref="7c45f1c5b1dbd442fb9b85fef3fe1823" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.old_libraries_format </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>libs</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Format old libraries in a smart table</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02596">2596</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="b0406f20fbbbb08cd3c6e5e6b35f77d5"></a><!-- doxytag: member="britney::Britney::output_write" ref="b0406f20fbbbb08cd3c6e5e6b35f77d5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.output_write </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Simple wrapper for output writing</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02608">2608</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="39248f0cfea1c8798b2ca5a97d37eaf8"></a><!-- doxytag: member="britney::Britney::read_approvals" ref="39248f0cfea1c8798b2ca5a97d37eaf8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_approvals </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the approval commands from the specified directory
The approval commands are read from the files contained by the
`Approved' directory within the directory specified as `basedir'
parameter. The name of the files has to be the same of the
authorized users for the approvals.
The file contains rows with the format:
&lt;package-name&gt; &lt;version&gt;
The method returns a dictionary where the key is the binary package
name followed by an underscore and the version number, and the value
is the user who submitted the command.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00669">669</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="1b2b0f42e4af1cee472f93e955b30421"></a><!-- doxytag: member="britney::Britney::read_binaries" ref="1b2b0f42e4af1cee472f93e955b30421" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_binaries </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>distribution</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the list of binary packages from the specified directory
The binary packages are read from the `Packages_${arch}' files
within the directory specified as `basedir' parameter, replacing
${arch} with the value of the arch parameter. Considering the
large amount of memory needed, not all the fields are loaded
in memory. The available fields are Version, Source, Pre-Depends,
Depends, Conflicts, Provides and Architecture.
After reading the packages, reverse dependencies are computed
and saved in the `rdepends' keys, and the `Provides' field is
used to populate the virtual packages list.
The dependencies are parsed with the apt.pkg.ParseDepends method,
and they are stored both as the format of its return value and
text.
The method returns a tuple. The first element is a list where
every item represents a binary package as a dictionary; the second
element is a dictionary which maps virtual packages to real
packages that provide it.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00367">367</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="6c777aae69e7bec2efebaf23ddd4a86c"></a><!-- doxytag: member="britney::Britney::read_bugs" ref="6c777aae69e7bec2efebaf23ddd4a86c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_bugs </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the release critial bug summary from the specified directory
The RC bug summaries are read from the `Bugs' file within the
directory specified as `basedir' parameter. The file contains
rows with the format:
&lt;package-name&gt; &lt;count-of-rc-bugs&gt;
The method returns a dictionary where the key is the binary package
name and the value is the number of open RC bugs for it.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00493">493</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="085af5ac906813ea40fc2e623748f517"></a><!-- doxytag: member="britney::Britney::read_dates" ref="085af5ac906813ea40fc2e623748f517" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_dates </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the upload date for the packages from the specified directory
The upload dates are read from the `Date' file within the directory
specified as `basedir' parameter. The file contains rows with the
format:
&lt;package-name&gt; &lt;version&gt; &lt;date-of-upload&gt;
The dates are expressed as days starting from the 1970-01-01.
The method returns a dictionary where the key is the binary package
name and the value is tuple with two items, the version and the date.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00584">584</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="46d535f617fcf1faaaf5d841ea23c184"></a><!-- doxytag: member="britney::Britney::read_hints" ref="46d535f617fcf1faaaf5d841ea23c184" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_hints </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the hint commands from the specified directory
The hint commands are read from the files contained by the `Hints'
directory within the directory specified as `basedir' parameter.
The name of the files has to be the same of the authorized users
for the hints.
The file contains rows with the format:
&lt;command&gt; &lt;package-name&gt;[/&lt;version&gt;]
The method returns a dictionary where the key is the command, and
the value is the list of affected packages.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00695">695</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="24fe2c117eadac8eb783e3cb86300265"></a><!-- doxytag: member="britney::Britney::read_nuninst" ref="24fe2c117eadac8eb783e3cb86300265" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_nuninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the non-installable report</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00835">835</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="054f44c47f17c0c4f5a069e821b7f868"></a><!-- doxytag: member="britney::Britney::read_sources" ref="054f44c47f17c0c4f5a069e821b7f868" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_sources </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the list of source packages from the specified directory
The source packages are read from the `Sources' file within the
directory specified as `basedir' parameter. Considering the
large amount of memory needed, not all the fields are loaded
in memory. The available fields are Version, Maintainer and Section.
The method returns a list where every item represents a source
package as a dictionary.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00340">340</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="09fc27899506b4830b1961f125a7b6a4"></a><!-- doxytag: member="britney::Britney::read_urgencies" ref="09fc27899506b4830b1961f125a7b6a4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.read_urgencies </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Read the upload urgency of the packages from the specified directory
The upload urgencies are read from the `Urgency' file within the
directory specified as `basedir' parameter. The file contains rows
with the format:
&lt;package-name&gt; &lt;version&gt; &lt;urgency&gt;
The method returns a dictionary where the key is the binary package
name and the value is the greatest urgency from the versions of the
package that are higher then the testing one.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00624">624</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="f86b93b64ac43c1d04fe88a6a8b1777e"></a><!-- doxytag: member="britney::Britney::register_reverses" ref="f86b93b64ac43c1d04fe88a6a8b1777e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.register_reverses </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>packages</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>provides</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>check_doubles</em> = <code>True</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>parse_depends</em> = <code>apt_pkg.ParseDepends</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Register reverse dependencies and conflicts for the specified package
This method register the reverse dependencies and conflicts for
a give package using `packages` as list of packages and `provides`
as list of virtual packages.
The method has an optional parameter parse_depends which is there
just for performance reasons and is not meant to be overwritten.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00451">451</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="be1b4af9d6c6650c70b24267412bc1a8"></a><!-- doxytag: member="britney::Britney::reversed_exc_deps" ref="be1b4af9d6c6650c70b24267412bc1a8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.reversed_exc_deps </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Reverse the excuses dependencies
This method returns a dictionary where the keys are the package names
and the values are the excuse names which depend on it.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01331">1331</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="85d2e45e8431779b62f398c34972ddf1"></a><!-- doxytag: member="britney::Britney::same_source" ref="85d2e45e8431779b62f398c34972ddf1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.same_source </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>sv1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>sv2</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if two version numbers are built from the same source
This method returns a boolean value which is true if the two
version numbers specified as parameters are built from the same
source. The main use of this code is to detect binary-NMU.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00850">850</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="f8a6c9adbdec7a5a982dd2b74febcc08"></a><!-- doxytag: member="britney::Britney::should_remove_source" ref="f8a6c9adbdec7a5a982dd2b74febcc08" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.should_remove_source </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>pkg</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if a source package should be removed from testing
This method checks if a source package should be removed from the
testing distribution; this happen if the source package is not
present in the unstable distribution anymore.
It returns True if the package can be removed, False otherwise.
In the former case, a new excuse is appended to the the object
attribute excuses.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00990">990</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="94785175a85f44b1afaf3add167a211f"></a><!-- doxytag: member="britney::Britney::should_upgrade_src" ref="94785175a85f44b1afaf3add167a211f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.should_upgrade_src </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if source package should be upgraded
This method checks if a source package should be upgraded. The analysis
is performed for the source package specified by the `src' parameter,
checking the architecture `arch' for the distribution `suite'.
It returns False if the given package doesn't need to be upgraded,
True otherwise. In the former case, a new excuse is appended to
the the object attribute excuses.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01134">1134</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="bd18d7acde434387e94344a39db5b0e5"></a><!-- doxytag: member="britney::Britney::should_upgrade_srcarch" ref="bd18d7acde434387e94344a39db5b0e5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.should_upgrade_srcarch </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>arch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Check if binary package should be upgraded
This method checks if a binary package should be upgraded; this can
happen also if the binary package is a binary-NMU for the given arch.
The analysis is performed for the source package specified by the
`src' parameter, checking the architecture `arch' for the distribution
`suite'.
It returns False if the given package doesn't need to be upgraded,
True otherwise. In the former case, a new excuse is appended to
the the object attribute excuses.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01020">1020</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="70115e28e2ee6aa3a09d1efbd81b4a87"></a><!-- doxytag: member="britney::Britney::sort_actions" ref="70115e28e2ee6aa3a09d1efbd81b4a87" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.sort_actions </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Sort actions in a smart way
This method sorts the list of actions in a smart way. In details, it uses
as base sort the number of days the excuse is old, then reordering packages
so the ones with most reverse dependencies are at the end of the loop.
If an action depends on another one, it is put after it.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02504">2504</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="921effe0d64ed713c38888684a0a26d4"></a><!-- doxytag: member="britney::Britney::upgrade_testing" ref="921effe0d64ed713c38888684a0a26d4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.upgrade_testing </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Upgrade testing using the unstable packages
This method tries to upgrade testing using the packages from unstable.
Before running the do_all method, it tries the easy and force-hint
commands.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l02365">2365</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="0a5591fc94b89d53d12cbb8f27d100a7"></a><!-- doxytag: member="britney::Britney::write_bugs" ref="0a5591fc94b89d53d12cbb8f27d100a7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_bugs </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>bugs</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Write the release critical bug summary to the specified directory
For a more detailed explanation of the format, please check the method
read_bugs.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00517">517</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="1a3695a37b15ebd7e81cc33683fde461"></a><!-- doxytag: member="britney::Britney::write_controlfiles" ref="1a3695a37b15ebd7e81cc33683fde461" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_controlfiles </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>suite</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Write the control files
This method write the control files for the binary packages of all
the architectures and for the source packages.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00777">777</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="83e0bd993e7a099e6bf89d760183a76b"></a><!-- doxytag: member="britney::Britney::write_dates" ref="83e0bd993e7a099e6bf89d760183a76b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_dates </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>dates</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Write the upload date for the packages to the specified directory
For a more detailed explanation of the format, please check the method
read_dates.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00610">610</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="010f6deffca32f7f71ecf1f5c1bb4985"></a><!-- doxytag: member="britney::Britney::write_excuses" ref="010f6deffca32f7f71ecf1f5c1bb4985" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_excuses </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Produce and write the update excuses
This method handles the update excuses generation: the packages are
looked to determine whether they are valid candidates. For the details
of this procedure, please refer to the module docstring.
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l01386">1386</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="20f846da79d595d36628c8da3195ac7a"></a><!-- doxytag: member="britney::Britney::write_heidi" ref="20f846da79d595d36628c8da3195ac7a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_heidi </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>basedir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>filename</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Write the output HeidiResult
This method write the output for Heidi, which contains all the
binary packages and the source packages in the form:
&lt;pkg-name&gt; &lt;pkg-version&gt; &lt;pkg-architecture&gt; &lt;pkg-section&gt;
&lt;src-name&gt; &lt;src-version&gt; &lt;src-section&gt;
</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00742">742</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<a class="anchor" name="1dd8c704e1dab571e4bb62ae15f6ee52"></a><!-- doxytag: member="britney::Britney::write_nuninst" ref="1dd8c704e1dab571e4bb62ae15f6ee52" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">def britney.Britney.write_nuninst </td>
<td>(</td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&nbsp;</td>
<td class="paramname"> <em>nuninst</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<div class="fragment"><pre class="fragment">Write the non-installable report</pre></div>
<p>
Definition at line <a class="el" href="britney_8py-source.html#l00827">827</a> of file <a class="el" href="britney_8py-source.html">britney.py</a>.
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="britney_8py-source.html">britney.py</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Fri Aug 18 23:23:25 2006 for briteny by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>