comparison gamelib/data.py @ 303:e12d99215b74

Fix up data module unix-to-local path fixing. Fix similar problems in tile importing.
author Simon Cross <hodgestar@gmail.com>
date Sat, 05 Sep 2009 17:35:17 +0000
parents c0455e6c99f4
children
comparison
equal deleted inserted replaced
302:01c1682dc250 303:e12d99215b74
8 import os 8 import os
9 9
10 data_py = os.path.abspath(os.path.dirname(__file__)) 10 data_py = os.path.abspath(os.path.dirname(__file__))
11 data_dir = os.path.normpath(os.path.join(data_py, '..', 'data')) 11 data_dir = os.path.normpath(os.path.join(data_py, '..', 'data'))
12 12
13 def unix_to_local(filename):
14 '''Convert a relative unix / http filename to a local one.'''
15 return os.path.join(*filename.split("/"))
16
13 def filepath(*filenames): 17 def filepath(*filenames):
14 '''Determine the path to a file in the data directory. 18 '''Determine the path to a file in the data directory.
15 ''' 19 '''
16 return os.path.join(data_dir, *filenames) 20 os_filenames = [unix_to_local(f) for f in filenames]
21 return os.path.join(data_dir, *os_filenames)
17 22
18 def load(filename, mode='rb'): 23 def load(filename, mode='rb'):
19 '''Open a file in the data directory. 24 '''Open a file in the data directory.
20 25
21 "mode" is passed as the second arg to open(). 26 "mode" is passed as the second arg to open().
22 ''' 27 '''
23 # convert unix path separator to platform appropriate one 28 # convert unix path separator to platform appropriate one
24 filename = os.path.join(*filename.split("/")) 29 filename = unix_to_local(filename)
25 return open(os.path.join(data_dir, filename), mode) 30 return open(os.path.join(data_dir, filename), mode)
26 31