changeset 1:1f2760ed3efe

indices geloescht
author dwinter
date Wed, 30 Jan 2013 11:47:21 +0100
parents bca61e893fcc
children ddf6c1a27a4b
files MPIWGRoot.py MPIWGRoot_deleted_methods.py
diffstat 2 files changed, 195 insertions(+), 221 deletions(-) [+]
line wrap: on
line diff
--- a/MPIWGRoot.py	Thu Jan 10 17:52:13 2013 +0100
+++ b/MPIWGRoot.py	Wed Jan 30 11:47:21 2013 +0100
@@ -82,206 +82,9 @@
         #{'label':'Store Historical Persons','action':'storeHistoricalPersons'},
         )
     
-
-    def getHarvestCachePort(self):
-        return getattr(self,"harvestPort",29999)
-    
-    def getHarvestCacheServer(self):
-        return getattr(self,"harvestServer","localhost")
    
-    
-    def getHarvestCache(self):
-        logging.debug("CACHE:"+repr(self._v_harvestCache))
-        if self._v_harvestCache==None:
-             #storage = FileStorage.FileStorage('/tmp/'+self.getId()+'test-filestorage.fs')
-             addr = self.getHarvestCacheServer(), self.getHarvestCachePort()
-             storage = ClientStorage.ClientStorage(addr)
-             db = DB(storage)
-             self._v_harvestDV=db
-             self._v_harvestDV=db
-             conn = db.open()
-             dbroot = conn.root()
-             if not dbroot.has_key('templates'):
-                 from BTrees.OOBTree import OOBTree
-                 dbroot['templates'] = OOBTree()
-                 
-             self._v_harvestCache = dbroot['templates']
-        logging.debug("CACHE2:"+repr(self._v_harvestCache))            
-        return self._v_harvestCache
-    
-    
-    
-    def __del__(self):
-         if self._v_harvestCache!=None:
-             self._v_harvestDV.close();
              
-    def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True):
-        """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte
-        alle Tags werden entfernt, die Fundstellen werden mit <span class="found">XX</span> getaggt, die Umgebungen werden 
-        case insensitive gesucht
-        @param wordStr: string mit Worten getrennt durch Leerzeichen, Phrasen sind mit " gekennzeichnet
-                        "eine phrase", "*"  bezeichnet wildcards und wird ignoriert"
-        @param length: optional, default wert 100, 2*length ist die groesse der Umgebung
-        @param tagging: optional default wert true, kein span tag wird erzweugt falls tag=false
-        """
-        
-        ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird
-        ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt
-        
-        wordStr=wordStr.lstrip().rstrip()
-        
-        def isInRanges(nr,length):
-            """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck, 
-            -1, wenn kein Treffer
-            
-            @param nr: Position die geprueft werden soll
-            @param length: Laenge des Wortes das geprueft werden soll
-            """
-            for x in ranges:
-                if (x[0]<=nr) and (nr < (x[1]-length)):
-                    return ranges.index(x)
-            return -1
-                
-        # deal with phrases, in Phrasen werden die Leerzeichen durch "_" ersetzt.
-        def rep_empty(str):
-            x= re.sub(" ","_",str.group(0))
-            return re.sub("\"","",x)
-            
-        wordStr=re.sub("\".*?\"", rep_empty,wordStr)#ersetze leerzeichen in " " durch "_" und loesche "
-        
-        #deal with wildcards, for our purposes it is enough to delete the wildcard 
-        wordStr=wordStr.replace("*","")
-        
-        words=wordStr.split(" ")
-        #if not words is ListType:
-        #   words=[words]
-        
-        
-        txtCache = self.en.getHarvestCache();
-        txt=  txtCache.get(obj.absolute_url(),None)
-       
-        if txt==None:
-            
-            logging.debug("NO CACHE for: "+obj.absolute_url())
-            txt=obj.harvest_page(mode="slim")
-        
-        
-        if not txt:
-            return ret
-        
-        soup = BeautifulSoup(txt)
-        
-        comments = soup.findAll(text=lambda text:isinstance(text, Comment))
-        [comment.extract() for comment in comments]
-        
-        txt = ''.join(soup.findAll(text=True))
-        
-        
-        #txt=re.sub("<.*?>", "", txt) # loesche alle Tags
-        for word in words:
-            word=re.sub("_"," ",word) # ersetze zurueck "_" durch " "
-            pos=0
-            
-            n=txt.lower().count(word.lower()) # wie oft tritt das Wort auf
 
