Another thread points at the github repo for my nascent check-attrs project 
<https://github.com/edreamleo/check_attrs>.

I am going to put this on hold, at least for now.  The problem is that 
simply checking attribute chains isn't useful without a lot of other work, 
and that other work gets mighty close to full type checking, or its 
pattern-based equivalent.

Instead, it would seem much more natural to use python's real type checker, 
mypy <http://mypy-lang.org/>. And studying mypy as I did with pyflakes may 
be in order, but perhaps not right away (see below).

Having said this, I am pretty sure that there is room for a *design* 
checker, and that patterns, not type inference, are likely the way to 
specify the design.  As an easy example, the pattern:

    self.c = Commander

specifies what should be a universal *design* pattern for Leo's source 
code.  This is, imo, very different from simply inferring that self.c is, 
in every case, a Commander.  Do you see?  The pattern specifies *intention*. 
The corresponding type inferences do not.

Alas, this kind of simple insight quickly gets sucked down the rabbit hole 
of endless inference loops, where each inference depends on everything 
else.  I had thought that patterns might cut the "Gordian Knot", but they 
seem, instead, merely to add lots of special cases without handling the 
general cases.  Boo hoo.  I have enough experience with inference engines 
to know that special cases *never* simplify matters, despite my intuitions.

For this reason, I think it is worthwhile to study, or at least to *use*, 
real, general purpose inference, namely mypy.  Happily, mypy can use stub 
files to short-circuit inferences in a general manner.  My make-stub-files 
project <https://github.com/edreamleo/make-stub-files> meshes perfectly 
with this approach.

I expect that experimenting with mypy will take only a day or three.  
Studying the mypy code is possible.  If I do that, I might budget 2 or 3 
weeks.  However, I think there are enough important Leo bugs on the table 
that it would be good to fix them asap.

Your comments, please, Amigos.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to