<!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>astropy.units.format.console — Astropy v0.2.4</title> <link rel="stylesheet" href="../../../../_static/bootstrap-astropy.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.2.4', 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/sidebar.js"></script> <link rel="shortcut icon" href="../../../../_static/astropy_logo.ico"/> <link rel="top" title="Astropy v0.2.4" href="../../../../index.html" /> <link rel="up" title="astropy.units.format" href="../format.html" /> </head> <body> <div class="topbar"> <a class="brand" title="Documentation Home" href="../../../../index.html"></a> <ul> <li><a class="homelink" title="AstroPy Homepage" href="http://www.astropy.org"></a></li> <li><a title="General Index" href="../../../../genindex.html">Index</a></li> <li><a title="Python Module Index" href="../../../../py-modindex.html">Modules</a></li> <li> <form action="../../../../search.html" method="get"> <input type="text" name="q" placeholder="Search" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </li> </ul> </div> <div class="related"> <h3>Navigation</h3> <ul> <li> <a href="../../../../index.html">Astropy v0.2.4</a> » </li> <li><a href="../../../index.html" >Module code</a> »</li> <li><a href="../format.html" accesskey="U">astropy.units.format</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <h1>Source code for astropy.units.format.console</h1><div class="highlight"><pre> <span class="c"># -*- coding: utf-8 -*-</span> <span class="c"># Licensed under a 3-clause BSD style license - see LICENSE.rst</span> <span class="sd">"""</span> <span class="sd">Handles the "Console" unit format.</span> <span class="sd">"""</span> <span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="p">(</span><span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span><span class="p">,</span> <span class="n">unicode_literals</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">base</span> <span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">utils</span> <div class="viewcode-block" id="Console"><a class="viewcode-back" href="../../../../_generated/astropy.units.format.console.Console.html#astropy.units.format.console.Console">[docs]</a><span class="k">class</span> <span class="nc">Console</span><span class="p">(</span><span class="n">base</span><span class="o">.</span><span class="n">Base</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> Output-only format for to display pretty formatting at the</span> <span class="sd"> console.</span> <span class="sd"> For example::</span> <span class="sd"> >>> print fluxunit.to_string('console')</span> <span class="sd"> erg</span> <span class="sd"> ------</span> <span class="sd"> s cm^2</span> <span class="sd"> """</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="k">pass</span> <span class="n">_times</span> <span class="o">=</span> <span class="s">"*"</span> <span class="n">_line</span> <span class="o">=</span> <span class="s">"-"</span> <span class="k">def</span> <span class="nf">_get_unit_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unit</span><span class="p">):</span> <span class="k">return</span> <span class="n">unit</span><span class="o">.</span><span class="n">get_format_name</span><span class="p">(</span><span class="s">'console'</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_format_superscript</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number</span><span class="p">):</span> <span class="k">return</span> <span class="s">'^{0}'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">number</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_format_unit_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">units</span><span class="p">):</span> <span class="n">out</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">base</span><span class="p">,</span> <span class="n">power</span> <span class="ow">in</span> <span class="n">units</span><span class="p">:</span> <span class="k">if</span> <span class="n">power</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="n">out</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_unit_name</span><span class="p">(</span><span class="n">base</span><span class="p">))</span> <span class="k">else</span><span class="p">:</span> <span class="n">out</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">'{0}{1}'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unit_name</span><span class="p">(</span><span class="n">base</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_superscript</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">power</span><span class="p">))))</span> <span class="k">return</span> <span class="s">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">def</span> <span class="nf">_format_exponential_notation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">):</span> <span class="n">m</span><span class="p">,</span> <span class="n">ex</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">split_mantissa_exponent</span><span class="p">(</span><span class="n">val</span><span class="p">)</span> <span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">if</span> <span class="n">m</span><span class="p">:</span> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> <span class="k">if</span> <span class="n">ex</span><span class="p">:</span> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s">"10{0}"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_superscript</span><span class="p">(</span><span class="n">ex</span><span class="p">)))</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_times</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <div class="viewcode-block" id="Console.to_string"><a class="viewcode-back" href="../../../../_generated/astropy.units.format.console.Console.html#astropy.units.format.console.Console.to_string">[docs]</a> <span class="k">def</span> <span class="nf">to_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unit</span><span class="p">):</span> <span class="kn">from</span> <span class="nn">..</span> <span class="kn">import</span> <span class="n">core</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">core</span><span class="o">.</span><span class="n">CompositeUnit</span><span class="p">):</span> <span class="k">if</span> <span class="n">unit</span><span class="o">.</span><span class="n">scale</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span> <span class="n">s</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_exponential_notation</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">scale</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">s</span> <span class="o">=</span> <span class="s">''</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">bases</span><span class="p">):</span> <span class="n">positives</span><span class="p">,</span> <span class="n">negatives</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">get_grouped_by_powers</span><span class="p">(</span> <span class="n">unit</span><span class="o">.</span><span class="n">bases</span><span class="p">,</span> <span class="n">unit</span><span class="o">.</span><span class="n">powers</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">negatives</span><span class="p">):</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">positives</span><span class="p">):</span> <span class="n">positives</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_unit_list</span><span class="p">(</span><span class="n">positives</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">positives</span> <span class="o">=</span> <span class="s">'1'</span> <span class="n">negatives</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_unit_list</span><span class="p">(</span><span class="n">negatives</span><span class="p">)</span> <span class="n">l</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="n">r</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">positives</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">negatives</span><span class="p">))</span> <span class="n">f</span> <span class="o">=</span> <span class="s">"{{0:^{0}s}} {{1:^{1}s}}"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">l</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span> <span class="n">lines</span> <span class="o">=</span> <span class="p">[</span> <span class="n">f</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s">''</span><span class="p">,</span> <span class="n">positives</span><span class="p">),</span> <span class="n">f</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> <span class="o">*</span> <span class="n">r</span><span class="p">),</span> <span class="n">f</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="s">''</span><span class="p">,</span> <span class="n">negatives</span><span class="p">)</span> <span class="p">]</span> <span class="n">s</span> <span class="o">=</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">positives</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_unit_list</span><span class="p">(</span><span class="n">positives</span><span class="p">)</span> <span class="n">s</span> <span class="o">+=</span> <span class="n">positives</span> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">core</span><span class="o">.</span><span class="n">NamedUnit</span><span class="p">):</span> <span class="n">s</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unit_name</span><span class="p">(</span><span class="n">unit</span><span class="p">)</span> <span class="k">return</span> <span class="n">s</span></div></div> </pre></div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"><h3>Page Contents</h3> </div> </div> <div class="clearer"></div> </div> <footer class="footer"> <p class="pull-right"> <a href="#">Back to Top</a></p> <p> © Copyright 2011-2013, The Astropy Developers.<br/> Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. Last built 22 Oct 2013. <br/> </p> </footer> </body> </html>