Victor Stinner
e1eeb990bd
gh-113317: Remove unused INVALID constant in Argument Clinic ( #117624 )
2024-04-08 09:51:20 +02:00
Victor Stinner
dc54714044
gh-113317: Finish splitting Argument Clinic into sub-files ( #117513 )
...
Add libclinic.parser module and move the following classes and
functions there:
* Parser
* PythonParser
* create_parser_namespace()
Add libclinic.dsl_parser module and move the following classes,
functions and variables there:
* ConverterArgs
* DSLParser
* FunctionNames
* IndentStack
* ParamState
* StateKeeper
* eval_ast_expr()
* unsupported_special_methods
Add libclinic.app module and move the Clinic class there.
Add libclinic.cli module and move the following functions there:
* create_cli()
* main()
* parse_file()
* run_clinic()
2024-04-04 11:09:40 +02:00
Victor Stinner
c43f6a4dfa
gh-113317: Argument Clinic: Add libclinic.clanguage ( #117455 )
...
Add libclinic.clanguage module and move the following classes and
functions there:
* CLanguage
* declare_parser()
Add libclinic.codegen and move the following classes there:
* BlockPrinter
* BufferSeries
* Destination
Move the following functions to libclinic.function:
* permute_left_option_groups()
* permute_optional_groups()
* permute_right_option_groups()
2024-04-03 18:17:51 +00:00
Victor Stinner
e3b6f287fc
gh-113317: Argument Clinic: Add libclinic.return_converters ( #117451 )
...
Move the following converter classes to libclinic.return_converters:
* CReturnConverter
* CReturnConverterAutoRegister
* Py_ssize_t_return_converter
* bool_return_converter
* double_return_converter
* float_return_converter
* int_return_converter
* long_return_converter
* size_t_return_converter
* unsigned_int_return_converter
* unsigned_long_return_converter
Move also the add_c_return_converter() function there.
2024-04-02 11:29:39 +00:00
Victor Stinner
5fd1897ec5
gh-113317: Argument Clinic: Add libclinic.converters module ( #117315 )
...
Move the following converter classes to libclinic.converters:
* PyByteArrayObject_converter
* PyBytesObject_converter
* Py_UNICODE_converter
* Py_buffer_converter
* Py_complex_converter
* Py_ssize_t_converter
* bool_converter
* byte_converter
* char_converter
* defining_class_converter
* double_converter
* fildes_converter
* float_converter
* int_converter
* long_converter
* long_long_converter
* object_converter
* self_converter
* short_converter
* size_t_converter
* slice_index_converter
* str_converter
* unicode_converter
* unsigned_char_converter
* unsigned_int_converter
* unsigned_long_converter
* unsigned_long_long_converter
* unsigned_short_converter
Move also the following classes to libclinic.converters:
* buffer
* robuffer
* rwbuffer
Move the following functions to libclinic.converters:
* correct_name_for_self()
* r()
* str_converter_key()
Move Null and NULL to libclinic.utils.
2024-04-02 10:09:53 +00:00
Victor Stinner
7aa89bc43e
gh-113317: Change how Argument Clinic lists converters ( #116853 )
...
* Add a new create_parser_namespace() function for
PythonParser to pass objects to executed code.
* In run_clinic(), list converters using 'converters' and
'return_converters' dictionarties.
* test_clinic: add 'object()' return converter.
* Use also create_parser_namespace() in eval_ast_expr().
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-03-27 23:10:14 +01:00
Victor Stinner
8fc8fbb43a
gh-85283: Build pwd extension with the limited C API ( #116841 )
...
Argument Clinic now uses the PEP 737 "%T" format to format type name
for the limited C API.
2024-03-15 08:49:58 +01:00
Victor Stinner
25cd8730aa
gh-113317, AC: Add libclinic.converter module ( #116821 )
...
* Move CConverter class to a new libclinic.converter module.
* Move CRenderData and Include classes to a new libclinic.crenderdata
module.
2024-03-14 18:59:43 +01:00
Victor Stinner
b54d7c87aa
gh-113317, AC: Add libclinic.block_parser module ( #116819 )
...
* Move Block and BlockParser classes to a new libclinic.block_parser
module.
* Move Language and PythonLanguage classes to a new
libclinic.language module.
2024-03-14 16:11:39 +00:00
Victor Stinner
b1236a4410
gh-113317, AC: Add libclinic.function ( #116807 )
...
Move Module, Class, Function and Parameter classes to a new
libclinic.function module.
Move VersionTuple and Sentinels to libclinic.utils.
2024-03-14 14:37:22 +00:00
Victor Stinner
a76288ad9b
gh-116646, AC: Always use PyObject_AsFileDescriptor() in fildes ( #116806 )
...
The fildes converter of Argument Clinic now always call
PyObject_AsFileDescriptor(), not only for the limited C API.
The _PyLong_FileDescriptor_Converter() converter stays as a fallback
when PyObject_AsFileDescriptor() cannot be used.
2024-03-14 14:58:07 +01:00
Victor Stinner
2a54c4b25e
gh-116646, AC: Add CConverter.use_converter() method ( #116793 )
...
Only add includes when the converter is effectively used.
2024-03-14 13:57:02 +01:00
Victor Stinner
d4028724f2
gh-116646: Add limited C API support to AC fildes converter ( #116769 )
...
Add tests on the "fildes" converter to _testclinic_limited.
2024-03-14 10:28:58 +01:00
Victor Stinner
a18c9854e8
gh-113317, AC: Move warn() and fail() to libclinic.errors ( #116770 )
2024-03-14 08:07:01 +00:00
Victor Stinner
2b67fc57f6
gh-108494: Fix Argument Clinic LIMITED_CAPI_REGEX ( #116610 )
...
Accept spaces in "# define Py_LIMITED_API 0x030d0000".
2024-03-11 22:42:18 +00:00
Victor Stinner
729bfb3105
gh-116417: Avoid PyFloat_AS_DOUBLE() in AC limited C API ( #116568 )
...
Argument Clinic no longer calls PyFloat_AS_DOUBLE() when the usage of
the limited C API is requested.
2024-03-10 20:42:40 +01:00
Erlend E. Aasland
cfbdce7208
gh-114258: Argument Clinic: refactor getset implementation ( #116170 )
...
* Move param guard to param state machine
* Override return converter during parsing
* Don't use a custom type slot return converter; instead
special case type slot functions during generation.
2024-03-04 13:51:28 +01:00
Erlend E. Aasland
cc6f807760
gh-116171: Argument Clinic: disallow overriding return converter for __init__ methods ( #116172 )
2024-03-01 18:41:20 +01:00
Nikita Sobolev
e3f462c9a7
Remove `ConverterKeywordDict` alias in `clinic.py` ( #115843 )
2024-02-23 09:00:07 +00:00
Erlend E. Aasland
351c103134
gh-113317: Argument Clinic: move C/Py identifier helpers into libclinic ( #115520 )
2024-02-16 07:42:15 +01:00
Erlend E. Aasland
58cb634632
gh-113317: Argument Clinic: move linear_format into libclinic ( #115518 )
2024-02-15 23:52:20 +01:00
Erlend E. Aasland
e74fa294c9
gh-113317: Argument Clinic: inline required_type_for_self_for_parser() in self converter ( #115522 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-02-15 16:03:58 +00:00
Erlend E. Aasland
a0149fa6cf
gh-113317: Argument Clinic: remove global clinic instance ( #115517 )
2024-02-15 13:21:31 +00:00
Erlend E. Aasland
7f074a771b
gh-113317: Argument Clinic: don't use global state in warn() and fail() ( #115510 )
2024-02-15 13:22:21 +01:00
Erlend E. Aasland
98ee4ecdbc
gh-113317: Argument Clinic: don't use fail() in CLI ( #115513 )
2024-02-15 12:10:32 +00:00
Erlend E. Aasland
32f8ab1ab6
gh-114258: Refactor Argument Clinic function name parser ( #114930 )
...
Refactor state_modulename_name() of the parsing state machine, by
adding helpers for the sections that deal with ...:
1. parsing the function name
2. normalizing "function kind"
3. dealing with cloned functions
4. resolving return converters
5. adding the function to the DSL parser
2024-02-15 09:45:21 +01:00
Erlend E. Aasland
09096a1647
gh-115015: Argument Clinic: fix generated code for METH_METHOD methods without params ( #115016 )
2024-02-05 21:49:17 +01:00
Nikita Sobolev
87cd20a567
gh-115026: Argument Clinic: handle PyBuffer_FillInfo errors in generated code ( #115027 )
2024-02-05 11:45:09 +01:00
Alex Waygood
920b89f627
Bump ruff to 0.2.0 ( #114932 )
2024-02-02 21:04:15 +00:00
Erlend E. Aasland
e14930ff63
gh-113317: Don't use global clinic instance in bad_argument() ( #114330 )
...
Make it possible for a converter to have multiple includes, by collecting
them in a list on the converter instance. This implies converter includes
are added during template generation, so we have to add them to the
clinic instance at the end of the template generation instead of in the
beginning.
2024-01-23 11:07:56 +01:00
Erlend E. Aasland
1709020e8e
gh-113317: Move FormatCounterFormatter into libclinic ( #114066 )
2024-01-15 00:09:26 +01:00
Erlend E. Aasland
5dbcdfdeb8
gh-113317: Move global utility functions into libclinic ( #113986 )
...
Establish Tools/clinic/libclinic/utils.py and move the following
functions over there:
- compute_checksum()
- create_regex()
- write_file()
2024-01-14 18:26:09 +00:00
Erlend E. Aasland
7ab9efdd6a
gh-113299: Move cpp.py into libclinic ( #113526 )
2023-12-28 00:20:57 +01:00
Erlend E. Aasland
87295b4068
gh-113317: Rework Argument Clinic cpp.py error handling ( #113525 )
...
Rework error handling in the C preprocessor helper. Instead of monkey-
patching the cpp.Monitor.fail() method from within clinic.py, rewrite
cpp.py to use a subclass of the ClinicError exception. As a side-effect,
ClinicError is moved into Tools/clinic/libclinic/errors.py.
Yak-shaving in preparation for putting cpp.py into libclinic.
2023-12-27 21:43:19 +00:00
Erlend E. Aasland
ca71987f4e
gh-113317: Move more formatting helpers into libclinic ( #113438 )
...
Move the following global helpers into libclinic:
- format_escape()
- normalize_snippet()
- wrap_declarations()
Also move strip_leading_and_trailing_blank_lines() and make it internal to libclinic.
2023-12-23 17:08:10 +00:00
Erlend E. Aasland
c3f92f6a75
gh-113317: Clean up Argument Clinic global namespace ( #113414 )
...
Split up clinic.py by establishing libclinic as a support package for
Argument Clinic. Get rid of clinic.py globals by either making them
class members, or by putting them into libclinic.
- Move INCLUDE_COMMENT_COLUMN to BlockPrinter
- Move NO_VARARG to CLanguage
- Move formatting helpers to libclinic
- Move some constants to libclinic (and annotate them as Final)
2023-12-23 00:37:39 +00:00
Erlend E. Aasland
9c3ddf31a3
gh-113317: Remove TextAccumulator type alias from clinic.py ( #113413 )
...
Clean-up after gh-113402.
2023-12-22 22:35:16 +00:00
Erlend E. Aasland
daa658aba5
gh-113317: Argument Clinic: tear out internal text accumulator APIs ( #113402 )
...
Replace the internal accumulator APIs by using lists of strings and join().
Yak-shaving for separating out formatting code into a separate file.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-12-22 21:28:15 +01:00
Alex Waygood
7de9855410
Bump mypy to 1.8.0 ( #113385 )
2023-12-21 23:14:24 +00:00
Erlend E. Aasland
fae096cd4b
gh-113336: Remove the 'version' directive from Argument Clinic ( #113341 )
...
The 'version' directive was introduced with gh-63929 in Nov 2013. It has
not been in use in the CPython code base, and the 'version' variable has
never been bumped.
2023-12-21 13:10:41 +01:00
Erlend E. Aasland
4b90b5d857
Docs: update URL in Argument Clinic CLI help text ( #113351 )
...
The Argument Clinic docs was moved to the devguide earlier in 2023.
2023-12-21 09:28:43 +00:00
Donghee Na
57b7e52790
gh-112205: Support docstring for `@getter` ( #113160 )
...
---------
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2023-12-20 21:52:12 +09:00
Erlend E. Aasland
6a69b80d1b
gh-112205: Require @getter and @setter to be methods ( #113278 )
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-12-19 12:32:28 +01:00
Serhiy Storchaka
29f7eb4859
gh-59616: Support os.chmod(follow_symlinks=True) and os.lchmod() on Windows (GH-113049)
2023-12-14 13:28:37 +02:00
Donghee Na
498a096a51
gh-112205: Support `@setter` annotation from AC (gh-112922)
...
---------
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-12-13 14:00:34 +00:00
Jelle Zijlstra
1f9cd3c1e5
Argument Clinic: fix bare "type" in annotations ( #112915 )
...
Bare "type" in annotations should be equivalent to "type[Any]"; see
https://discuss.python.org/t/inconsistencies-between-type-and-type/37404
and python/mypy#16366 . It's better to use "type[object]", which is
safer and unambiguous.
2023-12-10 15:30:02 +00:00
Yang Hau
707c37e373
Fix typos in variable names, function names, and comments (GH-101868)
2023-12-01 09:37:40 +00:00
Donghee Na
7eeea13403
gh-112205: Support @getter annotation from AC (gh-112396)
2023-11-30 19:40:53 +09:00
Donghee Na
4ec849bba8
gh-112213: Add missing declaration of target_critical_section (gh-112374)
...
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2023-11-25 00:58:39 +09:00
Donghee Na
b8c952af72
gh-111903: Update AC to support "pycore_critical_section.h" header (gh-112251)
2023-11-19 10:13:58 +09:00