-
Notifications
You must be signed in to change notification settings - Fork 12
Simple text CLI #9
Comments
This is a pretty good proposal, I think it described many things I have in mind but didn't give a deep thought of. Really appreciate it! CLI client will eventually be a thing, that's for sure, and considering the capbility of a CLI, it would almost certainly be a lot like what you described. I decided to implement GUI first because that would help me better personally. Right now I'm exploring pyodide, as well as trying to optimize memory usage. |
I think to be able to generate the desired output, |
I think the PDF version is ok. Only I took some time to realise what was 'ba -> baa', 'fo -> foo' |
@TejasAvinashShetty Suggestions welcomed, I can understand it's a bit confusing at first glance, but I don't know how to improve it. |
Continuing our email discussion here so that others can comment...
You're right, there isn't extra information, I was confused at first. But overall there is a lot of information in the diagram and it's hard (especially for a new user) to understand what it all means and find the relevant parts. I think it would be better to guide the user step by step, answer their questions one at a time, and not flood them with information.
Here I propose a simple text-based CLI which does this. This should be easy to implement and test, both for you and anyone who wants to contribute. I also think many users will like it better than a GUI. It can work even on a remote server via ssh, and it doesn't require dependencies like graphviz. You can still have a GUI as an option.
The idea is to explain to the user the answer to a single atomic question "how did become ?" This explanation may raise further questions of the same type, the user can ask for those explanations as well and move one step at a time through the backwards tracing, but it's always the same kind of thing showing in the interface so there's very little to learn.
A step in the interface consists of these parts:
<expression/variable> = <value>
or<variable>: <old value> -> <new value>
.For example, here's the first step when running the test simple_func.py:
If the user enters 1, the next step it shows is very simple:
Here there is no way to go further. Maybe the user can be allowed to go back in general by entering '0'.
If the user had entered 2, they might see:
If they choose 1:
You get the idea. The exact details are flexible, like how function calls are explained.
Another example from
doc_example.py
, at one point it might show:You will need something like '3' here for cases when the return value of a function is not useful but knowing what happened inside that function is important. You may not want to show a value or explanation for
func_c
like in point 1, especially when it comes from a simple function definition, but in some cases it might be more useful if the value is not so obvious.The text was updated successfully, but these errors were encountered: