/usr/lib/python2.7/dist-packages/mcomix/tools.py is in mcomix 1.00-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | """tools.py - Contains various helper functions."""
import os
import sys
import re
import gc
import bisect
def alphanumeric_sort(filenames):
"""Do an in-place alphanumeric sort of the strings in <filenames>,
such that for an example "1.jpg", "2.jpg", "10.jpg" is a sorted
ordering.
"""
def _format_substring(s):
if s.isdigit():
return int(s)
return s.lower()
rec = re.compile("\d+|\D+")
filenames.sort(key=lambda s: map(_format_substring, rec.findall(s)))
def bin_search(lst, value):
""" Binary search for sorted list C{lst}, looking for C{value}.
@return: List index on success, -1 on failure. """
index = bisect.bisect_left(lst, value)
if index != len(lst) and lst[index] == value:
return index
else:
return -1
def get_home_directory():
"""On UNIX-like systems, this method will return the path of the home
directory, e.g. /home/username. On Windows, it will return an MComix
sub-directory of <Documents and Settings/Username>.
"""
if sys.platform == 'win32':
return os.path.join(os.path.expanduser('~'), 'MComix')
else:
return os.path.expanduser('~')
def get_config_directory():
"""Return the path to the MComix config directory. On UNIX, this will
be $XDG_CONFIG_HOME/mcomix, on Windows it will be the same directory as
get_home_directory().
See http://standards.freedesktop.org/basedir-spec/latest/ for more
information on the $XDG_CONFIG_HOME environmental variable.
"""
if sys.platform == 'win32':
return get_home_directory()
else:
base_path = os.getenv('XDG_CONFIG_HOME',
os.path.join(get_home_directory(), '.config'))
return os.path.join(base_path, 'mcomix')
def get_data_directory():
"""Return the path to the MComix data directory. On UNIX, this will
be $XDG_DATA_HOME/mcomix, on Windows it will be the same directory as
get_home_directory().
See http://standards.freedesktop.org/basedir-spec/latest/ for more
information on the $XDG_DATA_HOME environmental variable.
"""
if sys.platform == 'win32':
return get_home_directory()
else:
base_path = os.getenv('XDG_DATA_HOME',
os.path.join(get_home_directory(), '.local/share'))
return os.path.join(base_path, 'mcomix')
def number_of_digits(n):
num_of_digits = 1
while n > 9:
n /= 10
num_of_digits += 1
return num_of_digits
def garbage_collect():
""" Runs the garbage collector. """
if sys.version_info[:3] >= (2, 5, 0):
gc.collect(0)
else:
gc.collect()
# vim: expandtab:sw=4:ts=4
|