Serhiy Storchaka
60942cccb1
gh-95065, gh-107704: Argument Clinic: support multiple '/ [from ...]' and '* [from ...]' markers (GH-108132)
2023-08-21 13:59:58 +00:00
Serhiy Storchaka
2f311437cd
gh-107704: Argument Clinic: add support for deprecating keyword use of parameters (GH-107984)
...
It is now possible to deprecate passing keyword arguments for
keyword-or-positional parameters with Argument Clinic, using the new
'/ [from X.Y]' syntax.
(To be read as "positional-only from Python version X.Y")
Co-authored-by: Erlend E. Aasland <erlend@python.org>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-19 10:13:35 +03:00
Dong-hee Na
28cab71f95
gh-104504: Run mypy on cases_generator in CI (and blacken the code) (gh-108090)
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-18 22:42:45 +09:00
Erlend E. Aasland
292a22bdc2
gh-104683: Argument Clinic: Remove unreachable code from _module_and_class() ( #108092 )
...
'not hasattr(parent, "classes")' is always false, since 'parent' is an
instance of either the Module, Class, or Clinic classes, and all of
them has a "classes" attribute.
2023-08-17 18:16:08 +00:00
Erlend E. Aasland
42429d3b9a
gh-104683: Argument Clinic: Extract parse function name helper ( #107964 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-16 13:47:15 +00:00
Erlend E. Aasland
607f18c894
gh-107972: Argument Clinic: Ensure a C basename is provided after 'as' ( #107973 )
...
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-15 14:41:40 +00:00
Erlend E. Aasland
e90036c9bd
gh-107880: Argument Clinic: Fix regression in gh-107885 ( #107974 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-15 14:00:52 +00:00
Erlend E. Aasland
9b75ada6e4
gh-107880: Teach Argument Clinic to clone __init__ and __new__ methods ( #107885 )
2023-08-13 12:13:11 +02:00
Erlend E. Aasland
ee40b3e20d
gh-107883: Argument Clinic: Handle full module/class path in Function.fulldisplayname ( #107884 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-12 23:46:00 +00:00
Erlend E. Aasland
0a7f48b9a8
gh-95065: Produce nicer deprecation messages in Argument Clinic ( #107808 )
2023-08-09 13:28:18 +00:00
Erlend E. Aasland
1b3f5f24af
gh-104683: Argument Clinic: Params now render their own docstrings ( #107790 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-09 12:44:26 +00:00
Alex Waygood
65ce3652fa
gh-104683: Remove unused variables from `Tools/clinic` and tests for `Tools/clinic` ( #107771 )
2023-08-09 11:24:05 +01:00
Erlend E. Aasland
925bbc2166
gh-80282: Argument Clinic: Add clarifying comment about ASCII docstring limitation ( #107764 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-09 07:55:34 +02:00
Erlend E. Aasland
73507382ac
gh-104683: Argument Clinic: refactor format_docstring() ( #107623 )
...
Extract helper methods for formatting the signature and parameter
sections, and clean up the remaining function body.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2023-08-08 21:12:35 +00:00
Erlend E. Aasland
0be3743f54
gh-104683: Add --exclude option to Argument Clinic CLI ( #107770 )
...
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-08-08 20:50:54 +00:00
Alex Waygood
7c5153de5a
gh-106368: Argument clinic: add tests for more failure paths ( #107731 )
2023-08-08 12:12:49 +00:00
Erlend E. Aasland
5df8b0d5c7
gh-95065: Argument Clinic: Add comment to preprocessor warning code ( #107766 )
2023-08-08 08:43:41 +00:00
Erlend E. Aasland
0db043dd5a
gh-95065: Make Argument Clinic append deprecation warnings to docstrings ( #107745 )
2023-08-08 08:41:09 +02:00
Serhiy Storchaka
0e6e32fb84
gh-86457: Fix signature for code.replace() (GH-23199)
...
Also add support of @text_signature in Argument Clinic.
2023-08-07 23:34:53 +03:00
Erlend E. Aasland
835e388915
gh-95065: Argument Clinic: Pretty-print long C strings in generated code ( #107712 )
...
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-08-07 14:33:52 +00:00
Alex Waygood
c399b5e1a5
gh-107713: Reduce usage of mocks in `test_clinic.py` ( #107714 )
2023-08-07 14:26:49 +01:00
Erlend E. Aasland
33cb0b06ef
gh-95065: Add Argument Clinic support for deprecating positional use of parameters ( #95151 )
...
It is now possible to deprecate passing parameters positionally with
Argument Clinic, using the new '* [from X.Y]' syntax.
(To be read as "keyword-only from Python version X.Y")
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2023-08-07 11:28:08 +00:00
Alex Waygood
ee3bf45e5e
gh-106368: Improve coverage reports for argument clinic ( #107693 )
2023-08-06 20:40:55 +01:00
Alex Waygood
6996b406bc
gh-104683: Improve consistency and test coverage of argument-clinic `__repr__` functions ( #107667 )
2023-08-05 21:58:38 +01:00
Alex Waygood
2c25bd82f4
gh-106368: Argument clinic: improve coverage for `self.valid_line()` calls ( #107641 )
2023-08-04 20:41:04 +01:00
Erlend E. Aasland
321f0f7932
gh-104683: Argument Clinic: Use CConverter.length_name where possible ( #107638 )
...
Also make it a cached property.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-04 17:49:07 +00:00
Alex Waygood
407d7fda94
gh-104146: Argument clinic: remove dead code highlighted by the `vulture` tool ( #107632 )
2023-08-04 14:56:50 +00:00
Alex Waygood
7eba274fb3
gh-104146: Argument clinic: Remove dead code flagged by mypy's `truthy-bool` check ( #107627 )
2023-08-04 13:28:13 +00:00
Erlend E. Aasland
ac7605ed19
gh-107614: Normalise Argument Clinic error messages ( #107615 )
...
- always wrap the offending line, token, or name in quotes
- in most cases, put the entire error message on one line
Added tests for uncovered branches that were touched by this PR.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-04 12:13:10 +00:00
Erlend E. Aasland
a443c310ac
gh-107609: Fix duplicate module check in Argument Clinic ( #107610 )
...
Also remove duplicate module def from _testcapi.
2023-08-04 07:28:25 +02:00
Alex Waygood
ee78d01a61
gh-104146: Argument clinic: remove unused methods and variables ( #107608 )
2023-08-04 00:17:17 +00:00
Erlend E. Aasland
1cd479c6d3
gh-104683: Rework Argument Clinic error handling ( #107551 )
...
Introduce ClinicError, and use it in fail(). The CLI runs main(),
catches ClinicError, formats the error message, prints to stderr
and exits with an error.
As a side effect, this refactor greatly improves the accuracy of
reported line numbers in case of error.
Also, adapt the test suite to work with ClinicError.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-03 00:00:06 +00:00
Erlend E. Aasland
bcdd307231
gh-104683: Make Argument Clinic template strings class level members ( #107556 )
...
The motivation for this change is to clean up the output_templates()
method a little bit, as it accounts for ~10% of the lines of code in
clinic.py; removing some clutter helps readability.
2023-08-02 21:37:36 +02:00
Erlend E. Aasland
9ff7b4af13
gh-107559: Argument Clinic: complain about non-ASCII chars in param docstrings ( #107560 )
...
Previously, only function docstrings were checked for non-ASCII characters.
Also, improve the warn() message.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-02 12:40:23 +00:00
Erlend E. Aasland
439466a02b
gh-104146: Remove dead code from Argument Clinic ( #107555 )
2023-08-02 09:22:17 +00:00
Erlend E. Aasland
b4d8897781
gh-104683: Argument Clinic: Refactor and simplify 'add docstring' states ( #107550 )
...
Introduce docstring_append() helper, and use it for both parameter and
function docstrings. Remove docstring fixup from
do_post_block_processing_cleanup(); instead, make sure no fixup is needed.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-08-01 23:32:27 +00:00
Alex Waygood
818c83cf81
gh-104683: Argument clinic: cleanup `DLSParser` `state_foo` methods ( #107543 )
2023-08-01 21:42:39 +01:00
Alex Waygood
030f6b1e84
gh-104683: Argument clinic: remove the `LandMine` class ( #107541 )
2023-08-01 21:10:54 +01:00
Erlend E. Aasland
49f238e78c
gh-107467: Restructure Argument Clinic command-line interface ( #107469 )
...
- Use ArgumentParser.error() to handle CLI errors
- Put the entire CLI in main()
- Rework ClinicExternalTest to call main() instead of using subprocesses
Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
2023-08-01 18:24:23 +02:00
Alex Waygood
5113ed7a2b
gh-104683: Argument clinic: pass `clinic` as a parameter where possible ( #107435 )
2023-07-29 19:47:42 +01:00
Alex Waygood
6c74b2f669
gh-104683: Argument clinic: Make the `filename` parameter to `Clinic` required ( #107439 )
2023-07-29 19:46:52 +01:00
Alex Waygood
87de2fbb1e
gh-104050: Argument clinic: enable mypy's `--warn-return-any` setting ( #107405 )
2023-07-29 13:39:21 +01:00
Alex Waygood
55ed85e49c
gh-104050: Argument clinic: complete type annotations ( #107399 )
2023-07-28 21:27:21 +01:00
Alex Waygood
ecc05e23a1
gh-106368: Argument clinic: Fix minor bug in `state_modulename_name` ( #107387 )
2023-07-28 19:10:45 +01:00
Alex Waygood
c2b1689abc
gh-104683: Argument clinic: cleanup `state_modulename_name()` ( #107340 )
2023-07-27 22:51:18 +01:00
Erlend E. Aasland
2ad699002e
Docs: Argument Clinic: Restructure "Basic concepts and usage" ( #106981 )
...
Split "Basic concepts and usage" into:
- Reference
- Terminology
- CLI reference
- Background
- Basic concepts
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
2023-07-26 22:08:43 +00:00
Alex Waygood
5aa6964a5c
gh-104050: Argument clinic: Annotate `str_converter_key()` ( #107294 )
2023-07-26 21:12:18 +01:00
Alex Waygood
f9bcdf2368
gh-104050: Argument clinic: Complete `get_destination_buffer` annotations ( #107293 )
2023-07-26 21:11:15 +01:00
Alex Waygood
14d074e1fb
gh-104683: Argument Clinic: Make most arguments to `Class` and `Function` required ( #107289 )
2023-07-26 11:54:03 +01:00
Alex Waygood
c362678dd2
gh-104050: Argument clinic: improve typing around `parse_arg()` methods ( #107288 )
2023-07-26 11:51:24 +01:00