##// END OF EJS Templates
templatefilters: add {x|cbor} filter for custom CBOR output
Yuya Nishihara -
r42164:4df7c4b7 default
parent child Browse files
Show More
@@ -23,6 +23,7 from . import (
23 23 util,
24 24 )
25 25 from .utils import (
26 cborutil,
26 27 dateutil,
27 28 stringutil,
28 29 )
@@ -99,6 +100,11 def basename(path):
99 100 """
100 101 return os.path.basename(path)
101 102
103 @templatefilter('cbor')
104 def cbor(obj):
105 """Any object. Serializes the object to CBOR bytes."""
106 return b''.join(cborutil.streamencode(obj))
107
102 108 @templatefilter('commondir')
103 109 def commondir(filelist):
104 110 """List of text. Treats each list item as file name with /
@@ -1495,6 +1495,32 Test with non-strings like dates
1495 1495 1200000.00
1496 1496 1300000.00
1497 1497
1498 Test cbor filter:
1499
1500 $ cat <<'EOF' > "$TESTTMP/decodecbor.py"
1501 > from __future__ import absolute_import
1502 > from mercurial import pycompat
1503 > from mercurial.utils import (
1504 > cborutil,
1505 > stringutil,
1506 > )
1507 > items = cborutil.decodeall(pycompat.stdin.read())
1508 > pycompat.stdout.write(stringutil.pprint(items, indent=1) + b'\n')
1509 > EOF
1510
1511 $ hg log -T "{rev|cbor}" -R a -l2 | "$PYTHON" "$TESTTMP/decodecbor.py"
1512 [
1513 10,
1514 9
1515 ]
1516
1517 $ hg log -T "{extras|cbor}" -R a -l1 | "$PYTHON" "$TESTTMP/decodecbor.py"
1518 [
1519 {
1520 'branch': 'default'
1521 }
1522 ]
1523
1498 1524 json filter should escape HTML tags so that the output can be embedded in hgweb:
1499 1525
1500 1526 $ hg log -T "{'<foo@example.org>'|json}\n" -R a -l1
General Comments 0
You need to be logged in to leave comments. Login now