def resolve(self, pid): oid = parse_id(pid) if oid.isbin: return Bin(pid) elif oid.istarget: return Target(pid) # FIXME add day dir raise KeyError('unrecognized pid ' + pid)
def resolve(self, pid): oid = parse_id(pid) if oid.isbin: return Bin(pid) elif oid.istarget: return Target(pid) # FIXME add day dir raise KeyError("unrecognized pid " + pid)
def __init__(self, dir='.'): self.dir = dir if not no_day_dirs(): oid = parse_id(self.pid) self.time_format = oid.date_format self.time_string = oid.yearday else: self.time_string = '2000_001'
def bin_path(self, pid): oid = parse_id(pid) tried = [] for path in oid.paths([yd.dir for yd in self.years_dirs]): bin_path = path + "." + ADC_EXT tried += [bin_path] if os.path.exists(bin_path): return bin_path raise KeyError("no path to bin " + pid + (" ".join(tried)))
def bin_path(self, pid): oid = parse_id(pid) tried = [] for path in oid.paths([yd.dir for yd in self.years_dirs]): bin_path = path + '.' + ADC_EXT tried += [bin_path] if os.path.exists(bin_path): return bin_path raise KeyError('no path to bin ' + pid + (' '.join(tried)))
def __init__(self, path): self.dir = os.path.dirname(os.path.abspath(path)) file = os.path.basename(path) (self.id, ext) = os.path.splitext(file) # the timestamp is the approximate time the syringe was sampled and flow began self.pid = ifcb.pid(self.id) self.oid = parse_id(self.id) self.time_string = self.oid.datetime self.instrument = self.oid.instrument_number self.time_format = self.oid.datetime_format
def resolve(self, pid): """Resolve a pid in this filesystem""" oid = parse_id(pid) if oid.isday: return self.day(pid) elif oid.isbin: return self.bin(pid) elif oid.istarget: return self.target(pid) raise KeyError('unrecognized pid ' + pid)
def resolve(self, pid): """Resolve a pid in this filesystem""" oid = parse_id(pid) if oid.isday: return self.day(pid) elif oid.isbin: return self.bin(pid) elif oid.istarget: return self.target(pid) raise KeyError("unrecognized pid " + pid)
def zip_path(pid): oid = parse_id(pid) bin = oid.bin_lid day = oid.yearday year = oid.year tried = [] for blob_root in BLOB_ROOTS: blobzip = path.join(blob_root, year, day, bin + "_blobs_v2.zip") if path.exists(blobzip): return blobzip tried += [blobzip] raise KeyError(pid + " blob not found")
def zip_path(pid): oid = parse_id(pid) bin = oid.bin_lid day = oid.yearday year = oid.year tried = [] for blob_root in BLOB_ROOTS: blobzip = path.join(blob_root, year, day, bin + '_blobs_v2.zip') if path.exists(blobzip): return blobzip tried += [blobzip] raise KeyError(pid + ' blob not found')
def __iter__(self): if 'NO_DAY_DIRS' in dir(config) and config.NO_DAY_DIRS: yield DayDir(os.path.abspath(self.dir)) return try: for item in sorted(os.listdir(self.dir)): f = os.path.join(self.dir, item) try: if parse_id(item).isday: yield DayDir(os.path.abspath(f)) else: raise KeyError except KeyError: print '%s is not a day' % item # FIXME debug except OSError: noop = None # FIXME log
def __target(self, pid): oid = parse_id(pid) bin = self.bin(ifcb.pid(oid.bin_lid)) return bin.target(int(oid.target)) # bin.target is 0-based
def year(self, pid): """Year part of pathname based on configured namespace""" return parse_id(pid, self.config.namespace).year
def year_day(self, pid): """Year/day dir path of pathname based on configured namespace""" return parse_id(pid, self.config.namespace).yearday
def lid(self, pid): """Local ID part of pathname based on configured namespace""" return parse_id(pid, self.config.namespace).as_lid