from qp.sites.extreme.lib.config import image_dir, homeurl
__version__ = "0.0.1 2011.01.28"
__date__    = "2011.01.28"
__catalog__ = "UNITS-CONV-001"
__author__  = "ernesto.adorio@gmail.com"
__url__     = homeurl + "solvers/units/"
__title__   = "Fundamental Units Conversion Page"
from qp.pub.common      import get_session
from qp.fill.css        import BASIC_FORM_CSS
from qp.fill.directory  import Directory
from quixote.errors     import PublishError
from quixote.util       import dump_request
from qp.fill.form       import Form
from qp.fill.widget    import CheckboxWidget,StringWidget,SingleSelectWidget, StringWidget, TextWidget
from qp.pub.common      import header, footer, page, redirect
from   qp.sites.extreme.lib.uicommon import renderheader, renderfooter, processheader, processfooter
import time
import urllib
from unitslib import Length, Mass, Time, convert
import urllib, urllib2, os
from  qp.sites.extreme.lib.webutils  import before, after
from  qp.sites.extreme.lib import config
def getstatusoutput(command):
     """
     Fredrick Lundh 
     http://mail.python.org/pipermail/python-list/2006-October/406444.html 
     """
     from subprocess import Popen, PIPE, STDOUT
     p = Popen(command, stdout=PIPE, stderr=STDOUT, shell=True)
     s = p.stdout.read().split("\n")
     return p.wait(), s
class UnitsDirectory(Directory):
    def get_exports(self):
        yield '', 'index', 'NetTools server', None
    def index (self):
        form  = Form(enctype = "multipart/form-data")  # enctype for file upload
 form.add(StringWidget, name = "qty_length", value = "1.0", size = 30)
        length_options = []
        for key in Length:
            length_options.append(key)
      
 form.add(SingleSelectWidget, name = "unit_length",
           value = "meter",  
           options=length_options
        )   
 form.add(StringWidget, name = "qty_mass", value = "1.0", size = 30)
        mass_options = []
        for key in Mass:
            mass_options.append(key)
      
 form.add(SingleSelectWidget, name = "unit_mass",
           value = "kilogram",  
           options=mass_options
        )   
 form.add(StringWidget, name = "qty_time", value = "1.0", size = 30)
        time_options = []
        for key in Time:
            time_options.append(key)
      
 form.add(SingleSelectWidget, name = "unit_time",
           value  = "second",  
           options=time_options
        )   
 form.add_hidden("time",   value = time.time()) 
        form.add_submit("submit", "submit")
 def render [html] ():
            renderheader(__title__)
            if 1:
              """
              Length Unit 
| %s | %s | 
Mass Unit
| %s | %s | 
Time Unit
| %s | %s | 
" qty = float(form.get("qty_length")) unit = form.get("unit_length") " Length Conversion"' 
 "  | "              "" qty = float(form.get("qty_mass")) unit = form.get("unit_mass") " Mass Conversion"' 
 "  | "              "" qty = float(form.get("qty_time")) unit = form.get("unit_time") " Time Conversion"' 
 "  | "             "
Yuck! the html output code is being translated by a browser! Use your browswerĊ View Source facility to recover the original contents.
Codes are provided for educational use. Please make the proper attribution.
Only the fundamental units for Length, Mass and Time are considered here, we will add unit conversions for other quantities such as Area, Volume/Capacity, Work/Energy, Pressure and others.
The solver page may be accessed at http://extreme.adorio-research.org/solvers/units/.
The Python code units.py which is called by the above QP interface code above is at http://adorio-research.org/wordpress/?p=10377.
Our reference to conversion values is http://physics.nist.gov/Pubs/SP811/appenB9.html#LENGTH
for length units. The Mass and Time units are similarly obtained from NIST.
Thank you
ReplyDeleteNice web online tool in below web site
http://www.nicewebtools.com/UnitConversion/LengthConversion.aspx for Length Conversion