diff --git a/nomad/migration.py b/nomad/migration.py index 0e383f103caf84de9ddd1ca2acee1335067db446..d9c240d0d9d15ec59ac352689c9ea4d0d36bf009 100644 --- a/nomad/migration.py +++ b/nomad/migration.py @@ -42,6 +42,7 @@ import shutil import random import io import json +import re from nomad import utils, infrastructure, files, config, search, processing as proc from nomad.coe_repo import User, Calc, NoCalculation @@ -69,6 +70,8 @@ default_uploader = dict(id=1) protected_uploads = ['ftp_upload_for_uid_125', 'ftp_upload_for_uid_290'] """ Uploads that we will not delete existing extracted files for """ +replace_outcar_re = re.compile(r'OUTCAR$') + def iterable_to_stream(iterable, buffer_size=io.DEFAULT_BUFFER_SIZE): """ @@ -1611,6 +1614,11 @@ class NomadCOEMigration: source_calc, source_calc_with_metadata = source_calcs.get( calc['mainfile'], (None, None)) + if source_calc is None: + alternative_mainfile = replace_outcar_re.sub(calc['mainfile'], 'vasprun.xml') + source_calc, source_calc_with_metadata = source_calcs.get( + alternative_mainfile, (None, None)) + if source_calc is not None: report.migrated_calcs += 1 diff --git a/nomad/parsing/__init__.py b/nomad/parsing/__init__.py index c8444c130b106f1dda2fa50a7c16bfd1f823eb2d..e505fdfef725768f40a64fcbd9f26c5444987530 100644 --- a/nomad/parsing/__init__.py +++ b/nomad/parsing/__init__.py @@ -167,7 +167,7 @@ parsers = [ LegacyParser( name='parsers/exciting', code_name='exciting', parser_class_name='excitingparser.ExcitingParser', - mainfile_name_re=r'^.*.OUT?', + mainfile_name_re=r'^.*.OUT\.[^/]*?', mainfile_contents_re=(r'EXCITING.*started') ), LegacyParser( @@ -350,7 +350,8 @@ parsers = [ name='parsers/siesta', code_name='Siesta', parser_class_name='siestaparser.SiestaParser', mainfile_contents_re=( - r'(Siesta Version: siesta-|SIESTA [0-9]\.[0-9]\.[0-9])') + r'(Siesta Version: siesta-|SIESTA [0-9]\.[0-9]\.[0-9])|' + r'(\*\s*WELCOME TO SIESTA\s*\*)') ), LegacyParser( name='parsers/elk', code_name='elk',