library(magrittr)
library(yaml)
# Parsimonious:
'[a: 1, b: 2]' %>% yaml.load
'[a: 1, b: 2]' %>% yaml.load(handlers = list(seq = parsimonious))
# No effect on vector types:
'[1, 2]' %>% yaml.load
'[1, 2]' %>% yaml.load(handlers = list(seq = parsimonious))
# Respects mixed-length vector types:
'RACE: [ race, [white, black, asian ]]' %>% yaml.load
'RACE: [ race, [white, black, asian ]]' %>% yaml.load(handlers = list(seq = parsimonious))
# Anonymous elements get a blank name:
'[a: 1, 2]' %>% yaml.load %>% sapply(names)
'[a: 1, 2]' %>% yaml.load(handlers = list(seq = parsimonious)) %>% names
# Also works for sequence of length one:
'[a: 1]' %>% yaml.load
'[a: 1]' %>% yaml.load(handlers = list(seq = parsimonious))
# Works for NULL:
yaml.load('-')
yaml.load('-', handlers = list(seq = parsimonious))
# And for empty list:
yaml.load('[]')
yaml.load('[]', handlers = list(seq = parsimonious))
# Limited to first (most deeply nested) encounter:
'[[[a: 1]]]' %>% yaml.load
'[[[a: 1]]]' %>% yaml.load(handlers = list(seq = parsimonious))
# Works for mixed-depth nesting:
'ITEM: [ label: item, [ foo: bar, hey: baz ]]' %>% yaml.load
'ITEM: [ label: item, [ foo: bar, hey: baz ]]' %>% yaml.load(handlers = list(seq = parsimonious))
Run the code above in your browser using DataLab