setup.py
author robin
Fri, 29 Sep 2023 16:43:56 +0100
changeset 4809 18ae86d14b0a
parent 4802 2bfded5c3f44
permissions -rw-r--r--
fix up deprecated importlib usage in reportlab.__init__.py; reported by Frank Epperlein
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4783
9f111c8a58cb merged accessibility branch and set version to 4.0.0
Andy Robinson
parents: 4745 4760
diff changeset
     1
#Copyright ReportLab Europe Ltd. 2000-2023
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
     2
#see LICENSE for license details
4794
263b9bc30bb7 update 4.04, extension alias
Alfie Roddan <alfie@reportlab.com>
parents: 4793
diff changeset
     3
__version__='4.0.4'
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
     4
import os, sys, glob, shutil, re, sysconfig, traceback, io, subprocess
4710
5d3c80a9e519 remove old Python2 constructs; patch from Claude Paroz < claude at 2xlibre dot net >; version --> 3.6.8
robin
parents: 4692
diff changeset
     5
from urllib.parse import quote as urlquote
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
     6
platform = sys.platform
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
     7
pjoin = os.path.join
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
     8
abspath = os.path.abspath
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
     9
isfile = os.path.isfile
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    10
isdir = os.path.isdir
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    11
dirname = os.path.dirname
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    12
basename = os.path.basename
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    13
splitext = os.path.splitext
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
    14
addrSize = 64 if sys.maxsize > 2**32 else 32
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
    15
sysconfig_platform = sysconfig.get_platform()
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    16
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    17
INFOLINES=[]
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    18
def infoline(t,
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    19
        pfx='#####',
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    20
        add=True,
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    21
        ):
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    22
    bn = splitext(basename(sys.argv[0]))[0]
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    23
    ver = '.'.join(map(str,sys.version_info[:3]))
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
    24
    s = '%s %s-python-%s-%s: %s' % (pfx, bn, ver, sysconfig_platform, t)
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    25
    print(s)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    26
    if add: INFOLINES.append(s)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    27
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    28
def showTraceback(s):
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    29
    buf = io.StringIO()
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    30
    print(s,file=buf)
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    31
    if verbose>2:
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    32
        traceback.print_exc(file=buf)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    33
    for l in buf.getvalue().split('\n'):
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    34
        infoline(l,pfx='!!!!!',add=False)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    35
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    36
def spCall(cmd,*args,**kwds):
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    37
    r = subprocess.call(
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    38
            cmd,
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
    39
            stderr = subprocess.STDOUT,
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    40
            stdout = subprocess.DEVNULL if kwds.pop('dropOutput',False) else None,
4682
67da158484d2 change the default timeout for testing subprocesses
robin
parents: 4681
diff changeset
    41
            timeout = kwds.pop('timeout',3600),
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    42
            )
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    43
    if verbose>=3:
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    44
        infoline('%r --> %s' % (' '.join(cmd),r), pfx='!!!!!' if r else '#####', add=False)
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    45
    return r
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    46
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    47
def specialOption(n,ceq=False):
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    48
    v = 0
3974
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    49
    while n in sys.argv:
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    50
        v += 1
3974
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    51
        sys.argv.remove(n)
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    52
    if ceq:
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    53
        n += '='
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    54
        V = [_ for _ in sys.argv if _.startswith(n)]
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    55
        for _ in V: sys.argv.remove(_)
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    56
        if V:
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    57
            n = len(n)
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    58
            v = V[-1][n:]
3974
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    59
    return v
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    60
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    61
dlt1 = not specialOption('--no-download-t1-files')
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    62
verbose = specialOption('--verbose',ceq=True)
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
    63
nullDivert = not verbose
3974
d55126858ada setup.py: add suggestions from Matthias Klose
robin
parents: 3962
diff changeset
    64
4760
1cc2c126f29b clean up setup.py and add a minimal pyproject.toml
robin
parents: 4749
diff changeset
    65
