v3bwfile.py 1.24 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
8
from sbws import __version__
from sbws.globals import SPEC_VERSION
juga's avatar
juga committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

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',
25
                 software_version=__version__):
26
        self.timestamp = timestamp or int(time.time())
juga's avatar
juga committed
27
28
29
30
31
32
        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
33
        frmt = '{timestamp}\nversion={version} software={software} ' \
juga's avatar
juga committed
34
35
               'software_version={software_version}\n'
        return frmt.format(**self.__dict__)