[go: up one dir, main page]

Menu

[r533]: / mcomix / tools.py  Maximize  Restore  History

Download this file

86 lines (69 with data), 2.7 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
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
"""tools.py - Contains various helper functions."""
import os
import sys
import re
import gc
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 lastmodified_sort(filenames):
"""Do an in-place sort of the strings in <filenames> based on each
filename's last modified attribute. This will return a list of filenames
where the most recently modified file is returned first, and so on."""
filenames.sort(key=lambda s: os.path.getmtime(s)*-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