pkgDir=dirname(__file__)
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    66
if not pkgDir:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    67
    pkgDir=os.getcwd()
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    68
elif not os.path.isabs(pkgDir):
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    69
    pkgDir=abspath(pkgDir)
3168
cd1797023f60 setup.py: attempt to make more robust against running away from pkgDir
rgbecker
parents: 3106
diff changeset
    70
try:
cd1797023f60 setup.py: attempt to make more robust against running away from pkgDir
rgbecker
parents: 3106
diff changeset
    71
    os.chdir(pkgDir)
cd1797023f60 setup.py: attempt to make more robust against running away from pkgDir
rgbecker
parents: 3106
diff changeset
    72
except:
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    73
    showTraceback('warning could not change directory to %r' % pkgDir)
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    74
4760
1cc2c126f29b clean up setup.py and add a minimal pyproject.toml
robin
parents: 4749
diff changeset
    75
from setuptools import setup
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    76
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    77
def get_version():
4685
a6efa1479aa4 add musllinux and exotic builds
robin
parents: 4682
diff changeset
    78
    #determine Version
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    79
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    80
    #first try source
4685
a6efa1479aa4 add musllinux and exotic builds
robin
parents: 4682
diff changeset
    81
    FN = pjoin(pkgDir,'src','reportlab','__init__')
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    82
    try:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    83
        for l in open(pjoin(FN+'.py'),'r').readlines():
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    84
            if l.startswith('Version'):
3724
8c3d733474a0 added fixed setup.py for Python-3.3
rptlab
parents: 3721
diff changeset
    85
                D = {}
8c3d733474a0 added fixed setup.py for Python-3.3
rptlab
parents: 3721
diff changeset
    86
                exec(l.strip(),D)
8c3d733474a0 added fixed setup.py for Python-3.3
rptlab
parents: 3721
diff changeset
    87
                return D['Version']
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    88
    except:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    89
        pass
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    90
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    91
    #don't have source, try import
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    92
    import imp
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    93
    for desc in ('.pyc', 'rb', 2), ('.pyo', 'rb', 2):
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    94
        try:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    95
            fn = FN+desc[0]
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    96
            f = open(fn,desc[1])
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    97
            m = imp.load_module('reportlab',f,fn,desc)
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    98
            return m.Version
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
    99
        except:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   100
            pass
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   101
    raise ValueError('Cannot determine ReportLab Version')
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   102
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   103
#this code from /FBot's PIL setup.py
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   104
def aDir(P, d, x=None):
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   105
    if d and isdir(d) and d not in P:
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   106
        if x is None:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   107
            P.append(d)
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   108
        else:
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   109
            P.insert(x, d)
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   110
4718
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   111
# protection against loops needed. reported by
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   112
# Michał Górny &lt; mgorny at gentoo dot org &gt;
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   113
# see https://stackoverflow.com/questions/36977259
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   114
def findFile(root, wanted, followlinks=True):
4718
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   115
    visited = set()
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   116
    for p, D, F in os.walk(root,followlinks=followlinks):
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   117
        #scan directories to check for prior visits
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   118
        #use dev/inode to make unique key
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   119
        SD = [].append
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   120
        for d in D:
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   121
            dk = os.stat(pjoin(p,d))
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   122
            dk = dk.st_dev, dk.st_ino
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   123
            if dk not in visited:
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   124
                visited.add(dk)
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   125
                SD(d)
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   126
        D[:] = SD.__self__  #set the dirs to be scanned
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   127
        for fn in F:
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   128
            if fn==wanted:  
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   129
                return abspath(pjoin(p,fn))
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   130
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   131
def listFiles(root,followlinks=True,strJoin=None):
4718
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   132
    visited = set()
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   133
    R = [].append
