Exemplo n.º 1
0
def _processPackageDir(p,dn,P,allowCompiled=True):
	if _ofile: print('searching package', p, 'dn=',dn, file=_ofile)
	from reportlab.lib.utils import rl_glob, rl_isfile, rl_isdir, isCompactDistro
	if isCompactDistro():
		ext = '.pyc'
		init = '__init__'+ext
		FN = [normpath(x) for x in rl_glob(path_join(dn,'*'))]
		D = []
		dn = normpath(dn)
		for x in FN:
			x = path_dirname(x)
			if x not in D and rl_isdir(x) and path_dirname(x)==dn and rl_isfile(path_join(x,init)): D.append(x)
		F = [x for x in FN if x.endswith(ext) and path_dirname(x)==dn and not path_basename(x).startswith('__init__.')]
	else:
		ext = '.py'
		init = '__init__'+ext
		FN = [path_join(dn,x) for x in os.listdir(dn)]
		D = [x for x in FN if path_isdir(x) and isPyFile(path_join(x,init))]
		F = [x for x in FN if (x.endswith(ext) or (allowCompiled and (x.endswith(ext+'c') or x.endswith(ext+'o')))) and not path_basename(x).startswith('__init__.')]
	for f in F:
		mn = path_splitext(path_basename(f))[0]
		if p: mn = p+'.'+mn
		if mn not in P:
			if _ofile: print('appending 1',mn, file=_ofile)
			P.append(mn)
	for f in D:
		mn = p+('.'+path_basename(f))
		if mn not in P:
			if _ofile: print('appending 2',mn, file=_ofile)
			P.append(mn)
    def test0(self):
        "Test if pythonpoint.pdf can be created from pythonpoint.xml."

        join, dirname, isfile, abspath = os.path.join, os.path.dirname, os.path.isfile, os.path.abspath
        rlDir = abspath(dirname(reportlab.__file__))
        from reportlab.tools.pythonpoint import pythonpoint
        from reportlab.lib.utils import isCompactDistro, open_for_read
        ppDir = dirname(pythonpoint.__file__)
        xml = join(ppDir, 'demos', 'pythonpoint.xml')
        datafilename = 'pythonpoint.pdf'
        outDir = outputfile('')
        if isCompactDistro():
            cwd = None
            xml = open_for_read(xml)
        else:
            cwd = os.getcwd()
            os.chdir(join(ppDir, 'demos'))
        pdf = join(outDir, datafilename)
        if isfile(pdf): os.remove(pdf)
        pythonpoint.process(xml,
                            outDir=outDir,
                            verbose=0,
                            datafilename=datafilename)
        if cwd: os.chdir(cwd)
        assert os.path.exists(pdf)
Exemplo n.º 3
0
def xml2rad(xml, validating=1, eoCB=None):
    '''convert xml to radxml form'''
    if validating:
        from reportlab.lib.utils import isCompactDistro, open_and_read
        if not eoCB and isCompactDistro():
            eoCB = lambda x, open_and_read=open_and_read: (x, open_and_read(x))
        import pyRXPU
        rad = pyRXPU.Parser().parse(xml,eoCB=eoCB)
    else:
        from reportlab.lib import rparsexml
        rad = rparsexml.parsexml0(xml)[0][2][0]
    return rad
Exemplo n.º 4
0
def xml2rad(xml, validating=1, eoCB=None):
    '''convert xml to radxml form'''
    if validating:
        from reportlab.lib.utils import isCompactDistro, open_and_read
        if not eoCB and isCompactDistro():
            eoCB = lambda x, open_and_read=open_and_read: (x, open_and_read(x))
        import pyRXPU
        rad = pyRXPU.Parser().parse(xml, eoCB=eoCB)
    else:
        from reportlab.lib import rparsexml
        rad = rparsexml.parsexml0(xml)[0][2][0]
    return rad
 def __init__(self, directory, pattern='*'):
     self.index = 0
     self.pattern = pattern
     directory.replace('/',os.sep)
     if os.path.isdir(directory):
         self.stack = [directory]
         self.files = []
     else:
         if not isCompactDistro() or not __loader__ or not rl_isdir(directory):
             raise ValueError('"%s" is not a directory' % directory)
         self.directory = directory[len(__loader__.archive)+len(os.sep):]
         pfx = self.directory+os.sep
         n = len(pfx)
         self.files = list(map(lambda x, n=n: x[n:],list(filter(lambda x,pfx=pfx: x.startswith(pfx),list(__loader__._files.keys())))))
         self.stack = []
Exemplo n.º 6
0
    def test0(self):
        "Test if pythonpoint.pdf can be created from pythonpoint.xml."

        join, dirname, isfile, abspath = os.path.join, os.path.dirname, os.path.isfile, os.path.abspath
        from tools.pythonpoint import pythonpoint
        from reportlab.lib.utils import isCompactDistro, open_for_read
        ppDir = dirname(pythonpoint.__file__)
        xml = abspath(join(ppDir, 'demos', 'pythonpoint.xml'))
        datafilename = 'pythonpoint.pdf'
        outDir = outputfile('')
        if isCompactDistro():
            xml = open_for_read(xml)
        pdf = join(outDir, datafilename)
        if isfile(pdf): os.remove(pdf)
        pythonpoint.process(xml, outDir=outDir, verbose=0, datafilename=datafilename)
        assert os.path.exists(pdf)
