File indexing completed on 2026-04-09 07:48:46
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 import os, sys
0023
0024 class BPath(object):
0025 """
0026 Python version of brap/BPath for juicing the idpath
0027 allowing the srcpath, srcdigest and layout to be
0028 extracted
0029 """
0030 def __init__(self, idpath):
0031
0032 elem = idpath.split("/")
0033 last = elem[-1]
0034 bits = last.split(".")
0035
0036 is_triple = len(bits) == 3
0037
0038 if is_triple:
0039 layout = 0
0040 idfile = ".".join([bits[0], bits[2]])
0041 srcdigest = bits[1]
0042 assert len(srcdigest) == 32, srcdigest
0043 idname = elem[-2]
0044 geobase = os.path.sep + os.path.join( *elem[0:-2] )
0045 prefix = os.path.sep + os.path.join( *elem[0:-4] )
0046 else:
0047 layout = int(last)
0048 assert layout > 0, layout
0049 srcdigest = elem[-2]
0050 idfile = elem[-3]
0051 idname = elem[-4]
0052 geobase = os.path.sep + os.path.join( *elem[0:-4] )
0053 prefix = os.path.sep + os.path.join( *elem[0:-5] )
0054 pass
0055
0056 self.idpath = idpath
0057 self.layout = layout
0058 self.srcpath = os.path.join( prefix, "opticksdata", "export", idname, idfile )
0059 self.srcdigest = srcdigest
0060
0061 def __repr__(self):
0062 return "\n".join(["BPath layout %d" % self.layout, self.idpath, self.srcpath, self.srcdigest])
0063
0064
0065
0066 if __name__ == '__main__':
0067
0068 keys = filter(lambda k:k.startswith("IDPATH"), os.environ.keys() )
0069 for key in keys:
0070 idpath = os.environ.get(key, None)
0071 idp = BPath(idpath)
0072 print()
0073 print(key)
0074 print(idp)
0075
0076 if not os.path.isdir(idp.idpath):
0077 print(" missing idpath ")
0078 if not os.path.isfile(idp.srcpath):
0079 print(" missing srcpath ")
0080
0081
0082