It may be able to be accomplished with ObjectOperations. What I am trying to do is find all the types defined in my ScriptScope and determine if they are subclasses (or implementers) of another type. I used to do this using the PythonType class with UnderlyingSystemType and so forth, but all that stuff is gone in the beta 2 I downloaded. Also, I didn't see HostingHelpers.GetScope anywhere, is this from an external library (I checked Microsoft.Scripting, Microsoft.Scripting.Core and the IronPython assemblies)
On Thu, May 29, 2008 at 11:56 AM, Dino Viehland <[EMAIL PROTECTED]> wrote: > Unfortunately there isn't any specific documentation. Can what you used to > do be accomplished with the ObjectOperations class? > > Otherwise there's a HostingHelpers.GetScope which you could use to get a > Scope from a ScriptScope and you can probably re-use your old magic. > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Slide > Sent: Thursday, May 29, 2008 11:34 AM > To: Discussion of IronPython > Subject: Re: [IronPython] hosting and SetVariable > > 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 > <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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 >> <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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 >>> [email protected] >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> _______________________________________________ >>> Users mailing list >>> [email protected] >>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >>> >> >> >> >> -- >> slide-o-blog >> http://slide-o-blog.blogspot.com/ >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> _______________________________________________ >> Users mailing list >> [email protected] >> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >> > > > > -- > slide-o-blog > http://slide-o-blog.blogspot.com/ > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > _______________________________________________ > Users mailing list > [email protected] > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > -- slide-o-blog http://slide-o-blog.blogspot.com/ _______________________________________________ Users mailing list [email protected] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
