×

Link : https://pypi.python.org/pypi/engfmt/1.1.0

engfmt – It is a package used to read and write numbers in engineering format.

In engineering format a number generally includes the units if available and uses SI scale factors to indicate the magnitude of the number.

For example:

1ns

1.4204GHz

This package is designed to convert quantities between the various ways in which they are represented. Those ways are:

As a tuple:

For Eg: “1ns” – would be represented as (1e-9, ‘s’).

As a string in conventional formats:

For Eg: “1ns” – would be represented as ‘1e-9 s’ or as ‘0.000000001s’.

– This form is difficult to read for people.

– engfmt treats it more as a format meant for machines rather than people.

As a string in engineering format:

For Eg: “1ns” – would be represented as ‘1ns’.

– This form is difficult to read for machines

– engfmt treats it more as a human readable format.

The Quantity class is provided for converting between these various forms.

  • A quantity is the pairing of a real number and units, though the units may be empty.

1.It takes one or two arguments.

Eg: Quantity(1e-9) or Quantity(1e-9, ‘s’)

  • The first is taken to be the value, and the second, if given, is taken to be the units.
  • The value may be given as a float or as a string.
  • The string may be in floating point notation, in scientific notation, or in engineering format and may include the units.

Some examples of the conversions are given below:

For example, any of the following ways can be used to specify 1ns:

As a tuple:

>>> from engfmt import Quantity

>>> period = Quantity(1e-9, ‘s’)

>>> print(period)

1ns

As a string in conventional formats:

>>> period = Quantity(‘0.000000001 s’)

>>> print(period)

1ns

>>> period = Quantity(‘1e-9s’)

>>> print(period)

1ns

As a string in engineering format:

>>> period = Quantity(‘1ns’)

>>> print(period)

       1ns

Note: In all cases, the giving the units is optional.

Conversions – Using quantity object you are able to convert it to any representations:

>>> h_line = Quantity(‘1420.405751786 MHz’)

# to converting to tuple with units

>>> h_line.to_tuple()

       (1420405751.786, ‘Hz’)

# to converting to string with engineering format

>>> h_line.to_eng()

       ‘1.4204GHz’

# to converting to string with conventional format

>>> h_line.to_str()

        ‘1420.405751786e6Hz’

You can also access the value without the units:

# convertig to float

>>> h_line.to_float()

       1420405751.786

# converting to a string with conventional format – without units

>>> h_line.to_unitless_eng()

       ‘1.4204G’

# converting to string with engineering format – without units

>>> h_line.to_unitless_str()

       ‘1420.405751786e6’

# Get the units only

>>> h_line.units

        ‘Hz’

There are many other functions also in this package, which is available in the link given.

Some of the functions are given below:

  • Quantities As Reals – You can use a quantity in the same way that you can use a real number, meaning that you can use it in expressions and it will evaluate to its real value.

For Example:

     >>> period = Quantity(‘1us’)

     >> print(period) 

         1us

  • Quantity Class – Quantity class can be used directly, like shortcut functions.

      For Example:

      >>> from engfmt import Quantity

      >>> h_line = Quantity(‘1420.405751786 MHz’)

      >>> str(h_line)

           ‘1.4204GHz’

      >>> float(h_line)

            1420405751.786

  • Physical Constants – The Quantity class also supports a some physical constants.

      For Example:

     Plank’s constant:

      >>> plank = Quantity(‘h’)

      >>> print(plank)

            662.61e-36J-s

  • Exceptions:

The best thing in this is it also gives Exceptions:

Eg: A ValueError is raised if engfmt cannot convert a string it into a number:

For Example:
			>>> try:
			...     value, units = quant_to_tuple('xxx')
			... except ValueError as err:
			...     print(err)
			xxx: not a valid number.

Installation / Usage :

Requires Python2.7 or Python3.3 or better.

1. Use ‘pip install engfmt’ in the cmd prompt to install.

2. By importing the .py file:

  • Download the package from the link.
  • Copy the engfmt.py from the package and put in the working directory of the python.
  • Import the file by from engfmt import* / from engfmt import Quantity.

Author

prathap7618@gmail.com

Related Posts

How to Install WSL and Ubuntu (LTS) on the Windows platform

~Sandhiya.B and Ajay This post consolidates the information needed to set up the Ubuntu terminal on a Win 11 Machine. The Ubuntu terminal...

Read out all

Ambient light sensor using a photoresistor and Arduino Uno

This project is about using a photoresistor along with an Arduino Uno board to determine the brightness of a room which is...

Read out all

Smart dustbin using Arduino

The smart dustbin is built on a microcontroller-based platform Arduino Uno board which is interfaced with the Servo motor and ultrasonic sensor....

Read out all

LOGIC GATES USING ARDUINO UNO

A basic gate is defined as a component with one or more inputs and one output.  The inputs and outputs are all...

Read out all

LAST SCHOOL STUDENTS VISIT STEMLAND

On the 14th of July students from the Last school, Auroville visited STEMLAND. The forty students accompanied by the teachers enjoyed their...

Read out all

Vim Editor Session

Vim Editor Session ~SriBhavani and Bakyalakshmi On 18th Jan 2022, we had a session on vim by HarshaVaradhan from AuraSemiconductors. In this...

Read out all