Skip to content

Commit

Permalink
grammar: fix tokenization of "runtime", "meta", and "parameter_meta" (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
mlin committed Apr 3, 2020
1 parent e7f16e7 commit e86de08
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
6 changes: 2 additions & 4 deletions WDL/_grammar.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,7 @@
?meta_value: literal | string_literal
| meta_object
| "[" [meta_value ("," meta_value)*] "]" -> meta_array
META_KIND.2: "meta" | "parameter_meta" | "runtime" // .2 ensures higher priority than CNAME
meta_section: META_KIND meta_object
!meta_section: ("meta" | "parameter_meta") meta_object
// task runtime section (key-expression pairs)
runtime_section: "runtime" "{" [runtime_kv (","? runtime_kv)*] "}"
Expand Down Expand Up @@ -336,8 +335,7 @@
?meta_value: literal | string_literal
| meta_object
| "[" [meta_value ("," meta_value)*] "]" -> meta_array
META_KIND.2: "meta" | "parameter_meta" | "runtime" // .2 ensures higher priority than CNAME
meta_section: META_KIND meta_object
!meta_section: ("meta" | "parameter_meta") meta_object
// task runtime section (key-expression pairs)
runtime_section: "runtime" "{" [runtime_kv (","? runtime_kv)*] "}"
Expand Down
6 changes: 6 additions & 0 deletions tests/test_1doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,21 +293,27 @@ def test_meta(self):
parameter_meta {
b: { help: "it's a boolean" }
n: 'x'
IntKey: 999
}
command {
echo "~{true='yes' false='no' b}"
}
runtime {
memory: "1 GB"
cpu: 42
runtime_key: 123
meta_key: 321
}
}
""")[0]
task.typecheck()
self.assertIsInstance(task.parameter_meta['b']['help'], str)
self.assertEqual(task.parameter_meta['b']['help'], "it's a boolean")
self.assertIsInstance(task.parameter_meta['IntKey'], WDL.Expr.Int)
self.assertIsInstance(task.runtime['cpu'], WDL.Expr.Int)
self.assertEqual(task.runtime['cpu'].value, 42)
self.assertEqual(task.runtime['runtime_key'].value, 123)
self.assertEqual(task.runtime['meta_key'].value, 321)
self.assertTrue(task.inputs[0].type.optional)
self.assertFalse(task.inputs[1].type.optional)
self.assertTrue(task.inputs[1].type.nonempty)
Expand Down

0 comments on commit e86de08

Please sign in to comment.