Nodes/comfy-ovum/_.isGetSetDescriptor
ComfyUI Node

_.isGetSetDescriptor

Introspection-only, and you will never need it

By sfinktah·Created about a year ago·Updated 10 months ago· 7
_.isGetSetDescriptor
  • obj
  • *

_.isGetSetDescriptor checks whether an object is a CPython getset descriptor - an internal attribute mechanism that C extension types use for their properties. It's part of the sfinktah/comfy-ovum pack's ovum/underscore family, the auto-generated wrappers around underscore3 (a Python port of Underscore.js). And it is the very definition of an introspection-only node: the check is real, the relevance to a ComfyUI graph is essentially zero.

The README's family warning - work in progress, "not recommended for use in workflows" - was written for exactly this kind of node. When you wrap a whole Python utility library's method surface in graph nodes, you get the useful ones (.isEmpty, .isEqual, .isNone) and the decorative ones (this). The generator doesn't discriminate.

What it does

A getset descriptor is what CPython produces for attributes of built-in and C-extension types - property objects, and things like object.__dict__. When you access some_c_extension_obj.some_attribute, a getset descriptor mediates the get and set. type(self.obj) is GetSetDescriptorType detects those descriptor objects themselves.

For one of these to appear on a ComfyUI wire, a custom node would have to deliberately dig into the type internals of a C extension and return the descriptor object. That is introspection hobbyist territory. Even if you had one, "is this a getset descriptor" is a question with no downstream consumer in any workflow.

Like the rest of the family, it takes a plain value and returns the boolean, or takes a _.CHAIN from _.chain and keeps the chain going.

Inputs and outputs

  • obj - the only input, type *, optional.
  • Output - a single * socket holding a Python bool (the family's generic-typed output quirk).

Where it fits

Nowhere you'll ever be. It belongs in the same drawer as _.isFrame, _.isMemberDescriptor, and _.isTraceback - technically correct type checks for CPython internals that a graph never carries. If you're trying to identify a mystery object and working through the whole _.isX family as a diagnostic kit, this one will rule out "CPython internal descriptor" before you move on. That is the ceiling of its usefulness.

Installing it

Install the pack via ComfyUI Manager - search comfy-ovum - or:

cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum

Restart ComfyUI. No extra dependencies; underscore3 is vendored in the repo.

Gotchas

  • Descriptor objects only exist in CPython's C-level type machinery - nothing normal produces them on a wire.
  • The exact-type check can't misfire, but that's cold comfort.
  • Output wire is *, not BOOLEAN.
Categoryovum/underscore

Inputs (1)

NameTypeDefaultDescription
objopt*Primary input object. Also accepts _.CHAIN to continue chaining.

Outputs (1)

NameTypeDescription
**