From c964fa3e4312b83cd20b6d47fabcee290a1ab1c7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 17 Mar 2018 11:05:11 +0200 Subject: Change: prettyml to use Python3 --- prettyml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/prettyml b/prettyml index f4fbb5e..fac3ebb 100755 --- a/prettyml +++ b/prettyml @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import sys @@ -12,6 +12,7 @@ def inputs(args): else: yield '-', sys.stdin + objs = [] for filename, f in inputs(sys.argv[1:]): objs.append(yaml.safe_load(f)) -- cgit v1.2.1 From e92515e92689e1a9b7950f936758b191bc61c33a Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 17 Mar 2018 11:13:34 +0200 Subject: Change: load using CSafeLoader, for speed With a 9 MiB input file with 10,000 dicts, SafeLoader loads it in about 10 seconds on my laptop, CSafeLoader in about 0.5 seconds. That's a 20x speed improvement with a one-character change. --- prettyml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettyml b/prettyml index fac3ebb..12f1a8e 100755 --- a/prettyml +++ b/prettyml @@ -15,5 +15,5 @@ def inputs(args): objs = [] for filename, f in inputs(sys.argv[1:]): - objs.append(yaml.safe_load(f)) + objs.append(yaml.load(f, Loader=yaml.CSafeLoader)) yaml.safe_dump_all(objs, stream=sys.stdout, indent=4, default_flow_style=False) -- cgit v1.2.1 From e302233956c4d6b83392b57c455fc596f1e7a00e Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 17 Mar 2018 11:28:16 +0200 Subject: Fix: represent long string with the | style --- prettyml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/prettyml b/prettyml index 12f1a8e..e15b3b2 100755 --- a/prettyml +++ b/prettyml @@ -13,6 +13,16 @@ def inputs(args): yield '-', sys.stdin +def string_representer(dumper, data): + style = None + if '\n' in data: + style = '|' + return dumper.represent_scalar('tag:yaml.org,2002:str', data, style=style) + + +yaml.add_representer(str, string_representer, Dumper=yaml.SafeDumper) + + objs = [] for filename, f in inputs(sys.argv[1:]): objs.append(yaml.load(f, Loader=yaml.CSafeLoader)) -- cgit v1.2.1