[Python-Dev] [Python-checkins] peps: New DSL syntax and slightly changed semantics for the Argument Clinic DSL.
Stefan Krah
stefan at bytereef.org
Mon Mar 18 11:36:43 CET 2013
Larry Hastings <larry at hastings.org> wrote:
> * The DSL currently makes no provision for specifying per-parameter
> type annotations. This is something explicitly supported in Python;
> it should be supported for builtins too, once we have reflection support.
>
> It seems to me that the syntax for parameter lines--dictated by
> Guido--suggests conversion functions are themselves type annotations.
> This makes intuitive sense.
Really, did you read PEP 437? It's all in there.
> But my thought experiments in how to convert the conversion function
> specification into a per-parameter type annotation ranged from obnoxious
> to toxic; I don't think that
> line of thinking will bear fruit.
Did you look at the patch that I posted in issue #16612? It's already
implemented:
$ ./printsemant Tools/preprocess/testcases/posix_stat.c
PROGRAM[
SOURCE[...],
DEFINE[
CNAME posix_stat,
SPEC[
DECLARATION
{ fun_fqname = os.stat,
fun_name = stat,
fun_cname = posix_stat,
fun_kind = Keywords,
fun_params = [
{ param_name = path,
param_type = [bytes, int, str], <== here it is
param_default = NONE,
param_kind = (PosOrKwd, Required),
param_conv = path_converter,
param_parseargs = [
ConvArg { arg_name = path_converter,
arg_type = int (*converter)(PyObject *, void *)
arg_use_ptr = false },
MainArg { arg_name = path,
arg_type = path_t,
arg_use_ptr = true }]},
[...]
Stefan Krah
More information about the Python-Dev
mailing list