expecting the following data scheme:
        {
            u'status': u'Pushing',
            u'progressDetail': {
                                    u'current': 655337,
                                    u'start': 1413994898,
                                    u'total': 20412416
                                },
            u'id': u'51783549ce98',
            u'progress': u'[=>                                                 ] 655.3 kB/20.41 MB 30s'
        }

        {
            u'status': u'Buffering to disk',
            u'progressDetail': {
                                    u'current': 13369344,
                                    u'start': 1413994898
                               },
            u'id': u'51783549ce98',
            u'progress': u'13.37 MB'
        }

def _display_progress(data, stream):
    """
    expecting the following data scheme:
        {
            u'status': u'Pushing',
            u'progressDetail': {
                                    u'current': 655337,
                                    u'start': 1413994898,
                                    u'total': 20412416
                                },
            u'id': u'51783549ce98',
            u'progress': u'[=>                                                 ] 655.3 kB/20.41 MB 30s'
        }

        {
            u'status': u'Buffering to disk',
            u'progressDetail': {
                                    u'current': 13369344,
                                    u'start': 1413994898
                               },
            u'id': u'51783549ce98',
            u'progress': u'13.37 MB'
        }
    """
    if type(data) is not dict:
        raise TypeError("data should be of type dict. the following was passed: {0}".format(data))

    stream.write("\r%s %s" % (data['status'], data['progress']))

    if 'Pushing' in data['status']:
        if data['progress_detail']['current'] == data['progress_detail'].get('total'):
            stream.write("\n")

    stream.flush()