diff --git a/src/main/scala/eu/nomad_lab/parsers/OctopusParser.scala b/src/main/scala/eu/nomad_lab/parsers/OctopusParser.scala new file mode 100644 index 0000000000000000000000000000000000000000..d38cddbe094bee76f0f00253c038c78e2be9bcde --- /dev/null +++ b/src/main/scala/eu/nomad_lab/parsers/OctopusParser.scala @@ -0,0 +1,41 @@ +package eu.nomad_lab.parsers + +import eu.{ nomad_lab => lab } +import eu.nomad_lab.DefaultPythonInterpreter +import org.{ json4s => jn } +import scala.collection.breakOut + +object OctopusParser extends SimpleExternalParserGenerator( + name = "OctopusParser", + parserInfo = jn.JObject( + ("name" -> jn.JString("OctopusParser")) :: + ("parserId" -> jn.JString("OctopusParser" + lab.OctopusVersionInfo.version)) :: + ("versionInfo" -> jn.JObject( + ("nomadCoreVersion" -> jn.JObject(lab.NomadCoreVersionInfo.toMap.map { + case (k, v) => k -> jn.JString(v.toString) + }(breakOut): List[(String, jn.JString)])) :: + (lab.OctopusVersionInfo.toMap.map { + case (key, value) => + (key -> jn.JString(value.toString)) + }(breakOut): List[(String, jn.JString)]) + )) :: Nil + ), + mainFileTypes = Seq("text/.*"), + //TODO: Update the replacement string (mainFileRe) + mainFileRe = """******************************** Grid ******************************** + |Simulation Box:""".r, + cmd = Seq(DefaultPythonInterpreter.python2Exe(), "${envDir}/parsers/octopus/parser/parser-octopus/OctopusParser.py", + "--uri", "${mainFileUri}", "${mainFilePath}"), + resList = Seq( + "parser-octopus/OctopusParser.py", + "parser-octopus/setup_paths.py", + "nomad_meta_info/public.nomadmetainfo.json", + "nomad_meta_info/common.nomadmetainfo.json", + "nomad_meta_info/meta_types.nomadmetainfo.json", + "nomad_meta_info/octopus.nomadmetainfo.json" + ) ++ DefaultPythonInterpreter.commonFiles(), + dirMap = Map( + "parser-octopus" -> "parsers/octopus/parser/parser-octopus", + "nomad_meta_info" -> "nomad-meta-info/meta_info/nomad_meta_info" + ) ++ DefaultPythonInterpreter.commonDirMapping() +) diff --git a/src/test/scala/eu/nomad_lab/parsers/OctopusParserSpec.scala b/src/test/scala/eu/nomad_lab/parsers/OctopusParserSpec.scala new file mode 100644 index 0000000000000000000000000000000000000000..27a7316bb81c0707f8682219c17706746a76ff65 --- /dev/null +++ b/src/test/scala/eu/nomad_lab/parsers/OctopusParserSpec.scala @@ -0,0 +1,14 @@ +package eu.nomad_lab.parsers + +import org.specs2.mutable.Specification + +object OctopusParserSpec extends Specification { + "CastepParserTest" >> { + "test with json-events" >> { + ParserRun.parse(CastepParser, "parsers/castep/test/examples/", "json-events") must_== ParseResult.ParseSuccess + } + "test with json" >> { + ParserRun.parse(CastepParser, "parsers/castep/test/examples/", "json") must_== ParseResult.ParseSuccess + } + } +}