Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > e4be28b383be195ff28bfce2053e734a > files > 82

python-stem-doc-1.1.0-1.fc18.noarch.rpm



<!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>stem.util.term &mdash; Stem 1.1.0 documentation</title>
    
    <link rel="stylesheet" href="../../../_static/haiku.css" type="text/css" />
    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="../../../_static/print.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../../',
        VERSION:     '1.1.0',
        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>
    <script type="text/javascript" src="../../../_static/theme_extras.js"></script>
    <link rel="shortcut icon" href="../../../_static/favicon.png"/>
    <link rel="top" title="Stem 1.1.0 documentation" href="../../../index.html" />
    <link rel="up" title="stem" href="../../stem.html" /> 
  </head>
  <body>
      <div class="header"><img class="rightlogo" src="../../../_static/logo.png" alt="Logo"/><h1 class="heading"><a href="../../../index.html">
          <span>Stem Docs</span></a></h1>
        <h2 class="heading"><span>stem.util.term</span></h2>
      </div>
      <div class="topnav">
      
        <p>

        <ul id="navbar">
          <li><a href="../../../index.html">Home</a></li>
          <li><a href="../../../tutorials.html">Tutorials</a>
            <ul>
              <li><a href="../../../tutorials/the_little_relay_that_could.html">Hello World</a></li>
              <li><a href="../../../tutorials/to_russia_with_love.html">Client Usage</a></li>
              <li><a href="../../../tutorials/tortoise_and_the_hare.html">Event Listening</a></li>
              <li><a href="../../../tutorials/mirror_mirror_on_the_wall.html">Tor Descriptors</a></li>
              <li><a href="../../../tutorials/east_of_the_sun.html">Utilities</a></li>
              <li><a href="../../../tutorials/double_double_toil_and_trouble.html">Examples</a></li>
            </ul>
          </li>
          <li><a href="../../../api.html">API</a>
            <ul>
              <li><a href="../../../api/control.html">stem.control</a></li>
              <li><a href="../../../api/connection.html">stem.connection</a></li>
              <li><a href="../../../api/socket.html">stem.socket</a></li>
              <li><a href="../../../api/process.html">stem.process</a></li>
              <li><a href="../../../api/response.html">stem.response</a></li>
              <li><a href="../../../api/exit_policy.html">stem.exit_policy</a></li>
              <li><a href="../../../api/version.html">stem.version</a></li>
              <li><a href="../../../api.html#descriptors">Descriptors</a></li>
              <li><a href="../../../api.html#utilities">Utilities</a></li>
            </ul>
          </li>
          <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/stem">Development</a>
            <ul>
              <li><a href="../../../faq.html">FAQ</a></li>
              <li><a href="../../../change_log.html">Change Log</a></li>
              <li><a href="https://trac.torproject.org/projects/tor/wiki/doc/stem/bugs">Bug Tracker</a></li>
              <li><a href="../../../download.html">Download</a></li>
            </ul>
          </li>
        </ul>
        </p>

      </div>
      <div class="content">
        
        
  <h1>Source code for stem.util.term</h1><div class="highlight"><pre>
<span class="c"># Copyright 2011-2013, Damian Johnson and The Tor Project</span>
<span class="c"># See LICENSE for licensing information</span>

<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Utilities for working with the terminal.</span>

<span class="sd">**Module Overview:**</span>

<span class="sd">::</span>

<span class="sd">  format - wrap text with ANSI for the given colors or attributes</span>

<span class="sd">.. data:: Color (enum)</span>
<span class="sd">.. data:: BgColor (enum)</span>

<span class="sd">  Enumerations for foreground or background terminal color.</span>

<span class="sd">  =========== ===========</span>
<span class="sd">  Color       Description</span>
<span class="sd">  =========== ===========</span>
<span class="sd">  **BLACK**   black color</span>
<span class="sd">  **BLUE**    blue color</span>
<span class="sd">  **CYAN**    cyan color</span>
<span class="sd">  **GREEN**   green color</span>
<span class="sd">  **MAGENTA** magenta color</span>
<span class="sd">  **RED**     red color</span>
<span class="sd">  **WHITE**   white color</span>
<span class="sd">  **YELLOW**  yellow color</span>
<span class="sd">  =========== ===========</span>

