TypeError: __name__ must be set to a string object

F

Frank Millman

Hi all

This problem is similar to one I posted recently regarding the
multiprocessing module and unicode.

However, although this one manifests itself while using the multiprocessing
module, is caused by Python itself (2.6.2).

At the top of my program I have 'from __future__ import unicode_literals'.

The relevant lines from my program read -
from multiprocessing.managers import BaseManager
class MyManager(BaseManager): pass
MyManager.register('my_function', my_function)

Inside the multiprocessing module, the following lines are executed -
@classmethod
def register(cls, typeid, ...)
[...]
def temp(...):
[...]
temp.__name__ = typeid

At this point, Python raises the exception 'TypeError: __name__ must be set
to a string object'.

I can fix it by changing my last line to -
MyManager.register(str('my_function'), my_function)

Is there any reason why __name__ cannot be a unicode object in Python 2.x?
If so, there is probably little chance of this being changed, so it is
probably not worth reporting.

Any thoughts?

Frank Millman
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,154
Members
46,702
Latest member
LukasConde

Latest Threads

Top