src/reportlab/__init__.py
author robin
Thu, 27 Feb 2014 12:51:04 +0000
branchpy33
changeset 4050 a899d3baa5f4
parent 4047 2319faeb2f5e
child 4053 173718fd2975
permissions -rw-r--r--
__init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3617
ae5744e97c42 reportlab: copyright date changes
robin
parents: 3612
diff changeset
     1
#Copyright ReportLab Europe Ltd. 2000-2012
494
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 478
diff changeset
     2
#see license.txt for license details
2332
2a7ab4405e18 Remove $Header:, fix CopyRight & history
rgbecker
parents: 2216
diff changeset
     3
#history http://www.reportlab.co.uk/cgi-bin/viewcvs.cgi/public/reportlab/trunk/reportlab/__init__.py
2a7ab4405e18 Remove $Header:, fix CopyRight & history
rgbecker
parents: 2216
diff changeset
     4
__version__=''' $Id$ '''
681
934a4f24ea5d Added explicit font and encoding support
andy_robinson
parents: 625
diff changeset
     5
__doc__="""The Reportlab PDF generation library."""
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
     6
Version = "3.0-20140226"
2618
19c47ce76a0c changed version and added warning for old Python users
andy
parents: 2407
diff changeset
     7
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
     8
import sys, os, imp
2618
19c47ce76a0c changed version and added warning for old Python users
andy
parents: 2407
diff changeset
     9
3940
39b5e5c82ea1 reportlab/__init__.py: fix allowed version checks & remove cruft
robin
parents: 3820
diff changeset
    10
if sys.version_info[0:2]!=(2, 7) and sys.version_info<(3, 3):
39b5e5c82ea1 reportlab/__init__.py: fix allowed version checks & remove cruft
robin
parents: 3820
diff changeset
    11
    raise ImportError("""reportlab requires Python 2.7+ or 3.3+; 3.0-3.2 are not supported.""")
3820
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    12
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    13
#define these early in reportlab's life
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    14
isPy3 = sys.version_info[0]==3
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    15
if isPy3:
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    16
    def cmp(a,b):
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    17
        return -1 if a<b else (1 if a>b else 0)
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    18
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    19
    import builtins
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    20
    builtins.cmp = cmp
4005
b7dee7fcd927 utils.py: move xrange hack to reportlab.__init__, add rl_add_builtins utility
robin
parents: 3990
diff changeset
    21
    builtins.xrange = range
3820
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    22
    del cmp, builtins
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    23
else:
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    24
    from future_builtins import ascii
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    25
    import __builtin__
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3741
diff changeset
    26
    __builtin__.ascii = ascii
3990
b484eaf71af9 reportlab/__init__.py: fix del to delete what we imported (not its alias)
robin
parents: 3946
diff changeset
    27
    del ascii, __builtin__
4032
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    28
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    29
#try to use dynamic modifications from
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    30
#reportlab.local_rl_mods.py
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    31
#reportlab_mods or ~/.reportlab_mods
4032
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    32
try:
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    33
    import reportlab.local_rl_mods
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    34
except ImportError:
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    35
    pass
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    36
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    37
def _fake_import(fn,name):
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    38
    if os.path.isfile(fn):
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    39
        with open(fn,'rb') as f:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    40
            imp.load_source('reportlab_mods',fn,f)
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    41
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    42
try:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    43
    import reportlab_mods   #application specific modifications can be anywhere on python path
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    44
except ImportError:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    45
    try:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    46
        _fake_import(os.path.expanduser(os.path.join('~','.reportlab_mods')),'reportlab_mods')
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    47
    except ImportError:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    48
        pass