]> granicus.if.org Git - python/commit
Issue #20226: Major improvements to Argument Clinic.
authorLarry Hastings <larry@hastings.org>
Thu, 16 Jan 2014 19:32:01 +0000 (11:32 -0800)
committerLarry Hastings <larry@hastings.org>
Thu, 16 Jan 2014 19:32:01 +0000 (11:32 -0800)
commit2a727916c598c576507e3a7447fc54cc0e01d4a5
treef9f4ab7d1ff8c08a44659a1c2c6a11563ded215d
parente1f554490de1852faa03b5c06f051756aa168bfe
Issue #20226: Major improvements to Argument Clinic.

* You may now specify an expression as the default value for a
  parameter!  Example: "sys.maxsize - 1".  This support is
  intentionally quite limited; you may only use values that
  can be represented as static C values.
* Removed "doc_default", simplified support for "c_default"
  and "py_default".  (I'm not sure we still even need
  "py_default", but I'm leaving it in for now in case a
  use presents itself.)
* Parameter lines support a trailing '\\' as a line
  continuation character, allowing you to break up long lines.
* The argument parsing code generated when supporting optional
  groups now uses PyTuple_GET_SIZE instead of PyTuple_GetSize,
  leading to a 850% speedup in parsing.  (Just kidding, this
  is an unmeasurable difference.)
* A bugfix for the recent regression where the generated
  prototype from pydoc for builtins would be littered with
  unreadable "=<object ...>"" default values for parameters
  that had no default value.
* Converted some asserts into proper failure messages.
* Many doc improvements and fixes.
13 files changed:
Doc/c-api/arg.rst
Doc/howto/clinic.rst
Lib/inspect.py
Lib/test/test_inspect.py
Misc/NEWS
Modules/_cursesmodule.c
Modules/_dbmmodule.c
Modules/_opcode.c
Modules/_testcapimodule.c
Modules/posixmodule.c
Modules/zlibmodule.c
Tools/clinic/clinic.py
Tools/clinic/clinic_test.py