-            for i in range(n):
-                pos=txt.lower().find(word.lower(),pos)
-
-                if pos > 0:
-                    x=max(0,pos-length)
-                    y=min(len(txt),pos+length)
-                  
-                    
-                    #is word already in one of the results
-                    nr=isInRanges(pos,len(word))
-                    if nr >=0:# word ist in einer schon gefunden Umgebung, dann vergroessere diese
-                        x=min(ranges[nr][0],x)
-                        y=max(ranges[nr][1],y)
-              
-                    str=txt[x:y]
-                    if x!=0: #add dots if in the middle of text
-                        str="..."+str
-                    
-                    if y!=len(txt): #add dots if in the middle of text
-                        str=str+"..."
-                        
-                        
-                
-                    if nr >=0: # word ist in einer schon gefunden Umgebung
-                        ranges[nr]=(x,y) # neue Position der Umgebung
-
-                        ret[nr]=str # neue Umgebung
-                    else: # andernfalls neue Umgebung hinzufuegen
-                        ranges.append((x,y))
-
-                        ret.append(str)
-                    
-                    pos=pos+len(word)
-                else:
-                    break;
-                
-        # now highlight everything        
-        if tagging:
-            for x in range(len(ret)):
-                for word in words:
-                    repl=re.compile(word,re.IGNORECASE)
-                    ret[x]=repl.sub(""" <span class="found">%s</span>"""%word.upper(),ret[x])
-
-        return ret
-    def copyAllImagesToMargin(self):
-        """tranformiere alle Bilder in die Margins"""
-        projects=self.getTree()
-        ret=""
-        for project in projects:
-            proj=project[3]
-            try:
-                persons=proj.copyImageToMargin();
-            except:
-                logging.error("Cannnot do: %s"%repr(project))
-                
-    def transformProjectsToId(self):
-        """trnasformiere zu ID, Hilfsfunktion die die alten Templates analysiert und mit der neuen Liste
-        verantwortlicher Personen versieht"""
-        projects=self.getTree()
-        ret=""
-        for project in projects:
-            
-            proj=project[3]
-            persons=proj.identifyNames(proj.getContent('xdata_01'))
-            if not hasattr(proj,'responsibleScientistsList'):
-                        proj.responsibleScientistsList=[]
-                        
-            for person in persons.items():
-              
-                if len(person[1]) >1: #nicht eindeutig
-                    ret+="nicht eindeutig ---  %s:  %s\n"%(proj.getId(),person[0])
-                    
-                elif len(person[1]) ==0: #kein eintrage
-                    ret+="kein eintrag---  %s:  %s\n"%(proj.getId(),person[0])
-                    proj.responsibleScientistsList.append((person[0],""))
-                else:           
-                    proj.responsibleScientistsList.append((person[0],person[1][0].getObject().getKey()))
-        
-        return ret
-          
-                
-    def harvestProjects(self):
-        """harvest"""
-        folder="/tmp"
-        try:
-            os.mkdir("/tmp/harvest_MPIWG")
-        except:
-            pass
-        founds=self.ZopeFind(self.aq_parent.projects,obj_metatypes=['MPIWGProject'],search_sub=1)
-        for found in founds:
-            txt=found[1].harvest_page()
-        
-            if txt and (txt != ""):
-                name=found[0].replace("/","_")
-                fh=file("/tmp/harvest_MPIWG/"+name,"w")
-                fh.write(txt)
-                fh.close()
-                
     def decode(self,str):
         """decoder"""
 
