|
|
|
from analytics.version import VERSION |
|
from analytics.client import Client |
|
|
|
__version__ = VERSION |
|
|
|
"""Settings.""" |
|
write_key = Client.DefaultConfig.write_key |
|
host = Client.DefaultConfig.host |
|
on_error = Client.DefaultConfig.on_error |
|
debug = Client.DefaultConfig.debug |
|
send = Client.DefaultConfig.send |
|
sync_mode = Client.DefaultConfig.sync_mode |
|
max_queue_size = Client.DefaultConfig.max_queue_size |
|
gzip = Client.DefaultConfig.gzip |
|
timeout = Client.DefaultConfig.timeout |
|
max_retries = Client.DefaultConfig.max_retries |
|
|
|
default_client = None |
|
|
|
|
|
def track(*args, **kwargs): |
|
"""Send a track call.""" |
|
_proxy('track', *args, **kwargs) |
|
|
|
|
|
def identify(*args, **kwargs): |
|
"""Send a identify call.""" |
|
_proxy('identify', *args, **kwargs) |
|
|
|
|
|
def group(*args, **kwargs): |
|
"""Send a group call.""" |
|
_proxy('group', *args, **kwargs) |
|
|
|
|
|
def alias(*args, **kwargs): |
|
"""Send a alias call.""" |
|
_proxy('alias', *args, **kwargs) |
|
|
|
|
|
def page(*args, **kwargs): |
|
"""Send a page call.""" |
|
_proxy('page', *args, **kwargs) |
|
|
|
|
|
def screen(*args, **kwargs): |
|
"""Send a screen call.""" |
|
_proxy('screen', *args, **kwargs) |
|
|
|
|
|
def flush(): |
|
"""Tell the client to flush.""" |
|
_proxy('flush') |
|
|
|
|
|
def join(): |
|
"""Block program until the client clears the queue""" |
|
_proxy('join') |
|
|
|
|
|
def shutdown(): |
|
"""Flush all messages and cleanly shutdown the client""" |
|
_proxy('flush') |
|
_proxy('join') |
|
|
|
|
|
def _proxy(method, *args, **kwargs): |
|
"""Create an analytics client if one doesn't exist and send to it.""" |
|
global default_client |
|
if not default_client: |
|
default_client = Client(write_key, host=host, debug=debug, |
|
max_queue_size=max_queue_size, |
|
send=send, on_error=on_error, |
|
gzip=gzip, max_retries=max_retries, |
|
sync_mode=sync_mode, timeout=timeout) |
|
|
|
fn = getattr(default_client, method) |
|
fn(*args, **kwargs) |
|
|