[formatter] implement 'L' conversion
This commit is contained in:
@@ -76,6 +76,12 @@ Conversion specifiers allow to *convert* the value to a different form or type.
|
|||||||
<td><code>{tags!j}</code></td>
|
<td><code>{tags!j}</code></td>
|
||||||
<td><code>["sun", "tree", "water"]</code></td>
|
<td><code>["sun", "tree", "water"]</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center"><code>L</code></td>
|
||||||
|
<td>Return the <a href="https://docs.python.org/3/library/functions.html#len" rel="nofollow">length</a> of a value</td>
|
||||||
|
<td><code>{foo!L}</code></td>
|
||||||
|
<td><code>7</code></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><code>t</code></td>
|
<td align="center"><code>t</code></td>
|
||||||
<td>Trim a string, i.e. remove leading and trailing whitespace characters</td>
|
<td>Trim a string, i.e. remove leading and trailing whitespace characters</td>
|
||||||
@@ -84,13 +90,13 @@ Conversion specifiers allow to *convert* the value to a different form or type.
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><code>T</code></td>
|
<td align="center"><code>T</code></td>
|
||||||
<td>Convert a <code>datetime</code> object to a unix timestamp</td>
|
<td>Convert a <code>datetime</code> object to a Unix timestamp</td>
|
||||||
<td><code>{date!T}</code></td>
|
<td><code>{date!T}</code></td>
|
||||||
<td><code>1262304000</code></td>
|
<td><code>1262304000</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center"><code>d</code></td>
|
<td align="center"><code>d</code></td>
|
||||||
<td>Convert a unix timestamp to a <code>datetime</code> object</td>
|
<td>Convert a Unix timestamp to a <code>datetime</code> object</td>
|
||||||
<td><code>{created!d}</code></td>
|
<td><code>{created!d}</code></td>
|
||||||
<td><code>2010-01-01 00:00:00</code></td>
|
<td><code>2010-01-01 00:00:00</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -485,6 +485,7 @@ _CONVERSIONS = {
|
|||||||
"C": string.capwords,
|
"C": string.capwords,
|
||||||
"j": util.json_dumps,
|
"j": util.json_dumps,
|
||||||
"t": str.strip,
|
"t": str.strip,
|
||||||
|
"L": len,
|
||||||
"T": util.datetime_to_timestamp_string,
|
"T": util.datetime_to_timestamp_string,
|
||||||
"d": text.parse_timestamp,
|
"d": text.parse_timestamp,
|
||||||
"U": text.unescape,
|
"U": text.unescape,
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ class TestFormatter(unittest.TestCase):
|
|||||||
self._run_test("{l!j}", '["a", "b", "c"]')
|
self._run_test("{l!j}", '["a", "b", "c"]')
|
||||||
self._run_test("{dt!j}", '"2010-01-01 00:00:00"')
|
self._run_test("{dt!j}", '"2010-01-01 00:00:00"')
|
||||||
self._run_test("{a!g}", "hello-world")
|
self._run_test("{a!g}", "hello-world")
|
||||||
|
self._run_test("{a!L}", 11)
|
||||||
|
self._run_test("{l!L}", 3)
|
||||||
|
self._run_test("{d!L}", 3)
|
||||||
|
|
||||||
with self.assertRaises(KeyError):
|
with self.assertRaises(KeyError):
|
||||||
self._run_test("{a!q}", "hello world")
|
self._run_test("{a!q}", "hello world")
|
||||||
|
|||||||
Reference in New Issue
Block a user