diff options
author | Alexander Bersenev <bay@hackerdom.ru> | 2011-07-25 01:32:59 +0000 |
---|---|---|
committer | Alexander Bersenev <bay@hackerdom.ru> | 2011-07-25 01:32:59 +0000 |
commit | 2276366a5a6200dabc0778ffeac896ca20b61bf1 (patch) | |
tree | a118d698e382f384633e5a6da95532b4705a35a6 /docs/build/html/_modules/package_utils/portage_misc_functions.html | |
parent | documentation: intro (diff) | |
download | autodep-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.html | 176 |
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 — 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> »</li> + <li><a href="../index.html" accesskey="U">Module code</a> »</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 <zmedico@gentoo.org> 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">""" class for accessing the portage api """</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">'vartree'</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">"UNUSED_"</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">"USE"</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">"RDEPEND"</span><span class="p">,</span><span class="s">"DEPEND"</span><span class="p">]):</span> + <span class="c">#pkg="kde-meta"</span> + <span class="c">#print self.vardb.match("<sys-apps/paludis-0.26.0_alpha5")</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">"bestmatch-visible"</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 "proceeding "+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 "proceeding2 "+p</span> + + <span class="n">dep_str</span> <span class="o">=</span> <span class="s">" "</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">"ROOT"</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">'='</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">'='</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> »</li> + <li><a href="../index.html" >Module code</a> »</li> + </ul> + </div> + <div class="footer"> + © 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 |