1# Copyright 2018, OpenCensus Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from collections import namedtuple
16
17from opencensus.tags.tag_key import TagKey
18from opencensus.tags.tag_value import TagValue
19
20Tag_ = namedtuple('Tag', ['key', 'value'])
21
22
23class Tag(Tag_):
24    """A tag, in the format [KEY]:[VALUE].
25
26    :type key: str
27    :param key: The name of the tag
28
29    :type value: str
30    :param value: The value of the tag
31
32    """
33    def __new__(cls, key, value):
34        return super(Tag, cls).__new__(
35            cls,
36            key=TagKey(key),
37            value=TagValue(value),
38        )
39