Upstream 0.2.23
[gonvert] / gonvert
1 #!/usr/bin/python
2 # -*- coding: UTF8 -*-
3 version = "0.2.23"   # keep version information here on third line since Makefile reads it.
4
5 import pygtk
6 pygtk.require('2.0')
7 import gtk,gobject,gtk.glade,gtk.gdk
8 import shelve,pickle
9 from math import *
10 import string,os,sys,glob,os.path,gettext
11
12 #--------- variable definitions ---------------- 
13 nums = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # used for Computer numbers base definitions.
14 global calcsuppress     #semaphore used to suppress cyclic calculations when a unit is clicked.
15 global selected_category
16 global window_size      #window size used for saving and restoring application window size
17
18 calcsuppress=0
19 unit_sort_direction  = False
20 value_sort_direction = False
21 units_sort_direction = False
22 find_result=[]          #empty find result list
23 find_count=0            #default to find result number zero
24 selected_category=''    #preset to no selected category
25 selected_units={}       #empty dictionary for later use
26 window_size=(0,0)               #empty tuple for filling later
27
28 import gettext
29 gettext.bindtextdomain('gonvert', '/usr/share/locale')
30 gettext.textdomain('gonvert')
31 _ = gettext.gettext
32
33 def shortlist_changed(a):
34         print "shortlist"
35         if shortlistcheck.get_active():
36                 print "1"
37         else:
38                 print "0"
39
40 def edit_shortlist(a):
41         print "edit shortlist"
42         if edit_shortlist1.get_active():
43                 print "1"
44         else:
45                 print "0"
46
47 def app_size_changed(a,b):
48         ''"get current size of window as it changes.''"
49         global window_size
50         window_size=app1.get_size()
51
52 def clear_selections(a):
53         global selected_units
54         os.remove(home+'/.gonvert/selections.dat')
55         selected_units={}
56
57 def exitprogram(a):
58         global selected_units
59         #This routine saves the selections to a file, and 
60         # should therefore only be called when exiting the program.
61         #
62         # Update selections dictionary which consists of the following keys:
63         # 'selected_category': full name of selected category
64         #    'selected_units': selected_units dictionary which contains:
65         #                       [categoryname: #1 displayed unit, #2 displayed unit]
66         
67         #Determine the contents of the selected category row
68         selected,iter= cat_clist.get_selection().get_selected()
69         selected_category = cat_model.get_value(iter,0)
70         
71         selections = {'selected_category':selected_category, 'selected_units':selected_units}
72         pickle.dump(selections,open(home+'/.gonvert/selections.dat','w'))
73
74         #Get last size of app and save it
75         window_settings = {'size':window_size}
76         pickle.dump(window_settings,open(home+'/.gonvert/window.dat','w'))
77         
78         gtk.mainquit
79         sys.exit()
80
81 def find_entry_changed(a):
82         #Clear out find results since the user wants to look for something new
83         global find_result
84         find_result=[]          #empty find result list
85         find_count=0            #default to find result number zero
86         find_label.set_text('') #clear result
87
88 def find_key_press(a,b):
89         #Check if the key pressed was an ASCII key
90         if len(b.string)>0:
91                 #Check if the key pressed was the 'Enter' key
92                 if ord(b.string[0])==13:
93                         #Execute the find units function
94                         find_units(1)
95
96 def about_clicked(a):
97         about_box.show()
98 def about_hide(*args):
99         about_box.hide()
100         return gtk.TRUE
101
102 def messagebox_ok_clicked(a):
103         messagebox.hide()
104
105 def find_units(a):
106         global find_count
107         global selected_category
108         global column1,col
109
110         #check if 'new find' or 'last find' or 'next-find'
111
112         #new-find = run the find algorithm which also selects the first found unit
113         #         = find_count=0 and find_result=[]
114         
115         #last-find = restart from top again
116         #          = find_count=len(find_result)
117
118         #next-find = continue to next found location
119         #           = find_count=0 and len(find_result)>0
120
121         #check for new-find
122         if len(find_result)==0:
123           find_string = string.lower(string.strip(find_entry.get_text()))
124           #Make sure that a valid find string has been requested
125           if len(find_string)>0:
126             categories=list_dic.keys()
127             categories.sort()
128             found_a_unit=0      #reset the 'found-a-unit' flag
129             cat_no=0
130             for category in categories:
131               units=list_dic[category].keys()
132               units.sort()
133               del units[0]      # do not display .base_unit description key
134               unit_no=0
135               for unit in units:
136                 if string.find(string.lower(unit), find_string)>=0:
137                   found_a_unit=1        #indicate that a unit was found
138                   #print "'",find_string,"'"," found at category=", category," unit =",unit
139                   find_result.append((category,unit,cat_no,unit_no))
140                 unit_no=unit_no+1
141               cat_no=cat_no+1
142
143             if found_a_unit==1:
144               #select the first found unit
145               find_count=0
146               #check if next find is in a new category (prevent category changes when unnecessary
147               if selected_category!=find_result[find_count][0]:
148                 cat_clist.set_cursor(find_result[0][2],col,False)
149               clist1.set_cursor(find_result[0][3],column1,True)
150               if len(find_result)>1:
151                 find_label.set_text(('  Press Find for next unit. '+ str(len(find_result))+' result(s).'))
152             else:
153               find_label.set_text('  Text not found')   #Display error
154         else:   #must be next-find or last-find
155           #check for last-find
156           if find_count==len(find_result)-1:
157             #select first result
158             find_count=0
159             cat_clist.set_cursor(find_result[find_count][2],col,False)
160             clist1.set_cursor(find_result[find_count][3],column1,True)
161           else: #must be next-find
162             find_count=find_count+1
163             #check if next find is in a new category (prevent category changes when unnecessary
164             if selected_category!=find_result[find_count][0]:
165               cat_clist.set_cursor(find_result[find_count][2],col,False)
166             clist1.set_cursor(find_result[find_count][3],column1,True)
167
168 def click_column(col):
169         ''"Sort the contents of the column when the user clicks on the title.''"
170         global unit_sort_direction
171         global value_sort_direction
172         global units_sort_direction
173         global column1, column2, unit_model
174
175         #Determine which column requires sorting
176         if col.get_title()==_(u"Unit Name"):
177           selected_column=0
178           column1.set_sort_indicator(True)
179           column2.set_sort_indicator(False)
180           column3.set_sort_indicator(False)
181           column1.set_sort_order(not unit_sort_direction)
182         elif col.get_title()==_(u"Value"):
183           selected_column=1
184           column1.set_sort_indicator(False)
185           column2.set_sort_indicator(True)
186           column3.set_sort_indicator(False)
187           column2.set_sort_order(not value_sort_direction)
188         else:
189           selected_column=2
190           column1.set_sort_indicator(False)
191           column2.set_sort_indicator(False)
192           column3.set_sort_indicator(True)
193           column3.set_sort_order(not units_sort_direction)
194
195         #declare a spot to hold the sorted list
196         sorted_list = []
197
198         #point to the first row
199         iter=unit_model.get_iter_first()
200         row=0
201
202         while (iter):
203           #grab all text from columns for sorting
204
205           #get the text from each column
206           unit_text = unit_model.get_value(iter,0)
207           units_text = unit_model.get_value(iter,2)
208
209           #do not bother sorting if the value column is empty
210           if unit_model.get_value(iter,1)=='' and selected_column==1:
211             return
212           
213           #special sorting exceptions for ascii values (instead of float values)
214           if selected_category == "Computer Numbers":   
215             value_text = unit_model.get_value(iter,1)
216           else:
217             if unit_model.get_value(iter,1)==None or unit_model.get_value(iter,1)=='':
218               value_text = ''
219             else:
220               value_text = float(unit_model.get_value(iter,1))
221
222           if selected_column==0:
223             sorted_list.append((unit_text,value_text,units_text))
224           elif selected_column==1:
225             sorted_list.append((value_text,unit_text,units_text))
226           else:
227             sorted_list.append((units_text,value_text,unit_text))
228
229           #point to the next row in the unit_model
230           iter=unit_model.iter_next(iter)
231           row=row+1
232
233         #check if no calculations have been made yet (don't bother sorting)
234         if row==0:
235           return
236         else:
237           if selected_column==0:
238             if not unit_sort_direction:
239               sorted_list.sort(lambda (x,xx,xxx), (y,yy,yyy): cmp(string.lower(x),string.lower(y)))
240               unit_sort_direction=True
241             else:
242               sorted_list.sort(lambda (x,xx,xxx), (y,yy,yyy): cmp(string.lower(y),string.lower(x)))
243               unit_sort_direction=False
244           elif selected_column==1:
245             sorted_list.sort()
246             if not value_sort_direction:
247               value_sort_direction=True
248             else:
249               sorted_list.reverse()
250               value_sort_direction=False
251           else:
252             if not units_sort_direction:
253               sorted_list.sort(lambda (x,xx,xxx), (y,yy,yyy): cmp(string.lower(x),string.lower(y)))
254               units_sort_direction=True
255             else:
256               sorted_list.sort(lambda (x,xx,xxx), (y,yy,yyy): cmp(string.lower(y),string.lower(x)))
257               units_sort_direction=False
258
259           #Clear out the previous list of units
260           unit_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING,gobject.TYPE_STRING)
261           clist1.set_model(unit_model)
262
263           #colourize each row differently for easier reading
264           clist1.set_property( 'rules_hint',1)
265
266           #Clear out the description
267           text_model = gtk.TextBuffer(None)
268           text1.set_buffer(text_model)
269
270           if selected_column==0:
271             for unit,value,units in sorted_list:
272               iter = unit_model.append()
273               unit_model.set(iter,0,unit,1,str(value),2,units)
274           elif selected_column==1:
275             for value,unit,units in sorted_list:
276               iter = unit_model.append()
277               unit_model.set(iter,0,unit,1,str(value),2,units)
278           else:
279             for units,value,unit in sorted_list:
280               iter = unit_model.append()
281               unit_model.set(iter,0,unit,1,str(value),2,units)
282         return
283
284 def click_category(row):
285         global unit_sort_direction 
286         global value_sort_direction
287         global units_sort_direction
288         global unit_model, cat_model
289         global selected_category, selected_units
290         global unit_dic, list_dic
291         
292         #Clear out the previous list of units
293         unit_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING,gobject.TYPE_STRING)
294         clist1.set_model(unit_model)
295
296         #Colourize each row alternately for easier reading
297         clist1.set_property( 'rules_hint',1)
298
299         #Clear out the description
300         text_model = gtk.TextBuffer(None)
301         text1.set_buffer(text_model)
302
303         #Determine the contents of the selected category row
304         selected,iter= row.get_selection().get_selected()
305
306         selected_category = cat_model.get_value(iter,0)
307         
308         unit_sort_direction  = False
309         value_sort_direction = False
310         units_sort_direction = False
311         column1.set_sort_indicator(False)
312         column2.set_sort_indicator(False)
313         column3.set_sort_indicator(False)
314
315         unit_dic=list_dic[selected.get_value(iter,0)]
316         keys = unit_dic.keys()
317         keys.sort()
318         del keys[0]     # do not display .base_unit description key
319
320         #Fill up the units descriptions and clear the value cells
321         for key in keys:
322           iter = unit_model.append()
323           unit_model.set(iter,0,key,1,'',2,unit_dic[key][1])
324
325         entry1.set_text('')
326         entry2.set_text('')
327         entry3.set_text('')
328         entry4.set_text('')
329         label1.set_text('')
330         label2.set_text('')
331         
332         restore_units()
333
334 def restore_units():
335         global selected_category, selected_units
336         global unit_dic, list_dic
337         
338         # Restore the previous historical settings of previously selected units in this newly selected category
339         #Since category has just been clicked, the list will be sorted already.
340         if selected_units.has_key(selected_category):
341           if selected_units[selected_category][0]:
342                 ''"debug ''"
343                 #selected_units[selected_category]=[selected_unit,selected_units[selected_category][0]]
344
345                 units=list_dic[selected_category].keys()
346                 units.sort()
347                 del units[0]    # do not display .base_unit description key
348                 
349                 #Restore oldest selection first.
350                 if selected_units[selected_category][1]:
351                         unit_no=0
352                         for unit in units:
353                                 if unit==selected_units[selected_category][1]:
354                                         clist1.set_cursor(unit_no,column1,True)
355                                 unit_no=unit_no+1
356                 
357                 #Restore newest selection second.
358                 unit_no=0
359                 for unit in units:
360                         if unit==selected_units[selected_category][0]:
361                                 clist1.set_cursor(unit_no,column1,True)
362                         unit_no=unit_no+1
363         
364         # select the text so user can start typing right away
365         entry2.grab_focus()
366         entry2.select_region(0,-1)
367
368 def button_released(row,a):
369         click_unit(row)
370
371 def click_unit(row):
372         global selected_category
373         global calcsuppress
374         global selected_units
375
376         calcsuppress = 1        #suppress calculations
377         
378         #Determine the contents of the selected row.
379         selected,iter= clist1.get_selection().get_selected()
380
381         selected_unit=selected.get_value(iter,0)
382
383         unit_spec=unit_dic[selected_unit]
384
385         #Clear out the description
386         text_model = gtk.TextBuffer(None)
387         text1.set_buffer(text_model)
388
389         enditer = text_model.get_end_iter()
390         text_model.insert(enditer,unit_spec[2])
391
392         if entry1.get_text() <> selected_unit:
393                 entry3.set_text(entry1.get_text())
394                 entry4.set_text(entry2.get_text())
395                 if label1.get() == None:
396                         label2.set_text('')
397                 else:
398                         label2.set_text(label1.get())
399         entry1.set_text(selected_unit)
400         
401         entry2.set_text(selected.get_value(iter,1))
402         
403         label1.set_text(unit_spec[1])   # put units into label text
404         if entry2.get_text() =='':
405                 if selected_category == "Computer Numbers":
406                         entry2.set_text("0")
407                 else:
408                         entry2.set_text("0.0")
409         
410         #For historical purposes, record this unit as the most recent one in this category.
411         # Also, if a previous unit exists, then shift that previous unit to oldest unit.
412         if selected_units.has_key(selected_category):
413           if selected_units[selected_category][0]:
414             selected_units[selected_category]=[selected_unit,selected_units[selected_category][0]]
415         else:
416           selected_units[selected_category]=[selected_unit,'']
417         
418         # select the text so user can start typing right away
419         entry2.grab_focus()
420         entry2.select_region(0,-1)
421         
422         calcsuppress = 0        #enable calculations
423
424 def write_units(a):
425         ''"Write the list of categories and units to stdout for documentation purposes.''"
426         messagebox_model = gtk.TextBuffer(None)
427         messageboxtext.set_buffer(messagebox_model)
428         messagebox_model.insert_at_cursor(_(u'The units are being written to stdout. You can capture this printout by starting gonvert from the command line as follows:\n$ gonvert > file.txt'),-1)
429         messagebox.show()
430         while gtk.events_pending():
431           gtk.mainiteration (False)
432         category_keys=list_dic.keys()
433         category_keys.sort()
434         total_categories = 0
435         total_units = 0
436         print 'gonvert-',version,_(u' - Unit Conversion Utility  - Convertible units listing:')
437         for category_key in category_keys:
438                 total_categories = total_categories + 1
439                 print category_key,":"
440                 unit_dic=list_dic[category_key]
441                 unit_keys = unit_dic.keys()
442                 unit_keys.sort()
443                 del unit_keys[0]        # do not display .base_unit description key
444                 for unit_key in unit_keys:
445                         total_units = total_units + 1
446                         print "\t",unit_key
447         print total_categories,' categories'
448         print total_units,' units'
449         messagebox_model = gtk.TextBuffer(None)
450         messageboxtext.set_buffer(messagebox_model)
451         messagebox_model.insert_at_cursor(_(u'The units list has been written to stdout. You can capture this printout by starting gonvert from the command line as follows:\n$ gonvert > file.txt'),-1)
452  
453 def makeBase(x, base = len(nums), table=nums):
454         ''"Convert from base 10 to any other base. ''"
455         d, m = divmod(x, base)
456         if d:
457                 return makeBase(d,base, table) + table[int(m)]
458         else:
459                 return table[int(m)] 
460
461 # roman numerals
462 roman_group = { 1: ('i','v'),
463                10: ('x','l'),
464               100: ('c','d'),
465              1000: ('m','A'),
466             10000: ('B','C'),
467         }
468
469 # functions that convert Arabic digits to roman numerals
470 roman_value = {
471         0: lambda i,v,x: '',
472         1: lambda i,v,x: i,
473         2: lambda i,v,x: i+i,
474         3: lambda i,v,x: i+i+i,
475         4: lambda i,v,x: i+v,
476         5: lambda i,v,x: v,
477         6: lambda i,v,x: v+i,
478         7: lambda i,v,x: v+i+i,
479         8: lambda i,v,x: v+i+i+i,
480         9: lambda i,v,x: i+x,
481         }
482
483 def toroman( n ):
484         ''' convert a decimal number in [1,4000) to a roman numeral '''
485         if n < 1:
486             return ''
487         if n >= 4000:
488             return "Too large"
489         base = 1
490         s = ''
491         while n > 0:
492             i,v = roman_group[base]
493             base = base * 10
494             x,l = roman_group[base]
495             digit = n % 10
496             n = (n-digit)/10
497             s = roman_value[digit](i,v,x) + s
498         return s
499         
500 def fromroman( s, rbase=1 ):
501         ''' convert a roman numeral (in lowercase) to a decimal integer '''
502         if len(s) == 0:
503             return 0
504         if rbase > 1000: 
505             return 0
506         i,v = roman_group[rbase]
507         x,l = roman_group[rbase*10]
508         if   s[-4:] == v+i+i+i: digit,s = 8,s[:-4]
509         elif s[-4:] == i+i+i+i: digit,s = 4,s[:-4]
510         elif s[-3:] == v+i+i  : digit,s = 7,s[:-3]
511         elif s[-3:] == i+i+i  : digit,s = 3,s[:-3]
512         elif s[-2:] == v+i    : digit,s = 6,s[:-2]
513         elif s[-2:] == i+x    : digit,s = 9,s[:-2]
514         elif s[-2:] == i+v    : digit,s = 4,s[:-2]
515         elif s[-2:] == i+i    : digit,s = 2,s[:-2]
516         elif s[-1:] == i      : digit,s = 1,s[:-1]
517         elif s[-1:] == v      : digit,s = 5,s[:-1]
518         else                  : digit,s = 0,s
519         return digit*rbase + fromroman(s,rbase*10)
520
521 class Ccalculate:
522         def top(self,a):
523           global calcsuppress
524           global unit_model
525           global testvalue
526           
527           if calcsuppress == 1:
528             #calcsuppress = 0
529             return
530           # determine if value to be calculated is empty
531           if selected_category == "Computer Numbers":
532             if entry2.get_text() =='':
533               value = '0'
534             else:
535                value = entry2.get_text()
536           else:
537             if entry2.get_text() =='':
538               value = 0.0
539             else:
540               value = float(entry2.get_text())
541
542           if entry1.get_text() <> '':
543             func,arg = unit_dic[entry1.get_text()][0]   #retrieve the conversion function and value from the selected unit
544             base = apply(func.to_base,(value,arg,))     #determine the base unit value
545
546             keys = unit_dic.keys()
547             keys.sort()
548             del keys[0]
549             row = 0
550
551             #point to the first row
552             iter=unit_model.get_iter_first()
553
554             while (iter):
555               #get the formula from the name at the row
556               func,arg = unit_dic[unit_model.get_value(iter,0)][0]
557               
558               #set the result in the value column
559               unit_model.set(iter,1,str(apply(func.from_base,(base,arg,))))
560               
561               #point to the next row in the unit_model
562               iter=unit_model.iter_next(iter)
563
564             # if the second row has a unit then update its value
565             if entry3.get_text() <> '':
566               calcsuppress=1
567               func,arg = unit_dic[entry3.get_text()][0] 
568               entry4.set_text(str(apply(func.from_base,(base,arg,))))
569               calcsuppress=0
570
571         def bottom(self,a):
572           global calcsuppress
573           if calcsuppress == 1:
574             #calcsuppress = 0
575             return
576           # determine if value to be calculated is empty
577           if selected_category == "Computer Numbers":
578             if entry4.get_text() =='':
579               value = '0'
580             else:
581               value = entry4.get_text()
582           else:
583             if entry4.get_text() =='':
584               value = 0.0
585             else:
586               value = float(entry4.get_text())
587
588           if entry3.get_text() <> '':
589             func,arg = unit_dic[entry3.get_text()][0]   #retrieve the conversion function and value from the selected unit
590             base = apply(func.to_base,(value,arg,))     #determine the base unit value
591
592             keys = unit_dic.keys()
593             keys.sort()
594             del keys[0]
595             row = 0
596             
597             #point to the first row
598             iter=unit_model.get_iter_first()
599
600             while (iter):
601               #get the formula from the name at the row
602               func,arg = unit_dic[unit_model.get_value(iter,0)][0]
603               
604               #set the result in the value column
605               unit_model.set(iter,1,str(apply(func.from_base,(base,arg,))))
606               
607               #point to the next row in the unit_model
608               iter=unit_model.iter_next(iter)
609
610             # if the second row has a unit then update its value
611             if entry1.get_text() <> '':
612               calcsuppress=1
613               func,arg = unit_dic[entry1.get_text()][0] 
614               entry2.set_text(str(apply(func.from_base,(base,arg,))))
615               calcsuppress=0
616
617         
618 #All classes for conversions are defined below:
619 # each class should have one method for converting "to_base and another for converting "from_base"
620 #the return value is the converted value to or from base
621 class simple_multiplier:
622         def to_base(self,value,multiplier): 
623                 return value * (multiplier)
624         def from_base(self,value,multiplier): 
625                 if multiplier == 0:
626                         return 0.0
627                 else:
628                         return value / (multiplier)
629
630 class simple_inverter:
631         def to_base(self,value,multiplier):
632                 if value == 0:
633                         return 0.0
634                 else:
635                         return (multiplier) / value
636         def from_base(self,value,multiplier):
637                 if value == 0:
638                         return 0.0
639                 else:
640                         return (multiplier) / value 
641 class simple_gain_offset:
642         def to_base(self,value,(gain,offset)):
643                 return (value * (gain)) + offset
644         def from_base(self,value,(gain,offset)):
645                 if gain == 0:
646                         return 0.0
647                 else:
648                         return (value - offset) / gain
649
650 class simple_offset_gain:
651         def to_base(self,value,(offset,gain)):
652                 return (value + offset) * gain
653         def from_base(self,value,(offset,gain)):
654                 if gain == 0:
655                         return 0.0
656                 else:
657                         return (value / gain) - offset
658
659 class slope_offset:
660         ''"convert using points on a graph''"
661         def to_base(self,value,((low_in,high_in),(low_out,high_out))):
662                 gain = (high_out-low_out)/(high_in-low_in)
663                 offset = low_out - gain*low_in
664                 return gain*value+offset
665         def from_base(self,value,((low_out,high_out),(low_in,high_in))):
666                 gain = (high_out-low_out)/(high_in-low_in)
667                 offset = low_out - gain*low_in
668                 return gain*value+offset
669
670 class double_slope_offset:
671         ''"convert using points on a graph, graph split into two slopes''"
672         def to_base(self,value,((low1_in,high1_in),(low1_out,high1_out),(low2_in,high2_in),(low2_out,high2_out))):
673                 if low1_in<=value<=high1_in:
674                         gain = (high1_out-low1_out)/(high1_in-low1_in)
675                         offset = low1_out - gain*low1_in
676                         return gain*value+offset
677                 if low2_in<=value<=high2_in:
678                         gain = (high2_out-low2_out)/(high2_in-low2_in)
679                         offset = low2_out - gain*low2_in
680                         return gain*value+offset
681                 return 0.0
682         def from_base(self,value,((low1_in,high1_in),(low1_out,high1_out),(low2_in,high2_in),(low2_out,high2_out))):
683                 if low1_out<=value<=high1_out:
684                         gain = (high1_in-low1_in)/(high1_out-low1_out)
685                         offset = low1_in - gain*low1_out
686                         return gain*value+offset
687                 if low2_out<=value<=high2_out:
688                         gain = (high2_in-low2_in)/(high2_out-low2_out)
689                         offset = low2_in - gain*low2_out
690                         return gain*value+offset
691                 return 0.0
692
693 class base_converter:
694         #Convert from any base to base 10 (decimal)
695         def to_base(self,value,base):
696                 result   = 0L #will contain the long base-10 (decimal) number to be returned
697                 position = len(value)   #length of the string that is to be converted
698                 for x in value:
699                         position = position-1
700                         result = long(result + long(long(string.find(nums,x))*(long(base)**long(position))))
701                 return result
702         #Convert from decimal to any base
703         def from_base(self,value,base):
704                 return makeBase(value,base)
705
706 class roman_numeral:
707         #Convert from roman numeral to base 10 (decimal)
708         def to_base(self,value,junk):
709                 if value=="0":
710                         return 0L
711                 else:
712                         return fromroman(value)
713         #Convert from decimal to roman numeral
714         def from_base(self,value,junk):
715                 return toroman(value)
716
717 class function:
718         ''"defined simple function can be as complicated as you like, however, both to/from base must be defined.''"
719         #value is assumed to be a string
720         #convert from a defined function to base
721         def to_base(self,value,(to_base,from_base)):
722                 exec "y="+to_base[:string.find(to_base,'x')]+str(value)+to_base[string.find(to_base,'x')+1:]
723                 return y
724         def from_base(self,value,(to_base,from_base)):
725                 exec "y="+from_base[:string.find(from_base,'x')]+str(value)+from_base[string.find(from_base,'x')+1:]
726                 return y
727
728
729 #----------- Program starts below ----------------
730 #Prepare to read in previous category, units placemenmts, window size
731 home = os.environ['HOME']
732 #check for users gonvert directories
733 if not os.path.exists(home+'/.gonvert'):
734         print "Creating ~/.gonvert directory to hold settings."
735         os.mkdir(home+'/.gonvert')
736
737
738 #check to see if glade file is in current directory (user must be running from download untar directory)
739 if os.path.exists('gonvert.glade'):
740         homepath=''
741         pixmapspath='pixmaps/'
742 elif os.path.exists('/usr/local/share/gonvert/gonvert.glade'):
743         homepath='/usr/local/share/gonvert/'
744         pixmapspath='/usr/local/share/pixmaps/'
745 else:
746         #look for it in the installed directory
747         homepath=sys.path[0] + '/../share/gonvert/'
748         if  os.path.exists('/usr/share/pixmaps/gonvert.png'): #Check fedora pixmaps directory
749                 pixmapspath='/usr/share/pixmaps/'
750         else:
751                 pixmapspath=homepath  +'/../pixmaps/'
752
753 #print pixmapspath #debug
754 gladefile=homepath+'gonvert.glade'
755
756 widgets = gtk.glade.XML(gladefile)
757 app1 = widgets.get_widget('app1')
758
759 #Restore window size from previously saved settings if it exists and is valid.
760 if os.path.exists(home+'/.gonvert/window.dat'):
761   #Retrieving previous window settings from ~/.gonvert/window.dat
762   saved_window=pickle.load(open(home+'/.gonvert/window.dat','r'))
763   #If the 'size' has been stored, then extract size from saved_window.
764   if saved_window.has_key('size'):
765     a,b=saved_window['size']
766     app1.resize(a,b)
767   else:
768     #Maximize if no previous size was found
769     app1.maximize()
770 else:
771   #Maximize if no previous window.dat file was found
772   app1.maximize()
773
774 app1.set_title('gonvert-'+version+' - Unit Conversion Utility');
775 if  os.path.exists(pixmapspath  + 'gonvert.png'):
776         app1.set_icon(gtk.gdk.pixbuf_new_from_file(pixmapspath  + 'gonvert.png'))
777 else:
778         print "Error: Could find gonvert icon, it should be here: "
779         print pixmapspath 
780
781 #--------- function definitions from classes ------------
782 m=simple_multiplier()
783 inv=simple_inverter()
784 gof=simple_gain_offset()
785 ofg=simple_offset_gain()
786 slo=slope_offset()
787 dso=double_slope_offset()
788 b=base_converter()
789 r=roman_numeral()
790 f=function()
791 calculate=Ccalculate()
792
793
794 #--------- connections to GUI ----------------
795 dic = {"on_exit1_activate": exitprogram,
796        "on_app1_destroy": exitprogram,
797        "on_cat_clist_select_row": click_category,
798        "on_clist1_click_column": click_column,
799        "on_entry2_changed": calculate.top,
800        "on_entry4_changed": calculate.bottom,
801        "on_write_units1_activate":write_units,
802        "on_find_button_clicked":find_units,
803        "on_find_entry_key_press_event":find_key_press,
804        "on_find_entry_changed":find_entry_changed,
805        "on_about1_activate":about_clicked,
806        "on_about_close_clicked":about_hide,
807        "on_messagebox_ok_clicked":messagebox_ok_clicked,
808        "on_clear_selections1_activate":clear_selections,
809        "on_clist1_cursor_changed":click_unit,
810        "on_clist1_button_released":button_released,
811        "on_app1_size_allocate":app_size_changed,
812        "on_shortlistcheck_toggled":shortlist_changed,
813        "on_edit_shortlist1_activate":edit_shortlist,
814
815        }
816
817 widgets.signal_autoconnect (dic);
818
819 def change_menu_label(labelname,newtext):
820         item_label  = widgets.get_widget(labelname).get_children()[0]
821         item_label.set_text(newtext)
822 def change_label(labelname,newtext):
823         item_label  = widgets.get_widget(labelname)
824         item_label.set_text(newtext)
825
826 change_menu_label('file1',_('File'))
827 change_menu_label('exit1',_('Exit'))
828 change_menu_label('tools1',_('Tools'))
829 change_menu_label('clear_selections1',_('Clear selections'))
830 change_menu_label('write_units1',_('Write Units'))
831 change_menu_label('help1',_('Help'))
832 change_menu_label('about1',_('About'))
833
834 change_menu_label('find_button',_('Find'))
835
836 shortlistcheck = widgets.get_widget('shortlistcheck')
837 edit_shortlist1 = widgets.get_widget('edit_shortlist1')
838
839 cat_clist  = widgets.get_widget('cat_clist' )
840
841 clist1 = widgets.get_widget('clist1')
842 clist1_selection=clist1.get_selection()
843
844 entry1 = widgets.get_widget('entry1')
845 entry2 = widgets.get_widget('entry2')
846 entry3 = widgets.get_widget('entry3')
847 entry4 = widgets.get_widget('entry4')
848 about_box = widgets.get_widget('about_box')
849 messagebox = widgets.get_widget('msgbox')
850 messageboxtext = widgets.get_widget('msgboxtext')
851
852 about_image = widgets.get_widget('about_image')
853 about_image.set_from_file(pixmapspath  +'gonvert.png')
854 versionlabel = widgets.get_widget('versionlabel')
855 versionlabel.set_text(version)
856
857 label1 =widgets.get_widget('label1')
858 label2 =widgets.get_widget('label2')
859
860 text1  = widgets.get_widget('text1' )
861
862 find_entry = widgets.get_widget('find_entry')
863 find_label = widgets.get_widget('find_label')
864
865
866
867
868 #----- main dictionary of unit descriptions below ------------
869 # first entry defines base unit
870 # remaining entries define unit specifications [(function,argument), units, description]
871 #       where function can be m and argument is the multiplying factor to_base
872 #       or function can be any other arbitrary function and argument can be a single argument
873 list_dic = {
874         _(u"Acceleration"):{".base_unit":_(u"meter per second squared"),
875                 _(u"free fall"):
876                         [(m,9.80665),_(u"gn"),_(u"The ideal falling motion of a body that is subject only to the earth's gravitational field.")],
877                 _(u"meter per second squared"):
878                         [(m,1.0),u"m/s\xb2",u''],
879                 _(u"foot per second squared"):
880                         [(m,30.48/100),u"ft/s\xb2",u''],
881                 _(u"centimeter per second squared"):
882                         [(m,1/100.0),u"cm/s\xb2",''],
883                 _(u"gal"):
884                         [(m,1/100.0),_(u"Gal"),_(u"A unit of gravitational acceleration equal to one centimeter per second per second (named after Galileo)")],
885                 _(u"millimeter per second squared"):
886                         [(m,1/1000.0),u"mm/s\xb2",'']
887         },
888         
889         _(u"Angle"):{".base_unit":_(u"radian"),
890                 _(u"revolution / circle / perigon / turn"):
891                         [(m,2.0*pi),"r",_(u"The act of revolving, or turning round on an axis or a center; the motion of a body round a fixed point or line; rotation; as, the revolution of a wheel, of a top, of the earth on its axis, etc.")],
892                 _(u"right angle"):
893                         [(m,pi/2.0),"L",_(u"The angle formed by one line meeting another perpendicularly")],
894                 _(u"radian"):
895                         [(m,1.0),_(u"rad"),_(u"An arc of a circle which is equal in length to the radius, or the angle measured by such an arc.")],
896                 _(u"degree"):
897                         [(m,pi/180.0),u"\xb0",_(u"1/360 of a complete revolution.")],
898                 _(u"grad | grade | gon"):
899                         [(m,pi/200),_(u"g"),_(u"One-hundredth of a right angle.")],
900                 _(u"milliradian"):
901                         [(m,1/1000.0),_(u"mrad"),_(u"A unit of angular distance equal to one thousandth of a radian.")],
902                 _(u"minute"):
903                         [(m,pi/(180.0*60)),"'",_(u"The sixtieth part of a degree; sixty seconds (Marked thus ('); as, 10deg 20').")],
904                 _(u"second"):
905                         [(m,pi/(180.0*60*60)),'"',_(u"""One sixtieth of a minute.(Marked thus ("); as, 10deg 20' 30"). ''""")],
906                 _(u"mil"):
907                         [(m,(2*pi)/6400),'',_(u"Used in artillery; 1/6400 of a complete revolution.")],
908                 _(u"centesimal minute"):
909                         [(m,pi/20000),'',_(u"One hundredth of a grade, 0.01 grade")],
910                 _(u"centesimal second"):
911                         [(m,pi/2000000),'',_(u"One ten-thousandth of a grade, 0.0001 grade")],
912                 _(u"octant"):
913                         [(m,pi/4.0),'',_(u"The eighth part of a circle (an arc of 45 degrees).")],
914                 _(u"quadrant"):
915                         [(m,pi/2.0),'',_(u"The fourth part of a circle (an arc of 90 degrees).")],
916                 _(u"sextant"):
917                         [(m,pi/3.0),'',_(u"The sixth part of a circle (an arc of 60 degrees).")],
918                 _(u"point"):
919                         [(m,pi/16.0),'',_(u"1/32 of a circle. Points are used on the face of a compass (32 points). Each point is labelled clockwise starting from North as follows: North, North by East, North Northeast, Northeast by North, and Northeast, etc.")],
920                 _(u"sign"):
921                         [(m,pi/6.0),'',_(u"The twelfth part of a circle as in twelve signs of the zodiac (an arc of 30 degrees).")],
922         },
923         _(u"Angular Velocity / Frequency"):{".base_unit":_(u"radian per second"),
924                 _(u"kiloradian per second"):
925                         [(m,1000.0),"krad/s",''],
926                 _(u"revolution per second"):
927                         [(m,2*pi),"rev/s",''],
928                 _(u"hertz"):
929                         [(m,2*pi),"Hz",_(u"Named after the German physicist Heinrich Hertz (1857-1894) who was the first to produce electromagnetic waves artificially. Having a periodic interval of one second.")],
930                 _(u"radian per second"):
931                         [(m,1.0),"rad/s",''],
932                 _(u"milliradian per second"):
933                         [(m,1/1000.0),"mrad/s",''],
934                 _(u"revolution per minute"):
935                         [(m,(2*pi)/60.0),"rpm",''],
936                 _(u"revolution per hour"):
937                         [(m,(2*pi)/3600.0),"rph",''],
938                 _(u"revolution per day"):
939                         [(m,(2*pi)/(3600.0*24)),"rpd",''],
940                 _(u"gigahertz"):
941                         [(m,1e9*2*pi),"GHz",_(u"One billion hertz.")],
942                 _(u"terahertz"):
943                         [(m,1e12*2*pi),"THz",''],
944                 _(u"petahertz"):
945                         [(m,1e15*2*pi),"PHz",''],
946                 _(u"exahertz"):
947                         [(m,1e18*2*pi),"EHz",''],
948                 _(u"megahertz"):
949                         [(m,1e6*2*pi),"MHz",_(u"One million hertz.")],
950                 _(u"kilohertz"):
951                         [(m,1e3*2*pi),"kHz",_(u"One thousand hertz.")],
952         },
953         _(u"Area"):{".base_unit":_(u"square meter"),
954                 _(u"meter diameter circle"):
955                         [(f,('pi*(x/2.0)**2','2.0*(x/pi)**(0.5)')),"m dia.",_(u"Type the diameter of the circle in meters to find its area displayed in other fields.")],
956                 _(u"centimeter diameter circle"):
957                         [(f,('pi*(x/200.0)**2','200.0*(x/pi)**(0.5)')),"cm dia.",_(u"Type the diameter of the circle in centimeters to find its area displayed in other fields.")],
958                 _(u"inch diameter circle"):
959                         [(f,('pi*(((x*(25.4/1000))/2.0) )**2','1000/25.4 * 2.0*(x/pi)**(0.5)')),"in dia.",_(u"Type the diameter of the circle in inches to find its area displayed in other fields.")],
960                 _(u"foot diameter circle"):
961                         [(f,('pi*(((x*((12*25.4)/1000))/2.0) )**2','1000/(12*25.4) * 2.0*(x/pi)**(0.5)')),"ft dia.",_(u"Type the diameter of the circle in feet to find its area displayed in other fields.")],
962                 _(u"are"):
963                         [(m,100.0),'',_(u"The unit of superficial measure, being a square of which each side is ten meters in length; 100 square meters, or about 119.6 square yards.")],
964                 _(u"acre"):
965                         [(m,4046.8564224),'',_(u"A piece of land, containing 160 square rods, or 4,840 square yards, or 43,560 square feet. This is the English statute acre. That of the United States is the same. The Scotch acre was about 1.26 of the English, and the Irish 1.62 of the English. Note: The acre was limited to its present definite quantity by statutes of Edward I., Edward III., and Henry VIII.")],
966                 _(u"acre (Cheshire)"):
967                         [(m,8561.97632),'',''],
968                 _(u"acre (Irish)"):
969                         [(m,6555.26312),'',''],
970                 _(u"acre (Scottish)"):
971                         [(m,5142.20257),'',''],
972                 _(u"arpent (French)"):
973                         [(m,4088/1.196),'',_(u" 4,088 sq. yards, or nearly five sixths of an English acre.")],
974                 _(u"arpent (woodland)"):
975                         [(m,16*25.29285264*10+16*25.29285264*2.5+(16*25.29285264*10)/160),'',_(u"1 acre, 1 rood, 1 perch")],
976                 _(u"barn"):
977                         [(m,1.0/1e28),'',_('Used in Nuclear physics to describe the apparent cross-sectional size of atomic sized objects that are bombarded with smaller objects (like electrons). 10^-28 square meters. 100 square femtometers. Originated from the semi-humorous idiom big as a barn and used by physicists to describe the size of the scattering object (Ex: That was as big as 5 barns!).')],
978                 _(u"cho"):
979                         [(m,16*25.29285264*10*2.45),'',_(u"Japanese. 2.45 acre")],
980                 _(u"circular inch"):
981                         [(m,1000000.0/(1e6*1550*1.273)),'',''],
982                 _(u"circular mil"):
983                         [(m,1.0/(1e6*1550*1.273)),"cmil",''],
984                 _(u"desyatina | dessiatina"):
985                         [(m,16*25.29285264*10*2.6996),'',_(u"Russian. 2.6996 acre. 2400 square sadzhens")],
986                 _(u"flag"):
987                         [(m,25/10.7639104167097),'',_(u"square pace (a pace is 5 feet).")],
988                 _(u"hide | carucate"):
989                         [(m,40468.71618),'',_(u"An ancient English measure of the amount of land required to support family")],
990                 _(u"hectare"):
991                         [(m,10000.0),"ha",_(u"A measure of area, or superficies, containing a hundred ares, or 10,000 square meters, and equivalent to 2.471 acres.")],
992                 _(u"homestead | quarter section"):
993                         [(m,16*25.29285264*10*160),'',_(u"160 acres,1/4 square mile, or 1/4 section. Use by the governments of North America early settlers in the western states and provinces were allowed to take title to a homestead of 160 acres of land by registering a claim, settling on the land, and cultivating it.")],
994                 _(u"perch"):
995                         [(m,(16*25.29285264*10)/160),'',_(u"Used to measure land. A square rod; the 160th part of an acre.")],
996                 _(u"sabin"):
997                         [(m,1/10.7639104167097),'',_(u"A unit of acoustic absorption equivalent to the absorption by a square foot of a surface that absorbs all incident sound. 1ft\xb2.")],
998                 _(u"square"):
999                         [(m,100/10.7639104167097),'',_(u"Used in the construction for measuring roofing material, finished lumber, and other building materials. One square is equals 100 square feet.")],
1000                 _(u"section"):
1001                         [(m,2.59*1E6),'',_(u"Used in land measuring. One square mile. An area of about 640 acres")],
1002                 _(u"square league (land)"):
1003                         [(m,23309892.99),'',''],
1004                 _(u"square mile"):
1005                         [(m,2.59*1e6),u"mi\xb2",''],
1006                 _(u"square kilometer"):
1007                         [(m,1e6),u"km\xb2",''],
1008                 _(u"rood"):
1009                         [(m,16*25.29285264*2.5),'',_(u"The fourth part of an acre, or forty square rods.")],
1010                 _(u"shaku"):
1011                         [(m,330.6/10000),'',_(u"A Japanese unit of area, the shaku equals 330.6 square centimeters (51.24 square inches). Note: shaku also means length and volume.")],
1012                 _(u"square chain (surveyor)"):
1013                         [(m,16*25.29285264),u"ch\xb2",_(u"A unit for land measure equal to four rods square, or one tenth of an acre.")],
1014                 _(u"link"):
1015                         [(m,4*25.29285264),'',_(u"4 rods square")],
1016                 _(u"square rod"):
1017                         [(m,25.29285264),u"rd\xb2",''],
1018                 _(u"square meter"):
1019                         [(m,1.0),u"m\xb2",_(u"Also know as a centare is (1/100th of an are).")],
1020                 _(u"square yard"):
1021                         [(m,1/1.19599004630108),u"yd\xb2",_(u"A unit of area equal to one yard by one yard square syn: sq yd")],
1022                 _(u"square foot"):
1023                         [(m,1/10.7639104167097),u"ft\xb2",_(u"An area equal to that of a square the sides of which are twelve inches; 144 square inches.")],
1024                 _(u"square inch"):
1025                         [(m,1/(10.7639104167097*144)),u"in\xb2",_(u"A unit of area equal to one inch by one inch square syn: sq in")],
1026                 _(u"square centimeter"):
1027                         [(m,1.0/10000),u"cm\xb2",''],
1028                 _(u"square micrometer"):
1029                         [(m,1.0/1e12),u"\xb5m\xb2",''],
1030                 _(u"square millimeter"):
1031                         [(m,1.0/1e6),u"mm\xb2",''],
1032                 _(u"square mil"):
1033                         [(m,1.0/(1e6*1550)),u"mil\xb2",''],
1034                 _(u"township"):
1035                         [(m,1e6*2.59*36),'',_(u"A division of territory six miles square (36miles\xb2), containing 36 sections.")],
1036                 _(u"roll (wallpaper)"):
1037                         [(m,30/10.7639104167097),'',''],
1038                 _(u"square Scottish ell"):
1039                         [(m,0.88323),'',''],
1040                 _(u"fall (Scottish)"):
1041                         [(m,31.79618),'',''],
1042                 _(u"joch (German) | yoke"):
1043                         [(m,5746.5577),'',_(u"joch (German) is 40 square klafters")],
1044                 _(u"labor (Texas)"):
1045                         [(m,716862.83837),'',_(u"An area of land that could be cultivated by one farmer")],
1046                 _(u"barony"):
1047                         [(m,16187486.47094),'',''],
1048                 _(u"square pes (Roman)"):
1049                         [(m,0.08741),'',''],
1050                 _(u"square alen (Denmark)"):
1051                         [(m,.38121),'',''],
1052                 _(u"ferfet (Iceland)"):
1053                         [(m,0.09848),'',''],
1054                 _(u"square vara (Spanish)"):
1055                         [(m,0.59418),'',''],
1056                 _(u"donum (Yugoslavia)"):
1057                         [(m,699.99992),'',''],
1058                 _(u"sahme (Egyptian)"):
1059                         [(m,7.29106),'',''],
1060                 _(u"tavola (Italian)"):
1061                         [(m,37.62587),'',''],
1062                 _(u"cuadra (Paraguay)"):
1063                         [(m,7486.71249),'',''],
1064                 _(u"acaena (Greek)"):
1065                         [(m,9.19744),'',''],
1066                 _(u"plethron (Greek)"):
1067                         [(m,951.01483),'',''],
1068         },
1069         
1070         _(u"Atomic Physics"):{".base_unit":_(u"radian per second"),
1071                 _(u"kilogram"):
1072                         [(m,2.997925e8**2*(1.0/1.054e-34)),"kg",''],
1073                 _(u"joule"):
1074                         [(m,1.0/1.054e-34),'',_(u"Named after the English physicist James Prescott Joule (1818-1889). A unit of work which is equal to 10^7 units of work in the C. G. S. system of units (ergs), and is practically equivalent to the energy expended in one second by an electric current of one ampere in a resistance of one ohm. One joule is approximately equal to 0.738 foot pounds.")],
1075                 _(u"erg"):
1076                         [(m,1.0/1.054e-27),'',_(u"The unit of work or energy in the C. G. S. system, being the amount of work done by a dyne working through a distance of one centimeter; the amount of energy expended in moving a body one centimeter against a force of one dyne. One foot pound is equal to 13,560,000 ergs.")],
1077                 _(u"GeV Giga electronvolt"):
1078                         [(m,2.41796e23*2*pi),"Gev",''],
1079                 _(u"neutron mass unit"):
1080                         [(m,1.00137*1836.11*3.75577e4*13.6058*2.41796e14*2*pi),'',''],
1081                 _(u"proton mass unit"):
1082                         [(m,1836.11*3.75577e4*13.6058*2.41796e14*2*pi),'',''],
1083                 _(u"atomic mass unit"):
1084                         [(m,1822.84*3.75577e4*13.6058*2.41796e14*2*pi),"amu",''],
1085                 _(u"MeV Mega electronvolt"):
1086                         [(m,2.41796e20*2*pi),"MeV",''],
1087                 _(u"electron rest mass"):
1088                         [(m,3.75577e4*13.6058*2.41796e14*2*pi),'',''],
1089                 _(u"Rydberg constant"):
1090                         [(m,13.6058*2.41796e14*2*pi),'',_(u"Named after the Swedish physicist Johannes Robert Rydberg (1854-1919). A wave number characteristic of the wave spectrum of each element")],
1091                 _(u"electronvolt"):
1092                         [(m,2.41796e14*2*pi),"eV",_(u"A unit of energy equal to the work done by an electron accelerated through a potential difference of 1 volt.")],
1093                 _(u"kayser or cm^-1"):
1094                         [(m,2.997925e10*2*pi),"K",_('Named after the German physicist Heinrich Gustav Johannes Kayser (1853-1940). Used to measure light and other electromagnetic waves. The "wave number" in kaysers equals the number of wavelengths per centimeter.')],
1095                 _(u"kelvin"):
1096                         [(m,2.997925e8*2*pi/1.4387752e-2),"K",_(u"The basic unit of thermodynamic temperature adopted under the System International d'Unites")],
1097                 "m^-1":
1098                         [(m,2.997925e8*2*pi),'',''],
1099                 _(u"millikayser"):
1100                         [(m,2.997925e7*2*pi),'',''],
1101                 _(u"hertz"):
1102                         [(m,2*pi),"Hz",''],
1103                 _(u"radian per second"):
1104                         [(m,1.0),"rad/s",''],
1105         },
1106         _(u"Computer Data"):{".base_unit":_(u"bit"),
1107                 _(u"bit"):
1108                         [(m,1.0),'',_(u"One bit of data. Binary representation On/Off.")],
1109                 _(u"nibble | hexit | quadbit"):
1110                         [(m,4.0),'',_(u"One half a byte")],
1111                 _(u"byte"):
1112                         [(m,8.0),'',_(u"Eight bits")],
1113                 _(u"character"):
1114                         [(m,8.0),'',_('Usually described by one byte (256 possible characters can be defined by one byte).')],
1115                 _(u"kilobit"):
1116                         [(m,2.0**10.0),"kilobit",_(u"2^10 bits")],
1117                 _(u"megabit"):
1118                         [(m,2.0**20.0),"megabit",_(u"2^20 bits")],
1119                 _(u"kilobyte | kibi"):
1120                         [(m,1024.0*8),"K | Ki",_(u"2^10, 1024 bytes. 1024 comes from 2^10 which is close enough to 1000. kibi is the IEEE proposal.")],
1121                 _(u"megabyte | mebi"):
1122                         [(m,1024.0**2*8),"M | Mi",_(u"2^20, 1024^2 bytes. 1024 kilobytes. 1024 comes from 2^10 which is close enough to 1000. mebi is the IEEE proposal.")],
1123                 _(u"gigabyte | gibi"):
1124                         [(m,1024.0**3*8),"G | Gi",_(u"2^30, 1024^3. 1024 megabytes. 1024 comes from 2^10 which is close enough to 1000. gibi is the IEEE proposal.")],
1125                 _(u"terabyte | tebi"):
1126                         [(m,1024.0**4*8),"T | Ti",_(u"2^40, 1024^4. 1024 gigabytes. 1024 comes from 2^10 which is close enough to 1000. tebi is the IEEE proposal.")],
1127                 _(u"petabyte | pebi"):
1128                         [(m,1024.0**5*8),"P | Pi",_(u"2^50, 1024^5. 1024 terabytes. 1024 comes from 2^10 which is close enough to 1000. tebi is the IEEE proposal.")],
1129                 _(u"exabyte | exbi"):
1130                         [(m,1024.0**6*8),"E | Ei",_(u"2^60, 1024^6, 1024 petabytes. 1024 comes from 2^10 which is close enough to 1000. tebi is the IEEE proposal.")],
1131                 _(u"zebi | zettabyte"):
1132                         [(m,1024.0**7*8),"Zi",_(u"1024^7. 1024 exbibytes. 1024 comes from 2^10 which is close enough to 1000. tebi is the IEEE proposal.")],
1133                 _(u"yobi | yottabyte"):
1134                         [(m,1024.0**8*8),"Yi",_(u"1024^8. 1024 yobibytes. 1024 comes from 2^10 which is close enough to 1000. tebi is the IEEE proposal.")],
1135         },
1136         _(u"Computer Data flow rate"):{".base_unit":_('bits per second'),
1137                 _(u"baud:1"):
1138                         [(m,1.0),"",_(u'Symbol rate for 1 bit per symbol. Named after the French telegraph engineer Jean-Maurice-\u00C9mile Baudot (1845 - 1903). Data transmission measured in symbols per second.')],
1139                 _(u"baud:10"):
1140                         [(m,10.0),"",_(u'Symbol rate for 10 bits per symbol. Named after the French telegraph engineer Jean-Maurice-\u00C9mile Baudot (1845 - 1903). Data transmission measured in symbols per second.')],
1141                 _(u"baud:8"):
1142                         [(m,8.0),"",_(u'Symbol rate for 8 bits per symbol. Named after the French telegraph engineer Jean-Maurice-\u00C9mile Baudot (1845 - 1903). Data transmission measured in symbols per second.')],
1143                 _(u"baud:4"):
1144                         [(m,4.0),"",_(u'Symbol rate for 4 bits per symbol. Named after the French telegraph engineer Jean-Maurice-\u00C9mile Baudot (1845 - 1903). Data transmission measured in symbols per second.')],
1145                 _(u"bits per second"):
1146                         [(m,1.0),"bps",_(u" ")],
1147                 _(u"characters per second"):
1148                         [(m,10.0),"cps",_('Rate to transmit one character. The character is usually described as one byte with one stop bit and one start bit (10 bits in total).')],
1149         },
1150         _(u"Computer Numbers"):{".base_unit":_(u"base 10 decimal"),
1151                 _(u"base  2 binary"):
1152                         [(b,2),"base  2",_('Base two numbering system using the digits 0-1')],
1153                 _(u"base  3 ternary | trinary"):
1154                         [(b,3),"base  3",_(u"Base three numbering system using the digits 0-2. Russian Nikolay Brusentsov built a trinary based computer system.")],
1155                 _(u"base  4 quaternary | quadrary"):
1156                         [(b,4),"base  4",_(u"Base four numbering system using the digits 0-3.")],
1157                 _(u"base  5 quinary"):
1158                         [(b,5),"base  5",_(u"Base five numbering system using the digits 0-4.")],
1159                 _(u"base  6 senary | hexary"):
1160                         [(b,6),"base  6",_(u"Base six numbering system using the digits 0-5.")],
1161                 _(u"base  7 septenary | septary"):
1162                         [(b,7),"base  7",_(u"Base seven numbering system using the digits 0-6.")],
1163                 _(u"base  8 octonary | octal | octonal | octimal"):
1164                         [(b,8),"base  8",_(u"Base eight numbering system using the digits 0-7. Commonly used in older computer systems.")],
1165                 _(u"base  9 nonary"):
1166                         [(b,9),"base  9",_(u"Base nine numbering system using the digits 0-8.")],
1167                 _(u"base 10 decimal"):
1168                         [(b,10),"base 10",_(u"Base ten numbering system using the digits 0-9.")],
1169                 _(u"base 11 undenary"):
1170                         [(b,11),"base 11",_(u"Base eleven numbering system using the digits 0-9,a.")],
1171                 _(u"base 12 duodecimal"):
1172                         [(b,12),"base 12",_(u"Base twelve numbering system using the digits 0-9,a-b.")],
1173                 _(u"base 13 tridecimal"):
1174                         [(b,13),"base 13",_('Base Thirteen numbering system using the digits 0-9,a-c.')],
1175                 _(u"base 14 quattuordecimal"):
1176                         [(b,14),"base 14",_(u"Base Fourteen numbering system using the digits 0-9,a-d.")],
1177                 _(u"base 15 quindecimal"):
1178                         [(b,15),"base 15",_(u"Base Fifteen numbering system using the digits 0-9,a-e.")],
1179                 _(u"base 16 sexadecimal | hexadecimal | hex"):
1180                         [(b,16),"base 16",_(u"Base Sixteen numbering system using the digits 0-1,a-f. Commonly used in computer systems.")],
1181                 _(u"base 17 septendecimal"):
1182                         [(b,17),"base 17",_(u"Base Sixteen numbering system using the digits 0-1,a-g.")],
1183                 _(u"base 18 octodecimal"):
1184                         [(b,18),"base 18",_(u"Base Sixteen numbering system using the digits 0-1,a-h.")],
1185                 _(u"base 19 nonadecimal"):
1186                         [(b,19),"base 19",_(u"Base Sixteen numbering system using the digits 0-1,a-i.")],
1187                 _(u"base 20 vigesimal"):
1188                         [(b,20),"base 20",_(u"Base Twenty numbering system using the digits 0-1,a-j.")],
1189                 _(u"base 30 trigesimal"):
1190                         [(b,30),"base 30",_(u"Base Thirty numbering system using the digits 0-1,a-r.")],
1191                 _(u"base 36 hexatrigesimal"):
1192                         [(b,36),"base 36",_(u"Base Thirty-six numbering system using the digits 0-9,a-z.")],
1193                 _(u"base 40 quadragesimal"):
1194                         [(b,40),"base 40",_(u"Base Forty digits numbering system using the digits 0-1,a-f,A-C.")],
1195                 _(u"base 50 quinquagesimal"):
1196                         [(b,50),"base 50",_(u"Base Fifty digits numbering system using the digits 0-1,a-f,A-M.")],
1197                 _(u"base 60 sexagesimal"):
1198                         [(b,60),"base 60",_(u"Base Sixty numbering system using the digits 0-9,a-z,A-V.")],
1199                 _(u"base 62 duosexagesimal"):
1200                         [(b,62),"base 62",_('Base Sixty-two numbering system using the digits 0-9,a-z,A-Z. This is the highest numbering system that can be represented with all decimal numbers and lower and upper case English alphabet characters. Other number systems include septagesimal (base 70), octagesimal (base 80), nonagesimal (base 90), centimal (base 100), bicentimal (base 200), tercentimal (base 300), quattrocentimal (base 400), quincentimal (base 500).')],
1201                 _(u"roman numerals"):
1202                         [(r,0),'',_('A symbol set in the old Roman notation; I,V,X,L,C,D,M. Range 1 to 3999 (higher values cannot be represented with standard ASCII characters).')],
1203         },
1204         _('Density'):{".base_unit":_(u"kilogram/cubic meter"),
1205                 _('kilogram per cubic meter'):
1206                         [(m,1.0),u"kg/m\xb3",''],
1207                 _('kg per cubic cm'):
1208                         [(m,1.0e6),u"kg/cm\xb3",_(u"kilograms per cubic centimeter.")],
1209                 _(u"pound mass per gallon (UK)"):
1210                         [(m,99.7763664739553),"lbm/gal",_(u"Pounds mass per US liquid gallon.")],
1211                 _(u"pound mass per gallon (US)"):
1212                         [(m,119.826427316897),"lbm/gal",_(u"Pounds mass per US liquid gallon.")],
1213                 _(u"slug per cubic ft"):
1214                         [(m,515.3788),u"slug/ft\xb3",''],
1215                 _(u"gram per cubic cm "):
1216                         [(m,1000.0),u"g/cm\xb3",''],
1217                 _(u"gram per cubic meter "):
1218                         [(m,.001),u"g/m\xb3",''],
1219                 _(u"milligram/cubic meter "):
1220                         [(m,1.0e-6),u"mg/m\xb3",''],
1221                 _(u"kilogram per liter"):
1222                         [(m,1000.0),"kg/l",''],
1223                 _(u"metric ton per cubic meter"):
1224                         [(m,1000.0),u"metric ton/m\xb3",''],
1225                 _(u"pound per cubic foot"):
1226                         [(m,0.45359237/0.028316846592),u"lbm/ft\xb3",_(u"Pounds mass per cubic foot.")],
1227                 _(u"pound per cubic inch"):
1228                         [(m,0.45359237/0.000016387064),u"lbm/in\xb3",_(u"Pounds mass per cubic inch.")],
1229                 _(u"aluminum"):
1230                         [(m,2643.0),"Al",_(u"Enter 1 here to find the density of aluminum.")],
1231                 _(u"iron"):
1232                         [(m,7658.0),"Fe",_(u"Enter 1 here to find the density of iron.")],
1233                 _(u"copper"):
1234                         [(m,8906.0),"Cu",_(u"Enter 1 here to find the density of copper.")],
1235                 _(u"lead"):
1236                         [(m,11370.0),"Pb",_(u"Enter 1 here to find the density of lead.")],
1237                 _(u"gold"):
1238                         [(m,19300.0),"Au",_(u"Enter 1 here to find the density of gold.")],
1239                 _(u"silver"):
1240                         [(m,10510.0),"Ag",_(u"Enter 1 here to find the density of silver.")],
1241                 _(u"water at 4degC"):
1242                         [(m,1000.0),u"H20 at 4\xb0C",_(u"Enter 1 here to find the density of water at 4\xb0C. Water weighs 1 gram per cm\xb3.")],
1243                 _(u"ounces per gallon (UK)"):
1244                         [(m,(6.23602290462221)),_(u"oz/gal"),''],
1245                 _(u"ounces per gallon (US)"):
1246                         [(m,(7.48915170730604)),_(u"oz/gal"),''],
1247                 _(u"ton (UK | long) per cubic yard"):
1248                         [(m,2240.0 * 0.45359237/0.764554857984),u"ton/yard\xb3",''],
1249                 _(u"ton (UK | long) per cubic foot"):
1250                         [(m,2240.0 * 0.45359237/0.764554857984*27.0),u"ton/ft\xb3",''],
1251                 _(u"ton (US | short) per cubic yard"):
1252                         [(m,2000.0 * 0.45359237/0.764554857984),u"ton/yard\xb3",''],
1253                 _(u"ton (US | short) per cubic foot"):
1254                         [(m,32040.0),u"ton/ft\xb3",''],
1255         },
1256         
1257         _(u"Electrical Current"):{".base_unit":_(u"ampere"),
1258                 _(u"ampere"):
1259                         [(m,1.0),"A",u"Named after the French physicist Andr\x82 Marie Amp\x82re (1775-1836). The unit of electric current; -- defined by the International Electrical Congress in 1893 and by U. S. Statute as, one tenth of the unit of current of the C. G. S. system of electro-magnetic units, or the practical equivalent of the unvarying current which, when passed through a standard solution of nitrate of silver in water, deposits silver at the rate of 0.001118 grams per second."],
1260                 _(u"kiloampere"):
1261                         [(m,1.0e3),"kA",''],
1262                 _(u"milliampere"):
1263                         [(m,1.0e-3),"mA",''],
1264                 _(u"microampere"):
1265                         [(m,1.0e-6),u"\xb5A",''],
1266                 _(u"nanoampere"):
1267                         [(m,1.0e-9),"nA",''],
1268                 _(u"picoampere"):
1269                         [(m,1.0e-12),"pA",''],
1270                 _(u"abampere"):
1271                         [(m,10.0),"abA",_(u"The CGS electromagnetic unit of current.")],
1272                 _(u"coulomb per second"):
1273                         [(m,1.0),'',''],
1274                 _(u"statampere"):
1275                         [(m,1.e-9/3),'',_(u"The CGS electrostatic unit of current.")],
1276         },
1277         _(u"Electrical Charge"):{".base_unit":_(u"coulomb"),
1278                 _(u"faraday"):
1279                         [(m,96.5e3),'',_(u"Named after Michael Faraday the The English physicist and chemist who discovered electromagnetic induction (1791-1867). The amount of electric charge that liberates one gram equivalent of any ion from an electrolytic solution. ")],
1280                 _(u"kilocoulomb"):
1281                         [(m,1.0e3),"kC",''],
1282                 _(u"ampere-hour"):
1283                         [(m,3.6e3),u"A\xb7h",_(u"Commonly used to describe the capacity of a battery.")],
1284                 _(u"abcoulomb"):
1285                         [(m,10.0),"abC",_(u"The CGS electromagnetic unit of charge.")],
1286                 _(u"coulomb (weber)"):
1287                         [(m,1.0),"C",_(u"Named after the French physicist and electrican Coulomb. (Physics) The standard unit of quantity in electrical measurements. It is the quantity of electricity conveyed in one second by the current produced by an electro-motive force of one volt acting in a circuit having a resistance of one ohm, or the quantity transferred by one amp`ere in one second. Formerly called weber.")],
1288                 _(u"microcoulomb"):
1289                         [(m,1.0e-6),u"\xb5C",''],
1290                 _(u"nanocoulomb"):
1291                         [(m,1.0e-9),"nC",''],
1292                 _(u"statcoulomb"):
1293                         [(m,1.0e-9/3),"sC",_(u"The CGS electrostatic unit of charge.")],
1294                 _(u"electron charge"):
1295                         [(m,1.0/(6.2414503832469e18)),'',''],
1296         },
1297         _(u"Electrical Voltage"):{".base_unit":_(u"volt"),
1298                 _(u"abvolt"):
1299                         [(m,1.0e-8),"abV",_(u"A unit of potential equal to one-hundred-millionth of a volt.")],
1300                 _(u"volt"):
1301                         [(m,1.0),"V",_(u"""Named after the Italian electrician Alessandro Volta. The unit of electro-motive force; -- defined by the International Electrical Congress in 1893 and by United States Statute as, that electro-motive force which steadily applied to a conductor whose resistance is one ohm will produce a current of one ampere. It is practically equivalent to 1000/1434 the electro-motive force of a standard Clark's cell at a temperature of 15deg C.""")],
1302                 _(u"gigavolt"):
1303                         [(m,1.0e9),"GV",_(u"One billion volts.")],
1304                 _(u"megavolt"):
1305                         [(m,1.0e6),"MV",_(u"One million volts.")],
1306                 _(u"kilovolt"):
1307                         [(m,1.0e3),"kV",_(u"One thousand volts.")],
1308                 _(u"millivolt"):
1309                         [(m,1.0e-3),"mV",_(u"One thousandth of an volt.")],
1310                 _(u"microvolt"):
1311                         [(m,1.0e-6),u"\xb5V",_(u"One millionth of an volt.")],
1312                 _(u"nanovolt"):
1313                         [(m,1.0e-9),"nV",_(u"One billionth of an volt.")],
1314                 _(u"statvolt"):
1315                         [(m,300.0),'',_(u"300 volts.")],
1316         },
1317         _(u"Electrical Resistance & Conductance"):{".base_unit":_(u"ohm"),
1318                 _(u"ohm"):
1319                         [(m,1.0),"ohm",_(u"Named after the German physicist Georg Simon Ohm (1787-1854). The standard unit in the measure of electrical resistance, being the resistance of a circuit in which a potential difference of one volt produces a current of one ampere. As defined by the International Electrical Congress in 1893, and by United States Statute, it is a resistance substantially equal to 10^9 units of resistance of the C.G.S. system of electro-magnetic units, and is represented by the resistance offered to an unvarying electric current by a column of mercury at the temperature of melting ice 14.4521 grams in mass, of a constant cross-sectional area, and of the length of 106.3 centimeters. As thus defined it is called the international ohm")],
1320                 _(u"siemens | mho"):
1321                         [(inv,1.0),"S",_(u"Named after Ernst Werner von Siemens (1816-1892). A unit describing how well materials conduct equal to the reciprocal of an ohm syn: mho, S")],
1322                 _(u"abmho"):
1323                         [(inv,1.0e-9),"abmho",''],
1324                 _(u"millisiemens | millimho"):
1325                         [(inv,1.0e3),"mS",''],
1326                 _(u"microsiemens | micromho"):
1327                         [(inv,1.0e6),u"\xb5S",''],
1328                 _(u"statmho"):
1329                         [(inv,8.99e11),'',''],
1330                 _(u"gigaohm"):
1331                         [(m,1.0e9),_(u"G ohm"),_(u"One billion ohms.")],
1332                 _(u"megaohm"):
1333                         [(m,1.0e6),_(u"M ohm"),_(u"One million ohms.")],
1334                 _(u"kilohm"):
1335                         [(m,1.0e3),_(u"k ohm"),_(u"One thousand ohms.")],
1336                 _(u"milliohm"):
1337                         [(m,1.0e-3),_(u"m ohm"),_(u"One thousandth of an ohm.")],
1338                 _(u"microhm"):
1339                         [(m,1.0e-6),u"\xb5 ohm",_(u"One millionth of an ohm.")],
1340                 _(u"nanohm"):
1341                         [(m,1.0e-9),"n ohm",_(u"One billionth of an ohm.")],
1342                 _(u"abohm"):
1343                         [(m,1.0e-9),"ab ohm",''],
1344                 _(u"statohm"):
1345                         [(m,8.99e5*1e6),'',''],
1346         },
1347         _(u"Electrical Inductance"):{".base_unit":_(u"henry"),
1348                 _(u"henry"):
1349                         [(m,1.0),"H",_(u"Named after the American physicist Joseph Henry (1797-1878). The unit of electric induction; the induction in a circuit when the electro-motive force induced in this circuit is one volt, while the inducing current varies at the rate of one ampere a second.")],
1350                 _(u"stathenry"):
1351                         [(m,8.99e11),'',''],
1352                 _(u"ohm-second"):
1353                         [(m,1.0),u"ohm\xb7sec",''],
1354                 _(u"millihenry"):
1355                         [(m,1.0e-3),"mH",''],
1356                 _(u"microhenry"):
1357                         [(m,1.0e-6),u"\xb5H",''],
1358                 _(u"nanohenry"):
1359                         [(m,1.0e-9),"nH",''],
1360                 _(u"abhenry"):
1361                         [(m,1.0e-9),"abH",''],
1362         },
1363         _(u"Electrical Capacitance"):{".base_unit":_(u"farad"),
1364                 _(u"farad"):
1365                         [(m,1.0),"F",_(u"Named after the English electrician Michael Faraday. The standard unit of electrical capacity; the capacity of a condenser whose charge, having an electro-motive force of one volt, is equal to the amount of electricity which, with the same electromotive force, passes through one ohm in one second; the capacity, which, charged with one coulomb, gives an electro-motive force of one volt.")],
1366                 _(u"abfarad"):
1367                         [(m,1e9),"abF",_(u"A capacitance unit equal to one billion farads")],
1368                 _(u"second/ohm"):
1369                         [(m,1.0),'',''],
1370                 _(u"microfarad"):
1371                         [(m,1e-6),u"\xb5F",''],
1372                 _(u"statfarad"):
1373                         [(m,1.0e-6/8.99e5),'',''],
1374                 _(u"nanofarad"):
1375                         [(m,1e-9),"nF",''],
1376                 _(u"picofarad"):
1377                         [(m,1e-12),"pF",''],
1378         },
1379         _(u"Electromagnetic Radiation"):{".base_unit":_(u"hertz"),
1380                 _(u"hertz"):
1381                         [(m,1.0),'Hz',_(u"""Named after the German physicist Heinrich Hertz (1857-1894) who was the first to produce electromagnetic waves artificially. Having a periodic interval of one second.""")],
1382                 _(u"meter"):
1383                         [(inv,299792458.0),"m",_(u"Equal to 39.37 English inches, the standard of linear measure in the metric system of weights and measures. It was intended to be, and is very nearly, the ten millionth part of the distance from the equator to the north pole, as ascertained by actual measurement of an arc of a meridian.")],
1384                 _(u"centimeter"):
1385                         [(inv,29979245800.0),"cm",''],
1386                 _(u"millimeter"):
1387                         [(inv,299792458000.0),"mm",''],
1388                 _(u"micrometer | micron"):
1389                         [(inv,299792458000000.0),u"\xb5m",_(u"A metric unit of length equal to one millionth of a meter. The thousandth part of one millimeter.")],
1390                 _(u"nanometer"):
1391                         [(inv,299792458000000000.0),"nm",_(u"A metric unit of length equal to one billionth of a meter.")],
1392                 _(u"angstrom"):
1393                         [(inv,2997924580000000000.0),u"\xc5",_(u"Equal to one ten billionth of a meter (or 0.0001 micron); used to specify wavelengths of electromagnetic radiation")],
1394                 _(u"kilohertz"):
1395                         [(m,1.0e3),"KHz",''],
1396                 _(u"megahertz"):
1397                         [(m,1.0e6),"MHz",''],
1398                 _(u"gigahertz"):
1399                         [(m,1.0e9),"GHz",''],
1400                 _(u"terahertz"):
1401                         [(m,1.0e12),"THz",''],
1402                 _(u"petahertz"):
1403                         [(m,1.0e15),"PHz",''],
1404                 _(u"exahertz"):
1405                         [(m,1.0e18),"EHz",''],
1406                 _(u"electron Volt"):
1407                         [(m,1/4.13566e-15),"eV",_(u"Energy. e=h\xf6f where h = Planks constant (4.13566 x 10^-15 electron volts/second). f = frequency in Hertz.")],
1408         },
1409         _(u"Energy | Work"):{".base_unit":_(u"joule | wattsecond | newton-meter"),
1410                 _(u"kiloton"):
1411                         [(m,4200.0e9),'',_(u"A measure of explosive power (of an atomic weapon) equal to that of 1000 tons of TNT")],
1412                 _(u"gigawatt-hour"):
1413                         [(m,3.6e12),"GWh",''],
1414                 _(u"megawatt-hour"):
1415                         [(m,3.6e9),"MWh",''],
1416                 _(u"kilowatt-hour"):
1417                         [(m,3.6e6),"kWh",''],
1418                 _(u"horsepower-hour"):
1419                         [(m,2.686e6),u"hp\xb7h",''],
1420                 _(u"gigajoule"):
1421                         [(m,1.0e9),"GJ",''],
1422                 _(u"megajoule"):
1423                         [(m,1.0e6),"MJ",''],
1424                 _(u"kg force meters"):
1425                         [(m,9.80665),u"kgf\xb7m",_(u"Work done by one kilogram of force acting through a distance of one meter.")],
1426                 _(u"kilojoule"):
1427                         [(m,1.0e3),"kJ",''],
1428                 _(u"watt-hour"):
1429                         [(m,3.6e3),"Wh",''],
1430                 _(u"British thermal unit"):
1431                         [(m,1.055e3),"Btu",''],
1432                 _(u"joule | wattsecond | newton-meter"):
1433                         [(m,1.0),"J",_(u"Named after the English physicist James Prescott Joule(1818-1889). A unit of work which is equal to 10^7 units of work in the C. G. S. system of units (ergs), and is practically equivalent to the energy expended in one second by an electric current of one ampere in a resistance of one ohm. One joule is approximately equal to 0.738 foot pounds.")],
1434                 _(u"kilocalorie"):
1435                         [(m,4.184e3),"kcal",''],
1436                 _(u"calorie"):
1437                         [(m,4.184),"cal",_(u"The unit of heat according to the French standard; the amount of heat required to raise the temperature of one kilogram (sometimes, one gram) of water one degree centigrade, or from 0deg to 1deg.")],
1438                 _(u"foot-poundals"):
1439                         [(m,0.04214),'',''],
1440                 _(u"foot-pound force"):
1441                         [(m,1.356),u"ft\xb7lbf",_(u"A unit of work equal to a force of one pound moving through a distance of one foot")],
1442                 _(u"millijoule"):
1443                         [(m,1.0e-3),"mJ",''],
1444                 _(u"microjoule"):
1445                         [(m,1.0e-6),u"\xb5J",''],
1446                 _(u"attojoule"):
1447                         [(m,1.0e-18),"aJ",''],
1448                 _(u"erg | dyne-centimeter"):
1449                         [(m,1.0e-7),'',_(u"The unit of work or energy in the C. G. S. system, being the amount of work done by a dyne working through a distance of one centimeter; the amount of energy expended in moving a body one centimeter against a force of one dyne. One foot pound is equal to 13,560,000 ergs.")],
1450                 _(u"GeV"):
1451                         [(m,1.0e-9/6.24),'',_(u"A billion electronvolts")],
1452                 _(u"MeV"):
1453                         [(m,1.0e-12/6.24),'',_(u"a million electronvolts")],
1454                 _(u"electron volt"):
1455                         [(m,1.0e-18/6.24),"eV",_(u"A unit of energy equal to the work done by an electron accelerated through a potential difference of 1 volt")],
1456 #1 cubic foot of natural gas ... 1,008 to 1,034 Btu 
1457                 
1458                 _(u"therm of natural gas"):
1459                         [(m,1.055e8),"",'1 therm of natural gas = 100,000 Btu'],
1460
1461                 _(u"gallon of liquefied petroleum gas"):
1462                         [(m,1.055e3*95475),"LPG",'1 gallon of liquefied petroleum gas = 95,475 Btu'],
1463                 _(u"gallon of crude oil"):
1464                         [(m,1.055e3*138095),"",'1 gallon of crude oil = 138,095 Btu'],
1465                 _(u"barrel of crude oil"):
1466                         [(m,1.055e3*5800000),"",'1 barrel of crude oil = 5,800,000 Btu'],
1467                 _(u"gallon of kerosene or light distillate oil"):
1468                         [(m,1.055e3*135000),"",'1 gallon of kerosene or light distillate oil = 135,000 Btu '],
1469                 _(u"gallon middle distillate or diesel fuel oil"):
1470                         [(m,1.055e3*138690),"",'1 gallon middle distillate or diesel fuel oil = 138,690 Btu '],
1471                 
1472                 
1473                 _(u"gallon residential fuel oil"):
1474                         [(m,1.055e3*149690),"",'1 gallon residential fuel oil = 149,690 Btu'],
1475                 _(u"gallon of gasoline"):
1476                         [(m,1.055e3*125000),"",'1 gallon of gasoline = 125,000 Btu'],
1477                 _(u"gallon of ethanol"):
1478                         [(m,1.055e3*84400),"",'1 gallon of ethanol = 84,400 Btu'],
1479                 _(u"gallon of methanol"):
1480                         [(m,1.055e3*62800),"",'1 gallon of methanol = 62,800 Btu'],
1481                 _(u"gallon gasohol (10% ethanol, 90% gasoline)"):
1482                         [(m,1.055e3*120900),"",'1 gallon gasohol (10% ethanol, 90% gasoline) = 120,900 Btu'],
1483 #               _(u"pound of coal"):
1484 #                       [(m,1.055e3),"",'pound of coal = 8,100-13,000 Btu'],
1485 #               _(u"ton of coal"):
1486 #                       [(m,1.055e3),"",'1 ton of coal = 16,200,00-26,000,000 Btu'],
1487                 _(u"ton of coke"):
1488                         [(m,1.055e3*26000000),"",'1 ton of coke = 26,000,000 Btu'],
1489 # 1 ton of wood = 9,000,00-17,000,000 Btu
1490 #               _(u""):
1491 #                       [(m,1.055e3),"",''],
1492 # 1 standard cord of wood = 18,000,000-24,000,000 Btu
1493 #               _(u""):
1494 #                       [(m,1.055e3),"",''],
1495 # 1 face cord of wood = 6,000,000-8,000,000 Btu
1496 #               _(u""):
1497 #                       [(m,1.055e3),"",''],
1498
1499 # GJ to therm and MBTUs would be nice too.
1500                 _(u"therm"):
1501                         [(m,1.055e-3*10000),"",'10^5 BTUs'],
1502                 
1503                 
1504                 _(u"Mega British thermal unit"):
1505                         [(m,1.055e-3),"MBtu",'Million British thermal units'],
1506
1507                 _(u"pound of carbon (upper heating value)"):
1508                         [(m,1.055e3*14550),"",'1 pound of carbon is 14,550 btu (upper heating value).'],
1509
1510         },
1511         _(u"Flow (dry)"):{".base_unit":"litres per second",
1512                 _(u"litres per second"):
1513                         [(m,1.0),"lps",_(u"A cubic decimeter of material moving past a point every second.")],
1514                 _(u"litres per minute"):
1515                         [(m,1.0/60),"lpm",_(u"A cubic decimeter of material moving past a point every minute.")],
1516                 _(u"cubic feet per minute"):
1517                         [(m,1/(60*0.0353146667215)),"cfm",_(u"Commonly used to describe the flow rate produced by a large fan or blower.")],
1518                 _(u"cubic feet per second"):
1519                         [(m,1/0.0353146667215),"cfs",''],
1520                 _(u"cubic inches per minute"):
1521                         [(m,1/(60*61.0237440947)),u"in\xb3/m",''],
1522                 _(u"cubic inches per second"):
1523                         [(m,1/61.0237440947),u"in\xb3/s",''],
1524         },
1525         _(u"Flow (liquid)"):{".base_unit":"litres per second",
1526                 _(u"litres per second"):
1527                         [(m,1.0),"lps",_(u"A cubic decimeter of material moving past a point every second")],
1528                 _(u"litres per minute"):
1529                         [(m,1.0/60),"lpm",''],
1530                 _(u"US gallons per minute"):
1531                         [(m,1/(60*3.785411784)),"gpm (US)",''],
1532                 _(u"US gallons per second"):
1533                         [(m,1/3.785411784),"gps (US)",''],
1534                 _(u"UK gallons per minute"):
1535                         [(m,1/(60*4.54609028199)),"gpm (UK)",''],
1536                 _(u"UK gallons per second"):
1537                         [(m,1/4.54609028199),"gps (UK)",''],
1538         },
1539         _(u"Force"):{".base_unit":"newton",
1540                 _(u"tonne of force"):
1541                         [(m,9806.65),'',_(u"Metric ton of force, 1000 kilonewtons.")],
1542                 _(u"ton of force"):
1543                         [(m,2000*4.4482216152605),"tnf",_(u"2000 pounds of force.")],
1544                 _(u"sthene"):
1545                         [(m,1.0e3),'',_(u"Named from the Greek word sthenos, strength. One sthene is the force required to accelerate a mass of one tonne at a rate of 1 m/s2. ")],
1546                 _(u"atomic weight"):
1547                         [(m,1.6283353926E-26),'',_(u"Generally understood as the weight of the hydrogen atom.")],
1548                 _(u"kip"):
1549                         [(m,4.4482216152605e3),'',_(u"Kilopounds of force.")],
1550                 _(u"kilonewton"):
1551                         [(m,1.0e3),"kN",''],
1552                 _(u"kilogram force | kilopond"):
1553                         [(m,9.80665),"kgf",''],
1554                 _(u"pound force"):
1555                         [(m,4.4482216152605),"lbf",''],
1556                 _(u"newton"):
1557                         [(m,1.0),"N",_(u"Named after the English mathematician and physicist Sir Isaac Newton (1642-1727). A unit of force equal to the force that imparts an acceleration of 1 m/sec\xb2 to a mass of 1 kilogram; equal to 100,000 dynes")],
1558                 _(u"ounce force"):
1559                         [(m,4.4482216152605/16),"ozf",''],
1560                 _(u"poundal"):
1561                         [(m,0.138254954376),"pdl",_(u"A unit of force based upon the pound, foot, and second, being the force which, acting on a pound avoirdupois for one second, causes it to acquire by the of that time a velocity of one foot per second. It is about equal to the weight of half an ounce, and is 13,825 dynes.")],
1562                 _(u"gram force"):
1563                         [(m,9.80665/1e3),"gf",''],
1564                 _(u"millinewton"):
1565                         [(m,1.0e-3),"mN",''],
1566                 _(u"dyne"):
1567                         [(m,1.0e-5),"dyn",_(u"The unit of force, in the C. G. S. (Centimeter Gram Second) system of physical units; that is, the force which, acting on a gram for a second, generates a velocity of a centimeter per second.")],
1568                 _(u"micronewton"):
1569                         [(m,1.0e-6),u"\xb5N",''],
1570         },
1571         _(u"Length"):{".base_unit":"meter",
1572                 _(u"klafter | faden (German)"):
1573                         [(m,1.8965),'',_(u"Similar to the fathom.")],
1574                 _(u"klafter | faden (Switzerland)"):
1575                         [(m,1.8),'',_(u"Similar to the fathom.")],
1576                 _(u"earth diamater"):
1577                         [(m,12742630),'',_(u"Diameter for the Earth.")],
1578                 _(u"actus (roman actus)"):
1579                         [(m,35.47872),'',_(u"Land measurement, 120 Roman feet (pedes monetales). This was equivalent to 35.47872 meters.")],
1580                 _(u"angstrom"):
1581                         [(m,1.0e-10),u"\xc5",_(u"Equal to one ten billionth of a meter (or 0.0001 micron); used to specify wavelengths of electromagnetic radiation")],
1582                 _(u"arshin | arshine | archin"):
1583                         [(m,0.7112),'',_(u"Russian.  28 inches")],
1584                 _(u"arpentcan"):
1585                         [(m,44289.14688),'',_(u"arpentcan = 27.52 mile")],
1586                 _(u"arpent (Canadian)"):
1587                         [(m,58.471308),'',_(u"Canadian unit of land measurement. 191.835 ft")],
1588                 _(u"arpentlin | French arpent"):
1589                         [(m,30*6.395*12*(25.4/1000)),'',_(u"French unit of land measurement. 30 toises")],
1590                 _(u"assbaa"):
1591                         [(m,0.02),'',_(u"Arabian measure.")],
1592                 _(u"astronomical unit"):
1593                         [(m,149597871000.0),"AU",_(u"Used for distances within the solar system; equal to the mean distance between the Earth and the Sun (approximately 93 million miles or 150 million kilometers).")],
1594                 _(u"barleycorn"):
1595                         [(m,8.46666666666667E-03),'',_(u"Formerly, a measure of length, equal to the average length of a grain of barley; the third part of an inch.")],
1596                 _(u"bohr radius"):
1597                         [(m,52.9177/1e12),'',_(u"Named after the Danish physicist Niels Bohr (1885-1962), who explained the structure of atoms in 1913. The bohr radius represents the mean distance between the proton and the electron in an unexcited hydrogen atom. 52.9177 picometers. ")],
1598                 _(u"bolt"):
1599                         [(m,36.576),'',_(u"A compact package or roll of cloth, as of canvas or silk, often containing about forty yards.")],
1600                 _(u"bottom measure"):
1601                         [(m,(25.4/1000)/40),'',_(u"One fortieth of an inch.")],
1602                 _(u"cable length"):
1603                         [(m,219.456),'',_(u"A nautical unit of depth. 720 feet.")],
1604                 _(u"caliber (gun barrel caliber)"):
1605                         [(m,0.000254),'',_(u"The diameter of round or cylindrical body, as of a bullet or column.")],
1606                 _(u"cane"):
1607                         [(m,3.84049),'',_(u"Persian")],
1608                 _(u"chain (surveyors | Gunters)"):
1609                         [(m,20.1168),'',_(u"A surveyors instrument which consists of links and is used in measuring land.One commonly in use is Gunter's chain, which consists of one hundred links, each link being seven inches and ninety-two one hundredths in length; making up the total length of rods, or sixty-six, feet; hence, a measure of that length; hence, also, a unit for land measure equal to four rods.")],
1610                 _(u"chain (engineers)"):
1611                         [(m,100*(12*25.4/1000)),'',_(u"100 ft.")],
1612                 _(u"charac"):
1613                         [(m,0.2601),'',_(u"Persian")],
1614                 _(u"chebel"):
1615                         [(m,21.03124),'',_(u"Persian")],
1616                 _(u"city block"):
1617                         [(m,100*(36*25.4/1000)),'',_(u"An informal measurement, about 100 yards")],
1618                 _(u"cubit (Biblical | Hebrew | English)"):
1619                         [(m,18.00*(25.4/1000)),'',_(u"A measure of length, being the distance from the elbow to the extremity of the middle finger. Note: The cubit varies in length in different countries, the English,Hebrew and Biblical cubits are 18 inches.")],
1620                 _(u"cubit (Indian) | hasta"):
1621                         [(m,0.64161),'',''],
1622                 _(u"cubit (Roman)"):
1623                         [(m,17.47*(25.4/1000)),'',_(u"A measure of length, being the distance from the elbow to the extremity of the middle finger. Note: The cubit varies in length in different countries, the Roman cubit is 17.47 inches.")],
1624                 _(u"cubit (Greek) | pechya"):
1625                         [(m,18.20*(25.4/1000)),'',_(u"A measure of length, being the distance from the elbow to the extremity of the middle finger. Note: The cubit varies in length in different countries, the Greek cubit is 18.20 inches.")],
1626                 _(u"cubit (Israeli)"):
1627                         [(m,0.55372),'',_(u"A measure of length, being the distance from the elbow to the extremity of the middle finger. Note: The cubit varies in length in different countries, the Israeli cubit is 21.8 inches.")],
1628                 _(u"cloth finger"):
1629                         [(m,4.5*(25.4/1000)),'',_(u"Used in sewing")],
1630                 _(u"cloth quarter"):
1631                         [(m,9*(25.4/1000)),'',_(u"Used in sewing")],
1632                 _(u"compton wavelength of the electron"):
1633                         [(m,1836.11*1.00138*1.31962/1e15),'',_(u"Named after Arthur Holly Compton (1892-1962)")],
1634                 _(u"compton wavelength of the proton"):
1635                         [(m,1.00138*1.31962/1e15),'',_(u"Named after Arthur Holly Compton (1892-1962)")],
1636                 _(u"compton wavelength of the neutron"):
1637                         [(m,1.31962/1e15),'',_(u"Named after Arthur Holly Compton (1892-1962)")],
1638                 _(u"classical electron radius"):
1639                         [(m,2.13247*1.00138*1.31962/1e15),'',''],
1640                 _(u"digit | digitus"):
1641                         [(m,0.018542),'',_(u"A finger's breadth, commonly estimated to be three fourths of an inch.")],
1642                 _(u"decimeter"):
1643                         [(m,1.0e-1),"dm","""The tenth part of a meter; a measure of length equal to rather more than 3.937 of an inch."""],
1644                 _(u"diamond (Typographical)"):
1645                         [(m,4.5*0.35146e-3),'',_(u"4 1/2 pt in height.")],
1646                 _(u"pearl (Typographical)"):
1647                         [(m,5*0.35146e-3),'',_(u"5 pt in height.")],
1648                 _(u"agate | ruby (Typographical)"):
1649                         [(m,5.5*0.35146e-3),'',_(u"Used in typing. A kind of type, larger than pearl and smaller than nonpareil; in England called ruby. 5 1/2 pt in height.")],
1650                 _(u"nonpareil (Typographical)"):
1651                         [(m,6*0.35146e-3),'',_(u"6 pt in height.")],
1652                 _(u"minion (Typographical)"):
1653                         [(m,7*0.35146e-3),'',_(u"7 pt in height.")],
1654                 _(u"brevier (Typographical)"):
1655                         [(m,8*0.35146e-3),'',_(u"8 pt in height.")],
1656                 _(u"bourgeois (Typographical)"):
1657                         [(m,9*0.35146e-3),'',_(u"9 pt in height.")],
1658                 _(u"elite | long primer (Typographical)"):
1659                         [(m,10*0.35146e-3),'',_(u"10 pt in height.")],
1660                 _(u"small pica (Typographical)"):
1661                         [(m,11*0.35146e-3),'',_(u"11 pt in height.")],
1662                 _(u"pica (Typographical)"):
1663                         [(m,12*0.35146e-3),'',_(u"A size of type next larger than small pica, and smaller than English.12 pt in height")],
1664                 _(u"english (Typographical)"):
1665                         [(m,14*0.35146e-3),'',_(u"14 pt in height.")],
1666                 _(u"columbian (Typographical)"):
1667                         [(m,16*0.35146e-3),'',_(u"16 pt in height.")],
1668                 _(u"great primer (Typographical)"):
1669                         [(m,18*0.35146e-3),'',_(u"18 pt in height.")],
1670                 _(u"point (pica) (Typographical)"):
1671                         [(m,0.35146e-3),"pt",_(u"Typographical measurement. This system was developed in England and is used in Great-Britain and the US. 1 pica equals 12 pica points.")],
1672                 _(u"point (didot) (Typographical)"):
1673                         [(m,0.376065e-3),"pt",_(u"Typographical measurement. The didot system originated in France but was used in most of Europe")],
1674                 _(u"cicero (Typographical)"):
1675                         [(m,12*0.376065e-3),'',_(u"Typographical measurement. 1 cicero equals 12 didot points.")],
1676                 _(u"point (PostScript) (Typographical)"):
1677                         [(m,(25.4/1000)/72),"pt",_(u"Typographical measurement. Created by Adobe. There are exactly 72 PostScript points in 1 inch.")],
1678
1679                 _(u"ell (English)"):
1680                         [(m,45*(25.4/1000)),'',_(u"A measure for cloth; -- now rarely used. It is of different lengths in different countries; the English ell being 45 inches, the Dutch or Flemish ell 27, the Scotch about 37.")],
1681                 _(u"ell (Dutch | Flemish)"):
1682                         [(m,27*(25.4/1000)),'',_(u"A measure for cloth; -- now rarely used. It is of different lengths in different countries; the English ell being 45 inches, the Dutch or Flemish ell 27, the Scotch about 37.")],
1683                 _(u"ell (Scotch)"):
1684                         [(m,37*(25.4/1000)),'',_(u"A measure for cloth; -- now rarely used. It is of different lengths in different countries; the English ell being 45 inches, the Dutch or Flemish ell 27, the Scotch about 37.")],
1685                 _(u"em"):
1686                         [(m,0.0003514598),'',_(u"Used in typography. A quadrat, the face or top of which is a perfect square; also, the size of such a square in any given size of type, used as the unit of measurement for that type: 500 m's of pica would be a piece of matter whose length and breadth in pica m's multiplied together produce that number.")],
1687                 _(u"en"):
1688                         [(m,0.0001757299),'',_(u"Used in typography. Half an em, that is, half of the unit of space in measuring printed matter.")],
1689                 _(u"fathom"):
1690                         [(m,6*(12*25.4/1000)),'',_(u"6 feet. Approximately the space to which a man can extend his arms.")],
1691                 _(u"fathom (Greek)"):
1692                         [(m,4*18.20*(25.4/1000)),'',_(u"4 Greek cubits.")],
1693                 _(u"fermi"):
1694                         [(m,1e-15),'',_(u"a metric unit of length equal to one quadrillionth of a meter ")],
1695                 _(u"finger breadth"):
1696                         [(m,0.875*(25.4/1000)),'',_(u"The breadth of a finger, or the fourth part of the hand; a measure of nearly an inch.")],
1697                 _(u"finger length"):
1698                         [(m,4.5*(25.4/1000)),'',_(u"The length of finger, a measure in domestic use in the United States, of about four and a half inches or one eighth of a yard.")],
1699                 _(u"foot"):
1700                         [(m,12*(25.4/1000)),"ft",_(u"Equivalent to twelve inches; one third of a yard. This measure is supposed to be taken from the length of a man's foot.")],
1701                 _(u"foot (Assyrian)"):
1702                         [(m,2.63042),'',''],
1703                 _(u"foot (Arabian)"):
1704                         [(m,0.31919),'',''],
1705                 _(u"foot (Roman) | pes"):
1706                         [(m,0.2959608),'',''],
1707                 _(u"foot (geodetic | survey)"):
1708                         [(m,1200.0/3937),'',_(u"A former U.S. definition of the foot as exactly 1200/3937 meter or about 30.48006096 centimeters. This was the official U.S. definition of the foot from 1866 to 1959; it makes the meter equal exactly 39.37 inches. In 1959 the survey foot was replaced by the international foot, equal to exactly 30.48 centimeters. However, the survey foot remains the basis for precise geodetic surveying in the U.S.")],
1709                 _(u"furlong"):
1710                         [(m,40*5.0292),'','The eighth part of a mile; forty rods; two hundred and twenty yards. From the Old English fuhrlang, meaning "the length of a furrow".'],
1711                 _(u"ghalva"):
1712                         [(m,230.42925),'',_(u"Arabian measure")],
1713                 _(u"gradus (Roman)"):
1714                         [(m,2.43*(12*25.4/1000)),'',''],
1715                 _(u"hand"):
1716                         [(m,0.1016),'',_(u"A measure equal to a hand's breadth, -- four inches; a palm. Chiefly used in measuring the height of horses.")],
1717                 _(u"inch"):
1718                         [(m,(25.4/1000)),"in",_(u"The twelfth part of a foot, commonly subdivided into halves, quarters, eights, sixteenths, etc., as among mechanics. It was also formerly divided into twelve parts, called lines, and originally into three parts, called barleycorns, its length supposed to have been determined from three grains of barley placed end to end lengthwise.")],
1719                 _(u"ken"):
1720                         [(m,2.11836),'',_(u"Japanese fathom. The ken is the length of a traditional tatami mat.")],
1721                 _(u"league (land | statute)"):
1722                         [(m,3*1609.344),'',_(u" Used as a land measure. 3 statute miles.")],
1723                 _(u"league (nautical)"):
1724                         [(m,3*1852),'',_(u" Used as a marine measure. 3 nautical miles.")],
1725                 _(u"li"):
1726                         [(m,644.652),'',_(u"A Chinese measure of distance, being a little more than one third of a mile.")],
1727                 _(u"light second"):
1728                         [(m,299792458),'',_(u"The distance over which light can travel in one second; -- used as a unit in expressing stellar distances.")],
1729                 _(u"light year"):
1730                         [(m,9.460528405106E+15),'',_(u"The distance over which light can travel in a year's time; -- used as a unit in expressing stellar distances. It is more than 63,000 times as great as the distance from the earth to the sun.")],
1731                 _(u"line"):
1732                         [(m,(25.4/1000)/12),'',_(u"A measure of length; one twelfth of an inch.")],
1733                 _(u"link (Gunters | surveyors)"):
1734                         [(m,0.201168),'',_(u"""Part of a surveyors instrument (chain) which consists of links and is used in measuring land. One commonly in use is Gunter's chain, which consists of one hundred links, each link being 7.92" in length.""")],
1735                 _(u"link (US | engineers)"):
1736                         [(m,12*(25.4/1000)),'',_(u"Used by surveyors. In the U.S., where 100-foot chains are more common, the link is the same as the foot. ")],
1737                 _(u"marathon"):
1738                         [(m,42194.988),'',_(u"a footrace of 26 miles 385 yards")],
1739
1740                 _(u"megameter"):
1741                         [(m,1.0e6),'',_(u"In the metric system, one million meters, or one thousand kilometers.")],
1742                 _(u"kilometer"):
1743                         [(m,1.0e3),"km",_(u"Being a thousand meters. It is equal to 3,280.8 feet, or 62137 of a mile.")],
1744                 _(u"meter"):
1745                         [(m,1.0),"m",_(u"Equal to 39.37 English inches, the standard of linear measure in the metric system of weights and measures. It was intended to be, and is very nearly, the ten millionth part of the distance from the equator to the north pole, as ascertained by actual measurement of an arc of a meridian.")],
1746                 _(u"centimeter"):
1747                         [(m,1.0e-2),"cm",_(u"""The hundredth part of a meter; a measure of length equal to rather more than thirty-nine hundredths (0.3937) of an inch.""")],
1748                 _(u"millimeter"):
1749                         [(m,1.0e-3),"mm",_(u"A lineal measure in the metric system, containing the thousandth part of a meter; equal to .03937 of an inch.")],
1750                 _(u"micrometer | micron"):
1751                         [(m,1.0e-6),u"\xb5m",_(u"A metric unit of length equal to one millionth of a meter. The thousandth part of one millimeter.")],
1752                 _(u"nanometer"):
1753                         [(m,1.0e-9),"nm",_(u"A metric unit of length equal to one billionth of a meter.")],
1754                 _(u"picometer"):
1755                         [(m,1.0e-12),'',_(u"A metric unit of length equal to one trillionth of a meter.")],
1756                 _(u"femtometer"):
1757                         [(m,1.0e-15),'',_(u"A metric unit of length equal to one quadrillionth of a meter.")],
1758
1759                 _(u"mil"):
1760                         [(m,(25.4/1e6)),"mil",_(u"Equal to one thousandth of an inch; used to specify thickness (e.g., of sheets or wire)")],
1761                 _(u"mile (Roman)"):
1762                         [(m,1479.804),'',_(u"5000 Roman feet.")],
1763                 _(u"mile (statute)"):
1764                         [(m,1609.344),"mi",_(u"Mile is from the Latin word for 1000 (mille). A mile conforming to statute, that is, in England and the United States, a mile of 5,280 feet, as distinguished from any other mile.")],
1765                 _(u"mile (nautical | geographical)"):
1766                         [(m,1852.0),"nmi",_(u"Geographical, or Nautical mile, one sixtieth of a degree of a great circle of the earth, or about 6080.27 feet.")],
1767                 _(u"nail (cloth)"):
1768                         [(m,0.05715),'',_(u"Used for measuring cloth. 1/20 ell. The length of the last two joints (including the fingernail) of the middle finger. The nail is equivalent to 1/16 yard, 1/4 span.")],
1769                 _(u"naval shot"):
1770                         [(m,15*6*(12*25.4/1000)),'',_(u"Equal to 15 fathoms")],
1771                 _(u"pace"):
1772                         [(m,2.5*(12*25.4/1000)),'',_(u"The length of a step in walking or marching, reckoned from the heel of one foot to the heel of the other. Note: Ordinarily the pace is estimated at two and one half linear feet.")],
1773                 _(u"pace (Roman) | passus"):
1774                         [(m,5*0.2959608),'',_(u" The Roman pace (passus) was from the heel of one foot to the heel of the same foot when it next touched the ground, five Roman feet.")],
1775                 _(u"pace (quick-time marching)"):
1776                         [(m,30*(25.4/1000)),'',_(u"The regulation marching pace in the English and United States armies is thirty inches for quick time.")],
1777                 _(u"pace (double-time marching)"):
1778                         [(m,36*(25.4/1000)),'',_(u"The regulation marching pace in the English and United States armies is thirty-six inches for double time. ")],
1779                 _(u"palm (Greek)"):
1780                         [(m,7.71313333333333e-02),'',_(u"A lineal measure equal either to the breadth of the hand or to its length from the wrist to the ends of the fingers; a hand; -- used in measuring a horse's height. In Greece, the palm was reckoned at three inches. At the present day, this measure varies in the most arbitrary manner, being different in each country, and occasionally varying in the same. One third of a Greek span,")],
1781                 _(u"palm (Roman lesser)"):
1782                         [(m,2.91*(25.4/1000)),'',_(u"A lineal measure equal either to the breadth of the hand or to its length from the wrist to the ends of the fingers; a hand; -- used in measuring a horse's height. One of two Roman measures of the palm, the lesser palm is 2.91 inches. At the present day, this measure varies in the most arbitrary manner, being different in each country, and occasionally varying in the same.")],
1783                 _(u"palm (Roman greater)"):
1784                         [(m,8.73*(25.4/1000)),'',_(u"A lineal measure equal either to the breadth of the hand or to its length from the wrist to the ends of the fingers; a hand; -- used in measuring a horse's height. One of two Roman measures of the palm, the greater palm is 8.73 inches. At the present day, this measure varies in the most arbitrary manner, being different in each country, and occasionally varying in the same.")],
1785                 _(u"parasang"):
1786                         [(m,3.5*1609.344),'',_(u"A Persian measure of length, which, according to Herodotus and Xenophon, was thirty stadia, or somewhat more than three and a half miles. The measure varied in different times and places, and, as now used, is estimated at three and a half English miles.")],
1787                 _(u"parsec"):
1788                         [(m,3.08567758767931e16),'',_(u"A unit of astronomical length based on the distance from  Earth at which stellar parallax is 1 second of arc; equivalent to 3.262 light years")],
1789                 _(u"rod | pole | perch"):
1790                         [(m,5.0292),'',_(u"Containing sixteen and a half feet; -- called also perch, and pole.")],
1791                 _(u"ri"):
1792                         [(m,3926.79936),'',_(u"Japanese league.")],
1793                 _(u"rope"):
1794                         [(m,20*12*(25.4/1000)),'',_(u"20 feet")],
1795                 _(u"sadzhens | sagene | sazhen"):
1796                         [(m,2.10312),'',_(u"Russian and East European. Used in previous centuries (until WWI or WWII). The distance between a grown man's spread of arms , from the finger- tips of one to hand to the finger-tips of the other hand. Equal to about 7 feet long (2.13 m).")],
1797                 _(u"shaku"):
1798                         [(m,0.303022),'',_(u" A Japanese foot. Note: shaku also means area and volume.")],
1799                 _(u"skein"):
1800                         [(m,120*3*12*(25.4/1000)),'',_(u"120 yards. A skein of cotton yarn is formed by eighty turns of the thread round a fifty-four inch reel.")],
1801                 _(u"soccer field"):
1802                         [(m,100*3*12*(25.4/1000)),'',_(u"100 yards")],
1803                 _(u"solar diameter"):
1804                         [(m,1391900000),'',_(u"Diameter of our sun.")],
1805                 _(u"span (Greek)"):
1806                         [(m,0.231394),'',_(u"To measure by the span of the hand with the fingers extended, or with the fingers encompassing the object; as, to span a space or distance; to span a cylinder. One half of a Greek cubit.")],
1807                 _(u"span (cloth)"):
1808                         [(m,9*(25.4/1000)),'',_(u"9 inches")],
1809                 _(u"spindle (cotten yarn)"):
1810                         [(m,15120*3*12*(25.4/1000)),'',_(u"A cotten yarn measure containing 15,120 yards.")],
1811                 _(u"spindle (linen yarn)"):
1812                         [(m,14400*3*12*(25.4/1000)),'',_(u"A linen yarn measure containing 14,400 yards.")],
1813                 _(u"stadia (Greek) | stadion"):
1814                         [(m,185.1152),'',_(u"A Greek measure of length, being the chief one used for itinerary distances, also adopted by the Romans for nautical and astronomical measurements. It was equal to 600 Greek or 625 Roman feet, or 125 Roman paces, or to 606 feet 9 inches English. This was also called the Olympic stadium, as being the exact length of the foot-race course at Olympia.")],
1815                 _(u"stadium (Persian)"):
1816                         [(m,214.57962),'',''],
1817                 _(u"stadium (Roman)"):
1818                         [(m,184.7088),'',_(u"A Greek measure of length, being the chief one used for itinerary distances, also adopted by the Romans for nautical and astronomical measurements. It was equal to 600 Greek or 625 Roman feet, or 125 Roman paces, or to 606 feet 9 inches English. This was also called the Olympic stadium, as being the exact length of the foot-race course at Olympia.")],
1819                 _(u"sun (Japanese)"):
1820                         [(m,0.0303022),'',_(u"Japanese measurement.")],
1821                 _(u"toise (French)"):
1822                         [(m,6.395*12*(25.4/1000)),'',_(u"French fathom.")],
1823                 _(u"vara (Spanish)"):
1824                         [(m,33.385*(25.4/1000)),'',_(u"A Spanish measure of length equal to about one yard. 33.385 inches. ")],
1825                 _(u"vara (Mexican)"):
1826                         [(m,0.837946),'',_(u"A Mexican measure of length equal to about one yard. 32.99 inches. ")],
1827                 _(u"verst | werst"):
1828                         [(m,3500*12*(25.4/1000)),'',_(u"A Russian measure of length containing 3,500 English feet.")],
1829                 _(u"yard"):
1830                         [(m,3*12*(25.4/1000)),"yd",_(u"Equaling three feet, or thirty-six inches, being the standard of English and American measure.")],
1831         },
1832         _(u"Luminance"):{".base_unit":"candela per square meter",
1833                 _(u"magnitudes per square arcsecond"):
1834                         [(f,('108000*(10**(-0.4*x))','log((x/108000),10)/-0.4')),"mags/arcsec2",_(u"Used by astronomers to define the darkness of the night sky. Stars are rated by brightness in magnitudes . A lower magnitude number is a brighter star. The star Vega has a magnitude of zero, and a measurement of 0 magnitudes per square arcsecond would be like having every square arcsecond in the sky will with the brightness of the star Vega.")],
1835                 _(u"candela per square centimeter"):
1836                         [(m,1.0e4),u"cd/cm\xb2",''],
1837                 _(u"kilocandela per square meter"):
1838                         [(m,1.0e3),u"kcd/m\xb2",''],
1839                 _(u"stilb"):
1840                         [(m,1.0e4),"sb",'From a Greek word stilbein meaning "to glitter". Equal to one candela per square centimeter or 104 nits.'],
1841                 _(u"lambert"):
1842                         [(m,3183.09886183791),"L",_(u"Named after the German physicist Johann Heinrich Lambert (1728-1777).Equal to the brightness of a perfectly diffusing surface that emits or reflects one lumen per square centimeter")],
1843                 _(u"candela per square inch"):
1844                         [(m,1550.0031000062),u"cd/in\xb2",''],
1845                 _(u"candela per square foot"):
1846                         [(m,10.7639104167097),u"cd/ft\xb2",''],
1847                 _(u"foot lambert"):
1848                         [(m,3.42625909963539),"fL",''],
1849                 _(u"millilambert"):
1850                         [(m,3.18309886183791),"mL",''],
1851                 _(u"candela per square meter"):
1852                         [(m,1.0),u"cd/m\xb2",''],
1853                 _(u"lumen per steradian square meter"):
1854                         [(m,1.0),'',''],
1855                 _(u"nit"):
1856                         [(m,1.0),'',_(u"Named from the Latin niteo, to shine.")],
1857                 _(u"apostilb"):
1858                         [(m,3.18309886183791/10),"asb",'Named from the Greek stilbein, to "glitter" or "shine," with the prefix apo-, "away from." '],
1859         },
1860         _(u"Illumination"):{".base_unit":"lux",
1861                 _(u"phot"):
1862                         [(m,1.0e4),"ph",_(u"a unit of illumination equal to 1 lumen per square centimeter; 10,000 phots equal 1 lux")],
1863                 _(u"lumen per square centimeter"):
1864                         [(m,1.0e4),u"lm/cm\xb2",''],
1865                 _(u"foot candle"):
1866                         [(m,10.7639104167097),"fc",''],
1867                 _(u"lumen per square foot"):
1868                         [(m,10.7639104167097),u"lm/ft\xb2",''],
1869                 _(u"lux"):
1870                         [(m,1.0),"lx",_(u"Equal to the illumination produced by luminous flux of one lumen falling perpendicularly on a surface one meter square. Also called meter-candle.")],
1871                 _(u"metre-candle"):
1872                         [(m,1.0),"m-cd",_(u"Equal to the illumination produced by luminous flux of one lumen falling perpendicularly on a surface one meter square. Also called lux.")],
1873                 _(u"lumen per square meter"):
1874                         [(m,1.0),u"lm/m\xb2",''],
1875                 _(u"candela steradian per square meter"):
1876                         [(m,1.0),'',''],
1877         },
1878         _(u"Luminous Intensity (point sources)"):{".base_unit":"candela",
1879                 _(u"candela"):
1880                         [(m,1.0),"cd",_(u"The basic unit of luminous intensity adopted under the System International d'Unites; equal to 1/60 of the luminous intensity per square centimeter of a blackbody radiating at the temperature of 2,046 degrees Kelvin syn: candle, cd, standard candle.")],
1881                 _(u"lumen per steradian"):
1882                         [(m,1.0),"lm/sr",''],
1883                 _(u"hefner candle"):
1884                         [(m,0.92),"HC",_(u"Named after F. von Hefner-Altenack (1845-1904)")],
1885         },
1886         _(u"Luminous Flux"):{".base_unit":"lumen",
1887                 _(u"lumen"):
1888                         [(m,1.0),"lm",_(u"Equal to the luminous flux emitted in a unit solid angle by a point source of one candle intensity")],
1889                 _(u"candela steradian"):
1890                         [(m,1.0),u"cd\xb7sr",''],
1891         },
1892         _(u"Magnetomotive force"):{".base_unit":"ampere",
1893                 _(u"ampere"):
1894                         [(m,1.0),"A",''],
1895                 _(u"ampere-turn"):
1896                         [(m,1.0),"At",_(u"A unit of magnetomotive force equal to the magnetomotive force produced by the passage of 1 ampere through 1 complete turn of a coil.")],
1897                 _(u"gilbert"):
1898                         [(m,0.795775),"Gb",_(u"Named after the English scientist William Gilbert (1544-1603)")],
1899                 _(u"kiloampere"):
1900                         [(m,1e3),"kA",''],
1901                 _(u"oersted-centimeter"):
1902                         [(m,0.795775),'',_(u"The same value as the gilbert.")],
1903         },
1904         _(u"Magnetic Flux"):{".base_unit":"weber",
1905                 _(u"weber"):
1906                         [(m,1.0),"Wb",_(u"From the name of Professor Weber, a German electrician. One volt second.")],
1907                 _(u"milliweber"):
1908                         [(m,1.0e-3),"mWb",''],
1909                 _(u"microweber"):
1910                         [(m,1.0e-6),u"\xb5Wb",''],
1911                 _(u"unit pole (electro magnetic unit)"):
1912                         [(m,4e-8*pi),'',''],
1913                 _(u"maxwell"):
1914                         [(m,1.0e-8),"Mx",_(u"Named after the Scottish physicist James Clerk Maxwell (1831-1879). A cgs unit of magnetic flux equal to the flux perpendicular to an area of 1 square centimeter in a magnetic field of 1 gauss.")],
1915                 _(u"line of force"):
1916                         [(m,1.0e-8),'',_(u"Same as Maxwell")],
1917         },
1918         _(u"Magnetic Field strength"):{".base_unit":"ampere per meter",
1919                 _(u"oersted"):
1920                         [(m,1.0e3/(4*pi)),"Oe",_(u"Named after the Danish physicist and chemist Hans Christian Oersted (1777-1851). The C.G.S. unit of magnetic reluctance or resistance, equal to the reluctance of a centimeter cube of air (or vacuum) between parallel faces. Also, a reluctance in which unit magnetomotive force sets up unit flux.")],
1921                 _(u"ampere per meter"):
1922                         [(m,1.0),"A/m",''],
1923                 _(u"ampere-turn per meter"):
1924                         [(m,1.0),"A/m",''],
1925                 _(u"kiloampere per meter"):
1926                         [(m,1.0e3),"kA/m",''],
1927                 _(u"ampere-turn per inch"):
1928                         [(m,39.3700787401575),"At/in",''],
1929                 _(u"newton per weber"):
1930                         [(m,1.0),"N/Wb",_(u"Same as ampere per meter")],
1931         },
1932         _(u"Magnetic Flux Density"):{".base_unit":"tesla",
1933                 _(u"tesla"):
1934                         [(m,1.0),"T",_(u"Named after the Croatian born inventer Nikola Tesla (1856-1943). A unit of magnetic flux density equal to one weber per square meter.")],
1935                 _(u"millitesla"):
1936                         [(m,1.0e-3),"mT",''],
1937                 _(u"microtesla"):
1938                         [(m,1.0e-6),u"\xb5T",''],
1939                 _(u"nanotesla"):
1940                         [(m,1.0e-9),"nT",''],
1941                 _(u"weber per square meter"):
1942                         [(m,1.0),u"Wb/m\xb2",''],
1943                 _(u"kilogauss"):
1944                         [(m,1.0e-1),"kG",''],
1945                 _(u"gauss"):
1946                         [(m,1.0e-4),"G",_(u"Named after German mathematician and astronomer Karl Friedrich Gauss (1777-1855). The C.G.S. unit of density of magnetic field, equal to a field of one line of force per square centimeter, being thus adopted as an international unit at Paris in 1900; sometimes used as a unit of intensity of magnetic field. It was previously suggested as a unit of magnetomotive force.")],
1947                 _(u"maxwell per square centimeter"):
1948                         [(m,1.0e-4),u"Mx/cm\xb2",''],
1949                 _(u"maxwell per square inch"):
1950                         [(m,1.5500031000062E-05),u"Mx/in\xb2",''],
1951                 _(u"line per square inch"):
1952                         [(m,1.5500031000062E-05),'',_(u"Same as Maxwell per square inch.")],
1953                 _(u"gamma"):
1954                         [(m,1.0e-9),'',_(u"one nanotesla.")],
1955         },
1956         _(u"Mass"):{".base_unit":"kilogram",
1957                 _(u"talanton"):
1958                         [(m,149.9985),'',_(u"Greek measure.")],
1959                 _(u"oka (Egyptian)"):
1960                         [(m,1.248),'',''],
1961                 _(u"oka (Greek)"):
1962                         [(m,1.2799),'',''],
1963                 _(u"okia"):
1964                         [(m,0.03744027),'',_(u"Egyptian measure.")],
1965                 _(u"kat"):
1966                         [(m,0.009331),'',_(u"Egyptian measure.")],
1967                 _(u"kerat"):
1968                         [(m,0.00019504),'',_(u"Egyptian measure.")],
1969                 _(u"pala"):
1970                         [(m,0.047173),'',_(u"Indian measure.")],
1971                 _(u"kona"):
1972                         [(m,0.00699828),'',_(u"Indian measure.")],
1973                 _(u"mast"):
1974                         [(m,.9331),'',_(u"British")],
1975                 _(u"kilogram"):
1976                         [(m,1.0),"kg",_(u"A measure of weight, being a thousand grams, equal to 2.2046 pounds avoirdupois (15,432.34 grains). It is equal to the weight of a cubic decimeter of distilled water at the temperature of maximum density, or 39deg Fahrenheit.")],
1977                 _(u"megagram"):
1978                         [(m,1.0e3),"Mg",''],
1979                 _(u"gram"):
1980                         [(m,1.0e-3),"g",_(u"The unit of weight in the metric system. It was intended to be exactly, and is very nearly, equivalent to the weight in a vacuum of one cubic centimeter of pure water at its maximum density. It is equal to 15.432 grains.")],
1981                 _(u"milligram"):
1982                         [(m,1.0e-6),"mg",_(u"A measure of weight, in the metric system, being the thousandth part of a gram, equal to the weight of a cubic millimeter of water, or .01543 of a grain avoirdupois.")],
1983                 _(u"microgram"):
1984                         [(m,1.0e-9),u"\xb5g",_(u"A measure of weight, in the metric system, being the millionth part of a gram.")],
1985                 _(u"ton (UK | long | gross | deadweight)"):
1986                         [(m,2240 * 0.45359237),'',_(u"A British unit of weight equivalent to 2240 pounds")],
1987                 _(u"ton (US | short)"):
1988                         [(m,2000 * 0.45359237),"tn",_(u"A US unit of weight equivalent to 2000 pounds")],
1989                 _(u"tonne | metric ton"):
1990                         [(m,1.0e3),"t",_(u"A metric ton, One Megagram. 1000 kg")],
1991                 _(u"pound (avoirdupois)"):
1992                         [(m,0.45359237),"lb",_(u"The pound in general use in the United States and in England is the pound avoirdupois, which is divided into sixteen ounces, and contains 7,000 grains. The pound troy is divided into twelve ounces, and contains 5,760 grains. 144 pounds avoirdupois are equal to 175 pounds troy weight")],
1993                 _(u"pound (troy)"):
1994                         [(m,0.3732417216),'',''],
1995                 _(u"hundredweight (short | net | US)"):
1996                         [(m,100*0.45359237),"cwt",_(u"A denomination of weight of 100 pounds. In most of the United States, both in practice and by law, it is 100 pounds avoirdupois.")],
1997                 _(u"hundredweight (long | English)"):
1998                         [(m,112*0.45359237),"cwt",_(u"A denomination of weight of 112 pounds")],
1999                 _(u"slug"):
2000                         [(m,14.5939029372064),'',_(u"One slug is the mass accelerated at 1 foot per second per second by a force of 1 pound.")],
2001                 _(u"ounce (troy)"):
2002                         [(m,0.0311034768),"ozt",_(u"A unit of apothecary weight equal to 480 grains.")],
2003                 _(u"ounce (avoirdupois)"):
2004                         [(m,0.45359237/16),"oz",_(u"A weight, the sixteenth part of a pound avoirdupois")],
2005                 _(u"dram (avoirdupois)"):
2006                         [(m,(0.45359237/16)/16),'',_(u"A weight; in Avoirdupois weight, one sixteenth part of an ounce.")],
2007                 _(u"dram (troy | apothecary)"):
2008                         [(m,(0.0311034768)/8),'',_(u"""A weight; in Apothecaries' weight, one eighth part of an ounce, or sixty grains.""")],
2009                 _(u"scruple (troy)"):
2010                         [(m,20*(0.45359237/5760)),'',_(u"A weight of twenty grains; the third part of a troy dram.")],
2011                 _(u"carat"):
2012                         [(m,0.0002),'',_(u"The weight by which precious stones and pearls are weighed.")],
2013                 _(u"grain"):
2014                         [(m,0.00006479891),"gr",_(u"The unit of the English system of weights; -- so called because considered equal to the average of grains taken from the middle of the ears of wheat. 7,000 grains constitute the pound avoirdupois and 5,760 grains constitute the pound troy.")],
2015                 _(u"amu (atomic mass unit) | dalton"):
2016                         [(m,1.66044E-27),"amu",_(u"Unit of mass for expressing masses of atoms or molecules.")],
2017                 _(u"catty | caddy | chin"):
2018                         [(m,(4.0/3)*0.45359237),'',_(u"An Chinese or East Indian Weight of 1 1/3 pounds.")],
2019                 _(u"cental"):
2020                         [(m,100*0.45359237),'',_(u"British for 100 pounds. Also called hundredweight in the US.")],
2021                 _(u"cotton bale (US)"):
2022                         [(m,500*0.45359237),'',_(u"US measurement. 500 pounds")],
2023                 _(u"cotton bale (Egypt)"):
2024                         [(m,750*0.45359237),'',_(u"Egyptian measurement. 750 pounds")],
2025                 _(u"crith"):
2026                         [(m,0.0000906),'',_(u"From the Greek word for barleycorn. The weight of a liter of hydrogen at 0.01\xb0 centigrade and with a and pressure of 1 atmosphere.")],
2027                 _(u"denarius"):
2028                         [(m,60*(0.45359237/5760)),'',_(u"Roman weight measuring 60 troy grains")],
2029                 _(u"dinar"):
2030                         [(m,4.2e-3),'',_(u"Arabian weight measuring 4.2 gram")],
2031                 _(u"doppelzentner"):
2032                         [(m,100.0),'',_(u"Metric hundredweight = 100 kg")],
2033                 _(u"drachma (Greek)"):
2034                         [(m,0.0042923),'',_(u"The weight of an old Greek drachma coin")],
2035                 _(u"drachma (Dutch)"):
2036                         [(m,3.906e-3),'',_(u"The weight of an old Dutch drachma coin")],
2037                 _(u"earth mass"):
2038                         [(m,5.983E+24),'',_(u"Mass of the Earth.")],
2039                 _(u"electron rest mass"):
2040                         [(m,9.109558E-31),'',_(u"The mass of an electron as measured when the it is at rest relative to an observer, an inherent property of the body.")],
2041                 _(u"funt"):
2042                         [(m,0.408233133),'',_(u"Russian, 0.9 pounds")],
2043                 _(u"obolos (Ancient Greece)"):
2044                         [(m,0.0042923/6),'',_(u"Ancient Greek weight of an obol coin, 1/6 drachma")],
2045                 _(u"obolos (Modern Greece)"):
2046                         [(m,1.0e-4),'',_(u"Modern Greek name for decigram.")],
2047                 _(u"hyl"):
2048                         [(m,0.00980665),'',_(u"From an ancient Greek word for matter. One hyl is the mass that is accelerated at one meter per second per second by one kilogram of force. 0.00980665 kg.")],
2049
2050                 _(u"pennyweight (troy)"):
2051                         [(m,24*0.00006479891),'',_(u"A troy weight containing twenty-four grains, or the twentieth part of a troy ounce; as, a pennyweight of gold or of arsenic. It was anciently the weight of a silver penny.")],
2052                 _(u"bekah (Biblical)"):
2053                         [(m,5*24*0.00006479891),'',_(u"1/2 shekel, 5 pennyweight.")],
2054                 _(u"shekel (Israeli)"):
2055                         [(m,10*24*0.00006479891),'',_(u"The sixtieth part of a mina. Ten pennyweight. An ancient weight and coin used by the Jews and by other nations of the same stock.")],
2056                 _(u"mina (Greek) | minah (Biblical)"):
2057                         [(m,60*10*24*0.00006479891),'',_(u"The weight of the ancient Greek mina coin. 60 shekels")],
2058                 _(u"talent (Roman)"):
2059                         [(m,125*0.3265865064),'',_(u"125 Roman libra.")],
2060                 _(u"talent (silver)"):
2061                         [(m,3000*10*24*0.00006479891),'',_(u"3,000 shekels or 125 lbs.")],
2062                 _(u"talent (gold)"):
2063                         [(m,6000*10*24*0.00006479891),'',_(u"2 silver talents, 250 lbs.")],
2064                 _(u"talent (Hebrew)"):
2065                         [(m,26.332),'',''],
2066
2067                 _(u"kin"):
2068                         [(m,0.60010270551),'',_(u"Japanese kin,  1.323 pound.")],
2069                 _(u"kwan"):
2070                         [(m,3.7512088999),'',_(u"Japanese kwan. 8.27 pound")],
2071                 _(u"liang | tael"):
2072                         [(m,((4.0/3)*0.45359237)/16),'',_(u"Chinese. 1/16 catty")],
2073                 _(u"libra | librae | as | pondus"):
2074                         [(m,0.3265865064),'',_(u"Roman originator of the English pound (lb). 12 uncia")],
2075                 _(u"libra (Mexican)"):
2076                         [(m,0.46039625555),'',''],
2077                 _(u"libra (Spanish)"):
2078                         [(m,0.45994266318),'',''],
2079                 _(u"livre (French)"):
2080                         [(m,0.49),'',''],
2081                 _(u"quarter (long)"):
2082                         [(m,(112*0.45359237)/4),'',_(u"The fourth part of a long hundredweight. 28 pounds")],
2083                 _(u"quarter (short)"):
2084                         [(m,(100*0.45359237)/4),'',_(u"The fourth part of a short hundredweight. 25 pounds")],
2085                 _(u"mite (English)"):
2086                         [(m,0.0000032399455),'',_(u"A small weight; one twentieth of a grain.")],
2087                 _(u"neutron rest mass"):
2088                         [(m,1.67492E-27),'',_(u"The mass of a neutron as measured when the it is at rest relative to an observer, an inherent property of the body.")],
2089                 _(u"proton rest mass"):
2090                         [(m,1.672614E-27),'',_(u"The mass of a proton as measured when the it is at rest relative to an observer, an inherent property of the body.")],
2091                 _(u"pfund (German)"):
2092                         [(m,0.5),'',_(u"German pound. 500 grams. 16 unze.")],
2093                 _(u"unze (German)"):
2094                         [(m,0.5/16),'',_(u"German ounce. 1/16 pfund.")],
2095                 _(u"lot (German)"):
2096                         [(m,0.5/32),'',_(u"One half unze.")],
2097                 _(u"picul | tan | pecul | pecal (Chinese | Summatra))"):
2098                         [(m,133.5*0.45359237),'',_(u"100 catty. 133 1/2 pounds")],
2099                 _(u"picul (Japan)"):
2100                         [(m,(400.0/3)*0.45359237),'',_(u"133 1/3 pounds")],
2101                 _(u"picul (Borneo)"):
2102                         [(m,(1085.0/8)*0.45359237),'',_(u"135 5/8 pounds")],
2103                 _(u"pood (Russian)"):
2104                         [(m,16.3792204807),'',_(u"A Russian weight, equal to forty Russian pounds or about thirty-six English pounds avoirdupois.")],
2105                 _(u"quintal"):
2106                         [(m,100.0),'',_(u"A metric measure of weight, being 100,000 grams, or 100 kilograms")],
2107                 _(u"quintal (short UK)"):
2108                         [(m,100*0.45359237),'',_(u"100 pounds")],
2109                 _(u"quintal (long UK)"):
2110                         [(m,112*0.45359237),'',_(u"112 pounds")],
2111                 _(u"quintal (Spanish)"):
2112                         [(m,45.994266318),'',_(u"Spanish hundredweight")],
2113                 _(u"scrupulum (Roman)"):
2114                         [(m,0.0011359248923),'',''],
2115                 _(u"stone (legal)"):
2116                         [(m,14*0.45359237),'',_(u"14 pounds")],
2117                 _(u"stone (butchers)"):
2118                         [(m,8*0.45359237),'',_(u"Meat or fish. 8 pounds")],
2119                 _(u"stone (cheese)"):
2120                         [(m,16*0.45359237),'',_(u"16 pounds.")],
2121                 _(u"stone (hemp)"):
2122                         [(m,32*0.45359237),'',_(u"32 pounds")],
2123                 _(u"stone (glass)"):
2124                         [(m,5*0.45359237),'',_(u"5 pounds")],
2125                 _(u"uncia"):
2126                         [(m,0.3265865064/12),'',_('Ancient Roman. A twelfth part, as of the Roman "as" or "libra"; an ounce. 420 grains')],
2127         },
2128         _(u"Musical notes"):{".base_unit":"breve",
2129                 _(u"whole note | semibreve"):
2130                         [(m,0.5),'',_(u"A note of half the time or duration of the breve; -- now usually called a whole note.")],
2131                 _(u"breve"):
2132                         [(m,1.0),'',_(u"A note or character of time, equivalent to two semibreves or four minims. When dotted, it is equal to three semibreves.")],
2133                 _(u"minim"):
2134                         [(m,0.25),'',_(u"A time note, a half note, equal to half a semibreve, or two quarter notes or crotchets.")],
2135                 _(u"crotchet"):
2136                         [(m,0.125),'',_(u"A time note, with a stem, having one fourth the value of a semibreve, one half that of a minim, and twice that of a quaver; a quarter note.")],
2137                 _(u"quaver"):
2138                         [(m,0.0625),'',_(u"An eighth note.")],
2139         },
2140         _(u"Power"):{".base_unit":"watt",
2141                 _(u"megawatt"):
2142                         [(m,1.0e6),"MW",''],
2143                 _(u"kilowatt"):
2144                         [(m,1.0e3),"kW",''],
2145                 _(u"watt"):
2146                         [(m,1.0),"W",_(u"Named after the Scottish engineer and inventor James Watt (1736-1819). A unit of power or activity equal to 10^7 C.G.S. units of power, or to work done at the rate of one joule a second.")],
2147                 _(u"milliwatt"):
2148                         [(m,1.0e-3),"mW",''],
2149                 _(u"microwatt"):
2150                         [(m,1.0e-6),"uW",''],
2151
2152                 _(u"horsepower (boiler)"):
2153                         [(m,9.81e3),'',_(u"A unit of power representing the power exerted by a horse in pulling.")],
2154                 _(u"horsepower"):
2155                         [(m,746.0),"hp",''],
2156                 _(u"ton of refrigeration"):
2157                         [(m,10.0/3*1055.05585262),"TR",''],
2158                 _(u"btu per second"):
2159                         [(m,1055.05585262),"Btu/s",''],
2160                 _(u"calorie per second"):
2161                         [(m,4.1868),"cal/s",''],
2162                 _(u"kilcalorie per hour"):
2163                         [(m,4186.8/3600),"kcal/h",_(u"Useful for calculating heating facilities and kitchens.")],
2164                 _(u"frig per hour"):
2165                         [(m,4186.8/3600),"frig/h",_(u"The same as kcal/h, but used for air conditioning and refrigerating.")],
2166                 _(u"foot pound force per second"):
2167                         [(m,1.356),"lbf/s",''],
2168                 _(u"joule per second"):
2169                         [(m,1.0),"J/s",''],
2170                 _(u"newton meter per second"):
2171                         [(m,1.0),u"N\xb7m/s",''],
2172                 _(u"btu per hour"):
2173                         [(m,0.293071070172222),"Btu/h",''],
2174                 _(u"foot pound force per minute"):
2175                         [(m,0.0226),u"ft\xb7lbf/min",''],
2176                 _(u"erg per second"):
2177                         [(m,1.0e-7),"erg/s",''],
2178                 _(u"dyne centimeter per second"):
2179                         [(m,1.0e-7),'',''],
2180                 _(u"lusec"):
2181                         [(m,0.000133322368421),'',_(u"Used to measure the leakage of vacuum pumps. A flow of one liter per second at a pressure of one micrometer of mercury.")],
2182         },
2183         _(u"Pressure and Stress"):{".base_unit":"pascal",
2184                 _(u"pascal"):
2185                         [(m,1.0),"Pa",_(u"Named after the French philosopher and mathematician Blaise Pascal (1623 - 1662). Equal to one newton per square meter.")],
2186                 _(u"hectopascal"):
2187                         [(m,100),"hPa",''],
2188                 _(u"kilopascal"):
2189                         [(m,1.0e3),"kPa",''],
2190                 _(u"megapascal"):
2191                         [(m,1.0e6),"MPa",''],
2192                 _(u"atmosphere (absolute,standard)"):
2193                         [(m,101325),"atm",_(u"The average pressure of the Earth's atmosphere at sea level.")],
2194                 _(u"atmosphere (technical)"):
2195                         [(m,98066.5),"atm",_(u"A metric unit equal to one kilogram of force per square centimeter.")],
2196                 _(u"bar"):
2197                         [(m,1.0e5),"bar",_(u"From the Greek word baros.")],
2198                 _(u"pound force per square inch"):
2199                         [(m,6894.75729316836),"psi",''],
2200                 _(u"ounces per square inch"):
2201                         [(m,6894.75729316836/16),u"oz/in\xb2",''],
2202                 _(u"feet of water (60F,15.5C)"):
2203                         [(m,12*133.322*1.866),"ftH20",''],
2204                 _(u"inches of water (60F,15.5C)"):
2205                         [(m,133.322*1.866),"inH20",''],
2206                 _(u"meter of water (60F,15.5C)"):
2207                         [(m,133.322*1.866/.0254),"mH20",''],
2208                 _(u"centimeter of water (60F,15.5C)"):
2209                         [(m,133.322*1.866/2.54),"cmH20",''],
2210                 _(u"millimeter of water (60F,15.5C)"):
2211                         [(m,133.322*1.866/25.4),"mmH20",''],
2212
2213                 _(u"feet of water (39.2F,4C)"):
2214                         [(m,2988.9921933),"ftH20",''],
2215                 _(u"inches of water (39.2F,4C)"):
2216                         [(m,249.0826828),"inH20",''],
2217                 _(u"meter of water (39.2F,4C)"):
2218                         [(m,9806.4048337),"mH20",''],
2219                 _(u"centimeter of water (39.2F,4C)"):
2220                         [(m,98.0640483),"cmH20",''],
2221                 _(u"millimeter of water (39.2F,4C)"):
2222                         [(m,9.80640483),"mmH20",''],
2223                 
2224                 _(u"inches of mercury (60F,15.5C)"):
2225                         [(m,3337.0),"inHg",''],
2226                 _(u"millimeter of mercury (0C)"):
2227                         [(m,133.322368421),"mmHg",''],
2228                 _(u"inches of mercury (0C)"):
2229                         [(m,133.322368421*25.4),"inHg",''],
2230                 _(u"micrometer of mercury (0C)"):
2231                         [(m,0.133322368421),u"\xb5mHg",''],
2232                 _(u"centimeter of mercury (0C)"):
2233                         [(m,1333.22368421),"cmHg",''],
2234                 _(u"foot of mercury (0C)"):
2235                         [(m,1333.22368421*25.4),"ftHg",''],
2236                 _(u"torricelli"):
2237                         [(m,133.322368421),"torr",_(u"Named after Italian physicist and mathematician Evangelista Torricelli, (1608-1647). A unit of pressure equal to 0.001316 atmosphere.")],
2238                 _(u"micron"):
2239                         [(m,133.322368421/1000),u"\xb5",_(u"Used in vacuum technology. Equal to 1 millitorr.")],
2240                 _(u"millibar"):
2241                         [(m,1.0e2),"mbar",''],
2242                 _(u"pound force per square foot"):
2243                         [(m,47.8802589803358),u"lbf/ft\xb2",''],
2244                 _(u"tons (UK) per square foot"):
2245                         [(m,47.8802589803358*2240),u"tons(UK)/ft\xb2",''],
2246                 _(u"tons (US) per square foot"):
2247                         [(m,47.8802589803358*2000),u"tons(US)/ft\xb2",''],
2248                 _(u"kilogram force per square meter"):
2249                         [(m,9.80665),u"kgf/m\xb2",''],
2250                 _(u"kilogram force per square centimeter"):
2251                         [(m,9.80665e4),u"kgf/cm\xb2",_(u"Used for ground pressure and steel stress.")],
2252                 _(u"newton per square meter"):
2253                         [(m,1.0),u"N/m\xb2",''],
2254                 _(u"newton per square centimeter"):
2255                         [(m,1.0e4),u"N/cm\xb2",''],
2256                 _(u"newton per square millimeter"):
2257                         [(m,1.0e6),u"N/mm\xb2",_(u"Used for concrete stress.")],
2258                 _(u"kiloNewton per square meter"):
2259                         [(m,1.0e3),u"kN/m\xb2",_(u"Used for ground pressure.")],
2260                 _(u"kiloNewton per square centimeter"):
2261                         [(m,1.0e7),u"kN/cm\xb2",_(u"Used for loads and concrete stress.")],
2262                 _(u"microbar"):
2263                         [(m,1.0e-1),u"\xb5bar",''],
2264                 _(u"dyne per square centimeter"):
2265                         [(m,1.0e-1),u"dyn/cm\xb2",''],
2266                 _(u"barie | barye"):
2267                         [(m,0.1),'',''],
2268                 _(u"pieze"):
2269                         [(m,1.0e3),'',_(u"From the Greek word piezein (to press). The pieze is a pressure of one sthene per square meter. 1000 newtons per square meter.")],
2270         },
2271         _(u"Prefixes and Suffixes"):{".base_unit":"one | mono",
2272                 _(u"centillion (US)"):
2273                         [(m,1.0e303),'',_(u"10^303. Note: British word centillion means 10^600 (too big for this program to represent as floating point).")],
2274                 _(u"novemtrigintillion (US) | vigintillion (UK)"):
2275                         [(m,1.0e120),'',_(u"10^120. ")],
2276                 _(u"octotrigintillion (US)"):
2277                         [(m,1.0e117),'',_(u"10^117. ")],
2278                 _(u"septentrigintillion (US) | novemdecillion (UK)"):
2279                         [(m,1.0e114),'',_(u"10^114. ")],
2280                 _(u"sextrigintillion (US)"):
2281                         [(m,1.0e111),'',_(u"10^111. ")],
2282                 _(u"quintrigintillion (US) | octodecillion (UK)"):
2283                         [(m,1.0e108),'',_(u"10^108. ")],
2284                 _(u"quattuortrigintillion (US)"):
2285                         [(m,1.0e105),'',_(u"10^105. ")],
2286                 _(u"tretrigintillion (US) | septendecillion (UK)"):
2287                         [(m,1.0e102),'',_(u"10^102. ")],
2288                 _(u"googol"):
2289                         [(m,1.0e100),'',_(u"10^100 Ten dotrigintillion (US). Note: a googolplex is 10^10^10^2.")],
2290                 _(u"dotrigintillion (US)"):
2291                         [(m,1.0e99),'',_(u"10^99. ")],
2292                 _(u"untrigintillion (US) | sexdecillion (UK)"):
2293                         [(m,1.0e96),'',_(u"10^96. ")],
2294                 _(u"trigintillion (US)"):
2295                         [(m,1.0e93),'',_(u"10^93. ")],
2296                 _(u"novemvigintillion (US) | quindecillion (UK)"):
2297                         [(m,1.0e90),'',_(u"10^90. ")],
2298                 _(u"octovigintillion (US)"):
2299                         [(m,1.0e87),'',_(u"10^87. ")],
2300                 _(u"septenvigintillion (US) | quattuordecillion (UK)"):
2301                         [(m,1.0e84),'',_(u"10^84. ")],
2302                 _(u"sexvigintillion (US)"):
2303                         [(m,1.0e81),'',_(u"10^81. ")],
2304                 _(u"quinvigintillion (US) | tredecillion (UK)"):
2305                         [(m,1.0e78),'',_(u"10^78. ")],
2306                 _(u"quattuorvigintillion (US)"):
2307                         [(m,1.0e75),'',_(u"10^75. ")],
2308                 _(u"trevigintillion (US) | duodecillion (UK)"):
2309                         [(m,1.0e72),'',_(u"10^72. ")],
2310                 _(u"dovigintillion (US)"):
2311                         [(m,1.0e69),'',_(u"10^69. ")],
2312                 _(u"unvigintillion (US) | undecillion (UK"):
2313                         [(m,1.0e66),'',_(u"10^66. ")],
2314                 _(u"vigintillion (US)"):
2315                         [(m,1.0e63),'',_(u"10^63. ")],
2316                 _(u"novemdecillion (US) | decillion (UK)"):
2317                         [(m,1.0e60),'',_(u"10^60. ")],
2318                 _(u"octodecillion (US)"):
2319                         [(m,1.0e57),'',_(u"10^57. ")],
2320                 _(u"septendecillion (US) | nonillion (UK)"):
2321                         [(m,1.0e54),'',_(u"10^54. ")],
2322                 _(u"sexdecillion (US)"):
2323                         [(m,1.0e51),'',_(u"10^51. ")],
2324                 _(u"quindecillion (US) | octillion (UK)"):
2325                         [(m,1.0e48),'',_(u"10^48. ")],
2326                 _(u"quattuordecillion (US)"):
2327                         [(m,1.0e45),'',_(u"10^45. ")],
2328                 _(u"tredecillion (US) | septillion (UK)"):
2329                         [(m,1.0e42),'',_(u"10^42. ")],
2330                 _(u"duodecillion (US) | chici"):
2331                         [(m,1.0e39),"Ch",_(u"10^39. chici coined by Morgan Burke after Marx brother Chico Marx.")],
2332                 _(u"undecillion (US) | sextillion (UK) | gummi"):
2333                         [(m,1.0e36),"Gm",_(u"10^36. gummi coined by Morgan Burke after Marx brother Gummo Marx.")],
2334                 _(u"una | decillion (US) | zeppi"):
2335                         [(m,1.0e33),"Zp",_(u"10^33. zeppi coined by Morgan Burke after Marx brother Zeppo Marx.")],
2336                 _(u"dea | nonillion (US) | quintillion (UK) | grouchi"):
2337                         [(m,1.0e30),"Gc",_(u"10^30. grouchi coined by Morgan Burke after Marx brother Groucho Marx.")],
2338                 _(u"nea | octillion (US) | quadrilliard (UK) | harpi"):
2339                         [(m,1.0e27),"Hr",_(u"10^27. harpi coined by Morgan Burke after Marx brother Harpo Marx.")],
2340                 _(u"yotta | septillion (US) | quadrillion (UK)"):
2341                         [(m,1.0e24),"Y",'10^24. Origin Latin penultimate letter y "iota".'],
2342                 _(u"zetta | sextillion (US) | trilliard (UK)"):
2343                         [(m,1.0e21),"Z",'10^21. Origin Latin ultimate letter z "zeta".'],
2344                 _(u"exa | quintillion (US) | trillion (UK)"):
2345                         [(m,1.0e18),"E",'10^18. Origin Greek for outside "exo" / Greek six hexa" as in 1000^6.'],
2346                 _(u"peta | quadrillion (US) | billiard (UK)"):
2347                         [(m,1.0e15),"P",'10^15. Origin Greek for spread "petalos" / Greek five "penta" as in 1000^5. Note: British use the words "1000 billion".'],
2348                 _(u"tera | trillion (US) | billion (UK)"):
2349                         [(m,1.0e12),"T",'10^12. Origin Greek for monster "teras" / Greek four "tetra" as in 1000^4. Note: British use the word billion.'],
2350                 _(u"giga"):
2351                         [(m,1.0e9),"G",'10^9. Origin Greek for giant "gigas".'],
2352                 _(u"billion (US) | milliard (UK)"):
2353                         [(m,1.0e9),'','10^9.'],
2354                 _(u"mega | million"):
2355                         [(m,1.0e6),"M",'10^6. One million times. Origin Greek for large, great "megas".'],
2356                 _(u"hectokilo"):
2357                         [(m,1.0e5),"hk",_(u"10^5. 100 thousand times")],
2358                 _(u"myra | myria"):
2359                         [(m,1.0e4),"ma",_(u"Ten thousand times, 10^4")],
2360                 _(u"kilo | thousand"):
2361                         [(m,1.0e3),"k",'One thousand times, 10^3.Origin Greek for thousand "chylioi".'],
2362                 _(u"gross"):
2363                         [(m,144.0),'',_(u"Twelve dozen.")],
2364                 _(u"hecto | hundred"):
2365                         [(m,1.0e2),'','One hundred times, 10^2.Origin Greek for hundred "hekaton".'],
2366                 _(u"vic"):
2367                         [(m,20.0),'',_(u"Twenty times.")],
2368                 _(u"duodec"):
2369                         [(m,12.0),'',_(u"Twelve times.")],
2370                 _(u"dozen (bakers | long)"):
2371                         [(m,13.0),'',_(u"Thirteen items. The cardinal number that is the sum of twelve and one syn:  thirteen, 13, XIII, long dozen.")],
2372                 _(u"dozen"):
2373                         [(m,12.0),'',_(u"Twelve items. Usually used to measure the quantity of eggs in a carton.")],
2374                 _(u"undec"):
2375                         [(m,11.0),'',_(u"Eleven times.")],
2376                 _(u"deca | deka | ten"):
2377                         [(m,1.0e1),'','10^1. Ten times. Origin Greek for ten "deka".'],
2378                 _(u"sex | hexad"):
2379                         [(m,6.0),'',_(u"Six times.")],
2380                 _(u"quin"):
2381                         [(m,5.0),'',_(u"Five times.")],
2382                 _(u"quadr | quadri | quadruple"):
2383                         [(m,4.0),'',_(u"Four times.")],
2384                 _(u"thrice | tri | triple"):
2385                         [(m,3.0),'',_(u"Three times.")],
2386                 _(u"bi | double"):
2387                         [(m,2.0),'',_(u"Two times.")],
2388                 _(u"sesqui | sesqu"):
2389                         [(m,1.5),'',_(u"One and one half times.")],
2390                 _(u"one | mono"):
2391                         [(m,1.0),'',_(u"Single unit value.")],
2392                 _(u"quarter"):
2393                         [(m,0.25),'',_(u"One fourth.")],
2394                 _(u"demi | semi | half"):
2395                         [(m,0.5),'',_(u"One half.")],
2396                 _(u"eigth"):
2397                         [(m,0.125),'',_(u"One eigth.")],
2398                 _(u"deci"):
2399                         [(m,1.0e-1),"d",'10^-1. Origin Latin tenth "decimus".'],
2400                 _(u"centi"):
2401                         [(m,1.0e-2),"c",'10^-2. Origin Latin hundred, hundredth "centum".'],
2402                 _(u"percent"):
2403                         [(m,1.0e-2),"%",_(u"10^-2. A proportion multiplied by 100")],
2404                 _(u"milli"):
2405                         [(m,1.0e-3),"m",'10^-3. A prefix denoting a thousandth part of; as, millimeter, milligram, milliampere.Origin Latin thousand "mille".'],
2406                 _(u"decimilli"):
2407                         [(m,1.0e-4),"dm",_(u"10^-4")],
2408                 _(u"centimilli"):
2409                         [(m,1.0e-5),"cm",_(u"10^-5. ")],
2410                 _(u"micro"):
2411                         [(m,1.0e-6),u"\xb5",'10^-6. A millionth part of; as, microfarad, microohm, micrometer.Origin Latin small "mikros".'],
2412                 _(u"parts per million | ppm"):
2413                         [(m,1.0e-6),"ppm",_(u"10^-6. Parts per million usually used in measuring chemical concentrations.")],
2414                 _(u"nano"):
2415                         [(m,1.0e-9),"n",'10^-9. Origin Greek dwarf "nanos".'],
2416                 _(u"pico"):
2417                         [(m,1.0e-12),"p",'10^-12. Origin Italian tiny "piccolo".'],
2418                 _(u"femto"):
2419                         [(m,1.0e-15),"f",'10^-15. Origin Old Norse fifteen "femten" as in 10^-15.'],
2420                 _(u"atto"):
2421                         [(m,1.0e-18),"a",'10^-18. Origin Old Norse eighteen "atten" as in 10^-18.'],
2422                 _(u"zepto | ento"):
2423                         [(m,1.0e-21),"z",'10^-21. zepto origin Latin ultimate letter z "zeta".'],
2424                 _(u"yocto | fito"):
2425                         [(m,1.0e-24),"y",'10^-24. yocto origin Latin penultimate letter y "iota".'],
2426                 _(u"syto | harpo"):
2427                         [(m,1.0e-27),"hr",_(u"10^-27. harpo coined by Morgan Burke after Marx brother Harpo Marx.")],
2428                 _(u"tredo | groucho"):
2429                         [(m,1.0e-30),"gc",_(u"10^-30. groucho coined by Morgan Burke after Marx brother Groucho Marx.")],
2430                 _(u"revo | zeppo"):
2431                         [(m,1.0e-33),"zp",_(u"10^-33. zeppo coined by Morgan Burke after Marx brother Zeppo Marx.")],
2432                 _(u"gummo"):
2433                         [(m,1.0e-36),"gm",_(u"10^-36. Coined by Morgan Burke after Marx brother Gummo Marx.")],
2434                 _(u"chico"):
2435                         [(m,1.0e-39),"ch",_(u"10^-39. Coined by Morgan Burke after Marx brother Chico Marx.")],
2436         },
2437         #There does not seem to be a "standard" for shoe sizes so some are left out for now until a decent reference can be found.
2438         _(u"Shoe Size"):{".base_unit":"centimeter",
2439                 _(u"centimeter"):
2440                         [(m,1.0),"cm",_(u"The hundredth part of a meter; a measure of length equal to rather more than thirty-nine hundredths (0.3937) of an inch.")],
2441                 _(u"inch"):
2442                         [(m,(2.54)),"in",_(u"The twelfth part of a foot, commonly subdivided into halves, quarters, eights, sixteenths, etc., as among mechanics. It was also formerly divided into twelve parts, called lines, and originally into three parts, called barleycorns, its length supposed to have been determined from three grains of barley placed end to end lengthwise.")],
2443                 #"European"):
2444                 #       [(slo,((35,47),(22.5,30.5))),'',_(u"Used by Birkenstock")],
2445                 _(u"Mens (US)"):
2446                         [(slo,((6.0,13.0),((2.54*(9+1.0/3)),(2.54*(11+2.0/3))))),'','Starting at 9 1/3" for size 6 and moving up by 1/6" for each half size to 11 2/3" for size 13. Beware that some manufacturers use different measurement techniques.'],
2447                 _(u"Womens (US)"):
2448                         [(gof,(2.54*((2.0+2.0/6)/7.0),2.54*(8.5-(5.0*((2.0+2.0/6)/7.0))))),'','Starting at 8 1/2" for size 5 and moving up by 1/6" for each half size to 10 5/6" for size 12. Beware that some manufacturers use different measurement techniques.'],
2449                 _(u"Childrens (US)"):
2450                         [(dso,((5.5,13.5),((2.54*(4.0+5.0/6)),(2.54*7.5)),(1.0,5.0),(2.54*(7.0+2.0/3),2.54*9.0))),'','Starting at 4 5/6" for size 5 1/2 up to 7 1/3" for size 13 then 7 2/3" for size 1 and going up to 9" for size 5.'],
2451                 _(u"Mens (UK)"):
2452                         [(slo,((5.0,12.0),((2.54*(9+1.0/3)),(2.54*(11+2.0/3))))),'','Starting at 9 1/3" for size 5 and moving up by 1/6" for each half size to 11 2/3" for size 12. Beware that some manufacturers use different measurement techniques.'],
2453                 _(u"Womens (UK)"):
2454                         [(gof,(2.54*((2.0+2.0/6)/7.0),2.54*(8.5-(3.0*((2.0+2.0/6)/7.0))))),'','Starting at 8 1/2" for size 3 and moving up by 1/6" for each half size to 10 5/6" for size 10. Beware that some manufacturers use different measurement techniques.'],
2455                 #"Asian"):
2456                 #       [(slo,((23.5,31.5),(25.0,30.5))),'',''],
2457         },
2458         _(u"Speed | Velocity"):{".base_unit":"meter per second",
2459                 _(u"meter per second"):
2460                         [(m,1.0),"m/s",''],
2461                 _(u"speed of light | warp"):
2462                         [(m,299792458.0),"c",_(u"The speed at which light travels in a vacuum; about 300,000 km per second; a universal constant.")],
2463                 _(u"miles per second"):
2464                         [(m,1609.344),"mi/s",''],
2465                 _(u"kilometer per second"):
2466                         [(m,1.0e3),"km/s",''],
2467                 _(u"millimeter per second"):
2468                         [(m,1.0e-3),"mm/s",''],
2469                 _(u"knot"):
2470                         [(m,0.514444444444444),'',_(u"Nautical measurement for speed as one nautical mile per hour. The number of knots which run off from the reel in half a minute, therefore, shows the number of miles the vessel sails in an hour.")],
2471                 _(u"miles per hour"):
2472                         [(m,0.44704),"mi/h",''],
2473                 _(u"foot per second"):
2474                         [(m,0.3048),"ft/s",''],
2475                 _(u"foot per minute"):
2476                         [(m,0.00508),"ft/min",''],
2477                 _(u"kilometer per hour"):
2478                         [(m,0.277777777777778),"km/h",''],
2479                 _(u"mile per day"):
2480                         [(m,1.86266666666667E-02),"mi/day",''],
2481                 _(u"centimeter per second"):
2482                         [(m,1.0e-2),"cm/s",''],
2483                 _(u"knot (admiralty)"):
2484                         [(m,0.514773333333333),'',''],
2485                 _(u"mach (sea level & 32 degF)"):
2486                         [(m,331.46),'',''],
2487         },
2488         _(u"Temperature"):{".base_unit":_(u"kelvin"),
2489                 _(u"kelvin"):
2490                         [(m,1.0),"K",_(u"Named after the English mathematician and physicist William Thomson Kelvin (1824-1907). The basic unit of thermodynamic temperature adopted under the System International d'Unites.")],
2491                 _(u"celsius (absolute)"):
2492                         [(m,1.0),u"\xb0C absolute",''],
2493                 _(u"celsius (formerly centigrade)"):
2494                         [(ofg,(273.15,1.0)),u"\xb0C",_(u"Named after the Swedish astronomer and physicist Anders Celsius (1701-1744). The Celsius thermometer or scale. It is the same as the centigrade thermometer or scale. 0\xb0 marks the freezing point of water and 100\xb0 marks the boiling point of water.  ")],
2495                 _(u"fahrenheit"):
2496                         [(f,('((x-32.0)/1.8)+273.15','((x-273.15)*1.8)+32.0')),u"\xb0F",_(u"Named after the German physicist Gabriel Daniel Fahrenheit (1686-1736). The Fahrenheit thermometer is so graduated that the freezing point of water is at 32\xb0 above the zero of its scale, and the boiling point at 212\xb0 above. It is commonly used in the United States and in England.")],
2497
2498                 _(u"reaumur"):
2499                         [(gof,(1.25,273.15)),u"\xb0Re",_(u"Named after the French scientist Ren\u00E9-Antoine Ferchault de R\u00E9aumur (1683-1757). Conformed to the scale adopted by R\u00E9aumur in graduating the thermometer he invented. The R\u00E9aumur thermometer is so graduated that 0\xb0 marks the freezing point and 80\xb0 the boiling point of water.")],
2500                 _(u"fahrenheit (absolute)"):
2501                         [(m,1/1.8),u"\xb0F absolute",''],
2502                 _(u"rankine"):
2503                         [(m,1/1.8),u"\xb0R",_(u"Named after the British physicist and engineer William Rankine (1820-1872). An absolute temperature scale in Fahrenheit degrees.")],
2504         },
2505         
2506         _(u"Temperature Difference"):{".base_unit":"temp. diff. in kelvin",
2507                 _(u"temp. diff. in kelvin"):
2508                         [(m,1.0),"K",''],
2509                 _(u"temp. diff. in degrees Celsius"):
2510                         [(m,1.0),u"\xb0C",''],
2511                 _(u"temp. diff. in degrees Reaumur"):
2512                         [(m,1.25),u"\xb0Re",''],
2513                 _(u"temp. diff. in degrees Rankine"):
2514                         [(m,5.0/9),u"\xb0R",''],
2515                 _(u"temp. diff. in degrees Fahrenheit"):
2516                         [(m,5.0/9),u"\xb0F",''],
2517         },
2518         _(u"Time"):{".base_unit":"second",
2519                 _(u"year"):
2520                         [(m,365*86400.0),"a",_(u"The time of the apparent revolution of the sun trough the ecliptic; the period occupied by the earth in making its revolution around the sun, called the astronomical year; also, a period more or less nearly agreeing with this, adopted by various nations as a measure of time, and called the civil year; as, the common lunar year of 354 days, still in use among the Mohammedans; the year of 360 days, etc. In common usage, the year consists of 365 days, and every fourth year (called bissextile, or leap year) of 366 days, a day being added to February on that year, on account of the excess above 365 days")],
2521                 _(u"year (anomalistic)"):
2522                         [(m,365*86400.0+22428.0),'',_(u"The time of the earth's revolution from perihelion to perihelion again, which is 365 days, 6 hours, 13 minutes, and 48 seconds.")],
2523                 _(u"year (common lunar)"):
2524                         [(m,354*86400.0),'',_(u"The period of 12 lunar months, or 354 days.")],
2525                 _(u"year (embolismic | Intercalary lunar)"):
2526                         [(m,384*86400.0),'',_(u"The period of 13 lunar months, or 384 days.")],
2527                 _(u"year (leap | bissextile)"):
2528                         [(m,366*86400.0),'',_(u"Bissextile; a year containing 366 days; every fourth year which leaps over a day more than a common year, giving to February twenty-nine days. Note: Every year whose number is divisible by four without a remainder is a leap year, excepting the full centuries, which, to be leap years, must be divisible by 400 without a remainder. If not so divisible they are common years. 1900, therefore, is not a leap year.")],
2529                 _(u"year (sabbatical)"):
2530                         [(m,7*365*86400.0),'',_(u"Every seventh year, in which the Israelites were commanded to suffer their fields and vineyards to rest, or lie without tillage.")],
2531                 _(u"year (lunar astronomical)"):
2532                         [(m,354*86400.0+31716.0),'',_(u"The period of 12 lunar synodical months, or 354 days, 8 hours, 48 minutes, 36 seconds.")],
2533                 _(u"year (lunisolar)"):
2534                         [(m,532*365*86400.0),'',_(u"A period of time, at the end of which, in the Julian calendar, the new and full moons and the eclipses recur on the same days of the week and month and year as in the previous period. It consists of 532 common years, being the least common multiple of the numbers of years in the cycle of the sun and the cycle of the moon.")],
2535                 _(u"year (sidereal)"):
2536                         [(m,365*86400.0+22149.3),'',_(u"The time in which the sun, departing from any fixed star, returns to the same. This is 365 days, 6 hours, 9 minutes, and 9.3 seconds.")],
2537                 _(u"year (sothic)"):
2538                         [(m,365*86400.0+6*3600.0),'',_(u"The Egyptian year of 365 days and 6 hours, as distinguished from the Egyptian vague year, which contained 365 days. The Sothic period consists of 1,460 Sothic years, being equal to 1,461 vague years. One of these periods ended in July, a.d. 139.")],
2539                 _(u"year (tropic)"):
2540                         [(m,365*86400.0+20926.0),'',_(u"The solar year; the period occupied by the sun in passing from one tropic or one equinox to the same again, having a mean length of 365 days, 5 hours, 48 minutes, 46.0 seconds, which is 20 minutes, 23.3 seconds shorter than the sidereal year, on account of the precession of the equinoxes.")],
2541                 _(u"month"):
2542                         [(m,365*86400.0/12),'',_(u"One of the twelve portions into which the year is divided; the twelfth part of a year, corresponding nearly to the length of a synodic revolution of the moon, -- whence the name. In popular use, a period of four weeks is often called a month.")],
2543                 _(u"month (sidereal)"):
2544                         [(m,27.322*86400.0),'',_(u"Period between successive conjunctions with a star, 27.322 days")],
2545                 _(u"month (synodic | lunar month | lunation)"):
2546                         [(m,29.53059*86400.0),'',_(u"The period between successive new moons (29.53059 days) syn: lunar month, moon, lunation")],
2547                 _(u"day"):
2548                         [(m,86400.0),"d",_(u"The period of the earth's revolution on its axis. -- ordinarily divided into twenty-four hours. It is measured by the interval between two successive transits of a celestial body over the same meridian, and takes a specific name from that of the body. Thus, if this is the sun, the day (the interval between two successive transits of the sun's center over the same meridian) is called a solar day; if it is a star, a sidereal day; if it is the moon, a lunar day.")],
2549                 _(u"day (sidereal)"):
2550                         [(m,86164.09),'',_(u"The interval between two successive transits of the first point of Aries over the same meridian. The Sidereal day is 23 h. 56 m. 4.09 s. of mean solar time.")],
2551                 _(u"day (lunar | tidal)"):
2552                         [(m,86400.0+50*60.0),'',_(u"24 hours 50 minutes used in tidal predictions. ")],
2553                 _(u"hour"):
2554                         [(m,3600.0),"h",_(u"The twenty-fourth part of a day; sixty minutes.")],
2555                 _(u"minute"):
2556                         [(m,60.0),"min",_(u"The sixtieth part of an hour; sixty seconds.")],
2557                 _(u"second"):
2558                         [(m,1.0),"s",_(u"The sixtieth part of a minute of time.")],
2559                 _(u"millisecond"):
2560                         [(m,1.0e-3),"ms",_(u"One thousandth of a second.")],
2561                 _(u"microsecond"):
2562                         [(m,1.0e-6),u"\xb5s",_(u"One millionth of a second.")],
2563                 _(u"nanosecond"):
2564                         [(m,1.0e-9),"ns",''],
2565                 _(u"picosecond"):
2566                         [(m,1.0e-12),"ps",''],
2567                 _(u"millennium"):
2568                         [(m,1000*365*86400.0),'',_(u"A thousand years; especially, the thousand years mentioned in the twentieth chapter in the twentieth chapter of Revelation, during which holiness is to be triumphant throughout the world. Some believe that, during this period, Christ will reign on earth in person with his saints.")],
2569                 _(u"century"):
2570                         [(m,100*365*86400.0),'',_(u"A period of a hundred years; as, this event took place over two centuries ago. Note: Century, in the reckoning of time, although often used in a general way of any series of hundred consecutive years (as, a century of temperance work), usually signifies a division of the Christian era, consisting of a period of one hundred years ending with the hundredth year from which it is named; as, the first century (a. d. 1-100 inclusive); the seventh century (a.d. 601-700); the eighteenth century (a.d. 1701-1800). With words or phrases connecting it with some other system of chronology it is used of similar division of those eras; as, the first century of Rome (A.U.C. 1-100).")],
2571                 _(u"decade"):
2572                         [(m,10*365*86400.0),'',_(u"A group or division of ten; esp., a period of ten years; a decennium; as, a decade of years or days; a decade of soldiers; the second decade of Livy.")],
2573                 _(u"week"):
2574                         [(m,7*86400.0),'',_(u"A period of seven days, usually that reckoned from one Sabbath or Sunday to the next. Also seven nights, known as sennight.")],
2575                 _(u"fortnight"):
2576                         [(m,14*86400.0),'',_(u"Fourteen nights, our ancestors reckoning time by nights and winters.  The space of fourteen days; two weeks.")],
2577                 _(u"novennial"):
2578                         [(m,9*365*86400.0),'',_(u"Done or recurring every ninth year.")],
2579                 _(u"octennial"):
2580                         [(m,8*365*86400.0),'',_(u"Happening every eighth year; also, lasting a period of eight years.")],
2581                 _(u"olympiad"):
2582                         [(m,4*365*86400.0),'',_(u"A period of four years, by which the ancient Greeks reckoned time, being the interval from one celebration of the Olympic games to another, beginning with the victory of Coroebus in the foot race, which took place in the year 776 b.c.; as, the era of the olympiads.")],
2583                 _(u"pregnancy"):
2584                         [(m,9*365*86400.0/12),'',_(u"The condition of being pregnant; the state of being with young. A period of approximately 9 months for humans")],
2585                 _(u"quindecennial"):
2586                         [(m,15*365*86400.0),'',_(u"A period of 15 years.")],
2587                 _(u"quinquennial"):
2588                         [(m,5*365*86400.0),'',_(u"Occurring once in five years, or at the end of every five years; also, lasting five years. A quinquennial event.")],
2589                 _(u"septennial"):
2590                         [(m,7*365*86400.0),'',_(u"Lasting or continuing seven years; as, septennial parliaments.")],
2591                 _(u"cesium vibrations"):
2592                         [(m,1.0/9192631770.0),"vibrations",_(u"It takes one second for hot cesium atoms to vibrate 9,192,631,770 times (microwaves). This standard was adopted by the International System in 1967.")],
2593         },
2594         _(u"Viscosity (Dynamic)"):{".base_unit":"pascal-second",
2595                 _(u"pascal-second"):
2596                         [(m,1.0),u"Pa\xb7s",''],
2597                 _(u"reyn"):
2598                         [(m,6894.75729316836),'',''],
2599                 _(u"poise"):
2600                         [(m,0.1),"P",''],
2601                 _(u"microreyn"):
2602                         [(m,6894.75729316836e-6),'',''],
2603                 _(u"millipascal-second"):
2604                         [(m,1.0e-3),u"mPa\xb7s",''],
2605                 _(u"centipoise"):
2606                         [(m,1.0e-3),"cP",''],
2607                 _(u"micropascal-second"):
2608                         [(m,1.0e-6),u"\xb5Pa\xb7s",''],
2609         },
2610         _(u"Viscosity (Kinematic)"):{".base_unit":"square meter per second",
2611                 _(u"square meter per second"):
2612                         [(m,1.0),u"m\xb2/s",''],
2613                 _(u"square millimeter per second"):
2614                         [(m,1.0e-6),u"mm\xb2/s",''],
2615                 _(u"square foot per second"):
2616                         [(m,0.09290304),u"ft\xb2/s",''],
2617                 _(u"square centimetre per second"):
2618                         [(m,1.0e-4),u"cm\xb2/s",''],
2619                 _(u"stokes"):
2620                         [(m,1.0e-4),"St",''],
2621                 _(u"centistokes"):
2622                         [(m,1.0e-6),"cSt",''],
2623         },
2624         _(u"Volume and Liquid Capacity"):{".base_unit":"millilitre",
2625                 _(u"can #10 can"):
2626                         [(m,4*2*2*8*2*3*4.92892159375/128*109.43),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2627                 _(u"can #2 can"):
2628                         [(m,4*2*2*8*2*3*4.92892159375/128*20.55),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2629                 _(u"can #2.5 can"):
2630                         [(m,4*2*2*8*2*3*4.92892159375/128*29.79),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2631                 _(u"can #5 can"):
2632                         [(m,4*2*2*8*2*3*4.92892159375/128*59.1),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2633                 _(u"can #1 can (Picnic)"):
2634                         [(m,4*2*2*8*2*3*4.92892159375/128*10.94),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2635                 _(u"can #1 can (Tall)"):
2636                         [(m,4*2*2*8*2*3*4.92892159375/128* 16.70),'',_(u"Taken from the Can Manufacturers Institute (CMI).  http://www.cancentral.com/standard.cfm#foodcan")],
2637                 _(u"can #303 can"):
2638                         [(m,4*2*2*8*2*3*4.92892159375/128* 16.88),'',_(u"Taken from the Can Manufacturers Institute (CMI) http://www.cancentral.com/standard.cfm#foodcan .")],
2639                 _(u"barrel (wine UK)"):
2640                         [(m,31.5*4*2*2.5*8*2*3*4.73551071041125),'',_(u"31.5 UK Gallons")],
2641                 _(u"barrel (UK)"):
2642                         [(m,36*4*2*2.5*8*2*3*4.73551071041125),'',_(u"36 UK Gallons")],
2643                 _(u"barrel of oil (US)"):
2644                         [(m,42*4*2*2*8*2*3*4.92892159375),"",_(u"Barrel of petroleum (oil), 42 US Gallons")],
2645                 _(u"barrel (US federal)"):
2646                         [(m,31*4*2*2*8*2*3*4.92892159375),"",_(u"31 US Gallons")],
2647                 _(u"barrel (US)"):
2648                         [(m,31.5*4*2*2*8*2*3*4.92892159375),"",_(u"31.5 US Gallons")],
2649                 _(u"caphite"):
2650                         [(m,1374.1046),'',_(u"Ancient Arabian")],
2651                 _(u"cantaro"):
2652                         [(m,13521.1108),'',_(u"Spanish")],
2653                 _(u"oxybaphon"):
2654                         [(m,66.245),'',_(u"Greek")],
2655                 _(u"cotula | hemina | kotyle"):
2656                         [(m,308.3505),'',_(u"Greek")],
2657                 _(u"cyathos"):
2658                         [(m,451.5132),'',_(u"Greek")],
2659                 _(u"cados"):
2660                         [(m,38043.3566),'',_(u"Greek")],
2661                 _(u"metertes | amphura"):
2662                         [(m,39001.092),'',_(u"Greek")],
2663                 _(u"mushti"):
2664                         [(m,60.9653),'',_(u"Indian")],
2665                 _(u"cab"):
2666                         [(m,2202.5036),'',_(u"Israeli")],
2667                 _(u"hekat"):
2668                         [(m,4768.6752),'',_(u"Israeli")],
2669                 _(u"bath | bu"):
2670                         [(m,36871.2),'',_(u"Israeli")],
2671                 _(u"acetabulum"):
2672                         [(m,66.0752),'',_('Roman')],
2673
2674                 _(u"dash (UK)"):
2675                         [(m,4.73551071041125/16),'',_(u"one half of a pinch")],
2676                 _(u"pinch (UK)"):
2677                         [(m,4.73551071041125/8),'',_(u"One eigth of a teaspoon")],
2678                 _(u"gallon (UK)"):
2679                         [(m,4*2*2.5*8*2*3*4.73551071041125),'',_(u"A measure of capacity, containing four quarts; -- used, for the most part, in liquid measure, but sometimes in dry measure. The English imperial gallon contains 10 pounds avoirdupois of distilled water at 62\xb0F, and barometer at 30 inches, equal to 277.274 cubic inches.")],
2680                 _(u"quart (UK)"):
2681                         [(m,2*2.5*8*2*3*4.73551071041125),'',_(u"The fourth part of a gallon; the eighth part of a peck; two pints. Note: In imperial measure, a quart is forty English fluid ounces; in wine measure, it is thirty-two American fluid ounces. The United States dry quart contains 67.20 cubic inches, the fluid quart 57.75. The English quart contains 69.32 cubic inches.")],
2682                 _(u"pint (UK)"):
2683                         [(m,2.5*8*2*3*4.73551071041125),'',''],
2684                 _(u"cup (UK)"):
2685                         [(m,8*2*3*4.73551071041125),'',''],
2686                 _(u"ounce - fluid ounce (UK)"):
2687                         [(m,2*3*4.73551071041125),'',_(u"Contains 1 ounce mass of distilled water at 62\xb0F, and barometer at 30 inches")],
2688                 _(u"tablespoon (UK)"):
2689                         [(m,3*4.73551071041125),'',_(u"One sixteenth of a cup. A spoon of the largest size commonly used at the table; -- distinguished from teaspoon, dessert spoon, etc.")],
2690                 _(u"teaspoon (UK)"):
2691                         [(m,4.73551071041125),'',_(u"One third of a tablespoon. A small spoon used in stirring and sipping tea, coffee, etc., and for other purposes.")],
2692
2693                 _(u"dash (US)"):
2694                         [(m,4.92892159375/16),'',_(u"one half of a pinch")],
2695                 _(u"pinch (US)"):
2696                         [(m,4.92892159375/8),'',_(u"One eigth of a teaspoon")],
2697                 _(u"keg (beer US)"):
2698                         [(m,15.5*768*4.92892159375),"","""US standard size beer keg = 1/2 barrel = 15.5 US gallons; weighs approx. 29.7 pounds empty, 160.5 pounds full."""],
2699                 _(u"keg (wine US)"):
2700                         [(m,12*768*4.92892159375),"","""12 US gallons."""],
2701                 _(u"ponykeg (US)"):
2702                         [(m,7.75*768*4.92892159375),"","""1/2 US beerkeg, 7.75 US gallons."""],
2703                 _(u"barrel (beer US)"):
2704                         [(m,31*768*4.92892159375),"","""Two US beerkegs, 31 US gallons."""],
2705                 _(u"barrel (wine US)"):
2706                         [(m,31.5*768*4.92892159375),"","""31.5 US gallons."""],
2707                 _(u"hogshead (US)"):
2708                         [(m,63*768*4.92892159375),"","""Equal to 2 barrels or 63 US gallons."""],       
2709                 _(u"fifth (US)"):
2710                         [(m,.2*768*4.92892159375),"","""One fifth of a gallon."""],
2711                 _(u"jigger"):
2712                         [(m,9*4.92892159375),"","""1.5 fluid ounces (US)"""],
2713                 _(u"shot"):
2714                         [(m,9*4.92892159375),"","""1.5 fluid ounces (US)"""],
2715                 _(u"winebottle"):
2716                         [(m,750*1.0),"","""750 milliliters"""],
2717                 _(u"wineglass (US)"):
2718                         [(m,24*4.92892159375),"","""Equal to 4 fluid ounces (US)."""],
2719                 _(u"winesplit"):
2720                         [(m,750.0/4),"","""1/4 winebottle"""],
2721                 _(u"magnum"):
2722                         [(m,1500),"","""1.5 liters"""],
2723                 _(u"gallon (US)"):
2724                         [(m,4*2*2*8*2*3*4.92892159375),'',_(u"A measure of capacity, containing four quarts; -- used, for the most part, in liquid measure, but sometimes in dry measure. Note: The standard gallon of the Unites States contains 231 cubic inches, or 8.3389 pounds avoirdupois of distilled water at its maximum density, and with the barometer at 30 inches. This is almost exactly equivalent to a cylinder of seven inches in diameter and six inches in height, and is the same as the old English wine gallon. The beer gallon, now little used in the United States, contains 282 cubic inches.")],
2725                 _(u"quart (US)"):
2726                         [(m,2*2*8*2*3*4.92892159375),'',_(u"The fourth part of a gallon; the eighth part of a peck; two pints. Note: In imperial measure, a quart is forty English fluid ounces; in wine measure, it is thirty-two American fluid ounces. The United States dry quart contains 67.20 cubic inches, the fluid quart 57.75. The English quart contains 69.32 cubic inches.")],
2727                 _(u"pint (US)"):
2728                         [(m,2*8*2*3*4.92892159375),'',''],
2729                 _(u"cup (US)"):
2730                         [(m,8*2*3*4.92892159375),'',''],
2731                 _(u"ounce - fluid ounce (US)"):
2732                         [(m,2*3*4.92892159375),'',''],
2733                 _(u"beerbottle (US 12 ounce)"):
2734                         [(m,12*2*3*4.92892159375),'',''],
2735                 _(u"tablespoon (US)"):
2736                         [(m,3*4.92892159375),'',_(u"One sixteenth of a cup. A spoon of the largest size commonly used at the table; -- distinguished from teaspoon, dessert spoon, etc.")],
2737                 _(u"teaspoon (US)"):
2738                         [(m,4.92892159375),'',_(u"One third of a tablespoon. A small spoon used in stirring and sipping tea, coffee, etc., and for other purposes.")],
2739
2740                 _(u"shaku"):
2741                         [(m,18.04),'',_(u"A Japanese unit of volume, the shaku equals about 18.04 milliliters (0.61 U.S. fluid ounce). Note: shaku also means area and length.")],
2742
2743                 _(u"cubic yard"):
2744                         [(m,27*1728*16.387064),u"yd\xb3",''],
2745                 _(u"acre foot"):
2746                         [(m,1728*16.387064*43560),'',''],
2747                 _(u"cubic foot"):
2748                         [(m,1728*16.387064),u"ft\xb3",''],
2749                 _(u"cubic inch"):
2750                         [(m,16.387064),u"in\xb3",''],
2751
2752                 _(u"cubic meter"):
2753                         [(m,1.0e6),u"m\xb3",''],
2754                 _(u"cubic decimeter"):
2755                         [(m,1.0e3),u"dm\xb3",''],
2756                 _(u"litre"):
2757                         [(m,1.0e3),"l",_(u"A measure of capacity in the metric system, being a cubic decimeter.")],
2758                 _(u"cubic centimeter"):
2759                         [(m,1.0),u"cm\xb3",''],
2760                 _(u"millilitre"):
2761                         [(m,1.0),"ml",''],
2762                 _(u"centilitre"):
2763                         [(m,10*1.0),"cl",''],
2764                 _(u"decilitre"):
2765                         [(m,10*10*1.0),"dl",''],
2766                 _(u"mil"):
2767                         [(m,1.0),'',_(u"Equal to one thousandth of a liter syn: milliliter, millilitre, ml, cubic centimeter, cubic centimeter, cc")],
2768                 _(u"minim"):
2769                         [(m,2*3*4.92892159375/480),'',_(u"Used in Pharmaceutical to represent one drop. 1/60 fluid dram or 1/480 fluid ounce. A U.S. minim is about 0.003760 in\xb3 or 61.610 \xb5l. The British minim is about 0.003612 in\xb3 or 59.194 \xb5l. Origin of the word is from the Latin minimus, or small.")],
2770         },
2771         _(u"Volume and Dry Capacity"):{".base_unit":"cubic meter",
2772                 _(u"cubic meter"):
2773                         [(m,1.0),u"m\xb3",''],
2774                 _(u"cubic decimeter"):
2775                         [(m,1.0e-3),u"dm\xb3",''],
2776                 _(u"cubic millimeter"):
2777                         [(m,1.0e-9),u"mm\xb3",""""""],
2778                 _(u"cubic centimeter"):
2779                         [(m,1.0e-6),u"cm\xb3",""""""],
2780                 _(u"cord"):
2781                         [(m,3.624556363776),'',_(u"A pile of wood 8ft x 4ft x 4ft.")],
2782                 _(u"cubic yard"):
2783                         [(m,0.764554857984),u"yd\xb3",''],
2784                 _(u"bushel (US)"):
2785                         [(m,4*2*0.00440488377086),"bu",_(u"A dry measure, containing four pecks, eight gallons, or thirty-two quarts. Note: The Winchester bushel, formerly used in England, contained 2150.42 cubic inches, being the volume of a cylinder 181/2 inches in internal diameter and eight inches in depth. The standard bushel measures, prepared by the United States Government and distributed to the States, hold each 77.6274 pounds of distilled water, at 39.8deg Fahr. and 30 inches atmospheric pressure, being the equivalent of the Winchester bushel. The imperial bushel now in use in England is larger than the Winchester bushel, containing 2218.2 cubic inches, or 80 pounds of water at 62deg Fahr.")],
2786                 _(u"bushel (UK | CAN)"):
2787                         [(m,4*2*4*1.1365225e-3),"bu",_(u"A dry measure, containing four pecks, eight gallons, or thirty-two quarts. Note: The Winchester bushel, formerly used in England, contained 2150.42 cubic inches, being the volume of a cylinder 181/2 inches in internal diameter and eight inches in depth. The standard bushel measures, prepared by the United States Government and distributed to the States, hold each 77.6274 pounds of distilled water, at 39.8deg Fahr. and 30 inches atmospheric pressure, being the equivalent of the Winchester bushel. The imperial bushel now in use in England is larger than the Winchester bushel, containing 2218.2 cubic inches, or 80 pounds of water at 62deg Fahr.")],
2788                 _(u"peck (US)"):
2789                         [(m,2*0.00440488377086),'',''],
2790                 _(u"peck (UK | CAN)"):
2791                         [(m,2*4*1.1365225e-3),'',''],
2792                 _(u"gallon (US dry)"):
2793                         [(m,0.00440488377086),"gal",''],
2794                 _(u"gallon (CAN)"):
2795                         [(m,4*1.1365225e-3),"gal",''],
2796                 _(u"quart (US dry)"):
2797                         [(m,1.101220942715e-3),"qt",''],
2798                 _(u"quart (CAN)"):
2799                         [(m,1.1365225e-3),"qt",''],
2800                 _(u"cubic foot"):
2801                         [(m,0.028316846592),u"ft\xb3",''],
2802                 _(u"board foot"):
2803                         [(m,0.028316846592/12),'',_(u"lumber 1ft\xb2 and 1 in thick")],
2804                 _(u"litre"):
2805                         [(m,1.0e-3),"l",_(u"A measure of capacity in the metric system, being a cubic decimeter.")],
2806                 _(u"pint (US dry)"):
2807                         [(m,5.506104713575E-04),"pt",''],
2808                 _(u"cubic inch"):
2809                         [(m,0.000016387064),u"in\xb3",''],
2810                 _(u"coomb"):
2811                         [(m,4*4*2*4*1.1365225e-3),'',_(u"British. 4 bushels")],
2812                 _(u"peck"):
2813                         [(m,37.23670995671),'',_(u"The fourth part of a bushel; a dry measure of eight quarts")],
2814                 _(u"quart (dry)"):
2815                         [(m,4.65458874458874),'',_(u"The fourth part of a gallon; the eighth part of a peck; two pints. Note: In imperial measure, a quart is forty English fluid ounces; in wine measure, it is thirty-two American fluid ounces. The United States dry quart contains 67.20 cubic inches, the fluid quart 57.75. The English quart contains 69.32 cubic inches.")],
2816         },
2817         _(u"Thermal conductance (Area)"):{".base_unit":"Watts per square meter Kelvin",
2818                 _(u"watts per square meter Kelvin"):
2819                         [(m,1.0),u"W/m\xb2\xb7K",''],
2820                 _(u"watts per square meter deg C"):
2821                         [(m,1.0),u"W/h.m\xb2\xb7\xb0C",''],
2822                 _(u"kilocalories per hour square meter deg C"):
2823                         [(m,1.163),u"kcal/h\xb7m\xb7\xb0C",''],
2824                 _(u"british thermal units per second square foot deg F"):
2825                         [(m,2.0428),u"Btu/sec\xb7ft\xb2\xb7\xb0F",''],
2826                 _(u"british thermal units per hour square foot deg F"):
2827                         [(m,5.6782),u"Btu/h\xb7ft\xb2\xb7\xb0F",''],
2828         },
2829         _(u"Thermal conductance (Linear)"):{".base_unit":"cubic meter",
2830                 _(u"watts per meter Kelvin"):
2831                         [(m,1.0),u"W/m\xb7K",''],
2832                 _(u"watts per meter deg C"):
2833                         [(m,1.0),u"W/m\xb7\xb0C",''],
2834                 _(u"kilocalories per hour meter deg C"):
2835                         [(m,1.163),u"kcal/h\xb7m\xb7\xb0C",''],
2836                 _(u"british thermal units per second foot deg F"):
2837                         [(m,1.703),u"Btu/sec\xb7ft\xb7\xb0F",''],
2838         },
2839         _(u"Thermal resistance"):{".base_unit":_(u"square meter kelvin per watt"),
2840                 _(u"square meter kelvin per watt"):
2841                         [(m,1.0),u"m\xb2\xb7K/W",''],
2842                 _(u"square meter deg C per watt"):
2843                         [(m,1.0),u"m\xb2\xb7\xb0C/W",''],
2844                 _(u"clo"):
2845                         [(m,1.50e-1),u"clo",_(u"Clo is the unit for effective clothing insulation. It is used to evaluate the expected comfort of users in certain humidity, temperature and workload conditions (and estimate air conditioning or heating loads, for instance.).")],
2846                 _(u"hour square foot deg F per BTU"):
2847                         [(m,1.761e-1),u"h\xb7ft\xb2\xb7\xb0F/Btu",''],
2848                 _(u"hour square meter deg C per kilocalorie"):
2849                         [(m,8.62e-1),u"h\xb7m\xb2\xb7\xb0C/kcal",''],
2850         },
2851         _(u"Specific Heat"):{".base_unit":"joule per kilogram kelvin",
2852                 _(u"joule per kilogram kelvin"):
2853                         [(m,1.0),u"J/kg\xb7K",''],
2854                 _(u"joule per kilogram deg C"):
2855                         [(m,1.0),u"J/kg\xb7\xb0C",''],
2856                 _(u"kilocalories per kilogram deg C"):
2857                         [(m,4.18855e3),u"kcal/kg\xb7\xb0C",''],
2858                 _(u"btu per pound deg F"):
2859                         [(m,4.1868e3),u"BTU/lb\xb7\xb0F",''],
2860         },
2861         _(u"Fuel consumption"):{".base_unit":"miles per gallon (US)",
2862                 _(u"miles per gallon (US)"):
2863                         [(m,1.0),u"mpg (US)",''],
2864                 _(u"gallons  (US) per 100 miles"):
2865                         [(inv,100.0),u'',''],
2866                 _(u"miles per gallon (Imperial)"):
2867                         [(m,1.0/1.20095),u"mpg (Imperial)",''],
2868                 _(u"gallons (Imperial) per 100 miles"):
2869                         [(inv,100.0/1.20095),u'',''],
2870                 _(u"liters per 100 kilometer"):
2871                         [(inv,62.1371192237/0.264172052358),u'',''],
2872                 _(u"kilometers per liter"):
2873                         [(m,.621371192237/0.264172052358),u'',''],
2874         },
2875         _(u"Torque"):{".base_unit":"newton meter",
2876                 _(u"newton meter"):
2877                         [(m,1.0),u"N\xb7m",_(u"The SI unit of force that causes rotation.")],
2878                 _(u"joules"):
2879                         [(m,1.0),u"j",''],
2880                 _(u"kilo newton meter"):
2881                         [(m,1000.0),u"kN\xb7m",''],
2882                 _(u"mega newton meter"):
2883                         [(m,1000000.0),u"MN\xb7m",''],
2884                 _(u"milli newton meter"):
2885                         [(m,1.0e-3),u"mN\xb7m",''],
2886                 _(u"micro newton meter"):
2887                         [(m,1.0e-6),u"\xb5N\xb7m",''],
2888                 _(u"dyne centimeter"):
2889                         [(m,1.0e-7),u"dyne\xb7cm",''],
2890                 _(u"kilogram meter"):
2891                         [(m,9.80665),u"kg\xb7m",''],
2892                 _(u"centimeter gram"):
2893                         [(m,9.80665/100000.0),u"cm\xb7g",''],
2894                 _(u"kip"):
2895                         [(m,113.0),u"kip",_(u"One thousand inch pounds.")],
2896                 _(u"foot pounds"):
2897                         [(m,1356.0/1000.0),u"lbf\xb7ft",''],
2898                 _(u"foot ounce"):
2899                         [(m,1356.0/1000.0/16.0),u"oz\xb7ft",''],
2900                 _(u"meter kilopond"):
2901                         [(m,9.80665),u"mkp",''],
2902                 _(u"newton centimeter"):
2903                         [(m,.01),u"N\xb7cm",''],
2904                 _(u"inch ounces"):
2905                         [(m,113.0/16.0*.001),u"in\xb7oz",''],
2906                 _(u"inch pounds"):
2907                         [(m,113.0*.001),u"in\xb7lb",''],
2908                 _(u"foot poundal"):
2909                         [(m,1.0/23.7303605),u'',''],
2910         },
2911         _(u"Current Loop"):{".base_unit":"6400 to 32000",
2912                 _(u"6400 to 32000"):
2913                         [(m,1.0),u"counts",_(u"Many PLCs must scale the 4 to 20mA signal to an integer, this is commonly a value from 6400 to 32000,")],
2914                 _(u"4 to 20mA"):
2915                         [(m,1600.0),u"mA",_(u"This range of current is commonly used in instrumentation. 0mA is an indication of a broken transmitter loop.")],
2916                 _(u"V across 250 ohm"):
2917                         [(m,6400.0),u"V",_(u"A common resistance for current loop instrumentation is 250 ohms. A voltage will be developed across this resistor, that voltage can be used to test the current loop.")],
2918                 _(u"percent"):
2919                         [(gof,(((32000.0-6400.0)/100.0),6400.0)),u"%",_(u"This is a percentage of the 4 to 20mA signal.")],
2920         },
2921         
2922         _(u"Currency (UK)"):{".base_unit":"pound",
2923                 _(u"pound | quid | soverign"):
2924                         [(m,1.0),"","""The base monetary unit in UK."""],
2925                 _(u"soverign"):
2926                         [(m,1.0),"","""One pound."""],
2927                 _(u"quid"):
2928                         [(m,1.0),"","""One pound."""],
2929                 _(u"fiver"):
2930                         [(m,5*1.0),"","""Equal to five pounds."""],
2931                 _(u"tenner"):
2932                         [(m,10*1.0),"","""Equal to Ten pounds."""],
2933                 _(u"crown"):
2934                         [(m,5*1.0/20),"","""Equal to five shillings."""],
2935                 _(u"shilling"):
2936                         [(m,1.0/20),"","""Equal to one twentieth of a pound."""],
2937                 _(u"bob | shilling"):
2938                         [(m,1.0/20),"","""Equal to one twentieth of a pound."""],
2939                 _(u"penny | pence"):
2940                         [(m,1.0/100),"","""Equal to 1/100 of a pound."""],
2941                 _(u"penny | pence (old)"):
2942                         [(m,1.0/240),"","""Equal to 1/240 of a pound.  February 15, 1971 the English coinage system was changed to a decimal system and the old penny ceased to be legal tender August 31, 1971."""],
2943                 _(u"tuppence(old)"):
2944                         [(m,2*1.0/240),"","""Equal to two old pennies. February 15, 1971 the English coinage system was changed to a decimal system."""],
2945                 _(u"threepence (old)"):
2946                         [(m,3*1.0/240),"","""Equal to three old pence.  The threepence was demonitized August 31, 1971."""],    
2947                 _(u"halfpenny | hapenny (old)"):
2948                         [(m,1.0/240/2),"","""The old halfpenny was demonetized on August 31, 1969."""],
2949                 _(u"guinea"):
2950                         [(m,21*1.0/20),"","""While the term is still used, the coins are no longer in use.  Webster's Revised Unabridged Dictionary (1913) - A gold coin of England current for twenty-one shillings sterling, ... but not coined since the issue of sovereigns in 1817."""],
2951                 _(u"farthing"):
2952                         [(m,1.0/240/4),"",""""""],
2953                 _(u"florin (or two bob bit)"):
2954                         [(m,2*1.0/20),"",""""""],
2955                 _(u"half crown (old)"):
2956                         [(m,(2*1.0/20)+(6*1.0/240)),"",""" The half-crown was demonetized on 1st January 1970."""],
2957                 _(u"sixpence"):
2958                         [(m,6*1.0/240),"","""Equal to six old pence.  February 15, 1971 the English coinage system was changed to a decimal system ."""],
2959                 _(u"tanner | sixpence"):
2960                         [(m,6*1.0/240),"","""Equal to six old pence.  February 15, 1971 the English coinage system was changed to a decimal system ."""],
2961                 _(u"mark (old British mark)"):
2962                         [(m,160*1.0/240),"",""""""],
2963                 _(u"groat"):
2964                         [(m,4*1.0/240),"","""Equal to four old pence"""],
2965                 _(u"pony"):
2966                         [(m,25.0),"","""Equal to twenty five pounds sterling"""],       
2967
2968         },
2969
2970         }
2971
2972 future_dic = {
2973         
2974         
2975         
2976         _(u"Wire Gauge"):{".base_unit":"circular mils",
2977                 _(u"circular mil"):
2978                         [(m,1.0),u"CM",''],
2979                 _(u"square mil"):
2980                         [(m,1.0),u'',''],
2981                 _(u"square milimetres"):
2982                         [(m,1.0),u"mm\xb2",''],
2983                 _(u"AWG"):
2984                         [(m,1.0),"AWG",_(u"American Wire Gauge")],
2985                 _(u"Diameter mils"):
2986                         [(m,1.0),"mil",''],
2987                 _(u"Diameter inches"):
2988                         [(m,1.0),"in",''],
2989                 _(u"Diameter mm"):
2990                         [(m,1.0),"mm",''],
2991                 _(u"Diameter m"):
2992                         [(m,1.0),"m",''],
2993                 _(u"Ampacity Cu"):
2994                         [(m,1.0),"A",_(u"Copper wire ampacity")],
2995                 _(u"Ampacity Al"):
2996                         [(m,1.0),"A",_(u"Aluminum wire ampacity")],
2997                 _(u"Resistance of Cu wire at xxdegC"):
2998                         [(m,1.0),"ohms/kft",_(u"Copper wire resistance.")],
2999                 _(u"Resistance of Cu wire at xxdegC"):
3000                         [(m,1.0),"ohms/ft",_(u"Copper wire resistance.")],
3001                 _(u"Resistance of Cu wire at xxdegC"):
3002                         [(m,1.0),"ohms/m",_(u"Copper wire resistance.")],
3003                 _(u"Resistance of Cu wire at xxdegC"):
3004                         [(m,1.0),"ohms/km",_(u"Copper wire resistance.")],
3005                 _(u"Resistance of Al wire at xxdegC"):
3006                         [(m,1.0),"ohms/kft",_(u"Copper wire resistance.")],
3007                 _(u"Resistance of Al wire at xxdegC"):
3008                         [(m,1.0),"ohms/ft",_(u"Copper wire resistance.")],
3009                 _(u"Resistance of Al wire at xxdegC"):
3010                         [(m,1.0),"ohms/m",_(u"Copper wire resistance.")],
3011                 _(u"Resistance of Al wire at xxdegC"):
3012                         [(m,1.0),"ohms/km",_(u"Copper wire resistance.")],
3013                 _(u"Length per Weight Cu Wire"):
3014                         [(m,1.0),"ft/lb (Cu)",_(u"Length per weight Copper Wire.")],
3015                 _(u"Length per Weight Al Wire"):
3016                         [(m,1.0),"ft/lb (Al)",_(u"Length per weight Aluminum Wire.")],
3017                 _(u"Length per resistance Cu Wire"):
3018                         [(m,1.0),"ft/ohm (Cu)",_(u"Length per resistance Copper Wire.")],
3019                 _(u"Length per resistance Al Wire"):
3020                         [(m,1.0),"ft/ohm (Al)",_(u"Length per resistance Aluminum Wire.")],
3021                 _(u"Weight Cu wire"):
3022                         [(m,1.0),"kg/km (Cu)",_(u"Copper wire weight.")],
3023                 _(u"Weight Al wire"):
3024                         [(m,1.0),"kg/km (Al)",_(u"Aluminum wire weight.")],
3025                 _(u"Weight Cu wire"):
3026                         [(m,1.0),"lb/kft (Cu)",_(u"Copper wire weight in pounds per 1000 feet.")],
3027                 _(u"Weight Al wire"):
3028                         [(m,1.0),"lb/kft (Al)",_(u"Aluminum wire weight in pounds per 1000 feet.")],
3029                 _(u"Tensile strength"):
3030                         [(m,1.0),"kgf",_(u"Aluminum wire weight.")],
3031                 _(u"Turns per inch"):
3032                         [(m,1.0),"TPI",_(u"Turns per inch of bare wire, useful for winding coils. This value is approximate and will be reduced with insulated wire")],
3033         },}
3034
3035         
3036 list_items = []
3037
3038 keys=list_dic.keys()
3039 keys.sort()
3040
3041 #insert a column into the units list even though the heading will not be seen
3042 renderer = gtk.CellRendererText()
3043 column1 = gtk.TreeViewColumn( _('Unit Name'), renderer )
3044 column1.set_property( 'resizable', 1 )
3045 column1.add_attribute( renderer, 'text', 0 )
3046 column1.set_clickable(True)
3047 column1.connect("clicked",click_column)
3048 clist1.append_column( column1 )
3049
3050 column2 = gtk.TreeViewColumn( _('Value'), renderer )
3051 column2.set_property( 'resizable', 1 )
3052 column2.add_attribute( renderer, 'text', 1 )
3053 column2.set_clickable(True)
3054 column2.connect("clicked",click_column)
3055 clist1.append_column( column2 )
3056
3057 column3 = gtk.TreeViewColumn( _('Units'), renderer )
3058 column3.set_property( 'resizable', 1 )
3059 column3.add_attribute( renderer, 'text', 2 )
3060 column3.set_clickable(True)
3061 column3.connect("clicked",click_column)
3062 clist1.append_column( column3 )
3063
3064 #Insert a column into the category list even though the heading will not be seen
3065 renderer = gtk.CellRendererText()
3066 col = gtk.TreeViewColumn( 'Title', renderer )
3067 col.set_property( 'resizable', 1 )
3068 col.add_attribute( renderer, 'text', 0 )
3069 cat_clist.append_column( col )
3070
3071 cat_model = gtk.ListStore(gobject.TYPE_STRING)
3072 cat_clist.set_model(cat_model)
3073 #colourize each row differently for easier reading
3074 cat_clist.set_property( 'rules_hint',1)
3075
3076 #Populate the catagories list
3077 for key in keys:
3078   iter = cat_model.append()
3079   cat_model.set(iter,0,key)
3080
3081 if os.path.exists(home+'/.gonvert/bookmarks.dat'):
3082         bookmarks=pickle.load(open(home+'/.gonvert/bookmarks.dat'))
3083         print bookmarks
3084
3085 ToolTips=gtk.Tooltips()
3086 find_button  = widgets.get_widget('find_button')
3087 ToolTips.set_tip(find_button,_(u'Find unit (F6)'))
3088
3089 #Restore selections from previously saved settings if it exists and is valid.
3090 historical_catergory_found=False
3091 if os.path.exists(home+'/.gonvert/selections.dat'):
3092   #Retrieving previous selections from ~/.gonvert/selections.dat
3093   selections=pickle.load(open(home+'/.gonvert/selections.dat','r'))
3094   #Restoring previous selections.
3095   #
3096   #Make a list of categories to determine which one to select
3097   categories=list_dic.keys()
3098   categories.sort()
3099   #
3100   #If the 'selected_unts' has been stored, then extract selected_units from selections.
3101   if selections.has_key('selected_units'):
3102     selected_units=selections['selected_units']
3103   #Make sure that the 'selected_category' has been stored.
3104   if selections.has_key('selected_category'):
3105     #Match an available category to the previously selected category.
3106     for counter in range(len(categories)):
3107       if selections['selected_category']==categories[counter]:
3108         # Restore the previously selected category.
3109         cat_clist.set_cursor(counter, col, False )
3110         cat_clist.grab_focus()
3111         historical_catergory_found=True
3112   
3113 if not historical_catergory_found:
3114   print "Couldn't find saved category, using default."
3115   #If historical records were not kept then default to 
3116   # put the focus on the first category
3117   cat_clist.set_cursor(0, col, False )
3118   cat_clist.grab_focus()
3119
3120 restore_units()
3121
3122
3123 gtk.main()
3124