<span class="sd">.. data:: Attr (enum)</span>

<span class="sd">  Enumerations of terminal text attributes.</span>

<span class="sd">  ============= ===========</span>
<span class="sd">  Attr          Description</span>
<span class="sd">  ============= ===========</span>
<span class="sd">  **BOLD**      heavy typeface</span>
<span class="sd">  **HILIGHT**   inverted foreground and background</span>
<span class="sd">  **UNDERLINE** underlined text</span>
<span class="sd">  ============= ===========</span>
<span class="sd">&quot;&quot;&quot;</span>

<span class="kn">import</span> <span class="nn">stem.util.enum</span>
<span class="kn">import</span> <span class="nn">stem.util.str_tools</span>

<span class="n">TERM_COLORS</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;BLACK&quot;</span><span class="p">,</span> <span class="s">&quot;RED&quot;</span><span class="p">,</span> <span class="s">&quot;GREEN&quot;</span><span class="p">,</span> <span class="s">&quot;YELLOW&quot;</span><span class="p">,</span> <span class="s">&quot;BLUE&quot;</span><span class="p">,</span> <span class="s">&quot;MAGENTA&quot;</span><span class="p">,</span> <span class="s">&quot;CYAN&quot;</span><span class="p">,</span> <span class="s">&quot;WHITE&quot;</span><span class="p">)</span>

<span class="n">Color</span> <span class="o">=</span> <span class="n">stem</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">(</span><span class="o">*</span><span class="n">TERM_COLORS</span><span class="p">)</span>
<span class="n">BgColor</span> <span class="o">=</span> <span class="n">stem</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="s">&quot;BG_&quot;</span> <span class="o">+</span> <span class="n">color</span> <span class="k">for</span> <span class="n">color</span> <span class="ow">in</span> <span class="n">TERM_COLORS</span><span class="p">])</span>
<span class="n">Attr</span> <span class="o">=</span> <span class="n">stem</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">enum</span><span class="o">.</span><span class="n">Enum</span><span class="p">(</span><span class="s">&quot;BOLD&quot;</span><span class="p">,</span> <span class="s">&quot;UNDERLINE&quot;</span><span class="p">,</span> <span class="s">&quot;HILIGHT&quot;</span><span class="p">)</span>

<span class="c"># mappings of terminal attribute enums to their ANSI escape encoding</span>
<span class="n">FG_ENCODING</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">([(</span><span class="nb">list</span><span class="p">(</span><span class="n">Color</span><span class="p">)[</span><span class="n">i</span><span class="p">],</span> <span class="nb">str</span><span class="p">(</span><span class="mi">30</span> <span class="o">+</span> <span class="n">i</span><span class="p">))</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">8</span><span class="p">)])</span>
<span class="n">BG_ENCODING</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">([(</span><span class="nb">list</span><span class="p">(</span><span class="n">BgColor</span><span class="p">)[</span><span class="n">i</span><span class="p">],</span> <span class="nb">str</span><span class="p">(</span><span class="mi">40</span> <span class="o">+</span> <span class="n">i</span><span class="p">))</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">8</span><span class="p">)])</span>
<span class="n">ATTR_ENCODING</span> <span class="o">=</span> <span class="p">{</span><span class="n">Attr</span><span class="o">.</span><span class="n">BOLD</span><span class="p">:</span> <span class="s">&quot;1&quot;</span><span class="p">,</span> <span class="n">Attr</span><span class="o">.</span><span class="n">UNDERLINE</span><span class="p">:</span> <span class="s">&quot;4&quot;</span><span class="p">,</span> <span class="n">Attr</span><span class="o">.</span><span class="n">HILIGHT</span><span class="p">:</span> <span class="s">&quot;7&quot;</span><span class="p">}</span>

