How to turn off "Old Python" banner on Iron Python 2 components

If there are no plans to drop IronPython, then are there any plans to turn this banner off? Or to allow me to turn it off?

Otherwise to avoid this, every plug-in author that supports old Rhino versions, must maintain two build flows and code bases. So please can this option be added?

I can see for components the user has placed, it’s a useful emphasis, for Grasshopper users in Rhino 8 that want to code in Python. It’s important to know when you’re running in Python 2 or Python 3 afterall.

However, a plug-in I maintain needs to support Rhino 7, and even Rhino 6. It ships Iron Python 2 GH components as user objects. The majority of users don’t care whether a plug-in is implemented in IronPython 2, CPython3 (or C# or even in VB), so there is no value, and zero need for the extra banner over the top of legacy plug-in Grasshopper components, that still work on older Rhino versions, as well as in Rhino 8.

1 Like

Hi @James_Parrott ,

In Rhino 8 you can use ghenv.Component.ToggleObsolete(False) to remove that banner:

I believe that method does not exist before Rhino8 though, so might need to provide error handling if the components get used in older versions as well.

all the best,
@ed.p.may

2 Likes

It is indeed quite convoluted at this point. And it’s worth noting that there are in fact two hidden GhPython components in Rhino 8, one of type ZuiPythonComponent and one of type PythonComponent_OBSOLETE. I believe that latter is now what is called GhPython (Legacy) when searching #GhPython on the canvas:

I would agree that it ought have the old banner on it. But, as I have argued elsewhere, with the ongoing non-production ready state of the new IronPython 2 Script component, the GhPython Script component has been prematurely hidden and labelled as old/legacy/obsolete. But that’s just like, my opinion, man…

Edit: Also note that I have a GhPython Script (No Type Hint) component. Which is just a user object where I set the input parameters to no type hints (i.e. which is inherited by new parameters) and set the obsolete flag to false. Meaning one can have a GhPython component that isn’t hidden and will not show the old banner. It’s a decent workaround.

1 Like

Thanks Ed and Anders. Super helpful. I’ll give ghenv.Component.ToggleObsolete a try after hasattr check or in a try block.