diff --git a/HISTORY.rst b/HISTORY.rst index 03b939408b18d93b6cc327a9b19d77166de941ee..afef05b8d83140bf260016ea63b0286578172ea9 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -2,7 +2,7 @@ History ======= -2014.125 (2018-06-06) +2018.171 (2018-06-20) ------------------ * First release on new build system. diff --git a/data2passcal/Makefile b/data2passcal/Makefile deleted file mode 100644 index 5a4bbb9c95e35ab43425006279da90399fb72b21..0000000000000000000000000000000000000000 --- a/data2passcal/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -all: - @echo "Nothing to be done" -install: - ./install.py -installl: - ./install.py ${PASSOFT} - -tarsrc: - @$(PASSINSTALL) -d -m 0755 $(PASSCAL)/tar - @$(PASSCP) $(PASSOFT)/src/setup_passoft . - @$(PASSTAR) cf $(EXEC)src.tar * - @$(PASSCP) $(EXEC)src.tar $(PASSCAL)/tar - @$(PASSRM) setup_passoft - -tarbin: - @$(PASSINSTALL) -d -m 0755 $(PASSCAL)/tar - @$(PASSCP) $(PASSOFT)/src/setup_passoft . - @$(PASSTAR) cf $(EXEC)bin.tar * - @$(PASSCP) $(EXEC)bin.tar $(PASSCAL)/tar - @$(PASSRM) setup_passoft - -clean: - @$(PASSRM) *.pyc *.tar - -uninstall: - @$(PASSRM) $(PASSCAL)/bin/neo - @$(PASSRM) $(PASSCAL)/lib/python/neo diff --git a/data2passcal/__init__.py b/data2passcal/__init__.py index 8afd4e3fbd171f07ac5b667a0e5c12bd7aef1938..7bd3e8bba5df65833d52a5b1f5833dfd7539ddee 100644 --- a/data2passcal/__init__.py +++ b/data2passcal/__init__.py @@ -4,4 +4,4 @@ __author__ = """IRIS PASSCAL""" __email__ = 'software-support@passcal.nmt.edu' -__version__ = '2014.125' +__version__ = '2018.171' diff --git a/data2passcal/data2passcal b/data2passcal/data2passcal deleted file mode 100644 index 79ea103d03902e9be45a5ef54d5529e85c61ffbe..0000000000000000000000000000000000000000 --- a/data2passcal/data2passcal +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -EXEC='data2passcal' - -if [ $# = 1 ] -then - h=$1 -else - h='' -fi - - if [ ! -z "${PASSCAL}" ] -then - PYTHON=${PASSCAL}/other/bin/picpython - export PYTHON - set PYTHONPATH ${PASSCAL}/lib/python/${EXEC} - export PYTHONPATH -else - echo "PASSCAL environment not set! Can not continue." - exit 1 -fi - -if [ ! -e "$PYTHON" ] -then - echo "$PYTHON not found! PyPASSCAL is required. Make sure picpython is in your path variable" - exit -fi - - -${PYTHON} ${PASSCAL}/lib/python/${EXEC}/data2passcal.py $h - diff --git a/data2passcal/data2passcal.py b/data2passcal/data2passcal.py index 4b5d03d5662d1c5e5f2c7f8ecdd8b87f6b86a20a..b1faa622d6d079a1d08e845245b63fedad2137da 100644 --- a/data2passcal/data2passcal.py +++ b/data2passcal/data2passcal.py @@ -2,10 +2,10 @@ ''' data2passcal -Ship miniseed data to passcal via ftp for qc before arhcivial at DMC DMS +Ship miniseed data to passcal via ftp for qc before archival at DMC DMS Lloyd Carothers IRIS/PASSCAL ''' -VERSION = '2014.125' +VERSION = '2018.171' import ftplib import sys, os, signal, struct, cPickle, logging @@ -36,9 +36,9 @@ FTP_BLOCKSIZE = 8192 #FTP_CONNECT_ATTEMPTS = 3 # testing will retry for a week. Why not? FTP_CONNECT_ATTEMPTS = 60*60*24*7 / FTP_RECONNECT_WAIT -#number of times a single file with try to be sent +#number of times a single file with try to be sent FTP_SEND_ATTEMPTS = 3 -# debug level of ftplib, 0-3 +# debug level of ftplib, 0-3 FTP_DEBUG_LEVEL = 0 #store the files sent in ~/data2passcal.sent SENTFILE = os.path.join( os.path.expanduser('~'), '.data2passcal.sent') @@ -105,7 +105,7 @@ def scan_dir(dir): logger.info('Total Dirs = %s'% foldercount) logger.info('Scan time = %0.2fs'% (time() - starttime)) print - + return filelist def sendable(file): @@ -124,7 +124,7 @@ MseedRE = re.compile(r'\A(.*)\.([A-Z0-9][A-Z0-9])\.(.*)\.([A-Z][A-Z]\w)\.([0-9]{ def filename_qc_format(file): '''Used to filter filename if correct for qc system''' return MseedRE.match(os.path.basename(file)) - + def format_size(num): '''Format bytes into human readble with suffix''' @@ -146,7 +146,7 @@ def ismseed(file): return True else: return False - + ######################################################### #needs import sys,struct #Taken from Bruces LibTrace @@ -201,13 +201,13 @@ def get_sent_file_list(sentfile = SENTFILE): else: sentlist = [] return sentlist - + def write_sent_file_list(sentlist , sentfile = SENTFILE ): logger.info('Saving list of files sent to passcal') with open(sentfile, 'w+') as f: cPickle.dump(sentlist, f) - - + + def get_FTP(): '''returns a FTP connection or None if a connection could not be made after attempts allowed''' trys = 0 @@ -236,7 +236,7 @@ def test_network(): passcal_http_reachable() google_http_reachable() passcal_ftp_reachable() - + def passcal_http_reachable(): '''download and time passcal home page''' url = 'http://www.passcal.nmt.edu/' @@ -283,11 +283,11 @@ def test_FTP(FTP): return False else: return True - + def send2passcal(mslist, sentlist=None): '''Send the list of files in mslist to passcal via FTP''' - + # Handle SIGINT while in this function: to gracefully close connection and save sentlist to disk file def signal_handler(signum, frame): print @@ -304,7 +304,7 @@ def send2passcal(mslist, sentlist=None): except Exception as e: logger.debug(e) os._exit(1) - + def update(data): '''Updates the terminal display.''' signal.signal(signal.SIGINT, signal_handler) @@ -318,9 +318,9 @@ def send2passcal(mslist, sentlist=None): ) , ''' ETA_sec = ((time() - starttime) / size_sent ) * (size_to_send - size_sent) - print 'ETA %s %s %s' % ( str(datetime.timedelta(seconds=(ETA_sec))), current_file.center(20), ' '*20 ) , + print 'ETA %s %s %s' % ( str(datetime.timedelta(seconds=(ETA_sec))), current_file.center(20), ' '*20 ) , sys.stdout.flush() - + if sentlist is None: sentlist = [] print @@ -368,14 +368,14 @@ def send2passcal(mslist, sentlist=None): FTP = get_FTP() if FTP is None: signal_handler(None, None) - else: + else: fh.close() num_sent += 1 logger.debug('Sent: %s' % f) size_sent += file_size sentlist.append(f) break - + print logger.info( 'Sent %d of %d' % (num_sent, num_to_send) ) logger.info( 'Sent %s of %s' % (format_size(size_sent), format_size(size_to_send)) ) @@ -383,7 +383,7 @@ def send2passcal(mslist, sentlist=None): logger.info( 'Ran for %f sec' % (time()-starttime) ) if FTP and test_FTP(FTP): FTP.quit() - + ######################################################## # From progressbar 3rd party class will eventually dump not awesome class ProgressBar: @@ -401,13 +401,13 @@ class ProgressBar: else: print self, chr(27) + '[A' self.update_time(i + 1) - time.sleep(1) + time.sleep(1) print self - + def update_time(self, elapsed_secs): self.__update_amount((elapsed_secs / float(self.duration)) * 100.0) #self.prog_bar += ' %d/%s files' % (elapsed_secs, self.duration) - + def __update_amount(self, new_amount): percent_done = int(round((new_amount / 100.0) * 100.0)) all_full = self.width - 2 @@ -417,33 +417,35 @@ class ProgressBar: pct_string = '%d%%' % percent_done self.prog_bar = self.prog_bar[0:pct_place] + \ (pct_string + self.prog_bar[pct_place + len(pct_string):]) - + def __str__(self): return str(self.prog_bar) - + # End progressbar ######################################################## - -if __name__ == '__main__': +def main(): if len(sys.argv) < 2 or sys.argv[1] in [ '-h', '--help', '-?']: print HELP - sys.exit() + sys.exit() # find all files below dir - filelist = scan_dir(sys.argv[1]) + filelist = scan_dir(sys.argv[1]) # filter for files named as the qc system likes logger.info('Removing improperly named files.') msnamedlist = filter(filename_qc_format, filelist) - logger.info('Properly named files files: %d' % len(msnamedlist)) - logger.info('Other files: %d'% (len(filelist) - len(msnamedlist))) + logger.info('Properly named files files: %d' % len(msnamedlist)) + logger.info('Other files: %d'% (len(filelist) - len(msnamedlist))) print logger.info('Removing files that are not Miniseed.') - mslist = filter(sendable, msnamedlist) - logger.info('MiniSEED files: %d' % len(mslist)) - logger.info('Properly named but not miniseed files: %d'% (len(msnamedlist) - len(mslist))) + mslist = filter(sendable, msnamedlist) + logger.info('MiniSEED files: %d' % len(mslist)) + logger.info('Properly named but not miniseed files: %d'% (len(msnamedlist) - len(mslist))) print - logger.info('Removing files already sent to PASSCAL') - sentlist = get_sent_file_list() + logger.info('Removing files already sent to PASSCAL') + sentlist = get_sent_file_list() unsentms = [f for f in mslist if f not in sentlist] logger.info('%d miniSEED files have already been sent, not resending.' % (len( mslist) - len(unsentms))) - send2passcal(unsentms, sentlist) + send2passcal(unsentms, sentlist) write_sent_file_list(sentlist) + +if __name__ == '__main__': + main() diff --git a/data2passcal/install.py b/data2passcal/install.py deleted file mode 100644 index fd56a90f9bf1379b55d0aa124f0073c273495aba..0000000000000000000000000000000000000000 --- a/data2passcal/install.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env python - -import shutil, os, stat, sys -from compileall import * - -# Location of PASSCAL distribution -ROOTDIR = '/opt/passcal' -# -if len(sys.argv) > 1 : - ROOTDIR = sys.argv[1] -elif os.environ.has_key ('PASSCAL') : - ROOTDIR = os.environ['PASSCAL'] -else : - sys.stderr.write ("PASSCAL environment variable not set!\n") - sys.exit () - -PROGDIR = os.getcwd () -PROG = os.path.basename (PROGDIR) -LIBDIR = ROOTDIR + '/lib/python' -BINDIR = ROOTDIR + '/bin' -LIBPROG = LIBDIR + '/' + PROG - -PROGS = ('data2passcal',) - -LIBS = () - -# Delete libs -for p in LIBS : - p = p + '.pyc' - try : - os.remove (p) - except OSError : - pass -# Compile -compile_dir (".") -# Make libs dir -command = 'mkdir -p ' + LIBDIR -os.system (command) -# Remove old libs -try : - shutil.rmtree (LIBPROG) -except OSError : - pass - -# install libraries -shutil.copytree (PROGDIR, LIBPROG) - -command = 'mkdir -p ' + BINDIR -os.system (command) - -# install programs -for p in PROGS : - src = p - dst = BINDIR + '/' + p - try : - os.remove (dst) - except OSError : - pass - print src, dst - shutil.copy (src, dst) - os.chmod (dst, 0557) diff --git a/setup.cfg b/setup.cfg index c942eaed07fa9d6286c87d6bfd2bc6e5713e173b..86190ffcd4bd6c7fcec3e17846801616bd4a59c2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2014.125 +current_version = 2018.171 commit = True tag = True diff --git a/setup.py b/setup.py index a0ed1c78ed2e9f33d3e56756b0e518f6f39fda4e..afcfad780540cb996c961f69c70fc9e2e638764c 100644 --- a/setup.py +++ b/setup.py @@ -51,6 +51,6 @@ setup( packages=find_packages(include=['data2passcal']), test_suite='tests', url='https://git.passcal.nmt.edu/passoft/data2passcal', - version='2014.125', + version='2018.171', zip_safe=False, )