forked from kz26/PyExcelerate
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUtility.py
More file actions
52 lines (45 loc) · 1.08 KB
/
Utility.py
File metadata and controls
52 lines (45 loc) · 1.08 KB
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
import six
def nonboolean_or(left, right, default=False):
if default == False:
return left | right
if left == default:
return right
if right == default or left == right:
return left
return left | right # this scenario doesn't actually make sense, but it might be implemented
def nonboolean_and(left, right, default=False):
if default == False:
return left & right
if left == right:
return left
return default
def nonboolean_xor(left, right, default=False):
if default == False:
return left ^ right
if left == default:
return right
if right == default:
return left
return default
def lazy_get(self, attribute, default):
value = getattr(self, attribute)
if not value:
setattr(self, attribute, default)
return default
else:
return value
def lazy_set(self, attribute, default, value):
if value == default:
setattr(self, attribute, default)
else:
setattr(self, attribute, value)
if six.PY2:
def to_unicode(s):
if type(s) == unicode:
return s
else:
return s.decode('utf-8')
else:
def to_unicode(s):
return s
YOLO = False # are we aligning?