[Pyrex] Pyrex raises Exception on misspelled setter name in property declaration

Stefan Behnel behnel_ml at gkec.informatik.tu-darmstadt.de
Tue Jul 25 13:43:24 UTC 2006


Hi,

the following code raises an AttributeError in Pyrex:

   cdef class bla:
       property test:
           def __get__(self):
               return None
           def __set(self, value):
               pass

Note the misspelled name of the __set__ function. The exception is as follows.

Stefan


Traceback (most recent call last):
  File "setup.py", line 207, in ?
    ext_modules = ext_modules,
  File "/usr/lib64/python2.4/distutils/core.py", line 149, in setup
    dist.run_commands()
  File "/usr/lib64/python2.4/distutils/dist.py", line 946, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python2.4/distutils/dist.py", line 966, in run_command
    cmd_obj.run()
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 279, in run
    self.build_extensions()
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 405, in
build_extensions
    self.build_extension(ext)
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 442, in
build_extension
    sources = self.swig_sources(sources, ext)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Distutils/build_ext.py", line
53, in swig_sources
    self.pyrex_compile(source)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Distutils/build_ext.py", line
60, in pyrex_compile
    result = compile(source, options)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Main.py", line 273,
in compile
    return context.compile(source, options)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Main.py", line 180,
in compile
    tree.process_implementation(scope, result)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line 109,
in process_implementation
    self.analyse_declarations(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line 106,
in analyse_declarations
    self.body.analyse_declarations(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
1404, in analyse_declarations
    stat.analyse_declarations(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
2511, in analyse_declarations
    self.body.analyse_declarations(scope)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
1404, in analyse_declarations
    stat.analyse_declarations(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
2547, in analyse_declarations
    self.body.analyse_declarations(entry.scope)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
1404, in analyse_declarations
    stat.analyse_declarations(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
2031, in analyse_declarations
    self.declare_pyfunction(env)
  File "/usr/lib64/python2.4/site-packages/Pyrex/Compiler/Nodes.py", line
2091, in declare_pyfunction
    self.entry.doc = self.doc
AttributeError: 'NoneType' object has no attribute 'doc'




More information about the Pyrex mailing list