aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bersenev <bay@hackerdom.ru>2011-07-25 01:32:59 +0000
committerAlexander Bersenev <bay@hackerdom.ru>2011-07-25 01:32:59 +0000
commit2276366a5a6200dabc0778ffeac896ca20b61bf1 (patch)
treea118d698e382f384633e5a6da95532b4705a35a6 /docs/build/html/_modules/package_utils/portage_misc_functions.html
parentdocumentation: intro (diff)
downloadautodep-2276366a5a6200dabc0778ffeac896ca20b61bf1.tar.gz
autodep-2276366a5a6200dabc0778ffeac896ca20b61bf1.tar.bz2
autodep-2276366a5a6200dabc0778ffeac896ca20b61bf1.zip
documentation, man page
Diffstat (limited to 'docs/build/html/_modules/package_utils/portage_misc_functions.html')
-rw-r--r--docs/build/html/_modules/package_utils/portage_misc_functions.html176
1 files changed, 176 insertions, 0 deletions
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
new file mode 100644
index 0000000..05a226b
--- /dev/null
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -0,0 +1,176 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <title>package_utils.portage_misc_functions &mdash; Autodep documentation</title>
+ <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+ <script type="text/javascript">
+ var DOCUMENTATION_OPTIONS = {
+ URL_ROOT: '../../',
+ VERSION: '0.1',
+ COLLAPSE_INDEX: false,
+ FILE_SUFFIX: '.html',
+ HAS_SOURCE: true
+ };
+ </script>
+ <script type="text/javascript" src="../../_static/jquery.js"></script>
+ <script type="text/javascript" src="../../_static/underscore.js"></script>
+ <script type="text/javascript" src="../../_static/doctools.js"></script>
+ <link rel="top" title="Autodep documentation" href="../../index.html" />
+ <link rel="up" title="Module code" href="../index.html" />
+ </head>
+ <body>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ accesskey="I">index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="../../index.html">Autodep</a> &raquo;</li>
+ <li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li>
+ </ul>
+ </div>
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+ <div class="body">
+
+ <h1>Source code for package_utils.portage_misc_functions</h1><div class="highlight"><pre>
+<span class="c">#!/usr/bin/env python2</span>
+<span class="c"># Thanks to Zac Medico &lt;zmedico@gentoo.org&gt; for working example of using an api</span>
+
+<span class="kn">import</span> <span class="nn">portage</span>
+<span class="kn">from</span> <span class="nn">portage.dbapi._expand_new_virt</span> <span class="kn">import</span> <span class="n">expand_new_virt</span>
+
+<span class="c"># to not use own emerge option parser. Options may change but I hope </span>
+<span class="c"># parse_opts function will always be there</span>
+<span class="kn">from</span> <span class="nn">_emerge.main</span> <span class="kn">import</span> <span class="n">parse_opts</span>
+
+
+<div class="viewcode-block" id="portage_api"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api">[docs]</a><span class="k">class</span> <span class="nc">portage_api</span><span class="p">:</span>
+ <span class="sd">&quot;&quot;&quot; class for accessing the portage api &quot;&quot;&quot;</span>
+ <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">clone</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">settings</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">db</span><span class="p">[</span><span class="n">portage</span><span class="o">.</span><span class="n">root</span><span class="p">][</span><span class="s">&#39;vartree&#39;</span><span class="p">]</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">vardb</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dbapi</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">portdb</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">portdb</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">metadata_keys</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">portage</span><span class="o">.</span><span class="n">auxdbkeys</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">k</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&quot;UNUSED_&quot;</span><span class="p">)]</span>
+ <span class="bp">self</span><span class="o">.</span><span class="n">use</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;USE&quot;</span><span class="p">]</span>
+
+ <span class="c"># recursive dependency getter</span>
+<div class="viewcode-block" id="portage_api.get_deps"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.get_deps">[docs]</a> <span class="k">def</span> <span class="nf">get_deps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">pkg</span><span class="p">,</span><span class="n">dep_type</span><span class="o">=</span><span class="p">[</span><span class="s">&quot;RDEPEND&quot;</span><span class="p">,</span><span class="s">&quot;DEPEND&quot;</span><span class="p">]):</span>
+ <span class="c">#pkg=&quot;kde-meta&quot;</span>
+ <span class="c">#print self.vardb.match(&quot;&lt;sys-apps/paludis-0.26.0_alpha5&quot;)</span>
+ <span class="c">#metadata = dict(zip(self.metadata_keys, self.vardb.aux_get(pkg, self.metadata_keys)))</span>
+
+ <span class="n">ret</span><span class="o">=</span><span class="nb">set</span><span class="p">()</span>
+
+ <span class="n">pkg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">portdb</span><span class="o">.</span><span class="n">xmatch</span><span class="p">(</span><span class="s">&quot;bestmatch-visible&quot;</span><span class="p">,</span> <span class="n">pkg</span><span class="p">)</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">pkg</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">ret</span>
+
+ <span class="c">#print pkg</span>
+
+ <span class="n">known_packages</span><span class="o">=</span><span class="nb">set</span><span class="p">()</span>
+ <span class="n">unknown_packages</span><span class="o">=</span><span class="p">{</span><span class="n">pkg</span><span class="p">}</span>
+
+ <span class="k">while</span> <span class="n">unknown_packages</span><span class="p">:</span>
+ <span class="n">p</span><span class="o">=</span><span class="n">unknown_packages</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
+ <span class="c">#print &quot;proceeding &quot;+p</span>
+ <span class="k">if</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">known_packages</span><span class="p">:</span>
+ <span class="k">continue</span>
+ <span class="n">known_packages</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
+
+ <span class="c">#print self.metadata_keys, p,self.portdb.aux_get(p, self.metadata_keys)</span>
+ <span class="n">metadata</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">metadata_keys</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">vardb</span><span class="o">.</span><span class="n">aux_get</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">metadata_keys</span><span class="p">)))</span>
+ <span class="c">#print &quot;proceeding2 &quot;+p</span>
+
+ <span class="n">dep_str</span> <span class="o">=</span> <span class="s">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">metadata</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">dep_type</span><span class="p">)</span>
+
+ <span class="n">success</span><span class="p">,</span> <span class="n">atoms</span> <span class="o">=</span> <span class="n">portage</span><span class="o">.</span><span class="n">dep_check</span><span class="p">(</span><span class="n">dep_str</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">,</span> <span class="n">myuse</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">use</span><span class="o">.</span><span class="n">split</span><span class="p">(),</span>
+ <span class="n">trees</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">db</span><span class="p">,</span> <span class="n">myroot</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s">&quot;ROOT&quot;</span><span class="p">])</span>
+
+ <span class="c">#print atoms</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">success</span><span class="p">:</span>
+ <span class="k">continue</span>
+
+ <span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="n">atoms</span><span class="p">:</span>
+ <span class="n">atomname</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_bestmatch</span><span class="p">(</span><span class="n">atom</span><span class="p">)</span>
+ <span class="c">#print atomname</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">atomname</span><span class="p">:</span>
+ <span class="k">continue</span>
+
+ <span class="k">for</span> <span class="n">unvirt_pkg</span> <span class="ow">in</span> <span class="n">expand_new_virt</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dbapi</span><span class="p">,</span><span class="s">&#39;=&#39;</span><span class="o">+</span><span class="n">atomname</span><span class="p">):</span>
+ <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_match</span><span class="p">(</span><span class="n">unvirt_pkg</span><span class="p">):</span>
+ <span class="n">ret</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
+ <span class="n">unknown_packages</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">ret</span>
+
+ <span class="c"># returns all packages from system set. They are always implicit dependencies</span></div>
+<div class="viewcode-block" id="portage_api.get_system_packages_list"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.get_system_packages_list">[docs]</a> <span class="k">def</span> <span class="nf">get_system_packages_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">ret</span><span class="o">=</span><span class="p">[]</span>
+ <span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">packages</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">pre_pkg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_match</span><span class="p">(</span><span class="n">atom</span><span class="p">):</span>
+ <span class="k">for</span> <span class="n">unvirt_pkg</span> <span class="ow">in</span> <span class="n">expand_new_virt</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dbapi</span><span class="p">,</span><span class="s">&#39;=&#39;</span><span class="o">+</span><span class="n">pre_pkg</span><span class="p">):</span>
+ <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_match</span><span class="p">(</span><span class="n">unvirt_pkg</span><span class="p">):</span>
+ <span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">ret</span>
+
+ <span class="c"># call emerge arguments parser</span></div>
+<div class="viewcode-block" id="portage_api.parse_emerge_args"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.parse_emerge_args">[docs]</a> <span class="k">def</span> <span class="nf">parse_emerge_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">args</span><span class="p">):</span>
+ <span class="n">action</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">files</span> <span class="o">=</span> <span class="n">parse_opts</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">silent</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">action</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">files</span>
+</pre></div></div></div>
+
+ </div>
+ </div>
+ </div>
+ <div class="sphinxsidebar">
+ <div class="sphinxsidebarwrapper">
+<div id="searchbox" style="display: none">
+ <h3>Quick search</h3>
+ <form class="search" action="../../search.html" method="get">
+ <input type="text" name="q" size="18" />
+ <input type="submit" value="Go" />
+ <input type="hidden" name="check_keywords" value="yes" />
+ <input type="hidden" name="area" value="default" />
+ </form>
+ <p class="searchtip" style="font-size: 90%">
+ Enter search terms or a module, class or function name.
+ </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="related">
+ <h3>Navigation</h3>
+ <ul>
+ <li class="right" style="margin-right: 10px">
+ <a href="../../genindex.html" title="General Index"
+ >index</a></li>
+ <li class="right" >
+ <a href="../../py-modindex.html" title="Python Module Index"
+ >modules</a> |</li>
+ <li><a href="../../index.html">Autodep</a> &raquo;</li>
+ <li><a href="../index.html" >Module code</a> &raquo;</li>
+ </ul>
+ </div>
+ <div class="footer">
+ &copy; Copyright 2011, Alexander Bersenev.
+ Last updated on Jul 25, 2011.
+ Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
+ </div>
+ </body>
+</html> \ No newline at end of file