Beispiel #1
0
 def findOrCreateAct( self, released, cid, rev ):
     acts = store.find(Code, Code.nation == self.nation, Code.released == released, Code.cid == cid)
     if not acts.is_empty():
         return acts[0]
     act = store.add(Code())
     act.nation = self.nation
     act.rev = rev
     act.cid = cid
     act.released=released
     return act
Beispiel #2
0
 def findOrCreateSection( self, released, cid, act ):
     sections = store.find( Code, Code.released == released, Code.nation == self.nation, Code.cid == cid, Code.parent == act)
     if not sections.is_empty():
         return sections[0]
     sec = store.add(Code())
     sec.nation= self.nation
     sec.rev = act.rev
     sec.released = released
     sec.cid = cid
     sec.parent = act
     return sec
Beispiel #3
0
 def findOrCreateCode( self, cid ):
     cid = utf8(cid)
     #log.debug("Looking for code identified as %s" % cid)
     c = store.find(Code, Code.rp == self.rp, Code.cid == cid)
     if c.is_empty():
         c = store.add(Code())
         c.nation = self.nation
         c.rp = self.rp
         c.cid = cid
         c.stored = datetime.now()
     else:
         c = c[0]
     return c
Beispiel #4
0
 def findOrCreateRoot( self ):
     root = store.find(Code, Code.depth==0, Code.rp==self.rp)
     if root.is_empty():
         log.debug('No root object found for %s, creating...' % self.rp)
         root = store.add(Code())
         root.nation = self.nation
         root.rp = self.rp
         root.path = root.cid = '/'
         root.depth = 0
         root.stored = datetime.now()
         root.commit()
     else:
         root = root[0]
         log.debug('Found root:%i' % root.id)
     return root
Beispiel #5
0
 def getRoot( self, rev=-1):
     roots = store.find(Code, Code.nation == self.nation, Code.depth == 0).order_by(Code.rev)
     try:
         if rev == -1:
             # find latest rev
             return roots[-1]
         else:
             #specified revision, use that
             roots = roots.find(Code.rev == rev)
             assert not roots.is_empty()
             return roots[0]
     except IndexError:
         return self.makeRoot()
     except AssertionError:
         raise CodeNotFound
     except:
         raise
Beispiel #6
0
 def __init__( self, code, name, carg=None ):
         # get or create our nation object from the database
         n = store.find(Nation, Nation.code == code)
         if not n.is_empty():
             self.nation = n[0]
         else:
             self.nation = Nation(code, name)
         # check workdir
         if 'lcworkdir' in os.environ:
             workdir = os.environ['lcworkdir']
         else:
             workdir = "." + os.sep + 'lcworkdir'
         try:
             assert os.path.exists(workdir)
         except:
             raise EnvironmentError("LC WorkDir does not exist. Have you moved files around?")
         self._workdir = workdir + os.sep + 'work_' + code
         if not os.path.exists(self._workdir):
             os.mkdir(self._workdir)