Mercurial > ~astiob > upreckon > hgweb
comparison config.py @ 83:37c4ad87583c
Several small fixes
Bug fix: testconf.py bytecode is written on Python 2.5. It is not written
on newer versions of Python, but Python 2.5 lacks the facility to disable
writing it; before this fix, the code just raised an unhandled exception.
Bug fix: callable validators no longer require the outfile configuration
variable to be set.
Bug fix: the pause configuration variable (if not callable) is run in a
shell just like it did in test.py v1; in particular, auto-detected values
of the pause configuration variable now work again.
Extras: *.{class,orig} added to .hgignore; Sublime Text 1 project file
removed as I am using Sublime Text 2 now.
author | Oleg Oshmyan <chortos@inbox.lv> |
---|---|
date | Thu, 24 Feb 2011 00:10:19 +0000 |
parents | 06356af50bf9 |
children | cd347cfca272 |
comparison
equal
deleted
inserted
replaced
82:06356af50bf9 | 83:37c4ad87583c |
---|---|
88 self.file.close() | 88 self.file.close() |
89 os.remove(self.name) | 89 os.remove(self.name) |
90 | 90 |
91 def load_problem(problem_name): | 91 def load_problem(problem_name): |
92 global builtins | 92 global builtins |
93 dwb = sys.dont_write_bytecode | 93 try: |
94 sys.dont_write_bytecode = True | 94 dwb = sys.dont_write_bytecode |
95 sys.dont_write_bytecode = True | |
96 except AttributeError: | |
97 pass | |
95 metafile = files.File('/'.join((problem_name, 'testconf.py')), True, 'configuration') | 98 metafile = files.File('/'.join((problem_name, 'testconf.py')), True, 'configuration') |
96 module = None | 99 module = None |
97 with CompatBuiltins() as builtins: | 100 with CompatBuiltins() as builtins: |
98 if zipimport and isinstance(metafile.archive, files.ZipArchive): | 101 if zipimport and isinstance(metafile.archive, files.ZipArchive): |
99 try: | 102 try: |
155 except TypeError: | 158 except TypeError: |
156 newmap[key] = oldmap[key] | 159 newmap[key] = oldmap[key] |
157 setattr(module, name, newmap) | 160 setattr(module, name, newmap) |
158 if options.no_maxtime: | 161 if options.no_maxtime: |
159 module.maxcputime = module.maxwalltime = 0 | 162 module.maxcputime = module.maxwalltime = 0 |
160 sys.dont_write_bytecode = dwb | 163 try: |
164 sys.dont_write_bytecode = dwb | |
165 except NameError: | |
166 pass | |
161 for name in patterns: | 167 for name in patterns: |
162 if hasattr(module, name): | 168 if hasattr(module, name): |
163 setattr(module, name, getattr(module, name).replace('%', problem_name)) | 169 setattr(module, name, getattr(module, name).replace('%', problem_name)) |
164 return module | 170 return module |
165 | 171 |
166 def load_global(): | 172 def load_global(): |
167 global builtins | 173 global builtins |
168 dwb = sys.dont_write_bytecode | 174 try: |
169 sys.dont_write_bytecode = True | 175 dwb = sys.dont_write_bytecode |
176 sys.dont_write_bytecode = True | |
177 except AttributeError: | |
178 pass | |
170 metafile = files.File('testconf.py', True, 'configuration') | 179 metafile = files.File('testconf.py', True, 'configuration') |
171 module = None | 180 module = None |
172 with CompatBuiltins() as builtins: | 181 with CompatBuiltins() as builtins: |
173 if zipimport and isinstance(metafile.archive, files.ZipArchive): | 182 if zipimport and isinstance(metafile.archive, files.ZipArchive): |
174 try: | 183 try: |
197 setattr(module, name, getattr(module, name, defaults_noerase[name])) | 206 setattr(module, name, getattr(module, name, defaults_noerase[name])) |
198 if hasattr(module, 'tasknames'): | 207 if hasattr(module, 'tasknames'): |
199 module.problems = module.tasknames | 208 module.problems = module.tasknames |
200 global globalconf | 209 global globalconf |
201 globalconf = module | 210 globalconf = module |
202 sys.dont_write_bytecode = dwb | 211 try: |
212 sys.dont_write_bytecode = dwb | |
213 except NameError: | |
214 pass | |
203 return module | 215 return module |