From 4896f9a6e5d8b09187ffd0a000dbae3bdbcabd30 Mon Sep 17 00:00:00 2001 From: Brian Dolbec Date: Sat, 13 Oct 2012 12:02:10 -0700 Subject: commit missed compatibility file for py3, py2 functioning. --- layman/compatability.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 layman/compatability.py diff --git a/layman/compatability.py b/layman/compatability.py new file mode 100644 index 0000000..ea7149e --- /dev/null +++ b/layman/compatability.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +""" Copyright 2005 - 2008 Gunnar Wrobel + 2011 - Brian Dolbec + Distributed under the terms of the GNU General Public License v2 +""" + +import sys, types + + +def encode(text, enc="UTF-8"): + """py2, py compatibility function""" + if hasattr(text, 'decode'): + return text.decode(enc) + return str(text) + + +def fileopen(path, mode, enc="UTF-8"): + """py2, py3 compatibility function""" + try: + f = open(path, mode, encoding=enc) + except TypeError: + f = open(path, mode) + return f + + +def cmp_to_key(mycmp): + 'Convert a cmp= function into a key= function' + class K(object): + def __init__(self, obj, *args): + self.obj = obj + def __lt__(self, other): + return mycmp(self.obj, other.obj) < 0 + def __gt__(self, other): + return mycmp(self.obj, other.obj) > 0 + def __eq__(self, other): + return mycmp(self.obj, other.obj) == 0 + def __le__(self, other): + return mycmp(self.obj, other.obj) <= 0 + def __ge__(self, other): + return mycmp(self.obj, other.obj) >= 0 + def __ne__(self, other): + return mycmp(self.obj, other.obj) != 0 + return K -- cgit v1.2.3-1-g7c22