well there is this IDE that you can use right out of Softimage, # This loads the debugger module... import pywin.debugger as dbg
# This launches the GUI: dbg.brk() but there are two problems: On Thu, Jan 31, 2013 at 12:10 PM, jo benayoun <jobenay...@gmail.com> wrote: > IDEs provide code completion and code analysis by actually having a > backend specific to the language the editor is set to. Thats actually one > of the main difference between a text editor (sublime) and an IDE > (eclipse). The editor does not just consider the text as a suite of words > but as a language and so understand what you write. > > To implement such thing, you will need basically to do the job of the > python engine (minus compilation/interpreter step). Meaning, use an ast > generator and write python specifics. > > The actual parser generator used internally by the CPython implementation > is exposed in the std library under the name pgen2 (do a grep for seeing > its usage). Because this is just a parser generator, you will need then a > way to get and manipulate the ast the parser will generate for ya. > fortunately, there is a bunch of modules that provide exactly what you need > (ast, keyword, ...) that let you go further in the code exploration. > (pgen2 and parser/ast/keyword/... are two separate things with two > different usages, dont mix them up) > > Thats about python, for the softimage libraries, you're on the right way :) > --jon > > > > > > > > 2013/1/31 Alan Fregtman <alan.fregt...@gmail.com> > >> I've generated autocompletions, but it seems (and kinda makes sense) that >> I cannot really know what class someone is coding for to show the methods >> filtered by that class alone, so in its current state I will autocomplete >> both global commands AND all methods. That said, for methods I put "[blabla >> class]" after them so you know which one it's for. I still think it's >> useful, but I wish it could be better. >> >> Anyone have any bright ideas for somehow knowing what class someone is >> coding for? (...because Sublime won't load Softimage's Python environment >> to actually know what is what, what with the dynamic dispatching and all.) >> >> By the way, once you tab to choose one, I autocomplete all the arguments >> as a "snippet" and you can tab through the named arguments to write your >> own variables or delete them. >> >> >> >> >> On Wed, Jan 30, 2013 at 10:56 PM, Alan Fregtman >> <alan.fregt...@gmail.com>wrote: >> >>> Okay... Getting somewhere! >>> >>> import sysimport os.pathfrom win32com.client import makepy >>> >>> tlbs = >>> ['/path/to/Softimage_2013_SP1/Application/bin/Converter.tlb','/path/to/Softimage_2013_SP1/Application/bin/LightRig.tlb','/path/to/Softimage_2013_SP1/Application/bin/XSIDial.tlb','/path/to/Softimage_2013_SP1/Application/bin/dotXSI_ie.tlb','/path/to/Softimage_2013_SP1/Application/bin/dsauto.tlb','/path/to/Softimage_2013_SP1/Application/bin/enums.tlb','/path/to/Softimage_2013_SP1/Application/bin/ophelper.tlb','/path/to/Softimage_2013_SP1/Application/bin/si3dobjectmodel.tlb','/path/to/Softimage_2013_SP1/Application/bin/si3dobjectmodel10.tlb','/path/to/Softimage_2013_SP1/Application/bin/siobjectmodel.tlb','/path/to/Softimage_2013_SP1/Application/bin/xsiutils.tlb'] >>> for path in tlbs: >>> baseFolder = r'/path/somewhere/to/save/pyfiles/' >>> sys.argv = ["makepy", "-o", "%s/%s.py" % (baseFolder, >>> os.path.basename(path).split('.')[0]), path] >>> makepy.main() >>> >>> >>> This gets me some files I can introspect for methods and such. >>> >>> >>> >>> On Wed, Jan 30, 2013 at 10:20 PM, Alan Fregtman <alan.fregt...@gmail.com >>> > wrote: >>> >>>> Reviving this old thread out of interest... >>>> >>>> So, with that sample code, we can introspect predefined global objects >>>> like Application and XSIUtils. That's cool, but for example, another object >>>> type like... "Parameter".... that's a class but I can't create it. I can't >>>> do win32com.client.Dispatch("Parameter") and >>>> XSIFactory.CreateObject("Parameter") won't work either. >>>> >>>> Is there any way I can somehow create the object on the fly, knowing >>>> its class type, some other way so that I can query its methods and >>>> properties? >>>> >>>> >>>> ps: Raff, could you elaborate how you AL guys got your introspection >>>> going for non-predefined globals? >>>> >>>> >>>> >>>> On Fri, Jan 4, 2013 at 6:15 AM, Andy Nicholas <a...@andynicholas.com>wrote: >>>> >>>>> You guys should check this out. It might give you a good start... >>>>> >>>>> >>>>> http://xsisupport.com/2012/10/06/saturday-snippet-getting-a-list-of-properties-and-methods-with-python-introspection/ >>>>> >>>>> >>>>> >>>>> On 04 January 2013 at 00:54 jo benayoun <jobenay...@gmail.com> wrote: >>>>> >>>>> >>>>> > The Softimage API (object model) is not visible because its all >>>>> about dynamic >>>>> > dispatching at runtime. This is like thinking your editor will be >>>>> natively >>>>> > enough smart to detect attributes you would add dynamically when >>>>> overriding >>>>> > the __getattr__ method of a class. >>>>> > Happily for us the dispatching is cached somewhere and even >>>>> introspectable by >>>>> > using the pythoncom/pywin32 API. With a little effort and sticking >>>>> with >>>>> > python, one would have no problem in developing a plugin for this >>>>> text editor >>>>> > specially if sublime API is as convenient as it is claimed. The >>>>> first step is >>>>> > to learn how to use correctly the pywin32 package and what it does >>>>> under the >>>>> > hood to fully understand what the 'ultimate' solution could be. >>>>> > --jo >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > 2013/1/3 César Sáez <cesa...@gmail.com <mailto:cesa...@gmail.com> > >>>>> > > > You're right, sublime/any-other-editor can't see that >>>>> softimage >>>>> > > > variables. >>>>> > > If you're using 'Application' (or any 'implicit variable' like >>>>> that) your >>>>> > > script will fail on import, sipyutils module (or your own version >>>>> of it) is >>>>> > > the way to go IMHO. >>>>> > > >>>>> > > >>>>> > > On Thu, Jan 3, 2013 at 9:18 PM, Alan Fregtman < >>>>> alan.fregt...@gmail.com >>>>> > > <mailto:alan.fregt...@gmail.com> > wrote: >>>>> > > > > > But it won't be able to find global XSI objects just >>>>> like that, >>>>> > > > > > right? "Application" is defined by the axscript module, >>>>> but I >>>>> > > > > > feel like SI internally dispatches it in a way I don't >>>>> think >>>>> > > > > > Sublime could "see" it. >>>>> > > > >>>>> > > > >>>>> > > > >>>>> > > > On Thu, Jan 3, 2013 at 1:40 PM, César Sáez < >>>>> cesa...@gmail.com >>>>> > > > <mailto:cesa...@gmail.com> > wrote: >>>>> > > > > > > > You have to add your environment paths to the >>>>> 'env' tag in >>>>> > > > > > > > your python.sublime-build config file, this way >>>>> if you have >>>>> > > > > > > > a shortcuts module it will instrospect it. >>>>> > > > > El 03/01/2013 17:34, "Gene Crucean" < >>>>> emailgeneonthel...@gmail.com >>>>> > > > > <mailto:emailgeneonthel...@gmail.com> > escribió: >>>>> > > > > > > > > > Hehe I was trying to figure out the same >>>>> thing. >>>>> > > > > > >>>>> > > > > > On Thu, Jan 3, 2013 at 8:09 AM, Alan Fregtman >>>>> > > > > > <alan.fregt...@gmail.com <mailto:alan.fregt...@gmail.com> > >>>>> wrote: >>>>> > > > > > > > > > > > I use SublimeCodeIntel too but it's >>>>> not aware >>>>> > > > > > > > > > > > of XSI globals like Application, >>>>> XSIUtils and >>>>> > > > > > > > > > > > so on, so it won't introspect them. >>>>> > > > > > > How would one hack it to be more aware of such? >>>>> > > > > > > >>>>> > > > > > > >>>>> > > > > > > >>>>> > > > > > > >>>>> > > > > > > On Wed, Jan 2, 2013 at 9:19 PM, César Sáez >>>>> > > > > > > <cesa...@gmail.com <mailto:cesa...@gmail.com> > wrote: >>>>> > > > > > > > > > > > > > SublimeCodeIntel does a great >>>>> job >>>>> > > > > > > > > > > > > > autocompleting python modules >>>>> and import >>>>> > > > > > > > > > > > > > statements (via introspoction, >>>>> works with >>>>> > > > > > > > > > > > > > your own modules too), it's not >>>>> softimage >>>>> > > > > > > > > > > > > > specific but helps alot. >>>>> > > > > > > > >>>>> > > > > > > > Another cool package is the SublimeLinter, >>>>> it >>>>> > > > > > > > highlight potential errors in your code (IDE-like). I >>>>> have no idea >>>>> > > > > > > > how far I was from PEP8 until I start using it, now my >>>>> code is way >>>>> > > > > > > > cleaner and easy to the eyes :) >>>>> > > > > > > > >>>>> > > > > > > > >>>>> > > > > > > > >>>>> > > > > > > > On Thu, Jan 3, 2013 at 12:22 AM, Raffaele >>>>> Fragapane >>>>> > > > > > > > <raffsxsil...@googlemail.com <mailto: >>>>> raffsxsil...@googlemail.com> >>>>> > > > > > > > > wrote: >>>>> > > > > > > > > > > > > > > > You actually can >>>>> introspect >>>>> > > > > > > > > > > > > > > > recursively almost the >>>>> entirety of >>>>> > > > > > > > > > > > > > > > the scripting API and >>>>> generate a >>>>> > > > > > > > > > > > > > > > dummy set of libraries >>>>> from there. >>>>> > > > > > > > > > > > > > > > That will offer >>>>> autocompletion in >>>>> > > > > > > > > > > > > > > > most IDEs. >>>>> > > > > > > > > >>>>> > > > > > > > > We've had that running here in AL for a >>>>> while >>>>> > > > > > > > > thanks to Aloys' efforts a long time ago and it's >>>>> worked without >>>>> > > > > > > > > a hitch for years. >>>>> > > > > > > > > >>>>> > > > > > > > > On Thu, Jan 3, 2013 at 10:18 AM, Gene >>>>> Crucean >>>>> > > > > > > > > <emailgeneonthel...@gmail.com >>>>> > > > > > > > > <mailto:emailgeneonthel...@gmail.com> > wrote: >>>>> > > > > > > > > > > > > > > > > > It would be >>>>> completely >>>>> > > > > > > > > > > > > > > > > > bitchin if it >>>>> autocompleted >>>>> > > > > > > > > > > > > > > > > > the entire sdk... >>>>> and not >>>>> > > > > > > > > > > > > > > > > > just simple >>>>> commonly used >>>>> > > > > > > > > > > > > > > > > > snippets. >>>>> > > > > > > > > > > > > > > > > > >>>>> > > > > > > > > >>>>> > > > > > > > > > > > > > > > >>>>> > > > > > > > >>>>> > > > > > > > >>>>> > > > > > > > > > > > > > >>>>> > > > > > > >>>>> > > > > > > >>>>> > > > > > > > > > > > >>>>> > > > > > >>>>> > > > > > >>>>> > > > > > -- >>>>> > > > > > Gene Crucean - Emmy winning - Oscar nominated VFX >>>>> Supervisor >>>>> > > > > > / iOS-OSX Developer / Filmmaker / Photographer >>>>> > > > > > ** Freelance for hire ** >>>>> > > > > > www.genecrucean.com <http://www.genecrucean.com> >>>>> > > > > > >>>>> > > > > > ~~ Please use my website's contact form on >>>>> > > > > > www.genecrucean.com <http://www.genecrucean.com/> for any >>>>> personal >>>>> > > > > > emails. Thanks. I may not get them at this address. ~~ >>>>> > > > > > >>>>> > > > > > >>>>> > > > > > > > > > >>>>> > > > > >>>>> > > > > > > > >>>>> > > > >>>>> > > > >>>>> > > > > > >>>>> > > >>>>> > > >>>>> > > > >>>>> >>>>> >>>> >>> >> > > -- -=T=-