Changeset 1279 for TI07-MOLES
- Timestamp:
- 04/07/06 17:06:35 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TI07-MOLES/trunk/PythonCode/existInterface/eXistInterface.py
r1275 r1279 36 36 constants.xmlrpc_base_path 37 37 ) 38 print xmlrpc_uri 38 39 self.xmlrpc = xmlrpclib.Server(xmlrpc_uri) 39 40 … … 53 54 return self.xmlrpc.retrieve(id,pos,params).data 54 55 55 def executeChunkedQuery(self, query,start,number,params={}):56 def executeChunkedQuery(self,xquery,start,number,params={}): 56 57 ''' Execute a query, return a specific part of the result set, and 57 58 dump the session automagically ''' 58 r=self.xmlrpc.query(query,number,start,params) 59 xquery=xmlrpclib.Binary(xquery) 60 r=self.xmlrpc.query(xquery,number,start,params) 59 61 return r 60 62 … … 100 102 except xmlrpclib.Fault: 101 103 return None 104 except KeyError: 105 return None 102 106 103 107 def sessionRelease(self,id): … … 110 114 return 0 111 115 112 def chunkedFullText(self,query,target='DIF',start= 0,number=10):116 def chunkedFullText(self,query,target='DIF',start=1,number=10): 113 117 ''' Execute a chunked full text query and return the result 114 118 set ''' … … 116 120 117 121 118 119 122 def getDIF(self,entryID,): 123 ''' Get a specific DIF document from a repository by using the entryID ''' 124 xq='''for $DE in collection('/db/testdif1')/DIF[Entry_ID='%s'] return $DE'''%entryID 125 xquery='''for $DE in collection('/db/testdif1')/DIF[Entry_ID='%s'] return $DE'''%entryID 126 id,summary=self.executeQuery(xq)#xquery) 127 if summary['hits']==1: 128 r=self.retrieve(id,0,{}) 129 self.sessionRelease(id) 130 else: 131 r='none' 132 return r 120 133 121 134 if __name__=="__main__": 122 135 123 136 existDB=ndg_eXist() 137 gepidaeDB=ndg_eXist(myhost='gepidae.esc.rl.ac.uk') 138 139 #these both work fine 124 140 id,summary=existDB.full_text('coapec') 125 print summary 141 print 'GLUE:',summary 142 id,summary=gepidaeDB.full_text('coapec') 143 print 'GEPIDAE: ',summary 144 145 #we can retrieve them all and look at them ... 126 146 r=1 127 147 while r is not None: 128 148 r=existDB.retrieveNext(id) 129 if r is not None: print r149 #if r is not None: print r 130 150 existDB.release(id) 151 152 gepidaeDB.release(id) 131 153 print 'done simple' 132 print dir(existDB.xmlrpc)133 154 134 print existDB.chunkedFullText('wdcc') 155 #now try and get the DIF documents alone: 156 #works fine: print gepidaeDB.getDIF('badc.nerc.ac.uk:DIF:dataent10') 157 #crashes: print existDB.getDIF('badc.nerc.ac.uk:DIF:dataent10') 158 159 print 'done getDIF' 160 161 print existDB.chunkedFullText('badc') 135 162 136 163
Note: See TracChangeset
for help on using the changeset viewer.