diff --git a/parser/parser-gulp/main.py b/parser/parser-gulp/main.py index a61cd67887bd30c52707725e462e6da85070fc73..f688891fa9596769fbcb9e44c27b17885bd4a61d 100644 --- a/parser/parser-gulp/main.py +++ b/parser/parser-gulp/main.py @@ -110,90 +110,6 @@ time to end of optimisation """ -def errprint(func): - def wrapper(backend, lines): - try: - func(backend, lines) - except Exception: - print('Error in %s: %d lines' % (func.__name__, - len(lines))) - for line in lines: - print(line, file=sys.stderr) - raise - return wrapper - -def tokenize(lines): - return np.array([line.split() for line in lines], object) - -""" -# XXXX copied from Siesta parser -def ArraySM(header, row, build, stop=r'', **kwargs): - class LineBuf: - def __init__(self): - self.lines = [] - - def addrow(self, parser): - line = parser.fIn.readline() - self.lines.append(line) - - def _build_array(self, parser): - build(parser.backend.superBackend, self.lines) - self.lines = [] - - linebuf = LineBuf() - sm = SM(header, - name=kwargs.pop('name', 'startarray'), - required=True, - subFlags=SM.SubFlags.Sequenced, - subMatchers=[ - SM('(%s)' % row, name='array', repeats=True, - forwardMatch=True, - adHoc=linebuf.addrow, required=True), - SM(stop, endReStr='', adHoc=linebuf._build_array, name='endarray', - forwardMatch=True) - ], - **kwargs) - return sm -""" - -""" -def get_frac_coords(backend, lines): - #print('LINES') - positions = [] - symbols = [] - for line in lines: - tokens = [t for t in line.split() if not t == '*'] - sym = tokens[1] - assert tokens[2] == 'c' - pos = [float(x) for x in tokens[3:6]] - assert len(pos) == 3 - positions.append(pos) - symbols.append(sym) - positions = np.array(positions) - symbols = np.array(symbols) - backend.addArrayValues('x_gulp_atomic_basis_symbols', symbols) - backend.addArrayValues('x_gulp_atomic_basis_positions', positions) -""" - -def get_array(metaname, dtype=float, istart=0, iend=None, unit=None, - storage=None): - @errprint - def buildarray(backend, lines): - arr = tokenize(lines) - if iend is None: - arr = arr[:, istart:] - else: - arr = arr[:, istart:iend] - arr = arr.astype(dtype) - if unit is not None: - arr = convert_unit(arr, unit) - if storage is not None: - storage[metaname] = arr - else: - backend.addArrayValues(metaname, arr) - return buildarray - - class GulpContext(object): def __init__(self): self.data = {} @@ -201,11 +117,6 @@ class GulpContext(object): def startedParsing(self, fname, parser): pass - def save_array(self, key, dtype=float, istart=0, iend=None, - unit=None): - return get_array(key, dtype=dtype, istart=istart, iend=iend, unit=unit, - storage=self.data) - def onClose_section_system(self, backend, gindex, section): data = self.data print(list(data.keys())) @@ -319,7 +230,6 @@ class GulpContext(object): allgroups.append(thislinegroups) def savearray(parser): - print('SAVE', name) arr = np.array(allgroups, dtype=object) del allgroups[:] if name in self.data: