Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

import os 

import glob 

 

def getTaskDescriptionFiles(searchDir): 

    assert os.path.isdir(searchDir) 

    files = glob.glob(os.path.join(searchDir, '*.py')) 

    files = [f for f in files if os.path.basename(f) != '__init__.py'] 

    return files 

 

 

def loadTaskDescriptionsFromFile(descriptionFile): 

    descriptions = [] 

    globalVars = {} 

    execfile(descriptionFile, globalVars) 

 

    for key, value in globalVars.iteritems(): 

        if isinstance(value, list): 

            descriptions.append((key, value)) 

 

    return descriptions 

 

def getDefaultSearchDirectory(): 

    return os.path.dirname(__file__) 

 

def loadTaskDescription(name, searchDir=None): 

    searchDir = searchDir or getDefaultSearchDirectory() 

    filename = os.path.join(searchDir, name + '.py') 

    return loadTaskDescriptionsFromFile(filename)[0][1] 

 

def loadTaskDescriptions(searchDir=None): 

    searchDir = searchDir or getDefaultSearchDirectory() 

    descriptionFiles = getTaskDescriptionFiles(searchDir) 

    descriptions = [] 

    for filename in descriptionFiles: 

        descriptions.extend(loadTaskDescriptionsFromFile(filename)) 

    return descriptions