@@ -607,22 +410,7 @@
         self.id=id
         self.title=title
 
-    def removeStopWords(self,xo):
-        """remove stop words from xo"""
-        if not hasattr(self,'_v_stopWords'):
-            self._v_stopWords=self.stopwords_en.data.split("\n")
-    
-        x=str(xo)
-    
-        strx=x.split(" ")
-  
-        for tmp in strx:
-     
-            if tmp.lower() in self._v_stopWords:
-                del strx[strx.index(tmp)]
 
-        return " ".join(strx)
-    
     def urlQuote(self,str):
         """quote"""
         return urllib.quote(str)
@@ -1062,16 +850,18 @@
         except:
             logger("MPIWG Root (reindexCatalog: members)",logging.WARNING," %s %s"%sys.exc_info()[:2])
         
-        try:
-            
-            self.fulltextProjectsMembers.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
-            logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.INFO,"DONE")
-        except:
-            logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.WARNING," %s %s"%sys.exc_info()[:2])
-            
         
-        
-        
+#        
+#        try:
+#            
+#            self.fulltextProjectsMembers.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
+#            logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.INFO,"DONE")
+#        except:
+#            logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.WARNING," %s %s"%sys.exc_info()[:2])
+#            
+#        
+#        
+#        
         
         
         if RESPONSE:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MPIWGRoot_deleted_methods.py	Wed Jan 30 11:47:21 2013 +0100