<span class="n">CSI</span> <span class="o">=</span> <span class="s">&quot;</span><span class="se">\x1B</span><span class="s">[</span><span class="si">%s</span><span class="s">m&quot;</span>
<span class="n">RESET</span> <span class="o">=</span> <span class="n">CSI</span> <span class="o">%</span> <span class="s">&quot;0&quot;</span>


<div class="viewcode-block" id="format"><a class="viewcode-back" href="../../../api/util/term.html#stem.util.term.format">[docs]</a><span class="k">def</span> <span class="nf">format</span><span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="o">*</span><span class="n">attr</span><span class="p">):</span>
  <span class="sd">&quot;&quot;&quot;</span>
<span class="sd">  Simple terminal text formatting using `ANSI escape sequences</span>
<span class="sd">  &lt;https://secure.wikimedia.org/wikipedia/en/wiki/ANSI_escape_code#CSI_codes&gt;`_.</span>
<span class="sd">  The following are some toolkits providing similar capabilities:</span>

<span class="sd">  * `django.utils.termcolors &lt;https://code.djangoproject.com/browser/django/trunk/django/utils/termcolors.py&gt;`_</span>
<span class="sd">  * `termcolor &lt;http://pypi.python.org/pypi/termcolor&gt;`_</span>
<span class="sd">  * `colorama &lt;http://pypi.python.org/pypi/colorama&gt;`_</span>

<span class="sd">  :param str msg: string to be formatted</span>
<span class="sd">  :param str attr: text attributes, this can be :data:`~stem.util.term.Color`, :data:`~stem.util.term.BgColor`, or :data:`~stem.util.term.Attr` enums</span>
<span class="sd">    and are case insensitive (so strings like &quot;red&quot; are fine)</span>

<span class="sd">  :returns: **str** wrapped with ANSI escape encodings, starting with the given</span>
<span class="sd">    attributes and ending with a reset</span>
<span class="sd">  &quot;&quot;&quot;</span>

  <span class="c"># if we have reset sequences in the message then apply our attributes</span>
  <span class="c"># after each of them</span>
  <span class="k">if</span> <span class="n">RESET</span> <span class="ow">in</span> <span class="n">msg</span><span class="p">:</span>
    <span class="k">return</span> <span class="s">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">format</span><span class="p">(</span><span class="n">comp</span><span class="p">,</span> <span class="o">*</span><span class="n">attr</span><span class="p">)</span> <span class="k">for</span> <span class="n">comp</span> <span class="ow">in</span> <span class="n">msg</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">RESET</span><span class="p">)])</span>

  <span class="n">encodings</span> <span class="o">=</span> <span class="p">[]</span>
  <span class="k">for</span> <span class="n">text_attr</span> <span class="ow">in</span> <span class="n">attr</span><span class="p">:</span>
    <span class="n">text_attr</span><span class="p">,</span> <span class="n">encoding</span> <span class="o">=</span> <span class="n">stem</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">str_tools</span><span class="o">.</span><span class="n">_to_camel_case</span><span class="p">(</span><span class="n">text_attr</span><span class="p">),</span> <span class="bp">None</span>
    <span class="n">encoding</span> <span class="o">=</span> <span class="n">FG_ENCODING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">text_attr</span><span class="p">,</span> <span class="n">encoding</span><span class="p">)</span>
    <span class="n">encoding</span> <span class="o">=</span> <span class="n">BG_ENCODING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">text_attr</span><span class="p">,</span> <span class="n">encoding</span><span class="p">)</span>
    <span class="n">encoding</span> <span class="o">=</span> <span class="n">ATTR_ENCODING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">text_attr</span><span class="p">,</span> <span class="n">encoding</span><span class="p">)</span>

    <span class="k">if</span> <span class="n">encoding</span><span class="p">:</span>
      <span class="n">encodings</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">encoding</span><span class="p">)</span>

  <span class="k">if</span> <span class="n">encodings</span><span class="p">:</span>
    <span class="k">return</span> <span class="p">(</span><span class="n">CSI</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">encodings</span><span class="p">))</span> <span class="o">+</span> <span class="n">msg</span> <span class="o">+</span> <span class="n">RESET</span>
  <span class="k">else</span><span class="p">:</span>
    <span class="k">return</span> <span class="n">msg</span></div>
</pre></div>

      </div>
      <div class="bottomnav">
      </div>

    <div class="footer">
    </div>
  </body>
</html>