[IronPython] hosting and SetVariable

Slide slide.o.mix at gmail.com
Thu May 29 20:33:35 CEST 2008


Thanks that will be helpful. Is there any documentation specific to
IronPython? I would like to do some introspection on modules and such
(to retrieve types defined in the module and so forth) and I used to
do that with some PythonType magic which doesn't seem to work anymore
(ScriptScope is not convertable to Scope when calling Get__dict__).

Thanks again!

On Thu, May 29, 2008 at 10:11 AM, Seshadri Pillailokam Vijayaraghavan
<seshapv at microsoft.com> wrote:
> The latest Hosting API Spec is available at http://compilerlab.members.winisp.net/.
> It's available as both doc (http://compilerlab.members.winisp.net/dlr-spec-hosting.doc) or PDF (http://compilerlab.members.winisp.net/dlr-spec-hosting.pdf).
>
> Thanks
> Sesh
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Slide
> Sent: Thursday, May 29, 2008 8:42 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] hosting and SetVariable
>
> Apparently I need to update to the latest IP2.0 beta. I don't even see
> CurrentManager.Globals, thanks for the info.
>
> On Thu, May 29, 2008 at 8:37 AM, Dino Viehland
> <dinov at exchange.microsoft.com> wrote:
>> What you want to do is put the variables in ScriptDomainManager.Globals/ScriptRuntime.Globals and then you can import them.  For example:
>>
>> ScriptDomainManager.CurrentManager.Globals.SetVariable("hello_world", "hi!");
>>
>> Then you can do:
>>
>> import hello_world
>>
>> and we'll pick it up from globals.  Just FYI IronPython.Hosting.PythonEngine is going away (along w/ CurrentEngine) so you're better off creating a ScriptRuntime and getting a ScriptEngine from it by name.
>>
>> -----Original Message-----
>> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Slide
>> Sent: Thursday, May 29, 2008 8:14 AM
>> To: Discussion of IronPython
>> Subject: [IronPython] hosting and SetVariable
>>
>> Perhaps this is just missing knowledge on my part, but here goes.
>>
>> I am using IP2.0 with the hosting API to add scripting support to my
>> application. I use the following code to create my main module from
>> the script file the user selects:
>>
>>  ICompiledCode code =
>> IronPython.Hosting.PythonEngine.CurrentEngine.Compile(SourceUnit.CreateFileUnit(_context,
>> path), _error_sink);
>> __main__ = code.MakeModule("__main__") as ScriptScope;
>>
>> // create our module.
>> ScriptDomainManager.CurrentManager.PublishModule(__main__, "__main__");
>>
>> // add all the references the "Host" wanted.
>> foreach (string assembly in _assemblies)
>>      Microsoft.Scripting.ClrModule.GetInstance().AddReference(Path.GetFileNameWithoutExtension(assembly));
>>
>> // set all the variables that the "Host" wanted set.
>> foreach (KeyValuePair<string, object> obj in _objects)
>>      __main__.SetVariable(obj.Key, obj.Value);
>>
>> The last foreach is setting up my object model which is available to
>> my scripts. My problem arises when I want to use one of these
>> variables from a script that is imported from the user selected script
>> file.
>>
>> For instance, if I add an object _objects.Add("MyObj", someObj), I can
>> reference that object in the user script as MyObj with no problem.
>> What I would like to do is have these variables global to all scripts
>> that are imported, etc. I tried import __main__ in my other scripts,
>> but __main__ doesn't show up in sys.modules (which is what I thought
>> PublishModule would do, but thats a different story).
>>
>> Am I going about this the wrong way?
>>
>> Thanks
>>
>> slide
>>
>> --
>> slide-o-blog
>> http://slide-o-blog.blogspot.com/
>> _______________________________________________
>> 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
>>
>
>
>
> --
> slide-o-blog
> http://slide-o-blog.blogspot.com/
> _______________________________________________
> 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
>



-- 
slide-o-blog
http://slide-o-blog.blogspot.com/



More information about the Ironpython-users mailing list