@@ -0,0 +1,184 @@
+       def removeStopWords(self,xo):
+        """remove stop words from xo"""
+        if not hasattr(self,'_v_stopWords'):
+            self._v_stopWords=self.stopwords_en.data.split("\n")
+    
+        x=str(xo)
+    
+        strx=x.split(" ")
+  
+        for tmp in strx:
+     
+            if tmp.lower() in self._v_stopWords:
+                del strx[strx.index(tmp)]
+
+        return " ".join(strx)
+    
+    
+    def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True):
+        """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte
+        alle Tags werden entfernt, die Fundstellen werden mit <span class="found">XX</span> getaggt, die Umgebungen werden 
+        case insensitive gesucht
+        @param wordStr: string mit Worten getrennt durch Leerzeichen, Phrasen sind mit " gekennzeichnet
+                        "eine phrase", "*"  bezeichnet wildcards und wird ignoriert"
+        @param length: optional, default wert 100, 2*length ist die groesse der Umgebung
+        @param tagging: optional default wert true, kein span tag wird erzweugt falls tag=false
+        """
+        
+        ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird
+        ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt
+        
+        wordStr=wordStr.lstrip().rstrip()
+        
+        def isInRanges(nr,length):
+            """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck, 
+            -1, wenn kein Treffer
+            
+            @param nr: Position die geprueft werden soll
+            @param length: Laenge des Wortes das geprueft werden soll
+            """
+            for x in ranges:
+                if (x[0]<=nr) and (nr < (x[1]-length)):
+                    return ranges.index(x)
+            return -1
+                
+        # deal with phrases, in Phrasen werden die Leerzeichen durch "_" ersetzt.
+        def rep_empty(str):
+            x= re.sub(" ","_",str.group(0))
+            return re.sub("\"","",x)
+            
+        wordStr=re.sub("\".*?\"", rep_empty,wordStr)#ersetze leerzeichen in " " durch "_" und loesche "
+        
+        #deal with wildcards, for our purposes it is enough to delete the wildcard 
+        wordStr=wordStr.replace("*","")
+        
+        words=wordStr.split(" ")
+        #if not words is ListType:
+        #   words=[words]
+        
+        
+        txtCache = self.en.getHarvestCache();
+        txt=  txtCache.get(obj.absolute_url(),None)
+       
+        if txt==None:
+            
+            logging.debug("NO CACHE for: "+obj.absolute_url())
+            txt=obj.harvest_page(mode="slim")
+        
+        
+        if not txt:
+            return ret
+        
+        soup = BeautifulSoup(txt)
+        
+        comments = soup.findAll(text=lambda text:isinstance(text, Comment))
+        [comment.extract() for comment in comments]
+        
+        txt = ''.join(soup.findAll(text=True))
+        
+        
+        #txt=re.sub("<.*?>", "", txt) # loesche alle Tags
+        for word in words:
+            word=re.sub("_"," ",word) # ersetze zurueck "_" durch " "
+            pos=0
+            
+            n=txt.lower().count(word.lower()) # wie oft tritt das Wort auf
+
+            for i in range(n):
+                pos=txt.lower().find(word.lower(),pos)
+
+                if pos > 0:
+                    x=max(0,pos-length)
+                    y=min(len(txt),pos+length)
+                  
+                    
+                    #is word already in one of the results
+                    nr=isInRanges(pos,len(word))
+                    if nr >=0:# word ist in einer schon gefunden Umgebung, dann vergroessere diese
+                        x=min(ranges[nr][0],x)
+                        y=max(ranges[nr][1],y)
+              
+                    str=txt[x:y]
+                    if x!=0: #add dots if in the middle of text
+                        str="..."+str
+                    
+                    if y!=len(txt): #add dots if in the middle of text
+                        str=str+"..."
+                        
+                        
+                
+                    if nr >=0: # word ist in einer schon gefunden Umgebung
+                        ranges[nr]=(x,y) # neue Position der Umgebung
+
+                        ret[nr]=str # neue Umgebung
+                    else: # andernfalls neue Umgebung hinzufuegen
+                        ranges.append((x,y))
+
+                        ret.append(str)
+                    
+                    pos=pos+len(word)
+                else:
+                    break;
+                
+        # now highlight everything        
+        if tagging:
+            for x in range(len(ret)):
+                for word in words:
+                    repl=re.compile(word,re.IGNORECASE)
+                    ret[x]=repl.sub(""" <span class="found">%s</span>"""%word.upper(),ret[x])
+
+        return ret
+    def copyAllImagesToMargin(self):
+        """tranformiere alle Bilder in die Margins"""
+        projects=self.getTree()
+        ret=""
+        for project in projects:
+            proj=project[3]
+            try:
+                persons=proj.copyImageToMargin();
+            except:
+                logging.error("Cannnot do: %s"%repr(project))
+                
+    def transformProjectsToId(self):
+        """trnasformiere zu ID, Hilfsfunktion die die alten Templates analysiert und mit der neuen Liste
+        verantwortlicher Personen versieht"""
+        projects=self.getTree()
+        ret=""
+        for project in projects:
+            
+            proj=project[3]
+            persons=proj.identifyNames(proj.getContent('xdata_01'))
+            if not hasattr(proj,'responsibleScientistsList'):
+                        proj.responsibleScientistsList=[]
+                        
+            for person in persons.items():
+              
+                if len(person[1]) >1: #nicht eindeutig
+                    ret+="nicht eindeutig ---  %s:  %s\n"%(proj.getId(),person[0])
+                    
+                elif len(person[1]) ==0: #kein eintrage
+                    ret+="kein eintrag---  %s:  %s\n"%(proj.getId(),person[0])
+                    proj.responsibleScientistsList.append((person[0],""))
+                else:           
+                    proj.responsibleScientistsList.append((person[0],person[1][0].getObject().getKey()))
+        
+        return ret
+          
+                
+    def harvestProjects(self):
+        """harvest"""
+        folder="/tmp"
+        try:
+            os.mkdir("/tmp/harvest_MPIWG")
+        except:
+            pass
+        founds=self.ZopeFind(self.aq_parent.projects,obj_metatypes=['MPIWGProject'],search_sub=1)
+        for found in founds:
+            txt=found[1].harvest_page()
+        
+            if txt and (txt != ""):
+                name=found[0].replace("/","_")
+                fh=file("/tmp/harvest_MPIWG/"+name,"w")
+                fh.write(txt)
+                fh.close()
+                
\ No newline at end of file