[IronPython] Two questions regarding exposing an API.

TraumaPony pontheangelofdeath at gmail.com
Tue Jul 8 14:22:30 CEST 2008


Ah, true, however, I still get the same error.

2008/7/8 Dan Eloff <dan.eloff at gmail.com>:

> Hi,
>
> exec is not a function, it's a statement.
>
> exec moduleSource in newModule.__dict__
>
> -Dan
>
> On Tue, Jul 8, 2008 at 6:40 AM, TraumaPony <pontheangelofdeath at gmail.com>
> wrote:
> > Hi, I have two questions regarding the IronPython 2.0 B3.
> >
> > 1. I'm trying to expose only a few methods from my assembly, but I
> haven't
> > the faintest idea how to do it. The best I can come up with is the
> > following:
> >
> > import clr
> > clr.AddReference("CoolEngine")
> > def randomIntNoParams():
> >     from CoolEngine.Engine.Scripting import ScriptManager
> >     return CoolEngine.Engine.Scripting.ScriptManager.RandomInt()
> > def randomIntOneParam(i):
> >     from CoolEngine.Engine.Scripting import ScriptManager
> >     return CoolEngine.Engine.Scripting.ScriptManager.RandomInt(i)
> > def randomIntTwoParams(i, j):
> >     from CoolEngine.Engine.Scripting import ScriptManager
> >     return CoolEngine.Engine.Scripting.ScriptManager.RandomInt(i, j)
> > def randomIntThreeParams(i, j, k):
> >     from CoolEngine.Engine.Scripting import ScriptManager
> >     return CoolEngine.Engine.Scripting.ScriptManager.RandomInt(i, j, k)
> > def randomIntThreeParamsNoReturn(i, j, k):
> >     from CoolEngine.Engine.Scripting import ScriptManager
> >     CoolEngine.Engine.Scripting.ScriptManager.RandomIntNoReturn(i, j, k)
> > But alas, it says "name 'CoolEngine' is not defined" . What am I doing
> wrong
> > there?
> >
> > 2. I'm trying to create a module dynamically at runtime. I have the
> > following code which I want to be placed in a module called "Script":
> >
> > import clr
> > clr.AddReference("System.Threading")
> > def Pause(milliseconds):
> >     from System.Threading.Tasks import Task
> >     Task.CurrentTask.Wait(milliseconds)
> >
> > However, I have no idea how to get it into its own module from there, and
> > including it in its own file called Script.py is out of the question; I
> have
> > that code as a string resource in my assembly.
> >
> > I'm doing the following:
> >
> > Engine.CreateScriptSourceFromString(
> >
> > "import imp\n"
> >
> > +
> >
> > "import sys\n"
> >
> > +
> >
> > "newModule = imp.new_module(moduleName)\n"
> >
> > +
> >
> > "exec(moduleSource, newModule.__dict__)\n"
> >
> > +
> >
> > "sys.modules[moduleName] = newModule"
> >
> > , SourceCodeKind.Statements).Execute(scope);
> >
> > where the moduleName variable is "Script" and the moduleSource is the
> above
> > source code. However, I get the following message:
> >
> > An unhandled exception of type 'Microsoft.Scripting.SyntaxErrorException'
> > occurred in Unknown Module.
> >
> > Additional information: unexpected token '\r'
> >
> > Any ideas?
> >
> >
> >
> > --
> > /"\
> > \ / ASCII RIBBON CAMPAIGN
> > X AGAINST HTML MAIL
> > / \
> >
> > This message has been encrypted with ROT-26. Any unauthorised decryption
> > will result in prosecution to the full extent of the law.
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> >
> >
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>



-- 
/"\
\ / ASCII RIBBON CAMPAIGN
X AGAINST HTML MAIL
/ \

This message has been encrypted with ROT-26. Any unauthorised decryption
will result in prosecution to the full extent of the law.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080708/c77fa98f/attachment.html>


More information about the Ironpython-users mailing list