mirror of
https://github.com/pret/pokemon-reverse-engineering-tools.git
synced 2026-08-09 18:57:29 -05:00
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
"""
|
|
Generic functions that should be reusable anywhere in pokemontools.
|
|
"""
|
|
import os
|
|
|
|
def index(seq, f):
|
|
"""
|
|
return the index of the first item in seq
|
|
where f(item) == True.
|
|
"""
|
|
return next((i for i in xrange(len(seq)) if f(seq[i])), None)
|
|
|
|
def grouper(some_list, count=2):
|
|
"""
|
|
splits a list into sublists
|
|
|
|
given: [1, 2, 3, 4]
|
|
returns: [[1, 2], [3, 4]]
|
|
"""
|
|
return [some_list[i:i+count] for i in range(0, len(some_list), count)]
|
|
|
|
def flattener(x):
|
|
"""
|
|
flattens a list of sublists into just one list (generator)
|
|
"""
|
|
try:
|
|
it = iter(x)
|
|
except TypeError:
|
|
yield x
|
|
else:
|
|
for i in it:
|
|
for j in flattener(i):
|
|
yield j
|
|
|
|
def flatten(x):
|
|
"""
|
|
flattens a list of sublists into just one list
|
|
"""
|
|
return list(flattener(x))
|
|
|
|
def mkdir_p(path):
|
|
"""
|
|
Make a directory at a given path.
|
|
"""
|
|
try:
|
|
os.makedirs(path)
|
|
except OSError as exc: # Python >2.5
|
|
if exc.errno == errno.EEXIST:
|
|
pass
|
|
else:
|
|
raise exc
|