ports/devel/goopy/patches/patch-goopy_functional_py

132 lines
3 KiB
Text

Index: goopy/functional.py
--- goopy/functional.py.orig
+++ goopy/functional.py
@@ -31,8 +31,8 @@
Handy things for functional style programming.
"""
-from __future__ import nested_scopes
+
import math as _math
def some(f, lst):
@@ -58,7 +58,7 @@ def find(p, lst, start=0):
-1 if there is none.
"""
- for i in xrange(start, len(lst)):
+ for i in range(start, len(lst)):
if p(lst[i]):
return i
@@ -94,7 +94,7 @@ def remove_duplicates(lst, key=None):
if key == None:
for v in lst:
try:
- if not d.has_key(v):
+ if v not in d:
result.append(v)
d[v] = 1
except TypeError:
@@ -103,7 +103,7 @@ def remove_duplicates(lst, key=None):
for v in lst:
thiskey = key(v)
try:
- if not d.has_key(thiskey):
+ if thiskey not in d:
result.append(v)
d[thiskey] = 1
except TypeError:
@@ -117,7 +117,7 @@ def transpose(seq_of_seqs):
SEQ_OF_SEQS must be rectangular for this to make sense.
"""
- return zip(*seq_of_seqs)
+ return list(zip(*seq_of_seqs))
def intersection(a, b):
"""
@@ -134,7 +134,7 @@ def intersection(a, b):
d = {}
for x in b:
d[x] = 1
- c = [x for x in a if d.has_key(x)]
+ c = [x for x in a if x in d]
except TypeError: # really want HashError
c = [x for x in a if x in b]
return c
@@ -178,11 +178,11 @@ def maximum(cmp, lst):
"""
if not lst:
- raise ValueError, 'empty list'
+ raise ValueError('empty list')
maxval = lst[0]
- for i in xrange(1, len(lst)):
+ for i in range(1, len(lst)):
v = lst[i]
if cmp(maxval, v) < 0:
maxval = v
@@ -199,11 +199,11 @@ def minimum(cmp, lst):
"""
if not lst:
- raise ValueError, 'empty list'
+ raise ValueError('empty list')
minval = lst[0]
- for i in xrange(1, len(lst)):
+ for i in range(1, len(lst)):
v = lst[i]
if cmp(minval, v) > 0:
minval = v
@@ -251,8 +251,7 @@ def stddev(lst):
def lebesgue_norm(p, lst):
"""l_norm(p, lst) -> Lebesgue norm with parameter P for number list LST"""
- return ((sum(map(lambda x: float(abs(x)) ** p,
- lst))
+ return ((sum([float(abs(x)) ** p for x in lst])
/ float(len(lst)))
** (1.0 / p))
@@ -263,7 +262,7 @@ def list2dict(lst):
"""
d = {}
- for i in xrange(len(lst)):
+ for i in range(len(lst)):
d[i] = lst[i]
return d
@@ -274,7 +273,7 @@ def mapdict(f, d):
"""
d1 = {}
- for k, v in d.items():
+ for k, v in list(d.items()):
d1[k] = f(v)
return d1
@@ -287,7 +286,7 @@ def cyclic_pairs(lst):
n = len(lst)
assert(n >= 2)
cps = []
- for i in xrange(n - 1):
+ for i in range(n - 1):
cps.append((lst[i], lst[i + 1]))
cps.append((lst[n - 1], lst[0]))
return cps
@@ -312,7 +311,7 @@ def number_of_trailing(p, lst):
"""
n = len(lst)
- for i in xrange(n - 1, -1, -1):
+ for i in range(n - 1, -1, -1):
if not p(lst[i]):
return (n - 1) - i
return len(lst)