From 92239c8454195e45a70660716dc0ca3af2f9ef2f Mon Sep 17 00:00:00 2001 From: torinfs Date: Fri, 22 Jun 2018 15:48:51 -0700 Subject: [PATCH 1/4] Added compatibility for 2cLR, hacky --- lrspectrum/lrspectrum.py | 8 ++++++-- lrspectrum/parsers.py | 9 +++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lrspectrum/lrspectrum.py b/lrspectrum/lrspectrum.py index 3b06d1f..020ebc2 100644 --- a/lrspectrum/lrspectrum.py +++ b/lrspectrum/lrspectrum.py @@ -122,9 +122,10 @@ def __init__(self, *multLogNames, **kwargs): self.broad = None self.wlim = None self.res = None + self.is2c = False # Always call parser when initializing - self.parse_log(program=program) + #self.parse_log(program=program) def parse_log(self, program=None): """ @@ -148,7 +149,10 @@ def parse_log(self, program=None): # separately program = parsers.detect(lg) # TODO: Break up following line for clarity - self.roots.update(parsers.progs[program](lg)) + if program == 'gaussian': + self.roots.update(parsers.progs[program](lg,self.is2c)) + else: + self.roots.update(parsers.progs[program](lg)) def gen_spect(self, broad=0.5, wlim=None, res=100, meth='lorentz'): """ Generates the broadened spectrum and stores it """ diff --git a/lrspectrum/parsers.py b/lrspectrum/parsers.py index a9dff61..136961a 100644 --- a/lrspectrum/parsers.py +++ b/lrspectrum/parsers.py @@ -65,7 +65,7 @@ def _parse_delim(logfile): return results -def _parse_gaussian(logfile): +def _parse_gaussian(logfile, is2c=False): """Parses gaussian output""" # No file descriptor logfiles @@ -75,8 +75,13 @@ def _parse_gaussian(logfile): for i, line in enumerate(open(logfile)): if 'Excited State' in line[1:14]: lsp = line.split() - results[lsp[4]] = float(lsp[8].lstrip('f=')) + print(lsp) + if not is2c: + results[lsp[4]] = float(lsp[8].lstrip('f=')) + else: + results[lsp[3]] = float(lsp[7]) # eV and unitless, respectively + print(results) return results From fc908e6ea16852294f412872241190a1be23876d Mon Sep 17 00:00:00 2001 From: torinfs Date: Fri, 22 Jun 2018 15:54:37 -0700 Subject: [PATCH 2/4] fixed printing --- lrspectrum/parsers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/lrspectrum/parsers.py b/lrspectrum/parsers.py index 136961a..d49b41f 100644 --- a/lrspectrum/parsers.py +++ b/lrspectrum/parsers.py @@ -75,13 +75,11 @@ def _parse_gaussian(logfile, is2c=False): for i, line in enumerate(open(logfile)): if 'Excited State' in line[1:14]: lsp = line.split() - print(lsp) if not is2c: results[lsp[4]] = float(lsp[8].lstrip('f=')) else: results[lsp[3]] = float(lsp[7]) # eV and unitless, respectively - print(results) return results From 58a5b00ca25ef0bc0ea26a88742eb404ff789b71 Mon Sep 17 00:00:00 2001 From: torinfs Date: Fri, 22 Jun 2018 16:19:49 -0700 Subject: [PATCH 3/4] cleaned up 2cLR code, passes tests --- lrspectrum/lrspectrum.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lrspectrum/lrspectrum.py b/lrspectrum/lrspectrum.py index 020ebc2..b53461f 100644 --- a/lrspectrum/lrspectrum.py +++ b/lrspectrum/lrspectrum.py @@ -102,6 +102,8 @@ def __init__(self, *multLogNames, **kwargs): # Keyword arguments. Has to be this way for 2.7 compatibility name = kwargs.pop('name', None) program = kwargs.pop('program', None) + is2c = kwargs.pop('is2c', False) + # Support either one list of logfiles or many logfiles as params if isinstance(multLogNames[0], list): @@ -122,10 +124,10 @@ def __init__(self, *multLogNames, **kwargs): self.broad = None self.wlim = None self.res = None - self.is2c = False + self.is2c = is2c # Always call parser when initializing - #self.parse_log(program=program) + self.parse_log(program=program) def parse_log(self, program=None): """ From 2f5148e2ee07fc83dfbfa139fdf61df882f33d01 Mon Sep 17 00:00:00 2001 From: torinfs Date: Fri, 22 Jun 2018 16:33:07 -0700 Subject: [PATCH 4/4] flake8 compliant --- lrspectrum/lrspectrum.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lrspectrum/lrspectrum.py b/lrspectrum/lrspectrum.py index b53461f..a349c59 100644 --- a/lrspectrum/lrspectrum.py +++ b/lrspectrum/lrspectrum.py @@ -104,7 +104,6 @@ def __init__(self, *multLogNames, **kwargs): program = kwargs.pop('program', None) is2c = kwargs.pop('is2c', False) - # Support either one list of logfiles or many logfiles as params if isinstance(multLogNames[0], list): self.logfile = multLogNames[0] @@ -152,7 +151,7 @@ def parse_log(self, program=None): program = parsers.detect(lg) # TODO: Break up following line for clarity if program == 'gaussian': - self.roots.update(parsers.progs[program](lg,self.is2c)) + self.roots.update(parsers.progs[program](lg, self.is2c)) else: self.roots.update(parsers.progs[program](lg))