On 03/26/2013 11:13 AM, Kyle wrote:
On Monday, March 25, 2013 4:28:34 PM UTC-4, Kyle wrote:
I am using swig to generate our CLI for TCL and Python. In this CLI, we have a subcommand 
"exec" that is failing to compile in the python case. There seems to be some built-in 
python command "exec" which is giving a syntax error in the .py file generated by swig 
when I try to import it:



    def exec(*args): return _wbt_daemon.dm_cli_exec(*args)

            ^

SyntaxError: invalid syntax



I don't really want to change the CLI commands or make them different between languages. Is there 
any way to define a method called "exec" on a class? It would be executed as obj.exec() 
so I don't see why it should conflict with the built in "exec" command.



class dm_cli(_object):

     __swig_setmethods__ = {}

     __setattr__ = lambda self, name, value: _swig_setattr(self, dm_cli, name, 
value)

     __swig_getmethods__ = {}

     __getattr__ = lambda self, name: _swig_getattr(self, dm_cli, name)

     def __init__(self): raise RuntimeError, "No constructor defined"

...

     def exec(*args): return _wbt_daemon.dm_cli_exec(*args)

...

}

Thanks for the suggestion. Looks like we currently use 2.3.4.

This still wouldn't solve the problem because now the user would need to call something like  
getattr(wbt, "exec")(<args>) instead of wbt.exec(<args>) like all the other 
commands.

I think the easiest thing for me to do would be to just change the command name 
from exec to something else.

Yeah, that's unfortunate.

I suggest 'execute'.  :)

--
~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to