def set_path(self, path): # if not os.path.isdir(path): # raise ValueError, "Not a valid folder" # ^^ actually, non-existent directories should be ok for key, pdir in ROOT_MAP.items(): if path[:len(pdir)] == pdir: fdroot = key self.Root = key self.SubFolders=[i for i in path[len(pdir):].split(os.sep) if i] if self.SubFolders: self.EndName = self.SubFolders[-1] else: self.EndName = [ a for a in ROOT_MAP[self.Root].split(os.sep) if len(a) > 0 ][-1] if not fdroot: raise Exception, 'Folder outside pieberry domain' self.initialised = 1 print 'initialised:', self
def set_path(self, path): # if not os.path.isdir(path): # raise ValueError, "Not a valid folder" # ^^ actually, non-existent directories should be ok for key, pdir in ROOT_MAP.items(): if path[:len(pdir)] == pdir: fdroot = key self.Root = key self.SubFolders = [ i for i in path[len(pdir):].split(os.sep) if i ] if self.SubFolders: self.EndName = self.SubFolders[-1] else: self.EndName = [ a for a in ROOT_MAP[self.Root].split(os.sep) if len(a) > 0 ][-1] if not fdroot: raise Exception, 'Folder outside pieberry domain' self.initialised = 1 print 'initialised:', self
def set_file(self, loc, sqsess=session): '''Set all kinds of data associated with this being a local file. Should have full absolute path given to it.''' if not os.path.exists(loc): raise IOError, 'Trying to set file data for non existant file' self.FileData_FileName = os.path.basename(loc) self.FileData_Size = os.stat(loc).st_size if not self.FileData_DateModified: # don't override mod_date that might come from metadata self.FileData_DateModified = datetime.datetime.fromtimestamp( os.stat(loc)[8]) diry = os.path.dirname(loc) fdroot = None for key, pdir in ROOT_MAP.items(): # print 'Testing if', diry[:len(pdir)], '==', pdir if diry[:len(pdir)] == pdir: fdroot = key self.FileData_Root = key self.FileData_Folder = diry[len(pdir):].split(os.sep) self.est_folder_rel(sqsess=sqsess) break if not fdroot: raise Exception, 'File stored outside pieberry domain' print "DONE", self.FileData_Root, self.FileData_FileName
from sqlalchemy import Column, Integer, String, DateTime, Unicode, PickleType from sqlalchemy import and_ from ConfigParser import SafeConfigParser from pieberry.piedb import SQLABase, session from pieberry.pieconfig.paths import ROOT_MAP from pieberry.pieconfig.globalvars import DEBUG from pieberry.pieutility.decoding import * global FOLDER_LOOKUP FOLDER_LOOKUP = {} SECURITY_CLASSES = (_("UNCLASSIFIED"), _("IN-CONFIDENCE"), _("RESTRICTED"), _("PROTECTED"), _("CONFIDENTIAL"), _("HIGHLY-PROTECTED"), _("SECRET"), _("TOP-SECRET")) INFO_FNAME = '_Folder_Info.txt' for key, val in ROOT_MAP.items(): FOLDER_LOOKUP[key] = [] def recommend_folder(obj): fs = session.query(PieFolder).filter(PieFolder.Root == 'projectdir') f_cands = [] for f in fs: score = 0 for aterm in f.MatchTerms_Author: if aterm.lower() in obj.Author().lower(): score += 1 for tterm in f.MatchTerms_Title: if tterm.lower() in obj.Title().lower(): score += 1 if tterm.lower() in obj.FileData_FileName.lower():
from pieberry.pieutility.decoding import * global FOLDER_LOOKUP FOLDER_LOOKUP = {} SECURITY_CLASSES = ( _("UNCLASSIFIED"), _("IN-CONFIDENCE"), _("RESTRICTED"), _("PROTECTED"), _("CONFIDENTIAL"), _("HIGHLY-PROTECTED"), _("SECRET"), _("TOP-SECRET")) INFO_FNAME = '_Folder_Info.txt' for key, val in ROOT_MAP.items(): FOLDER_LOOKUP[key] = [] def recommend_folder(obj): fs = session.query(PieFolder).filter(PieFolder.Root == 'projectdir') f_cands = [] for f in fs: score = 0 for aterm in f.MatchTerms_Author: if aterm.lower() in obj.Author().lower(): score += 1 for tterm in f.MatchTerms_Title: if tterm.lower() in obj.Title().lower(): score += 1 if tterm.lower() in obj.FileData_FileName.lower(): score += 1