Source code for synapse.lib.datfile

'''
Utilities for handling data files embedded within python packages.
'''
import os

import synapse.lib.dyndeps as s_dyndeps

[docs]def openDatFile(datpath): ''' Open a file-like object using a pkg relative path. Example: fd = openDatFile('foopkg.barpkg/wootwoot.bin') ''' pkgname, filename = datpath.split('/', 1) pkgmod = s_dyndeps.getDynMod(pkgname) # are we a regular file? pkgfile = os.path.abspath(pkgmod.__file__) if os.path.isfile(pkgfile): dirname = os.path.dirname(pkgfile) datname = os.path.join(dirname, filename) return open(datname, 'rb')