v3bwfile.py 1.22 KB
Newer Older
juga's avatar
juga committed
1
2
3
4
# -*- coding: utf-8 -*-
"""Classes and functions that create the bandwidth measurements document
(v3bw) used by bandwidth authorities."""

5
import time
juga's avatar
juga committed
6
import logging
7
from sbws import SBWS_VERSION, SPEC_VERSION
juga's avatar
juga committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

log = logging.getLogger(__name__)


class V3BwHeader(object):
    """
    Create a bandwidth measurements (V3bw) header
    following bandwidth measurements document spec version 1.1.0.

    :param int timestamp: timestamp in Unix Epoch seconds when the document
                          is created
    :param str version: the spec version
    :param str software: the name of the software that generates this
    :param str software_version: the version of the software
    """
    def __init__(self, timestamp=None, version=SPEC_VERSION, software='sbws',
24
                 software_version=SBWS_VERSION):
25
        self.timestamp = timestamp or int(time.time())
juga's avatar
juga committed
26
27
28
29
30
31
        self.version = version
        self.software = software
        self.software_version = software_version

    def __str__(self):
        """Return header string following spec version 1.1.0."""
juga's avatar
juga committed
32
        frmt = '{timestamp}\nversion={version} software={software} ' \
juga's avatar
juga committed
33
34
               'software_version={software_version}\n'
        return frmt.format(**self.__dict__)