--- cdli/cdli_files.py 2006/12/22 20:35:33 1.55
+++ cdli/cdli_files.py 2007/01/08 14:36:28 1.56
@@ -1936,17 +1936,19 @@ class CDLIRoot(Folder):
"""get the index for debug purposes"""
print "show"
for x in self.lineIndex.iterkeys():
- print "word:",x
- for y in self.lineIndex[x].iterkeys():
- print "doc",y,self.lineIndex[x][y]
+ print "word:",repr(x)
+ #for y in self.lineIndex[x].iterkeys():
+ # print "doc",repr(y),repr(self.lineIndex[x][y])
return self.lineIndex
def searchInLineIndexDocs(self,word,uniq=True):
"""search occurences"""
-
- lst=list(self.lineIndex.get(word.upper()).keys())
+ try:
+ lst=list(self.lineIndex.get(word).keys())
+ except:
+ lst=[]
if uniq:
return unique(lst)
else:
@@ -1954,7 +1956,8 @@ class CDLIRoot(Folder):
def getLinesFromIndex(self,word,doc):
"""get lines"""
- return self.lineIndex[word][doc]
+
+ return self.lineIndex.get(word)[doc]
def cleanInLineIndex(self):
"""delete InlineIndex"""
@@ -2000,18 +2003,69 @@ class CDLIRoot(Folder):
return f[0].getObject().getLastVersionFormattedData()
- def showLineFromFile(self,fileId,lineNum):
+ def showLineFromFile(self,fileId,lineNum,word):
"""get line lineNum fromFileId"""
file=self.showFile(fileId)
- str="^%s\.(.*)"%lineNum
-
- m=re.search(str,file,flags=re.M)
- if m:
- return m.group(1)
- else:
- return ""
+ #str="^%s\.[^%s\.]*%s[^\n]*\n"%(lineNum,lineNum,word)
+ #str="^%s\..*?%s[^\n]*\n"%(lineNum,word)
+
+ #print str
+ #m=re.search(str,file,flags=re.M|re.DOTALL)
+ #if m:
+ # return m.group()
+ #else:
+ # return ""
+ #ret=lineNum+"."
+ #splitted=file.split(lineNum+".")
+ #if len(splitted)>1:
+ #for part in splitted[1:]:
+ #if part.find(word)>-1:
+ # for x in part.split("\n"):
+ #ret+=x
+ #if x.find(word)>-1:
+ #break
+ #break;
+ #return ret
+
+ def showWordInFile(self,fileId,word,lineList=None):
+ """get lines with word fromFileId"""
+ file=self.showFile(fileId)
+
+ ret=[]
+ for line in file.split("\n"):
+ if line.find(word)>-1:
+ if lineList: #liste of moeglichen Zeilennummern
+ num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile
+
+ if num in lineList:
+
+ ret.append(line)
+ else: # nimm alles ohne line check
+ ret.append(line)
+ return ret
+
+ def tagWordInFile(self,fileId,word,lineList=None):
+ """get lines with word fromFileId"""
+
+ file=self.showFile(fileId)
+ tagStr="""%s"""
+ ret=[]
+ for line in file.split("\n"):
+ if line.find(word)>-1:
+ if lineList: #liste of moeglichen Zeilennummern
+ num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile
+
+ if num in lineList:
+
+ ret.append(line.replace(word,tagStr%word))
+ else: # nimm alles ohne line check
+ ret.append(line.replace(word,tagStr%word))
+ else:
+ ret.append(line)
+ return "
\n".join(ret)
+
def URLquote(self,str):
"""quote url"""
return urllib.quote(str)