Have you tried asking on a blender user mailing list for help with this problem?
It seems that someone familiar with blender and its python interface should be able to help get you going. Barry > On 24 Aug 2019, at 20:52, Paul St George <em...@paulstgeorge.com> wrote: > >> On 24/08/2019 01:23, Cameron Simpson wrote: >>> On 23Aug2019 13:49, Paul St George <em...@paulstgeorge.com> wrote: >>> Context: >>> I am using Python to interrogate the value of some thing in Blender (just >>> as someone else might want to use Python to look at an email in a Mail >>> program or an image in Photoshop). >>> >>> Assumptions: >>> So, I want to look at the attribute of an instance of a class called >>> CompositorNodeMapValue. The code in the Python tutorial seems to be for >>> creating an instance of a class, but I assume Blender (in my case) has >>> already created the instance that I want to interrogate. >> That would be the expectation. And to interrogate it, you need that instance >> to hand in a variable. >>> Question: >>> If this is so, should I find the code to get a list of the instances that >>> have been made (maybe using inspect?) and then, when I have its name, the >>> attributes of the one that interests me? >> Have you not got one of these handed to you from something? >> Or are you right at the outside with some "opaque" blender handle or >> something? (Disclaimer: I've never used Blender.) > > Thank you once again. > If I understand your question, I am right outside. By this I mean I have not > created anything with Python. I have made the Blender model with the UI and > am trying to use Python to read the values for the settings used. This has > worked for all settings except this Map Value Node. > >> You can inspect objects with the inspect module. You can also be more >> direct. Given an object "o", you can do an assortment of things: > > Before I do any of the following, I assume I need to use something like: > > import struct > class CompositorNodeMapValue(o): > > I have tried this. Nothing happens. Not even an error. It's like waiting for > Godot. > > I am guessing I am in the wrong namespace. > > I don't know whether it is relevant, but I tried plain > dir() > and > dir(struct) > > They each returned a list and neither list had mention of > CompositorNodeMapValue > > If I do something like: > o = CompositorNodeMapValue() > I get: > NameError: name 'CompositorNodeMapValue' is not defined > >> dir(o) gets a list of its attribute names. >> help(o) prints out the docstring, somewhat rendered. >> o.__dict__ is usually a dict mapping attribute names to their values. >> type(o) gets you its type, so "print(type(o))" or "print(type(o).__name__)" >> can be handy. >> A crude probe function (untested): >> def probe(o): >> print(o) >> for attr, value in sorted(o.__dict__.items()): >> print(" ", attr, type(value).__name__, value) >> Enjoy, >> Cameron Simpson <c...@cskk.id.au> (formerly c...@zip.com.au) >> "Are we alpinists, or are we tourists" followed by "tourists! tourists!" >> - Kobus Barnard <ko...@cs.sfu.ca> in rec.climbing, >> on things he's heard firsthand > > > -- > https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list