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. -- http://mail.python.org/mailman/listinfo/python-list