Skip to main content

Easy engineering notation

Project description

<h1>Purpose</h1>
<p>To easily work with human-readable engineering notation. I wrote this as a quick tool for my own use.
I found that I was writing the same functionality into multiple packages and would like a quick pip-installable
package to take care of this manipulation for me. The package should be easily extended for other use cases.
The package is unit-less, so only operates on numeric values. Unit detection may be added in future versions.</p>
<h1>Installation</h1>
<p>Install using pip: <code>pip install engineering_notation</code>.</p>
<h1>Status</h1>
<p>This project currently has 100% test coverage. Have a look in <code>test/test.py</code> for examples of how to use
this library.</p>
<h1>Use</h1>
<p>There are multiple ways of initializing a number to a particular value, but a string is the preferred method:</p>
<p>```</p>
<blockquote>
<blockquote>
<blockquote>
<p>from engineering_notation import EngNumber
EngNumber('10k')
10k
EngNumber('10000')
10k
EngNumber(10000)
10k
EngNumber(10000.0)
10k
EngNumber(1e4)
10k
```</p>
</blockquote>
</blockquote>
</blockquote>
<p>Where decimals are involved, we use a default precision of 2 digits:</p>
<p>```</p>
<blockquote>
<blockquote>
<blockquote>
<p>EngNumber('4.99k')
4.99k
EngNumber('4.9k')
4.90k
```</p>
</blockquote>
</blockquote>
</blockquote>
<p>This behavior can truncate your results in some cases, and cause your number to round. To specify more or less
digits, simply specify the precision in the declaration:</p>
<p>```</p>
<blockquote>
<blockquote>
<blockquote>
<p>EngNumber('4.999k')
5k
EngNumber('4.999k', precision=3)
4.999k
```</p>
</blockquote>
</blockquote>
</blockquote>
<p>Most operations that you would perform on numeric values are valid, although all operations are not implemented:</p>
<p>```</p>
<blockquote>
<blockquote>
<blockquote>
<p>EngNumber('2.2k') * 2
4.40k
2 * EngNumber('2.2k')
4.40k
EngNumber(1.2) &gt; EngNumber('3.3k')
False
EngNumber(1.2) &lt;= EngNumber('3.3k')
True
EngNumber('3.3k') == EngNumber(3300)
True
```</p>
</blockquote>
</blockquote>
</blockquote>
<h1>Contributions</h1>
<p>Contributions are welcome. Feel free to make feature requests in the issues.</p>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

engineering_notation-0.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file engineering_notation-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for engineering_notation-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6a35489381a95eb78064a35d0a3d9174b76f11ea5503b99ddb63983b1a5b0ab
MD5 e3b355f381913b60df9bdbae18629629
BLAKE2b-256 565c0443446390d7accec864bcb371dd663f2edc268d5d55b54b10885fa150ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page