-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error handling #24
Comments
Absolutely, even worse are nodes that hides the error so there is nothing going red at all. |
The options seem to come down to:
They all have their drawbacks and upside, they are not exclusive. A sensible first step would be to start using the |
I think the most common errors are somehow related to "invalid input": wrong type of data in connected sockets, or unconnected sockets that must be connected for node to function, or invalid amount or "shape" of data. These types of errors i think could be indicated on the node itself. For example mark socket red if it is required to connect it. |
Also now I have prepared for higher amount of pre testing, also with the Required[0] default for node function. [0] Nothing is done with this info yet... |
Yes, that as well, like they should turn yellow if they are missing data today, but today many nodes check themselves and quit quietly... Agreed on red socket, and as well marking the node/s yellow to show which ones to inspect. |
time to employ the |
Can we use stethoscope-like drawing to display errors? |
Potentially yes. |
@portnov |
Some settings for this could be in the debug panel. |
Did some tweaking but will let further developments be based on further feedback
|
We could also show documentation with the same infrastructure. |
full stacktraces in node editor are not very useful imho. Can we draw just short error message there, and print full stack to text buffer? |
A limit it to the last two lines in editor right now which gives file and error. Full trace in console and text editor. |
i'm really really liking this. |
now.. if f8 worked ... holy smokes. |
Yeah, it is getting embarrassing. Trying to sort it out now. |
Okay so now I am starting to get a bit worried...
|
So it works now, somewhat. |
Nodes can be edited. Caveats seem to be
|
i don't get why everything down from svrx can't simply be nixed. |
A brief illustration of the problem. >>> import importlib
>>> import svrx
>>> x=svrx.typing.Vertices()
>>> t=svrx.typing.Vertices
>>> isinstance(x, t)
True
>>> importlib.reload(svrx.typing)
<module 'svrx.typing' from 'c:\\Program Files\\Blender Foundation\\Blender\\2.78\\scripts\\addons\\svrx\\typing.py'>
>>> isinstance(x, t)
True
>>> t=svrx.typing.Vertices
>>> isinstance(x, t)
False
>>> type(x)
<class 'svrx.typing.Vertices'>
>>> t
<class 'svrx.typing.Vertices'> What fails is the |
@zeffii |
it's weird isn't it. that's the thing that messes with most newcomers heads. as soon as a program starts to get complex... the imports tend to become tricky to deal with (until heavy persistence makes them understood). |
it's almost like quantum physics. " if you think you understand quantum physics, you don't understand quantum physics" . almost. |
I am down to three modules that can't be reloaded. |
Handling of errors in current sverchok is... well... not very good. To understand why the node goes red you need to switch to console and try to understand the stacktrace saying smth like "index -1 is out of bounds".
I think the big refactoring is good time to think about better way of handling errors.
The text was updated successfully, but these errors were encountered: