Opened 21 years ago
Closed 21 years ago
#1011 closed defect (fixed)
global name 'hdf' is not defined
| Reported by: | ax | Owned by: | Christopher Lenz |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.8.1 |
| Component: | wiki system | Version: | 0.8 |
| Severity: | normal | Keywords: | |
| Cc: | trac@… | Branch: | |
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
i get the following error trying to access /trac/wiki/WikiRestructuredText on my installation:
global name 'hdf' is not defined
Traceback (most recent call last):
File "/usr/lib/python2.1/site-packages/trac/core.py", line 525, in cgi_start
real_cgi_start()
File "/usr/lib/python2.1/site-packages/trac/core.py", line 520, in real_cgi_start
dispatch_request(path_info, args, req, env)
File "/usr/lib/python2.1/site-packages/trac/core.py", line 435, in dispatch_request
module.run()
File "/usr/lib/python2.1/site-packages/trac/Module.py", line 44, in run
self.render()
File "/usr/lib/python2.1/site-packages/trac/Wiki.py", line 339, in render
Formatter(self.req.hdf, self.env,self.db).format(self.page.text, out)
File "/usr/lib/python2.1/site-packages/trac/WikiFormatter.py", line 549, in format
self.handle_code_block(line)
File "/usr/lib/python2.1/site-packages/trac/WikiFormatter.py", line 505, in handle_code_block
self.out.write(self.code_processor(self.hdf, self.code_text, self.env))
File "/usr/lib/python2.1/site-packages/trac/wikimacros/rst.py", line 209, in execute
settings_overrides = {'halt_level':6})
File "/usr/lib/python2.1/site-packages/docutils/core.py", line 371, in publish_string
enable_exit_status=enable_exit_status)
File "/usr/lib/python2.1/site-packages/docutils/core.py", line 513, in publish_programmatically
output = pub.publish(enable_exit_status=enable_exit_status)
File "/usr/lib/python2.1/site-packages/docutils/core.py", line 194, in publish
self.settings)
File "/usr/lib/python2.1/site-packages/docutils/readers/__init__.py", line 66, in read
self.parse()
File "/usr/lib/python2.1/site-packages/docutils/readers/__init__.py", line 72, in parse
self.parser.parse(self.input, document)
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/__init__.py", line 139, in parse
self.statemachine.run(inputlines, document, inliner=self.inliner)
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/states.py", line 171, in run
input_source=document['source'])
File "/usr/lib/python2.1/site-packages/docutils/statemachine.py", line 232, in run
context, next_state, result = self.check_line(
File "/usr/lib/python2.1/site-packages/docutils/statemachine.py", line 421, in check_line
return method(match, context, next_state)
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/states.py", line 2149, in explicit_markup
nodelist, blank_finish = self.explicit_construct(match)
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/states.py", line 2161, in explicit_construct
return method(self, expmatch)
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/states.py", line 1923, in directive
return self.run_directive(
File "/usr/lib/python2.1/site-packages/docutils/parsers/rst/states.py", line 1968, in run_directive
self.state_machine)
File "/usr/lib/python2.1/site-packages/trac/wikimacros/rst.py", line 183, in code_block
html = code_processor(hdf, '\n'.join(content), env)
NameError: global name 'hdf' is not defined
Python 2.1.3, trac/branches/0.8-stable rev 1096, all of docutils 0.3.3, 0.3.5, cvs
any help greatly appreciated!
Attachments (1)
Change History (6)
comment:1 by , 21 years ago
comment:2 by , 21 years ago
thanks for the heads-up. with your help, i managed to get both WikiRestructuredText and WikiRestructuredTextLinks as well as some rst of my own to render without errors on python2.1. patch attached. there were some more instances of python2.1-incompatibilities (global name "env" not defined, True/False not defined, …). there might be some more, so it would be nice if someone could double-check this.
are there any guidelines for writing python2.1-compatible trac code?
comment:3 by , 21 years ago
| Milestone: | → 0.8.1 |
|---|
comment:4 by , 21 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:5 by , 21 years ago
| Component: | general → wiki |
|---|---|
| Resolution: | → fixed |
| Status: | assigned → closed |
Should be fixed in [1113] (and [1114] for 0.8-stable).



This is a Python-2.1 lexical scope issue, it works for me (Python-2.3).
However, as 2.1 must be supported, try that fix: The
hdfargument must be propagated to the localdef code_block(...). Simply add a newhdfargument to thatdef, and pass thehdfvalue from the enclosing scope.The reStructuredText support could be even better if the #801 patch by tonib was applied… (after having done a quick check, it seems the patch also suffers from 2.1 compatibility issues)