<html>#2612: GetComponents assumes that $USER is defined
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td>development version</td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>GetComponents</td></tr>
</table>

<p>Comment (by Roland Haas):</p>
<p>ugh, I did not know that. Checking… Simfactory has “workarounds”:  </p>
<div class="codehilite language-python"><pre><span></span><span class="k">def</span> <span class="nf">GetUsername</span><span class="p">():</span>

    <span class="k">if</span> <span class="s2">&quot;USER&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
        <span class="n">fd</span> <span class="o">=</span> <span class="n">simenv</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="s2">&quot;whoami&quot;</span><span class="p">)</span>
        <span class="n">username</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
        <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>

    <span class="k">else</span><span class="p">:</span>
        <span class="n">username</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;USER&quot;</span><span class="p">]</span>

    <span class="k">return</span> <span class="n">username</span>
</pre></div>


<p>What’s wrong with <code>os.getlogin()</code> which is the first answer that Google finds for “Python get user name”: <a data-is-external-link="true" href="https://www.geeksforgeeks.org/how-to-get-the-current-username-in-python/" rel="nofollow">https://www.geeksforgeeks.org/how-to-get-the-current-username-in-python/</a> and apparently part of Python since forever?<br>
I’ll make a pull request for simfactory as well.</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2612/getcomponents-assumes-that-user-is-defined'>https://bitbucket.org/einsteintoolkit/tickets/issues/2612/getcomponents-assumes-that-user-is-defined</a></p>
</html>