durusmail: qp: qpy development ideas
qpy development ideas
2007-10-08
2007-10-09
Re: qpy development ideas
2007-10-10
2007-10-10
2007-10-14
2007-10-15
David K. Hess (2 parts)
2007-10-09
2007-10-09
2007-10-10
2007-10-10
2007-10-10
2007-10-10
2007-10-10
qpy development ideas
David Binger
2007-10-09
> My first reaction is that "@[html]/def f()" looks deceivingly
> identical to
> the standard python syntax. The "def f [html] ()" variation is to me
> visually more obvious that this is not a standard python function.
> Maybe
> only because I am used to it...

A nice thing about the @[html] notation is that code colorizors
will have an easier time colorizing the "def f():" properly.
Another nice thing for us is that our spacing convention, of using
no space between a function name and the parameters, can apply
to all functions.

>
> Another point -- is it really "html" here, or would it be more
> correct to
> use a more general "xml" as identifier? What is being done is really
> simplifying xml-escaping, there is no particular html-specific
> knowledge.

I think this is a very interesting point.
Maybe @[xml] and @[str] should be our supported template decorators.

>
> Is xml the only template type that is needed? Has anyone ever
> encountered
> other string escaping use cases? Things that come to mind are "url"
> and
> "json", maybe even "sql"... they happen a lot less frequently, but
> they
> each have their own escaping logic. Well, json is only useful as a
> conceptual example as I cannot really see any usage for builting
> json by
> combining strings... Anyhow, is it easy to add support for other
> template
> types in qpy?

There is a pattern to follow, but there is no support at all for
extending it.
(Assuming that you want the kind of performance we enjoy with the
current templates.)

>
> > Note that both notations are syntax errors for the ordinary
> > Python compiler, and this is essential, since it would be
> > very bad to have templates accidentally compiled with the
> > wrong compiler.
>
> Is this really true? It would be a pity... Is it at all technically
> possible (however complex) to not deviate at all from standard python
> syntax, i.e. .qpy files become normal .py files, and a regular python
> decorator can process the function code body to return another
> function? Is
> there a limitation I am not aware of?

The only possibility I can think of would be to have the decorator
actually replace the code
object of the function it decorates with a modified code object.






reply