GlobalToJSON-embeddedPython-pure#3
In my article I described the work using iris.gref .
As the official documetation is rather slim on the subject it was necessary to dig into it.
Using the power of Python I was able to detect what I needed but was hidden.
I decided to share this with you. pydoc did the magic.
And this is it:
>>> pydoc.help(iris) Help on built-in module iris: NAME iris CLASSES builtins.object isc.StdoutType isc.gref Global = class gref(builtins.object) | InterSystems IRIS global reference object. | Use the iris.gref() method to obtain a reference to a global | | Methods defined here: | | __delitem__(self, key, /) | Delete self[key]. | | __getitem__(self, key, /) | Return self[key]. | | __len__(self, /) | Return len(self). | | __setitem__(self, key, value, /) | Set self[key] to value. | | get(...) | Given the keys of a global, returns the value stored at that node of the global. | Example: x = g.get([i,j]) sets x to the value stored at key i,j of global g. | | getAsBytes(...) | Given the keys of a global, returns a string stored at that node of the global, as bytes. | Example: x = g.getAsBytes([i,j]) sets x to the value stored at key i,j of global g, as bytes. | | keys(...) | Traverses a global starting at the specified key, returning each key in the global. | Example: for key in g.keys([i, j]) traverses g from key i,j, returning each key in turn. | | kill(...) | Given the keys of a global, kills that node of the global and its subtree. | Example: g.kill([i,j]) kills the node stored at key i,j of global g and any descendants. | | order(...) | Given the keys of a global, returns the next key of the global. | Example: j = g.order([i,j]) sets j to the next second-level key of global g. | | orderiter(...) | Traverses a global starting at the specified key, returning the next key and value as a tuple. | Example: for (key, value) in g.orderiter([i,j]) traverses g from key i,j, returning the next key and value. | | query(...) | Traverses a global starting at the specified key, returning each key and value as a tuple. | Example: for (key, value) in g.query([i,j]) traverses g from key i,j, returning each key and value in turn | | set(...) | Given the keys of a global, sets the value stored at that key of the global. | Example: g.set([i,j], 10) sets the value of the node at key i,j of global g to 10 | | ---------------------------------------------------------------------- | Static methods defined here: | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. | See help(type) for accurate signature. Stdout = class StdoutType(builtins.object) | isc.Stdout objects | | Methods defined here: | | flush(...) | no-op | | isatty(...) | false | | read(...) | IRIS internal | | read1(...) | IRIS internal | | readline(...) | IRIS internal | | write(...) | IRIS internal | | ---------------------------------------------------------------------- | Static methods defined here: | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | | ---------------------------------------------------------------------- | Data descriptors defined here: | | encoding | encoding FUNCTIONS check_status(...) Raises an exception on an error status, or returns None if no error condition occurs. Example: iris.check_status(st) checks the status code st to see if it contains an error. cls(...) Returns a reference to an InterSystems IRIS class. Example: iris.cls("%SYSTEM.INetInfo").LocalHostName() calls a method in the class %SYSTEM.INetInfo. gref(...) Returns a reference to an InterSystems IRIS global. Example: g = iris.gref("^foo") sets g to a reference to global ^foo lock(...) Sets locks, given a list of lock names, an optional timeout value (in seconds), and an optional locktype. Example: iris.lock(["^foo","^bar"], 30, "S") sets locks "^foo" and "^bar", waiting up to 30 seconds, and using shared locks. ref(...) Creates an iris.ref object with a specified value. Example: iris.ref("hello") creates an iris.ref object with the value "hello" routine(...) Invokes an InterSystems IRIS routine, optionally at a given tag. Example: iris.routine("Stop^SystemPerformance", "20211221_160620_test") calls tag Stop in routine ^SystemPerformance. tcommit(...) Marks a successful end of an InterSystems IRIS transaction. Example: iris.commit() marks the successful end of a transaction and decrements the nesting level by 1 tlevel(...) Detects whether a transaction is currently in progress and returns the nesting level. Zero means not in a transaction. Example: iris.tlevel() returns the current transaction nesting level, or zero if not in a transaction trollback(...) Terminates the current transaction and restores all journaled database values to their values at the start of the transaction. Example: iris.trollback() rolls back all current transactions in progress and resets the transaction nesting level to 0 trollbackone(...) Rolls back the current level of nested transactions, that is, the one initiated by the most recent tstart(). Example: iris.trollbackone() rolls back the current level of nested transactions and decrements the nesting level by 1 tstart(...) Starts an InterSystems IRIS transaction. Example: iris.tstart() marks the beginning of a transaction. unlock(...) Removes locks, given a list of lock names, an optional timeout value (in seconds), and an optional locktype. Example: iris.unlock(["^foo","^bar"], 30, "S") removes locks "^foo" and "^bar", waiting up to 30 seconds, and using shared locks. DATA sql = <iris.%SYS.Python.SQL object> utils = <iris.%SYS.Python.Utils object> FILE (built-in) >>>
There are missing pieces and some strange behavior.
But definitely more important stuff than in the official documentation.
I didn't try everything. So there's a lot of room for your discoveries