summaryrefslogtreecommitdiff
path: root/kpov_judge/instructions_extractor.py
diff options
context:
space:
mode:
Diffstat (limited to 'kpov_judge/instructions_extractor.py')
-rw-r--r--kpov_judge/instructions_extractor.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/kpov_judge/instructions_extractor.py b/kpov_judge/instructions_extractor.py
index 5574389..4e00dc5 100644
--- a/kpov_judge/instructions_extractor.py
+++ b/kpov_judge/instructions_extractor.py
@@ -2,23 +2,40 @@
import glob
import os.path
+import os
from bson.son import SON
import sys
+def print_instructions(p, fname):
+ try:
+ print "---------------"
+ l = p.split(os.sep)
+ l1 = []
+ for i in xrange(len(l)):
+ f = os.path.join(*l[:i+1])
+ if os.path.islink(f):
+ s = "{0} ({1})".format(l[i], os.path.split(os.readlink(f))[1])
+ else:
+ s = l[i]
+ l1.append(s)
+ print p
+ print " - ".join(l1)
+ with open(os.path.join(p, fname)) as f:
+ task_code = compile(f.read(), fname, 'exec')
+ exec(task_code)
+ for lang, text in instructions.iteritems():
+ print("Language: {0}".format(lang))
+ print(text.encode('utf-8'))
+ print("")
+ except Exception, e:
+ print e
+ pass
if __name__ == '__main__':
l = glob.glob(sys.argv[1])
l.sort()
- for week in l:
- print "---------------"
- for part in ['preparation', 'evaluation']:
- try:
- print week.split('/')[2], '-' , part, ':'
- with open(os.path.join(week, part, 'task.py')) as f:
- task_code = compile(f.read(), 'task.py', 'exec')
- exec(task_code)
- print instructions['si'].encode('utf-8')
- except Exception, e:
- print e
- pass
-
+ for d in l:
+ for root, dirs, files in os.walk(d, followlinks=True):
+ for fname in files:
+ if fname == 'task.py':
+ print_instructions(root, fname)