4718
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   134
    for p, D, F in os.walk(root,followlinks=followlinks):
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   135
        #scan directories to check for prior visits
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   136
        #use dev/inode to make unique key
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   137
        SD = [].append
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   138
        for d in D:
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   139
            dk = os.stat(pjoin(p,d))
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   140
            dk = dk.st_dev, dk.st_ino
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   141
            if dk not in visited:
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   142
                visited.add(dk)
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   143
                SD(d)
697141ce83e1 fix symlink looping in setup.py reported by Michał Górny < mgorny at gentoo dot org >
robin
parents: 4715
diff changeset
   144
        D[:] = SD.__self__  #set the dirs to be scanned
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   145
        for fn in F:
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   146
            R(abspath(pjoin(p,fn)))
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   147
    R = R.__self__
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   148
    return strJoin.join(R) if strJoin else R
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
   149
2982
32b005bb6879 reportlab: lastminute changes before 2.2 tagging
rgbecker
parents: 2977
diff changeset
   150
reportlab_files= [
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   151
        'fonts/00readme.txt',
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   152
        'fonts/bitstream-vera-license.txt',
4446
8fc52ebf1240 add MANIFEST.in; version --> 3.5.2
robin <robin@reportlab.com>
parents: 4439
diff changeset
   153
        'fonts/DarkGarden-changelog.txt',
2977
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   154
        'fonts/DarkGarden-copying-gpl.txt',
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   155
        'fonts/DarkGarden-copying.txt',
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   156
        'fonts/DarkGarden-readme.txt',
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   157
        'fonts/DarkGarden.sfd',
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   158
        'fonts/DarkGardenMK.afm',
beca8d75f400 reportlab: remove LetErrorRobot-Chrome, rina & luxi. Add DarkGardenMK and fix tests
rgbecker
parents: 2976
diff changeset
   159
        'fonts/DarkGardenMK.pfb',
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   160
        'fonts/Vera.ttf',
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   161
        'fonts/VeraBd.ttf',
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   162
        'fonts/VeraBI.ttf',
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   163
        'fonts/VeraIt.ttf',
3285
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   164
        'fonts/_abi____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   165
        'fonts/_ab_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   166
        'fonts/_ai_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   167
        'fonts/_a______.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   168
        'fonts/cobo____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   169
        'fonts/cob_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   170
        'fonts/com_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   171
        'fonts/coo_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   172
        'fonts/_ebi____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   173
        'fonts/_eb_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   174
        'fonts/_ei_____.pfb',
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   175
        'fonts/_er_____.pfb',
3549
2c6e68e56e02 setup.py: use a versioned pfbfer.zip
rgbecker
parents: 3396
diff changeset
   176
        'fonts/sy______.pfb',
2c6e68e56e02 setup.py: use a versioned pfbfer.zip
rgbecker
parents: 3396
diff changeset
   177
        'fonts/zd______.pfb',
2c6e68e56e02 setup.py: use a versioned pfbfer.zip
rgbecker
parents: 3396
diff changeset
   178
        'fonts/zx______.pfb',
2c6e68e56e02 setup.py: use a versioned pfbfer.zip
rgbecker
parents: 3396
diff changeset
   179
        'fonts/zy______.pfb',
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   180
        'fonts/callig15.pfb',
4439
61ba11e7d143 another try at getting license.txt and callgi.afm into the pacjage :(
robin <robin@reportlab.com>
parents: 4438
diff changeset
   181
        'fonts/callig15.afm',
4446
8fc52ebf1240 add MANIFEST.in; version --> 3.5.2
robin <robin@reportlab.com>
parents: 4439
diff changeset
   182
        'reportlab/graphics/barcode/README'
8fc52ebf1240 add MANIFEST.in; version --> 3.5.2
robin <robin@reportlab.com>
parents: 4439
diff changeset
   183
        'reportlab/graphics/barcode/TODO'
4439
61ba11e7d143 another try at getting license.txt and callgi.afm into the pacjage :(
robin <robin@reportlab.com>
parents: 4438
diff changeset
   184
        'license.txt',
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   185
        ]
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   186
4749
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   187
def url2data(url,returnRaw=False):
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   188
    import urllib.request as ureq
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   189
    remotehandle = ureq.urlopen(url)
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   190
    try:
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   191
        raw = remotehandle.read()
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   192
        return raw if returnRaw else io.BytesIO(raw)
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   193
    finally:
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   194
        remotehandle.close()
4d9de22f0240 add back deleted url2data function
robin
parents: 4746
diff changeset
   195
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   196
def get_fonts(PACKAGE_DIR, reportlab_files):
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   197
    import zipfile
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   198
    rl_dir = PACKAGE_DIR['reportlab']
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   199
    if not [x for x in reportlab_files if not isfile(pjoin(rl_dir,x))]:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   200
        xitmsg = "Standard T1 font curves already downloaded"
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   201
    elif not dlt1:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   202
        xitmsg = "not downloading T1 font curve files"
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   203
    else:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   204
        try:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   205
            infoline("Downloading standard T1 font curves")
4802
2bfded5c3f44 switch to https in setup.py
robin
parents: 4794
diff changeset
   206
            zipdata = url2data("https://www.reportlab.com/ftp/pfbfer-20180109.zip")
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   207
            archive = zipfile.ZipFile(zipdata)
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   208
            dst = pjoin(rl_dir, 'fonts')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   209
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   210
            for name in archive.namelist():
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   211
                if not name.endswith('/'):
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   212
                    with open(pjoin(dst, name), 'wb') as outfile:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   213
                        outfile.write(archive.read(name))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   214
            xitmsg = "Finished download of standard T1 font curves"
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   215
        except:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   216
            xitmsg = "Failed to download standard T1 font curves"
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   217
    infoline(xitmsg)
3285
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   218
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   219
def get_glyphlist_module(PACKAGE_DIR):
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   220
    try:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   221
        lfn = pjoin("pdfbase","_glyphlist.py")
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   222
        fn = pjoin(PACKAGE_DIR['reportlab'],lfn)
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   223
        if isfile(fn):
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   224
            xitmsg = "The _glyphlist module already exists"
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   225
        else:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   226
            text = url2data("https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt",True)
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   227
            comments = ['#see https://github.com/adobe-type-tools/agl-aglfn\n'].append
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   228
            G2U = [].append
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   229
            G2Us = [].append
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   230
            if not isinstance(text,str):
4378
5ffdb38b54ef fix setup.py for py33
robin
parents: 4377
diff changeset
   231
                text = text.decode('latin1')
5ffdb38b54ef fix setup.py for py33
robin
parents: 4377
diff changeset
   232
            for line in text.split('\n'):
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   233
                line = line.strip()
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   234
                if not line: continue
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   235
                if line.startswith('#'):
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   236
                    comments(line+'\n')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   237
                else:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   238
                    gu = line.split(';')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   239
                    if len(gu)==2:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   240
                        v = gu[1].split()
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   241
                        if len(v)==1:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   242
                            G2U('\t%r: 0x%s,\n' % (gu[0],gu[1]))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   243
                        else:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   244
                            G2Us('\t%r: (%s),\n' % (gu[0],','.join('0x%s'%u for u in v)))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   245
                    else:
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   246
                        infoline('bad glyphlist line %r' % line, '!!!!!')
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   247
            with open(fn,'w') as f:
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   248
                f.write(''.join(comments.__self__))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   249
                f.write('_glyphname2unicode = {\n')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   250
                f.write(''.join(G2U.__self__))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   251
                f.write('\t}\n')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   252
                f.write('_glyphname2unicodes = {\n')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   253
                f.write(''.join(G2Us.__self__))
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   254
                f.write('\t}\n')
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   255
            xitmsg = "Finished creation of _glyphlist.py"
3285
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   256
    except:
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   257
        xitmsg = "Failed to download glyphlist.txt"
3285
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   258
    infoline(xitmsg)
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   259
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   260
def main():
4665
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   261
    if 'test' in sys.argv \
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   262
        or 'tests' in sys.argv \
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   263
        or 'tests-postinstall' in sys.argv \
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   264
        or 'tests-preinstall' in sys.argv:
4786
cabda0148ca8 support setup.py test failfast
robin
parents: 4784
diff changeset
   265
        failfast = specialOption('--failfast')
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   266
        verboseTests = specialOption('--verbose-tests')
4745
bbe50343dd16 start branch 3.6.13; tables.py error improvements and test exclusions
robin
parents: 4742
diff changeset
   267
        excludes = [_ for _ in sys.argv if _.startswith('--exclude=')]
bbe50343dd16 start branch 3.6.13; tables.py error improvements and test exclusions
robin
parents: 4742
diff changeset
   268
        for _ in excludes:
bbe50343dd16 start branch 3.6.13; tables.py error improvements and test exclusions
robin
parents: 4742
diff changeset
   269
            sys.argv.remove(_)
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   270
        if len(sys.argv)!=2:
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   271
            raise ValueError('tests commands may only be used alone sys.argv[1:]=%s' % repr(sys.argv[1:]))
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   272
        cmd = sys.argv[-1]
4366
ddf3d4f5066a add a setup.py test command to aid CI
robin <robin@reportlab.com>
parents: 4359
diff changeset
   273
        PYTHONPATH = [pkgDir] if cmd!='test' else []
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   274
        if cmd=='tests-preinstall':
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   275
            PYTHONPATH.insert(0,pjoin(pkgDir,'src'))
4366
ddf3d4f5066a add a setup.py test command to aid CI
robin <robin@reportlab.com>
parents: 4359
diff changeset
   276
        if PYTHONPATH: os.environ['PYTHONPATH']=os.pathsep.join(PYTHONPATH)
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   277
        os.chdir(pjoin(pkgDir,'tests'))
4745
bbe50343dd16 start branch 3.6.13; tables.py error improvements and test exclusions
robin
parents: 4742
diff changeset
   278
        cli = [sys.executable, 'runAll.py']+excludes
4665
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   279
        if cmd=='tests-postinstall':
351eb268ca66 changes in setup.py runAll.py; version --> 3.5.68
robin
parents: 4649
diff changeset
   280
            cli.append('--post-install')
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   281
        if verboseTests:
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   282
            cli.append('--verbosity=2')
4786
cabda0148ca8 support setup.py test failfast
robin
parents: 4784
diff changeset
   283
        if failfast:
cabda0148ca8 support setup.py test failfast
robin
parents: 4784
diff changeset
   284
            cli.append('--failfast')
4681
1f01c9c1391e try to merge buildwheels tests stdout/err
robin
parents: 4680
diff changeset
   285
        r = spCall(cli)
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
   286
        sys.exit(('!!!!! runAll.py --> %s should exit with error !!!!!' % r) if r else r)
3943
0e897efde30f sgmlop.c: allow compilation in Python 3.3 & 2.7, with new returnUnicode option as default
robin
parents: 3878
diff changeset
   287
2982
32b005bb6879 reportlab: lastminute changes before 2.2 tagging
rgbecker
parents: 2977
diff changeset
   288
    #copy some special case files into place so package_data will treat them properly
4157
dc2894478c0d setup.py: fix for pip -e proposed by Marius Gedminas
robin
parents: 4142
diff changeset
   289
    PACKAGE_DIR = {'':'src','reportlab': pjoin('src','reportlab')}
3285
af395f8ca4a2 setup.py now downloads T1 font curves when using easy_install or distutils
damian
parents: 3278
diff changeset
   290
    get_fonts(PACKAGE_DIR, reportlab_files)
4377
da36c2d6e2d2 fix embedded font & fontfinder bugs reported by htgoebel @ bitbucket; version --> 3.4.23
robin <robin@reportlab.com>
parents: 4366
diff changeset
   291
    get_glyphlist_module(PACKAGE_DIR)
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   292
    setup(
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   293
        name="reportlab",
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   294
        version=get_version(),
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   295
        license="BSD license (see license.txt for details), Copyright (c) 2000-2022, ReportLab Inc.",
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   296
        description="The Reportlab Toolkit",
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   297
        long_description="""The ReportLab Toolkit. An Open Source Python library for generating PDFs and graphics.""",
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   298
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   299
        author="Andy Robinson, Robin Becker, the ReportLab team and the community",
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   300
        author_email="reportlab-users@lists2.reportlab.com",
4802
2bfded5c3f44 switch to https in setup.py
robin
parents: 4794
diff changeset
   301
        url="https://www.reportlab.com/",
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   302
        packages=[
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   303
                'reportlab',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   304
                'reportlab.graphics.charts',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   305
                'reportlab.graphics.samples',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   306
                'reportlab.graphics.widgets',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   307
                'reportlab.graphics.barcode',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   308
                'reportlab.graphics',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   309
                'reportlab.lib',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   310
                'reportlab.pdfbase',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   311
                'reportlab.pdfgen',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   312
                'reportlab.platypus',
4226
10f62c8dd584 add comma
robin
parents: 4225
diff changeset
   313
                ],
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   314
        package_dir = PACKAGE_DIR,
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   315
        package_data = {'reportlab': reportlab_files},
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   316
        classifiers = [
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   317
            'Development Status :: 5 - Production/Stable',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   318
            'Intended Audience :: Developers',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   319
            'License :: OSI Approved :: BSD License',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   320
            'Topic :: Printing',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   321
            'Topic :: Text Processing :: Markup',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   322
            'Programming Language :: Python :: 3',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   323
            'Programming Language :: Python :: 3.7',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   324
            'Programming Language :: Python :: 3.8',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   325
            'Programming Language :: Python :: 3.9',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   326
            'Programming Language :: Python :: 3.10',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   327
            'Programming Language :: Python :: 3.11',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   328
            ],
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   329
        
4784
792d73f478f5 Trying to make pycairo optional static dependency
Andy Robinson
parents: 4783
diff changeset
   330
        # this probably only works for setuptools, but distutils seems to ignore it
792d73f478f5 Trying to make pycairo optional static dependency
Andy Robinson
parents: 4783
diff changeset
   331
        install_requires=['pillow>=9.0.0'],
792d73f478f5 Trying to make pycairo optional static dependency
Andy Robinson
parents: 4783
diff changeset
   332
        # moved to pyproject.toml
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   333
        python_requires='>=3.7,<4',
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   334
        extras_require={
4793
1665e742e202 update version numbers and dependencies alias
Alfie Roddan <alfie@reportlab.com>
parents: 4786
diff changeset
   335
            'accel': ['rl_accel>=0.9.0,<1.1'],
1665e742e202 update version numbers and dependencies alias
Alfie Roddan <alfie@reportlab.com>
parents: 4786
diff changeset
   336
            'renderpm': ['rl_renderPM>=4.0.3,<4.1'],
1665e742e202 update version numbers and dependencies alias
Alfie Roddan <alfie@reportlab.com>
parents: 4786
diff changeset
   337
            'pycairo': ['rlPyCairo>=0.2.0,<1', 'freetype-py>=2.3.0,<2.4']
4746
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   338
            },
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   339
        )
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   340
    print()
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   341
    print('########## SUMMARY INFO #########')
c397e87124be inital check in of code with no C extensions
robin
parents: 4742
diff changeset
   342
    print('\n'.join(INFOLINES))
2963
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   343
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   344
if __name__=='__main__':
c414c0ab69e7 reportlab-2.2: first stage of major re-org
rgbecker
parents:
diff changeset
   345
    main()