Exemplo n.º 7
0
 def __init__(self, directory, pattern='*'):
     self.index = 0
     self.pattern = pattern
     directory.replace('/',os.sep)
     if os.path.isdir(directory):
         self.stack = [directory]
         self.files = []
     else:
         from reportlab.lib.utils import isCompactDistro, __loader__, rl_isdir
         if not isCompactDistro() or not __loader__ or not rl_isdir(directory):
             raise ValueError('"%s" is not a directory' % directory)
         self.directory = directory[len(__loader__.archive)+len(os.sep):]
         pfx = self.directory+os.sep
         n = len(pfx)
         self.files = map(lambda x, n=n: x[n:],filter(lambda x,pfx=pfx: x.startswith(pfx),__loader__._files.keys()))
         self.stack = []
Exemplo n.º 8
0
def compactDistro_eoCB(targets=(), dtdDirs=(), fs_eoCB=None):
    '''create an entity opening callback
    targets is a list of possible dtd basenames
    dtdDirs is a list of possible dtdDirs
    fs_eoCB is an alternate eoCB for when we're not compact
    '''
    from reportlab.lib.utils import isCompactDistro
    if isCompactDistro():
        def eoCB(s,targets=targets,dtdDirs=dtdDirs):
            from reportlab.lib.utils import open_and_read, rl_isfile
            bn = os.path.basename(s)
            if bn in targets:
                for d in dtdDirs:
                    fn = os.path.join(d,bn)
                    if rl_isfile(fn): return fn, open_and_read(fn,'t')
            return s
    else:
        eoCB = fs_eoCB
    return eoCB
    def __init__(self, directory, pattern="*"):
        self.index = 0
        self.pattern = pattern
        directory.replace("/", os.sep)
        if os.path.isdir(directory):
            self.stack = [directory]
            self.files = []
        else:
            from reportlab.lib.utils import isCompactDistro, __loader__, rl_isdir

            if not isCompactDistro() or not __loader__ or not rl_isdir(directory):
                raise ValueError('"%s" is not a directory' % directory)
            self.directory = directory[len(__loader__.archive) + len(os.sep) :]
            pfx = self.directory + os.sep
            n = len(pfx)
            self.files = map(
                lambda x, n=n: x[n:], filter(lambda x, pfx=pfx: x.startswith(pfx), __loader__._files.keys())
            )
            self.stack = []
Exemplo n.º 10
0
def compactDistro_eoCB(targets=(), dtdDirs=(), fs_eoCB=None):
    '''create an entity opening callback
    targets is a list of possible dtd basenames
    dtdDirs is a list of possible dtdDirs
    fs_eoCB is an alternate eoCB for when we're not compact
    '''
    from reportlab.lib.utils import isCompactDistro
    if isCompactDistro():

        def eoCB(s, targets=targets, dtdDirs=dtdDirs):
            from reportlab.lib.utils import open_and_read, rl_isfile
            bn = os.path.basename(s)
            if bn in targets:
                for d in dtdDirs:
                    fn = os.path.join(d, bn)
                    if rl_isfile(fn): return fn, open_and_read(fn, 't')
            return s
    else:
        eoCB = fs_eoCB
    return eoCB
Exemplo n.º 11
0
def _processPackageDir(p, dn, P, allowCompiled=True):
    if _ofile: print('searching package', p, 'dn=', dn, file=_ofile)
    from reportlab.lib.utils import rl_glob, rl_isfile, rl_isdir, isCompactDistro
    if isCompactDistro():
        ext = '.pyc'
        init = '__init__' + ext
        FN = [normpath(x) for x in rl_glob(path_join(dn, '*'))]
        D = []
        dn = normpath(dn)
        for x in FN:
            x = path_dirname(x)
            if x not in D and rl_isdir(x) and path_dirname(
                    x) == dn and rl_isfile(path_join(x, init)):
                D.append(x)
        F = [
            x for x in FN if x.endswith(ext) and path_dirname(x) == dn
            and not path_basename(x).startswith('__init__.')
        ]
    else:
        ext = '.py'
        init = '__init__' + ext
        FN = [path_join(dn, x) for x in os.listdir(dn)]
        D = [x for x in FN if path_isdir(x) and isPyFile(path_join(x, init))]
        F = [
            x for x in FN if (x.endswith(ext) or (allowCompiled and (
                x.endswith(ext + 'c') or x.endswith(ext + 'o'))))
            and not path_basename(x).startswith('__init__.')
        ]
    for f in F:
        mn = path_splitext(path_basename(f))[0]
        if p: mn = p + '.' + mn
        if mn not in P:
            if _ofile: print('appending 1', mn, file=_ofile)
            P.append(mn)
    for f in D:
        mn = p + ('.' + path_basename(f))
        if mn not in P:
            if _ofile: print('appending 2', mn, file=_ofile)
            P.append(mn)