module documentation

Format a message

Function format_b String-like interpolation for bytes objects.
Function format_str Format a string with the given dict. Be a bit more verbose than default python about the error cause.
def format_b(fmtstr, *args):

String-like interpolation for bytes objects.

NOTE: This is a compatibility wrapper for older versions (<3.5) of Python 3 which do not support the percent operator ('%') for bytes objects. This function should be removed (and replaced by simple '%') when Python 3.5 has gained wide enough adoption.

>>> format_b(b'%s %d', b'foo', 123)
b'foo 123'
>>> format_b(b'foo 123')
b'foo 123'
>>> format_b('%s %d', b'foo', 123)
Traceback (most recent call last):
...
AttributeError: 'str' object has no attribute 'decode'
def format_str(msg, args):

Format a string with the given dict. Be a bit more verbose than default python about the error cause.

>>> format_str("%(foo)", {})
Traceback (most recent call last):
...
gbp.errors.GbpError: Failed to format %(foo): Missing value 'foo' in {}
>>> format_str("%(foo)", {'foo': 'bar'})
Traceback (most recent call last):
...
gbp.errors.GbpError: Failed to format %(foo) with {'foo': 'bar'}: incomplete format
>>> format_str("A %(foo)s is a %(bar)s", {'foo': 'dog', 'bar': 'mamal'})
'A dog is a mamal'