/usr/lib/python2.7/dist-packages/txclib/config.py is in transifex-client 0.10-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115  | import ConfigParser
class OrderedRawConfigParser( ConfigParser.RawConfigParser ):
    """
    Overload standard Class ConfigParser.RawConfigParser
    """
    def write(self, fp):
        """Write an .ini-format representation of the configuration state."""
        if self._defaults:
            fp.write("[%s]\n" % DEFAULTSECT)
            for key in sorted( self._defaults ):
                fp.write( "%s = %s\n" % (key, str( self._defaults[ key ]
                    ).replace('\n', '\n\t')) )
            fp.write("\n")
        for section in self._sections:
            fp.write("[%s]\n" % section)
            for key in sorted( self._sections[section] ):
                if key != "__name__":
                    fp.write("%s = %s\n" %
                        (key, str( self._sections[section][ key ]
                        ).replace('\n', '\n\t')))
            fp.write("\n")
    optionxform = str
_NOTFOUND = object()
class Flipdict(dict):
    """An injective (one-to-one) python dict.  Ensures that each key maps
    to a unique value, and each value maps back to that same key.
    Code mostly taken from here:
    http://code.activestate.com/recipes/576968-flipdict-python-dict-that-also-maintains-a-one-to-/
    """
    def __init__(self, *args, **kw):
        self._flip = dict.__new__(self.__class__)
        setattr(self._flip, "_flip", self)
        for key, val in dict(*args, **kw).iteritems():
            self[key] = val
    @property
    def flip(self):
        """The inverse mapping."""
        return self._flip
    def __repr__(self):
        return "%s(%r)" % (self.__class__.__name__, dict(self))
    __str__ = __repr__
    def copy(self):
        return self.__class__(self)
    @classmethod
    def fromkeys(cls, keys, value=None):
        return cls(dict.fromkeys(keys, value))
    def __setitem__(self, key, val):
        k = self._flip.get(val, _NOTFOUND)
        if not (k is _NOTFOUND or k==key):
            raise KeyError('(key,val) would erase mapping for value %r' % val)
        v = self.get(key, _NOTFOUND)
        if v is not _NOTFOUND:
            dict.__delitem__(self._flip, v)
        dict.__setitem__(self,       key, val)
        dict.__setitem__(self._flip, val, key)
    def setdefault(self, key, default = None):
        # Copied from python's UserDict.DictMixin code.
        try:
            return self[key]
        except KeyError:
            self[key] = default
            return default
    def update(self, other = None, **kwargs):
        # Copied from python's UserDict.DictMixin code.
        # Make progressively weaker assumptions about "other"
        if other is None:
            pass
        elif hasattr(other, 'iteritems'):  # iteritems saves memory and lookups
            for k, v in other.iteritems():
                self[k] = v
        elif hasattr(other, 'keys'):
            for k in other.keys():
                self[k] = other[k]
        else:
            for k, v in other:
                self[k] = v
        if kwargs:
            self.update(kwargs)
    def __delitem__(self, key):
        val = dict.pop(self, key)
        dict.__delitem__(self._flip, val)
    def pop(self, key, *args):
        val = dict.pop(self, key, *args)
        dict.__delitem__(self._flip, val)
        return val
    def popitem(self):
        key, val = dict.popitem(self)
        dict.__delitem__(self._flip, val)
        return key, val
    def clear(self):
        dict.clear(self)
        dict.clear(self._flip)
 |