[Urwid] docgen_tutorial.py that also creates scripts
ian at excess.org
Tue Aug 8 00:41:05 EDT 2006
Derek Peschel wrote:
> Take the example in section 1.1. It defines a function and then calls it.
> So you can look at the order in which functions are defined, or the order
> in which they are executed. The two are different. I was too cryptic when
> I described that difference as "the idea of function definition". (Yes,
> there's more to the idea than the difference, but let's not get into that.)
> ui.run_wrapper calls the argument function (plus doing extra work before
> and after), but the novice may not know that the argument is called.
Yes, a comment there would be good in example 1.1. It is a tutorial and
we can't expect that the user has read the reference beforehand.
> And finally, classes (with their own __init__ methods and main functions)
> create more differences between source-code order and execution order.
> Even with my years of programming experience it can be interesting to
> mentally trace some of the more complex programs, as I was trying to do
> while changing editor.py. Perhaps tracing control flow is a waste of time
> and I should be learning UML?
UML's nice, but personally I've never been able to come up with the
Right design for a program on a white board.. (but maybe that's just me)
> The question I was really thinking of but didn't ask is "Would urwid and a
> fleshed-out tutorial make a good way to introduce people to programming?"
> And I don't know the answer. But part of fleshing out the tutorial might
> be to create a really short program before the current section 1.1, to
> help illustrate the concepts I just mentioned. A full presentation of all
> the concepts would take several sections, though.
UI libraries are complex beasts (even little text-only ones like Urwid)
I wouldn't want to be responsible for driving people away from Python if
I can help it :-)
> I've been hacking away at docgen_tutorial.py. Here is the latest version.
> It puts the section numbers in the filenames. I made lots of other small
> changes, in an attempt to make the code maintainable and find my Python
> style "voice". Getting a file full of small details right is _hard_
> (and I have even changed my own ideas along the way) so I'd welcome your
> reaction and criticism.
It's looking much improved. I appreciate patches that include lots of
good comments. I'll try it out soon.
More information about the Urwid