source: sasview/check_packages.py @ 725de411

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.2.2ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 725de411 was 725de411, checked in by andyfaff, 7 years ago

MAINT: check_packages - improve pep8 and py3

  • Property mode set to 100644
File size: 4.7 KB
RevLine 
[7665698]1"""
2Checking and reinstalling the external packages
3"""
[725de411]4from __future__ import print_function
5
[7665698]6import sys
[b441081]7
[b52f47f]8# Fix for error: hash-collision-3-both-1-and-1/
9# See http://jaredforsyth.com/blog/2010/apr/28/accessinit-hash-collision-3-both-1-and-1/
[96e151f]10try:
11    import PIL.Image
12except ImportError:
13    pass
14else:
15    sys.modules['Image'] = PIL.Image
16
[b52f47f]17
[9939b16]18common_required_package_list = {
[725de411]19    'setuptools': {'version': '0.6c11', 'import_name': 'setuptools', 'test': '__version__'},
20    'pyparsing': {'version': '1.5.5', 'import_name': 'pyparsing', 'test': '__version__'},
21    'html5lib': {'version': '0.95', 'import_name': 'html5lib', 'test': '__version__'},
22    'reportlab': {'version': '2.5', 'import_name': 'reportlab', 'test': 'Version'},
23    'h5py': {'version': '2.5', 'import_name': 'h5py', 'test': '__version__'},
24    'lxml': {'version': '2.3', 'import_name': 'lxml.etree', 'test': 'LXML_VERSION'},
25    'PIL': {'version': '1.1.7', 'import_name': 'Image', 'test': 'VERSION'},
26    'pylint': {'version': None, 'import_name': 'pylint', 'test': None},
27    'periodictable': {'version': '1.3.0', 'import_name': 'periodictable', 'test': '__version__'},
28    'bumps': {'version': '0.7.5.9', 'import_name': 'bumps', 'test': '__version__'},
29    'numpy': {'version': '1.7.1', 'import_name': 'numpy', 'test': '__version__'},
30    'scipy': {'version': '0.18.0', 'import_name': 'scipy', 'test': '__version__'},
31    'wx': {'version': '2.8.12.1', 'import_name': 'wx', 'test': '__version__'},
32    'matplotlib': {'version': '1.1.0', 'import_name': 'matplotlib', 'test': '__version__'},
33    'xhtml2pdf': {'version': '3.0.33', 'import_name': 'xhtml2pdf', 'test': '__version__'},
34    'sphinx': {'version': '1.2.1', 'import_name': 'sphinx', 'test': '__version__'},
35    'unittest-xml-reporting': {'version': '1.10.0', 'import_name': 'xmlrunner', 'test': '__version__'},
36    'pyopencl': {'version': '2015.1', 'import_name': 'pyopencl', 'test': 'VERSION_TEXT'},
[9939b16]37}
38win_required_package_list = {
[725de411]39    'comtypes': {'version': '0.6.2', 'import_name': 'comtypes', 'test': '__version__'},
40    'pywin': {'version': '217', 'import_name': 'pywin', 'test': '__version__'},
41    'py2exe': {'version': '0.6.9', 'import_name': 'py2exe', 'test': '__version__'},
[da8c5dc]42}
[9939b16]43mac_required_package_list = {
[725de411]44    'py2app': {'version': None, 'import_name': 'py2app', 'test': '__version__'},
[da8c5dc]45}
46
[9939b16]47deprecated_package_list = {
[725de411]48    'pyPdf': {'version': '1.13', 'import_name': 'pyPdf', 'test': '__version__'},
[9939b16]49}
[da8c5dc]50
[725de411]51print("Checking Required Package Versions....")
52print("")
53print("Common Packages")
54
55for package_name, test_vals in common_required_package_list.items():
[7665698]56    try:
[725de411]57        i = __import__(test_vals['import_name'], fromlist=[''])
[da8c5dc]58        if test_vals['test'] == None:
[725de411]59            print("%s Installed (Unknown version)" % package_name)
[da8c5dc]60        elif package_name == 'lxml':
[725de411]61            verstring = str(getattr(i, 'LXML_VERSION'))
62            print("%s Version Installed: %s"% (package_name, verstring.replace(', ', '.').lstrip('(').rstrip(')')))
[da8c5dc]63        else:
[725de411]64            print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test'])))
65    except ImportError:
66        print('%s NOT INSTALLED'% package_name)
[da8c5dc]67
68if sys.platform == 'win32':
[725de411]69    print("")
70    print("Windows Specific Packages:")
71    for package_name, test_vals in win_required_package_list.items():
[da8c5dc]72        try:
[443a487]73            if package_name == "pywin":
74                import win32api
[725de411]75                fixed_file_info = win32api.GetFileVersionInfo(win32api.__file__, '\\')
76                print("%s Version Installed: %s"% (package_name, fixed_file_info['FileVersionLS'] >> 16))
[443a487]77            else:
[725de411]78                i = __import__(test_vals['import_name'], fromlist=[''])
79                print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test'])))
80        except ImportError:
81            print('%s NOT INSTALLED'% package_name)
[da8c5dc]82
83if sys.platform == 'darwin':
[725de411]84    print("")
85    print("MacOS Specific Packages:")
86    for package_name, test_vals in mac_required_package_list.items():
[da8c5dc]87        try:
[725de411]88            i = __import__(test_vals['import_name'], fromlist=[''])
89            print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test'])))
90        except ImportError:
91            print('%s NOT INSTALLED'% package_name)
[da8c5dc]92
93
[725de411]94print("")
95print("Deprecated Packages")
96print("You can remove these unless you need them for other reasons!")
97for package_name, test_vals in deprecated_package_list.items():
[131576f]98    try:
[725de411]99        i = __import__(test_vals['import_name'], fromlist=[''])
[da8c5dc]100        if package_name == 'pyPdf':
[725de411]101            # pyPdf doesn't have the version number internally
102            print('pyPDF Installed (Version unknown)')
[da8c5dc]103        else:
[725de411]104            print("%s Version Installed: %s"% (package_name, getattr(i, test_vals['test'])))
105    except ImportError:
106        print('%s NOT INSTALLED'% package_name)
Note: See TracBrowser for help on using the repository browser.