code cleaning

This commit is contained in:
klemek
2020-04-27 14:10:59 +02:00
parent 8861f002ec
commit de22001504
+50 -46
View File
@@ -150,53 +150,10 @@ def find_nearest(word, wlist, threshold=5):
return found[1] return found[1]
def safe_index(src, pattern, start=0):
"""
:param (list|str) src:
:param pattern:
:param (int) start:
"""
try:
return src.index(pattern, start)
except ValueError:
return None
def find_all(src, pattern):
"""
:param (str) src:
:param (str) pattern:
:rtype: list of int
"""
o = []
i = safe_index(src, pattern)
while i is not None:
o += [i]
i = safe_index(src, pattern, i + 1)
return o
def replace_at(src, pattern, indexes, remove):
"""
:param (str) src:
:param (str) pattern:
:param (list of int) indexes:
:param (int) remove:
:rtype: str
"""
o = ""
last = 0
for i in indexes:
o += src[last:i] + pattern
last = i + remove
o += src[last:]
return o
def break_text(src, n): def break_text(src, n):
""" """
:param (str) src: :param (str) src: source string
:param (int) n: :param (int) n: number of lines
:rtype: str :rtype: str
""" """
spaces = find_all(src, " ") spaces = find_all(src, " ")
@@ -209,13 +166,48 @@ def break_text(src, n):
return replace_at(src, "\n", indexes, 1) return replace_at(src, "\n", indexes, 1)
def find_all(src, pattern):
"""
:param (str) src: source string
:param (str) pattern: pattern to find
:rtype: list of int
:return: all indexes of the pattern
"""
o = []
i = safe_index(src, pattern)
while i is not None:
o += [i]
i = safe_index(src, pattern, i + 1)
return o
def replace_at(src, pattern, indexes, remove):
"""
:param (str) src: source string
:param (str) pattern: string to inject
:param (list of int) indexes: places to inject
:param (int) remove: how much to remove at each index
:rtype: str
:return
"""
o = ""
last = 0
for i in indexes:
o += src[last:i] + pattern
last = i + remove
o += src[last:]
return o
def best_fit(a, b): def best_fit(a, b):
""" """
select for each item of a the closest item of b
:param (list of float) a: :param (list of float) a:
:param (list of int) b: :param (list of int) b:
:rtype: list of int :rtype: list of int
""" """
a = a[::] a = a[:]
o = [] o = []
dist = sys.maxsize dist = sys.maxsize
for i, value in enumerate(b): for i, value in enumerate(b):
@@ -229,3 +221,15 @@ def best_fit(a, b):
if len(a): if len(a):
o += [b[-1]] o += [b[-1]]
return o return o
def safe_index(src, pattern, start=0):
"""
:param (list|str) src:
:param pattern:
:param (int) start:
"""
try:
return src.index(pattern, start)
except ValueError:
return None