Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 46 additions & 6 deletions check_modules.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import imp
import subprocess as sp
import sys
import importlib


MODULES = [
'os',
Expand All @@ -7,7 +10,7 @@
'subprocess',
'fnmatch',
'logging',
'pylab',
'matplotlib',
'errno',
'datetime',
'warnings',
Expand All @@ -16,16 +19,53 @@
'argparse',
'statsmodels',
'PIL',
'astroscrappy']
'astroscrappy',
'skimage']

missingModules = []
installedModules = []
failedToInstall = []


def is_missing():
for m in MODULES:
for module in MODULES:
try:
imp.find_module(m)
importlib.import_module(module)
except ImportError:
missingModules.append(m)
missingModules.append(module)

return missingModules


def install_packages(packages):
print(('Missing modules: ' + ', '.join(packages)))

if 'PIL' in packages:
idx = packages.index('PIL')
packages[idx] = 'Pillow'

if 'skimage' in packages:
idx = packages.index('skimage')
packages[idx] = 'scikit-image'

for package in packages:
try:
if sys.version_info[0] == 2:
sp.check_call([sys.executable, '-m', 'pip', 'install', '-q', package], stderr=sp.PIPE)
else:
sp.check_call([sys.executable, '-m', 'pip', 'install', '-q', package], stderr=sp.DEVNULL)

installedModules.append(package)

except sp.CalledProcessError:
failedToInstall.append(package)

if package == 'Pillow':
package = 'PIL'

if package == 'scikit-image':
package = 'skimage'

#globals()[package] = importlib.import_module(package)

return installedModules, failedToInstall
2 changes: 2 additions & 0 deletions config.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
VERSION = '0.9.17'

params = {}

# command line arguments
Expand Down
5 changes: 2 additions & 3 deletions gui.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import os
import check_modules

requiredModules = check_modules.is_missing()
if requiredModules:
print(('Missing modules: ' + ', '.join(requiredModules)))
os.sys.exit()
check_modules.install_packages(requiredModules)

import os
from datetime import datetime
import threading
import time
Expand Down
12 changes: 8 additions & 4 deletions nsdrp.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@

requiredModules = check_modules.is_missing()
if requiredModules:
print(('Missing modules: ' + ', '.join(requiredModules)))
os.sys.exit()
installedModules, failedModules = check_modules.install_packages(requiredModules)
if installedModules:
print('Installed: ' + ', '.join(installedModules))
if failedModules:
print(('Failed to install: ' + ', '.join(failedModules)))
print('Aborting NSDRP')
os.sys.exit()

import config
import nsdrp_cmnd
Expand All @@ -17,7 +22,6 @@
# from DrpException import DrpException
# import FlatCacher

VERSION = '0.9.17'

warnings.filterwarnings('ignore', category=UserWarning, append=True)

Expand Down Expand Up @@ -126,7 +130,7 @@ def init(out_dir, in_dir=None):
if (config.params['cmnd_line_mode'] is False):
setup_main_logger(logger, in_dir, out_dir)

logger.info('start nsdrp version {}'.format(VERSION))
logger.info('start nsdrp version {}'.format(config.VERSION))
logger.info('cwd: {}'.format(os.getcwd()))
logger.info('input dir: {}'.format(in_dir.rstrip('/')))
logger.info('output dir: {}'.format(out_dir.rstrip('/')))
Expand Down
3 changes: 1 addition & 2 deletions products.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from skimage import exposure
import image_lib
import config
import nsdrp

warnings.filterwarnings('ignore')

Expand Down Expand Up @@ -110,7 +109,7 @@ def gen(reduced, out_dir):

# prepare extended fits header
header = reduced.header
header['NSDRPVER'] = (nsdrp.VERSION, 'NSDRP Version')
header['NSDRPVER'] = (config.VERSION, 'NSDRP Version')
header['COMMENT'] = ('NSDRP', 'NSDRP')
if reduced.frameCalRmsRes is not None:
header['WFITRMS'] = (round(reduced.frameCalRmsRes, 4),
Expand Down
3 changes: 1 addition & 2 deletions reduce_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import ReducedDataSet
import reduce_order
import wavelength_utils
import nsdrp
import Flat
from logging import INFO
import Order
Expand Down Expand Up @@ -434,7 +433,7 @@ def log_start_summary(reduced):
"""
# TODO: structure and format this like nsdrp_cmnd.write_summary()

logger.info('nsdrp version {}'.format(nsdrp.VERSION))
logger.info('nsdrp version {}'.format(config.VERSION))

loggers = ['obj']
if config.params['cmnd_line_mode'] is False:
Expand Down