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
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
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
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
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
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)