Completed
Push — master ( bff2ab...5dc771 )
by Satoru
01:07
created

anyconfig.NullHandler   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 6
Duplicated Lines 0 %
Metric Value
dl 0
loc 6
rs 10
wmc 1
1
#
2
# Author: Satoru SATOH <ssato redhat.com>
3
# License: MIT
4
#
5
# pylint: disable=unused-import,import-error,invalid-name
6
"""
7
Compatiblity module
8
"""
9
from __future__ import absolute_import
10
11
import itertools
12
import sys
13
14
try:
15
    from logging import NullHandler
16
except ImportError:  # python < 2.7 doesn't have it.
17
    import logging
18
19
    class NullHandler(logging.Handler):
20
        """
21
        Logging handler does nothing.
22
        """
23
        def emit(self, record):
24
            pass
25
26
27
IS_PYTHON_3 = sys.version_info[0] == 3
28
IS_PYTHON_2_6 = sys.version_info[0] == 2 and sys.version_info[1] == 6
29
30
31
# Borrowed from library doc, 9.7.1 Itertools functions:
32
def _from_iterable(iterables):
33
    """
34
    itertools.chain.from_iterable alternative.
35
36
    >>> list(_from_iterable([[1, 2], [3, 4]]))
37
    [1, 2, 3, 4]
38
    """
39
    for itr in iterables:
40
        for element in itr:
41
            yield element
42
43
44
def py3_iteritems(dic):
45
    """wrapper for dict.items() in python 3.x.
46
47
    >>> list(py3_iteritems({}))
48
    []
49
    >>> sorted(py3_iteritems(dict(a=1, b=2)))
50
    [('a', 1), ('b', 2)]
51
    """
52
    return dic.items()
53
54
55
# pylint: disable=redefined-builtin
56
if IS_PYTHON_3:
57
    import configparser  # flake8: noqa
58
    from io import StringIO  # flake8: noqa
59
    iteritems = py3_iteritems
60
    from_iterable = itertools.chain.from_iterable
61
    raw_input = input
62
    STR_TYPES = (str, )
63
else:
64
    import ConfigParser as configparser  # flake8: noqa
65
    try:
66
        from cStringIO import StringIO  # flake8: noqa
67
    except ImportError:
68
        from StringIO import StringIO  # flake8: noqa
69
70
    try:
71
        from_iterable = itertools.chain.from_iterable
72
    except AttributeError:
73
        from_iterable = _from_iterable
74
75
    assert configparser  # silence pyflakes
76
    assert StringIO  # ditto
77
78
    def py_iteritems(dic):
79
        """wrapper for dict.iteritems() in python < 3.x
80
81
        >>> list(py_iteritems({}))
82
        []
83
        >>> sorted(py_iteritems(dict(a=1, b=2)))
84
        [('a', 1), ('b', 2)]
85
        """
86
        return dic.iteritems()
87
88
    iteritems = py_iteritems
89
    raw_input = raw_input
90
    STR_TYPES = (str, unicode)
91
92
try:
93
    from collections import OrderedDict
94
except ImportError:
95
    from ordereddict import OrderedDict  # Python 2.6
96
97
# vim:sw=4:ts=4:et:
98