view nagslang/data.py @ 15:980339c28b42

Add start of engine / event dispatcher.
author Simon Cross <hodgestar@gmail.com>
date Sun, 01 Sep 2013 14:19:55 +0200
parents 3769f9d260d8
children b0644173d0aa
line wrap: on
line source

'''Simple data loader module.

Loads data files from the "data" directory shipped with a game.

Enhancing this to handle caching etc. is left as an exercise for the reader.

Note that pyglet users should probably just add the data directory to the
pyglet.resource search path.
'''

import os

data_py = os.path.abspath(os.path.dirname(__file__))
data_dir = os.path.normpath(os.path.join(data_py, '..', 'data'))


def filepath(filename):
    '''Determine the path to a file in the data directory.
    '''
    # Allow using / as separator in filenames
    filename = os.path.join(*filename.split('/'))
    return os.path.join(data_dir, filename)


def load(filename, mode='rb'):
    '''Open a file in the data directory.

    "mode" is passed as the second arg to open().
    '''
    return open(os.path.join(data_dir, filename), mode)