src/reportlab/__init__.py
author robin
Wed, 03 Aug 2022 13:24:40 +0100
changeset 4734 4f30137c136e
parent 4733 58ea94e4c517
child 4743 13862ad6c861
permissions -rw-r--r--
femto fixes to rparsexml; add rl_settings.xmlParser option prefer 'lxml'
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4648
75aa496d5cc7 improvments to embedded soft hyphenation; version --> 3.5.62
robin
parents: 4645
diff changeset
     1
#Copyright ReportLab Europe Ltd. 2000-2021
494
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 478
diff changeset
     2
#see license.txt for license details
681
934a4f24ea5d Added explicit font and encoding support
andy_robinson
parents: 625
diff changeset
     3
__doc__="""The Reportlab PDF generation library."""
4733
58ea94e4c517 fix bug in renderPM dpi handling & bad syntax in test_table_layout.py version-->3.6.12
robin
parents: 4732
diff changeset
     4
Version = "3.6.12"
4194
9ecdf084933c allow Table.repeatRows to be a list/tuple; version-->3.1.59
robin
parents: 4192
diff changeset
     5
__version__=Version
4734
4f30137c136e femto fixes to rparsexml; add rl_settings.xmlParser option prefer 'lxml'
robin
parents: 4733
diff changeset
     6
__date__='20220803'
2618
19c47ce76a0c changed version and added warning for old Python users
andy
parents: 2407
diff changeset
     7
4260
58d91bf065e0 address issue #76
robin
parents: 4259
diff changeset
     8
import sys, os
2618
19c47ce76a0c changed version and added warning for old Python users
andy
parents: 2407
diff changeset
     9
4715
82c17d17a683 _rl_accel.c (0.81) has better errors; support M1 builds; version-->3.6.9
robin
parents: 4710
diff changeset
    10
__min_python_version__ = (3,7)
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    11
if sys.version_info< __min_python_version__:
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    12
    raise ImportError("""reportlab requires %s.%s+; other versions are unsupported.
4516
99e01611df97 drop support for python3.4; prepare for python3.8; version --> 3.5.24
robin
parents: 4514
diff changeset
    13
If you want to try with other python versions edit line 10 of reportlab/__init__
4615
e1390a6dfd33 chnages to appveyor & travis scripts; drop formal 3.5 support
robin
parents: 4613
diff changeset
    14
to remove this error.""" % (__min_python_version__))
3820
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3695
diff changeset
    15
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3695
diff changeset
    16
#define these early in reportlab's life
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    17
def cmp(a,b):
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    18
    return -1 if a<b else (1 if a>b else 0)
3820
47edc5ad9dc6 move utils.py builtins defs to __init__.py
robin
parents: 3695
diff changeset
    19
4668
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    20
def _fake_import(fn,name):
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    21
    from importlib import machinery
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    22
    m = machinery.SourceFileLoader(name,fn)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    23
    try:
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    24
        sys.modules[name] = m.load_module(name)
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    25
    except FileNotFoundError:
f8d6dc8f07fc remove support for 2.7; require >=3.6; version-->3.6.0
robin
parents: 4665
diff changeset
    26
        raise ImportError('file %s not found' % ascii(fn))
4032
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    27
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    28
#try to use dynamic modifications from
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    29
#reportlab.local_rl_mods.py
4053
173718fd2975 __init__.py: minimal text change and date bump
robin
parents: 4050
diff changeset
    30
#reportlab_mods.py or ~/.reportlab_mods
4032
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    31
try:
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    32
    import reportlab.local_rl_mods
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    33
except ImportError:
5106a9463326 __init__.py: attempt import of reportlab.local_rl_mods for customization
robin
parents: 4031
diff changeset
    34
    pass
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    35
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    36
try:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    37
    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
    38
except ImportError:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    39
    try:
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    40
        _fake_import(os.path.expanduser(os.path.join('~','.reportlab_mods')),'reportlab_mods')
4363
fa1c8635929e attempted fix for bitbucket #issue 114 reported by Martin Groen; version-->3.4.14
robin <robin@reportlab.com>
parents: 4362
diff changeset
    41
    except (ImportError,KeyError,PermissionError):
4050
a899d3baa5f4 __init__.py, rl_config.py & rl_settings.py: revamp initialization yet again
robin
parents: 4047
diff changeset
    42
        pass