"""
------ section 1 ------
"""
def andResult (flagOne,setOne, flagTwo,setTwo):
"""
Intersection of setOne and setTwo.
Returns newList.
setOne has a 0 index
and setTwo non zero.
"""
#print '\nsetOne', setOne, 'setTwo', setTwo
newList = []
# check for nothing in setOne
if len (setOne) == 0 and flagOne:
for item in setTwo:
newList.append (item)
return newList
if len (setTwo) == 0 and flagTwo:
for item in setOne:
newList.append (item)
return newList
# setOne has the same tag as setTwo
# move the setTwo entry into setNew
# ie. replace it
for i,j in setOne:
for k, l in setTwo:
if i == k:
newList.append ((k,l))
return newList
"""
pull selected information - greater than, less than, equal to, not equal to.
values must be sorted on input.
return a set of those that meet criteria in grabBag.
"""
from bisect import bisect_left, bisect_right
# get top or bottom of stack for a particular attribute
# select higher (greater) than attributes
# actually bottom of list
def greaterThan (values, cutOffValue):
# strip off names in order to bisect
i = 0
length = len (values)
temp = []
while i < length:
temp.append (values [i] [0])
i += 1
cutOffPoint = bisect_right (temp, cutOffValue)
#print "GT cut off point ", cutOffPoint, "cut off value ", cutOffValue, "length ", length,
# now grab names for which attributes pass
grabBag = set ()
while cutOffPoint < length:
grabBag.add (values [cutOffPoint] [1])
cutOffPoint += 1
return (grabBag)
# select lower (less) than attributes
# actually top ones in list
def lessThan (values, cutOffValue):
# strip off names in order to bisect
i = 0
length = len (values)
temp = []
while i < length:
temp.append (values [i] [0])
i += 1
#print 'temp ', temp
cutOffPoint = bisect_left (temp, cutOffValue)
#print "LT cut off point ", cutOffPoint, "cut off value ", cutOffValue, "length ", length
# now grab names for which attributes pass
# need to pick only second part of tuple
grabBag = set ()
i = 0
while i < cutOffPoint:
grabBag.add (values [i] [1])
i += 1
return (grabBag)
# equalTo names with this attribute
# degenerate version of greaterThan
# values does not need to be sorted on input
def equalIn (values, acceptedValue):
grabBag = set ()
i = 0
length = len (values)
while i < length:
if values [i] [0] == acceptedValue:
grabBag.add (values [i] [1])
i += 1
return (grabBag)
# like eaualIn but not.
def notEqualIn (values, acceptedValue):
grabBag = set ()
i = 0
length = len (values)
while i < length:
if values [i] [0] != acceptedValue:
grabBag.add (values [i] [1])
i += 1
return (grabBag)
# get list of values that have "accetedValue" in.
# values does not need to be sorted on input.
# matches on any sub string.
def strIn (values, acceptedValue):
grabBag = set ()
i = 0
length = len (values)
while i < length:
if acceptedValue in values [i] [0]:
grabBag.add (values [i] [1])
i += 1
return (grabBag)
# like strIn but not.
def notStrIn (values, acceptedValue):
grabBag = set ()
i = 0
length = len (values)
while i < length:
if acceptedValue not in values [i] [0]:
grabBag.add (values [i] [1])
i += 1
return (grabBag)
# get list of values that have "acceptedValue" in.
# values does not need to be sorted on input but
# needs to be match on a whole word
def wordIn (values, acceptedValue):
grabBag = set ()
i = 0
length = len (values) - 1
while i < length:
i += 1
print 'values, acceptedValue', values [i] [0], acceptedValue
if values [i] [0] == acceptedValue:
grabBag.add (values [i] [1])
continue
temp = values [i] [0].replace ('-',' ').split ()
for item in temp:
if item == acceptedValue:
grabBag.add (values [i] [1])
break
return (grabBag)
# like wordIn but not.
def notWordIn (values, acceptedValue):
grabBag = set ()
i = -1
length = len (values) - 1
while i < length:
i += 1
# check for the whole thing
if acceptedValue == values [i] [0]:
continue
# check included words
temp = values [i] [0].replace ('-',' ').split ()
if acceptedValue in temp:
continue
grabBag.add (values [i] [1])
return (grabBag)
def selectTags (first, result, choice, feature, tag, inFlag):
"""
Set up calls to greaterThan, lessThan...
routines.
"""
names = set ()
if choice == 'greater than':
names = greaterThan (feature, tag)
elif choice == 'equal':
if inFlag == 0:
# look for feature equal
names = equalIn (feature, tag)
elif inFlag == 1:
# look for string "in" (substring)
names = strIn (feature, tag)
elif inFlag == 2:
# look for word in
names = wordIn (feature, tag)
elif choice == 'not equal':
if inFlag == 0:
# look for feature not equal
names = notEqualIn (feature, tag)
elif inFlag == 1:
# look for feature "not in" (substring)
names = notStrIn (feature, tag)
elif inFlag == 2:
# look for word not in
names = notWordIn (feature, tag)
elif choice == 'less than':
names = lessThan (feature, tag)
if first:
first = False
result = names
else:
result = result & names
return first, result
"""
------ section 2 ------
"""
def clear (request):
"""
clear choice and selection variables for user screen
"""
from django.shortcuts import render_to_response
import datetime
choice = []
selection = []
outList = []
# preset choice, selection
for i in range (21):
choice.append ('')
selection.append ('')
date = datetime.datetime.now ()
return render_to_response ("homePage.html", {'date': date, 'choice': choice, 'selection': selection, 'outList': outList})
def main (request):
from django.shortcuts import render_to_response
import datetime
from dataHandler import fromHardness,fromPercent,fromPli,fromPsi,fromRatio,fromSeconds, \
fromViscosity,toFloat,toHardness,toPercent,toPli,toPsi, \
toInt,toRatio,toSeconds,toViscosity
mainDict = {} # main dictionaly - used as data base
# feature accumulators
nameS = []
madeByS = []
websiteS = []
classS = []
polymerS = []
typeS = []
mixRatioS = []
potLifeS = []
demoldTimeS = []
sizeS = []
weightS = []
priceS = []
viscosityS = []
hardnessS = []
specificVolumeS = []
colorS = []
shrinkageS = []
elongationS = []
tearStrengthS = []
compStrengthS = []
tensileStrengthS = []
# read back data from datastore
try:
# has main dictionary been loaded?
if md:
pass
except:
md = open ('C:/polymers/data/mainDict.txt')
mainDict = eval (md.read())
# flag and bucket for first filter results
first = True
flag0 = True
result = set ()
choice = []
selection = []
# preset choice, selection
for i in range (21):
choice.append ('')
selection.append ('')
# note that inFlag is set True when you may want to find a substring
# within a feature description.
# name 0
if 'nameCmp' in request.GET and request.GET ['nameCmp'] != 'any':
choice [0] = request.GET ['nameCmp']
try:
# has this feature been loaded?
if f0:
pass
except:
# no? load it now.
f0 = open ('C:/polymers/data/nameIndex.txt')
temp = f0.read ()
nameS = eval (temp)
# check for wants min and max (question mark)
if choice [0] == '?':
tempMin = min (nameS) [0]
tempMax = max (nameS) [0]
selection [0] = ('%s - %s' % (tempMin, \
tempMax))
elif 'name' in request.GET:
name_ = request.GET ['name']
selection [0] = name_
name_ = name_.lower ()
if name_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[0], \
nameS,name_,inFlag)
# madeBy 1
if 'madeByCmp' in request.GET and request.GET ['madeByCmp'] != 'any':
choice [1] = request.GET ['madeByCmp']
try:
# has this feature been loaded?
if f1:
pass
except:
# no? load it now.
f1 = open ('C:/polymers/data/madeByIndex.txt')
temp = f1.read ()
madeByS = eval (temp)
# check for wants min and max (question mark)
if choice [1] == '?':
tempMin = min (madeByS) [0]
tempMax = max (madeByS) [0]
selection [1] = ('%s - %s' % (tempMin, \
tempMax))
elif 'madeBy' in request.GET:
madeBy_ = request.GET ['madeBy']
selection [1] = madeBy_
madeBy_ = madeBy_.lower ()
if madeBy_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[1], \
madeByS,madeBy_,inFlag)
# website 2
if 'websiteCmp' in request.GET and request.GET ['websiteCmp'] != 'any':
choice [2] = request.GET ['websiteCmp']
try:
# has this feature been loaded?
if f2:
pass
except:
# no? load it now.
f2 = open ('C:/polymers/data/websiteIndex.txt')
temp = f2.read ()
websiteS = eval (temp)
# check for wants min and max (question mark)
if choice [2] == '?':
tempMin = min (websiteS) [0]
tempMax = max (websiteS) [0]
selection [2] = ('%s - %s' % (tempMin, \
tempMax))
elif 'website' in request.GET:
website_ = request.GET ['website']
selection [2] = website_
# convert to lower - shouldn't get here!
website_ = website_.lower ()
if website_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[2], \
websiteS,website_,inFlag)
# class 3
if 'classCmp' in request.GET and request.GET ['classCmp'] != 'any':
choice [3] = request.GET ['classCmp']
try:
# has this feature been loaded?
if f3:
pass
except:
# no? load it now.
f3 = open ('C:/polymers/data/classIndex.txt')
temp = f3.read ()
classS = eval (temp)
# check for wants min and max (question mark)
if choice [3] == '?':
tempMin = min (classS) [0]
tempMax = max (classS) [0]
selection [3] = ('%s - %s' % (tempMin, \
tempMax))
elif 'class' in request.GET:
class_ = request.GET ['class']
selection [3] = class_
class_ = class_.lower ()
if class_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[3], \
classS,class_,inFlag)
# polymer 4
if 'polymerCmp' in request.GET and request.GET ['polymerCmp'] != 'any':
choice [4] = request.GET ['polymerCmp']
try:
# has this feature been loaded?
if f4:
pass
except:
# no? load it now.
f4 = open ('C:/polymers/data/polymerIndex.txt')
temp = f4.read ()
polymerS = eval (temp)
# check for wants min and max (question mark)
if choice [4] == '?':
tempMin = min (polymerS) [0]
tempMax = max (polymerS) [0]
selection [4] = ('%s - %s' % (tempMin, \
tempMax))
elif 'polymer' in request.GET:
polymer_ = request.GET ['polymer']
selection [4] = polymer_
polymer_ = polymer_.lower ()
if polymer_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[4], \
polymerS,polymer_,inFlag)
# type 5
if 'typeCmp' in request.GET and request.GET ['typeCmp'] != 'any':
choice [5] = request.GET ['typeCmp']
try:
# has this feature been loaded?
if f5:
pass
except:
# no? load it now.
f5 = open ('C:/polymers/data/typeIndex.txt')
temp = f5.read ()
typeS = eval (temp)
# check for wants min and max (question mark)
if choice [5] == '?':
tempMin = min (typeS) [0]
tempMax = max (typeS) [0]
selection [5] = ('%s - %s' % (tempMin, \
tempMax))
elif 'type' in request.GET:
type_ = request.GET ['type']
selection [5] = type_
type_ = type_.lower ()
if type_ != 0:
inFlag = 2
# get tags that meet criterion
first, result = selectTags (first,result,choice[5], \
typeS,type_,inFlag)
# mixRatio 6
if 'mixRatioCmp' in request.GET and request.GET ['mixRatioCmp'] != 'any':
choice [6] = request.GET ['mixRatioCmp']
try:
# has this feature been loaded?
if f6:
pass
except:
# no? load it now.
f6 = open ('C:/polymers/data/mixRatioIndex.txt')
temp = f6.read ()
mixRatioS = eval (temp)
# check for wants min and max (question mark)
if choice [6] == '?':
tempMin = min (mixRatioS) [0]
tempMax = max (mixRatioS) [0]
tempMin = fromRatio (tempMin)
tempMax = fromRatio (tempMax)
selection [6] = ('%s - %s' % (tempMin, \
tempMax))
elif 'mixRatio' in request.GET:
mixRatio_ = request.GET ['mixRatio']
selection [6] = mixRatio_
mixRatio_ = toRatio (mixRatio_)
if mixRatio_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[6], \
mixRatioS,mixRatio_,inFlag)
# potLife 7
if 'potLifeCmp' in request.GET and request.GET ['potLifeCmp'] != 'any':
choice [7] = request.GET ['potLifeCmp']
try:
# has this feature been loaded?
if f7:
pass
except:
# no? load it now.
f7 = open ('C:/polymers/data/potLifeIndex.txt')
temp = f7.read ()
potLifeS = eval (temp)
# check for wants min and max (question mark)
if choice [7] == '?':
tempMin = min (potLifeS) [0]
tempMax = max (potLifeS) [0]
tempMin = fromSeconds (tempMin)
tempMax = fromSeconds (tempMax)
selection [7] = ('%s - %s' % (tempMin, \
tempMax))
elif 'potLife' in request.GET:
potLife_ = request.GET ['potLife']
selection [7] = potLife_
# convert to seconds
potLife_ = toSeconds (potLife_)
if potLife_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[7], \
potLifeS,potLife_,inFlag)
# demoldTime 8
if 'demoldTimeCmp' in request.GET and request.GET ['demoldTimeCmp'] != 'any':
choice [8] = request.GET ['demoldTimeCmp']
try:
# has this feature been loaded?
if f8:
pass
except:
# no? load it now.
f8 = open ('C:/polymers/data/demoldTimeIndex.txt')
temp = f8.read ()
demoldTimeS = eval (temp)
# check for wants min and max (question mark)
if choice [8] == '?':
tempMin = min (demoldTimeS) [0]
tempMax = max (demoldTimeS) [0]
tempMin = fromSeconds (tempMin)
tempMax = fromSeconds (tempMax)
selection [8] = ('%s - %s' % (tempMin, \
tempMax))
elif 'demoldTime' in request.GET:
demoldTime_ = request.GET ['demoldTime']
selection [8] = demoldTime_
# convert to seconds
demoldTime_ = toSeconds (demoldTime_)
if demoldTime_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[8], \
demoldTimeS,demoldTime_,inFlag)
# size 9
if 'sizeCmp' in request.GET and request.GET ['sizeCmp'] != 'any':
choice [9] = request.GET ['sizeCmp']
try:
# has this feature been loaded?
if f9:
pass
except:
# no? load it now.
f9 = open ('C:/polymers/data/sizeIndex.txt')
temp = f9.read ()
sizeS = eval (temp)
# check for wants min and max (question mark)
if choice [9] == '?':
tempMin = min (sizeS) [0]
tempMax = max (sizeS) [0]
selection [9] = ('%s - %s' % (tempMin, \
tempMax))
elif 'size' in request.GET:
size_ = request.GET ['size']
selection [9] = size_
size_ = size_.lower ()
if size_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[9], \
sizeS,size_,inFlag)
# weight 10
if 'weightCmp' in request.GET and request.GET ['weightCmp'] != 'any':
choice [10] = request.GET ['weightCmp']
try:
# has this feature been loaded?
if f10:
pass
except:
# no? load it now.
f10 = open ('C:/polymers/data/weightIndex.txt')
temp = f10.read ()
weightS = eval (temp)
# check for wants min and max (question mark)
if choice [10] == '?':
tempMin = min (weightS) [0]
tempMax = max (weightS) [0]
selection [10] = ('%s - %s' % (tempMin, \
tempMax))
elif 'weight' in request.GET:
weight_ = request.GET ['weight']
selection [10] = weight_
# convert to float
weight_ = toFloat (weight_)
if weight_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[10], \
weightS,weight_,inFlag)
# price 11
if 'priceCmp' in request.GET and request.GET ['priceCmp'] != 'any':
choice [11] = request.GET ['priceCmp']
try:
# has this feature been loaded?
if f11:
pass
except:
# no? load it now.
f11 = open ('C:/polymers/data/priceIndex.txt')
temp = f11.read ()
priceS = eval (temp)
# check for wants min and max (question mark)
if choice [11] == '?':
tempMin = min (priceS) [0]
tempMax = max (priceS) [0]
selection [11] = ('%s - %s' % (tempMin, \
tempMax))
elif 'price' in request.GET:
price_ = request.GET ['price']
selection [11] = price_
# convert to float
price_ = toFloat (price_)
if price_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[11], \
priceS,price_,inFlag)
# viscosity 12
if 'viscosityCmp' in request.GET and request.GET ['viscosityCmp'] != 'any':
choice [12] = request.GET ['viscosityCmp']
try:
# has this feature been loaded?
if f12:
pass
except:
# no? load it now.
f12 = open ('C:/polymers/data/viscosityIndex.txt')
temp = f12.read ()
viscosityS = eval (temp)
# check for wants min and max (question mark)
if choice [12] == '?':
tempMin = min (viscosityS) [0]
tempMax = max (viscosityS) [0]
tempMin = fromViscosity (tempMin)
tempMax = fromViscosity (tempMax)
selection [12] = ('%s - %s' % (tempMin, \
tempMax))
elif 'viscosity' in request.GET:
viscosity_ = request.GET ['viscosity']
selection [12] = viscosity_
viscosity_ = toViscosity (viscosity_)
if viscosity_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[12], \
viscosityS,viscosity_,inFlag)
# hardness 13
if 'hardnessCmp' in request.GET and request.GET ['hardnessCmp'] != 'any':
choice [13] = request.GET ['hardnessCmp']
try:
# has this feature been loaded?
if f13:
pass
except:
# no? load it now.
f13 = open ('C:/polymers/data/hardnessIndex.txt')
temp = f13.read ()
hardnessS = eval (temp)
# check for wants min and max (question mark)
if choice [13] == '?':
tempMin = min (hardnessS) [0]
tempMax = max (hardnessS) [0]
tempMin = fromHardness (tempMin)
tempMax = fromHardness (tempMax)
selection [13] = ('%s - %s' % (tempMin, \
tempMax))
elif 'hardness' in request.GET:
hardness_ = request.GET ['hardness']
selection [13] = hardness_
# convert to hardness
hardness_ = toHardness (hardness_)
if hardness_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[13], \
hardnessS,hardness_,inFlag)
# specificVolume 14
if 'specificVolumeCmp' in request.GET and request.GET ['specificVolumeCmp'] != 'any':
choice [14] = request.GET ['specificVolumeCmp']
try:
# has this feature been loaded?
if f14:
pass
except:
# no? load it now.
f14 = open ('C:/polymers/data/specificVolumeIndex.txt')
temp = f14.read ()
specificVolumeS = eval (temp)
# check for wants min and max (question mark)
if choice [14] == '?':
tempMin = min (specificVolumeS) [0]
tempMax = max (specificVolumeS) [0]
selection [14] = ('%s - %s' % (tempMin, \
tempMax))
elif 'specificVolume' in request.GET:
specificVolume_ = request.GET ['specificVolume']
selection [14] = specificVolume_
# convert to float
specificVolume_ = toFloat (specificVolume_)
if specificVolume_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[14], \
specificVolumeS,specificVolume_,inFlag)
# color 15
if 'colorCmp' in request.GET and request.GET ['colorCmp'] != 'any':
choice [15] = request.GET ['colorCmp']
try:
# has this feature been loaded?
if f15:
pass
except:
# no? load it now.
f15 = open ('C:/polymers/data/colorIndex.txt')
temp = f15.read ()
colorS = eval (temp)
# check for wants min and max (question mark)
if choice [15] == '?':
tempMin = min (colorS) [0]
tempMax = max (colorS) [0]
selection [15] = ('%s - %s' % (tempMin, \
tempMax))
elif 'color' in request.GET:
color_ = request.GET ['color']
selection [15] = color_
color_ = color_.lower ()
if color_ != 0:
inFlag = 1
# get tags that meet criterion
first, result = selectTags (first,result,choice[15], \
colorS,color_,inFlag)
# shrinkage 16
if 'shrinkageCmp' in request.GET and request.GET ['shrinkageCmp'] != 'any':
choice [16] = request.GET ['shrinkageCmp']
try:
# has this feature been loaded?
if f16:
pass
except:
# no? load it now.
f16 = open ('C:/polymers/data/shrinkageIndex.txt')
temp = f16.read ()
shrinkageS = eval (temp)
# check for wants min and max (question mark)
if choice [16] == '?':
tempMin = min (shrinkageS) [0]
tempMax = max (shrinkageS) [0]
selection [16] = ('%s - %s' % (tempMin, \
tempMax))
elif 'shrinkage' in request.GET:
shrinkage_ = request.GET ['shrinkage']
selection [16] = shrinkage_
# convert to float
shrinkage_ = toFloat (shrinkage_)
if shrinkage_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[16], \
shrinkageS,shrinkage_,inFlag)
# elongation 17
if 'elongationCmp' in request.GET and request.GET ['elongationCmp'] != 'any':
choice [17] = request.GET ['elongationCmp']
try:
# has this feature been loaded?
if f17:
pass
except:
# no? load it now.
f17 = open ('C:/polymers/data/elongationIndex.txt')
temp = f17.read ()
elongationS = eval (temp)
# check for wants min and max (question mark)
if choice [17] == '?':
tempMin = min (elongationS) [0]
tempMax = max (elongationS) [0]
tempMin = fromPercent (tempMin)
tempMax = fromPercent (tempMax)
selection [17] = ('%s - %s' % (tempMin, \
tempMax))
elif 'elongation' in request.GET:
elongation_ = request.GET ['elongation']
selection [17] = elongation_
# convert to percent
elongation_ = toPercent (elongation_)
if elongation_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[17], \
elongationS,elongation_,inFlag)
# tearStrength 18
if 'tearStrengthCmp' in request.GET and request.GET ['tearStrengthCmp'] != 'any':
choice [18] = request.GET ['tearStrengthCmp']
try:
# has this feature been loaded?
if f18:
pass
except:
# no? load it now.
f18 = open ('C:/polymers/data/tearStrengthIndex.txt')
temp = f18.read ()
tearStrengthS = eval (temp)
# check for wants min and max (question mark)
if choice [18] == '?':
tempMin = min (tearStrengthS) [0]
tempMax = max (tearStrengthS) [0]
tempMin = fromPli (tempMin)
tempMax = fromPli (tempMax)
selection [18] = ('%s - %s' % (tempMin, \
tempMax))
elif 'tearStrength' in request.GET:
tearStrength_ = request.GET ['tearStrength']
selection [18] = tearStrength_
# convert to lower - shouldn't get here!
tearStrength_ = tearStrength_.lower ()
if tearStrength_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[18], \
tearStrengthS,tearStrength_,inFlag)
# compStrength 19
if 'compStrengthCmp' in request.GET and request.GET ['compStrengthCmp'] != 'any':
choice [19] = request.GET ['compStrengthCmp']
try:
# has this feature been loaded?
if f19:
pass
except:
# no? load it now.
f19 = open ('C:/polymers/data/compStrengthIndex.txt')
temp = f19.read ()
compStrengthS = eval (temp)
# check for wants min and max (question mark)
if choice [19] == '?':
tempMin = min (compStrengthS) [0]
tempMax = max (compStrengthS) [0]
tempMin = fromPsi (tempMin)
tempMax = fromPsi (tempMax)
selection [19] = ('%s - %s' % (tempMin, \
tempMax))
elif 'compStrength' in request.GET:
compStrength_ = request.GET ['compStrength']
selection [19] = compStrength_
# convert to int
compStrength_ = toPsi (compStrength_)
if compStrength_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[19], \
compStrengthS,compStrength_,inFlag)
# tensileStrength 20
if 'tensileStrengthCmp' in request.GET and request.GET ['tensileStrengthCmp'] != 'any':
choice [20] = request.GET ['tensileStrengthCmp']
try:
# has this feature been loaded?
if f20:
pass
except:
# no? load it now.
f20 = open ('C:/polymers/data/tensileStrengthIndex.txt')
temp = f20.read ()
tensileStrengthS = eval (temp)
# check for wants min and max (question mark)
if choice [20] == '?':
tempMin = min (tensileStrengthS) [0]
tempMax = max (tensileStrengthS) [0]
tempMin = fromPsi (tempMin)
tempMax = fromPsi (tempMax)
selection [20] = ('%s - %s' % (tempMin, \
tempMax))
elif 'tensileStrength' in request.GET:
tensileStrength_ = request.GET ['tensileStrength']
selection [20] = tensileStrength_
# convert to int
tensileStrength_ = toPsi (tensileStrength_)
if tensileStrength_ != 0:
inFlag = 0
# get tags that meet criterion
first, result = selectTags (first,result,choice[20], \
tensileStrengthS,tensileStrength_,inFlag)
"""
------ section 3 ------
"""
# move result (a set) to a list
listResult = list (result)
# sort list result
listResult.sort ()
# set up output lists
outList = []
for name in listResult:
outList.append (mainDict [name])
"""
print 'outList \n'
print outList
"""
date = datetime.datetime.now ()
return render_to_response ("homePage.html", {'date': date, 'choice': choice, 'selection': selection,
'outList': outList })