Quickstart

Eager to get started? Good! This page consists only of examples to give you an introduction in how you can make effective use of Kaviar in your project.

Formatting

>>> from kaviar import kv_format
>>> kv_format(random_value=4)  # chosen by fair dice roll.
>>>                            # guaranteed to be random.
'random_value=4'

Strings and Binary Data

>>> kv_format(simple_string='Hi!')
'simple_string=Hi!'
>>> kv_format(complex_string='Hello World!')
'complex_string="Hello World!"'
>>> print(kv_format(unicode_string='こにちは'))
unicode_string="\u3053\u306b\u3061\u306f"
>>> print(kv_format(data=b'\xbc\xe1#R\n\xa0\x08D\xe5'))
data="\xbc\xe1#R\n\xa0\bD\xe5"

Lists, Sets and anything that can be iterated

>>> kv_format(a=[1, 2, 3, ])
'a__0=1   a__1=2   a__2=3'
>>> kv_format(my_set={'z', 'x', 'y'})
'my_set__0=x   my_set__1=y   my_set__2=z'

Mappings

>>> kv_format(c={'b': 16, 'a': 27, })
'c__a=27   c__b=16'
>>> from collections import OrderedDict
>>> kv_format(o=OrderedDict([('b', 16), ('a', 27), ]))
'o__b=16   o__a=27'

Other Objects

>>> import datetime
>>> kv_format(t=datetime.datetime(2014, 12, 24, 12, 12))
't="2014-12-24 12:12:00"'
>>> from decimal import Decimal
>>> kv_format(c=Decimal('0.24'))
'c=0.24'

Logging

Simple logging

from kaviar import EventKvLoggerAdapter

logger = EventKvLoggerAdapter.get_logger(__name__)

logger.info('NEW_CLIENT', client_id=42,
            peer_name='93.184.216.119')

Predefined Event logging

import logging
from functools import partial
from kaviar import EventKvLoggerAdapter

logger = EventKvLoggerAdapter.get_logger(__name__)

log_event = partial(logger.define_logger_func(logging.INFO,
                                              'server peer_name'),
                    'NEW_CLIENT')

log_event('example.org', '93.184.216.164')