Sophie

Sophie

distrib > Mageia > cauldron > i586 > by-pkgid > 86fb21ce8befedacf19e8d960aa72978 > files > 7

blender-3.6.9-1.mga10.src.rpm

--- blender-3.6.1/source/blender/python/generic/imbuf_py_api.c.py312	2023-07-31 22:34:10.598661316 +0900
+++ blender-3.6.1/source/blender/python/generic/imbuf_py_api.c	2023-07-31 22:42:31.327330268 +0900
@@ -93,12 +93,11 @@ static PyObject *py_imbuf_resize(Py_ImBu
 
   static const char *_keywords[] = {"size", "method", NULL};
   static _PyArg_Parser _parser = {
-      "(ii)" /* `size` */
+      .format = "(ii)" /* `size` */
       "|$"   /* Optional keyword only arguments. */
       "O&"   /* `method` */
       ":resize",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &size[0], &size[1], PyC_ParseStringEnum, &method))
@@ -139,11 +138,10 @@ static PyObject *py_imbuf_crop(Py_ImBuf
 
   static const char *_keywords[] = {"min", "max", NULL};
   static _PyArg_Parser _parser = {
-      "(II)" /* `min` */
+      .format = "(II)" /* `min` */
       "(II)" /* `max` */
       ":crop",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &crop.xmin, &crop.ymin, &crop.xmax, &crop.ymax))
@@ -431,10 +429,9 @@ static PyObject *M_imbuf_new(PyObject *U
   int size[2];
   static const char *_keywords[] = {"size", NULL};
   static _PyArg_Parser _parser = {
-      "(ii)" /* `size` */
+      .format = "(ii)" /* `size` */
       ":new",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &size[0], &size[1])) {
     return NULL;
@@ -471,10 +468,9 @@ static PyObject *M_imbuf_load(PyObject *
 
   static const char *_keywords[] = {"filepath", NULL};
   static _PyArg_Parser _parser = {
-      "s" /* `filepath` */
+      .format = "s" /* `filepath` */
       ":load",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filepath)) {
     return NULL;
@@ -518,12 +514,11 @@ static PyObject *M_imbuf_write(PyObject
 
   static const char *_keywords[] = {"image", "filepath", NULL};
   static _PyArg_Parser _parser = {
-      "O!" /* `image` */
+      .format = "O!" /* `image` */
       "|$" /* Optional keyword only arguments. */
       "s"  /* `filepath` */
       ":write",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &Py_ImBuf_Type, &py_imb, &filepath)) {
     return NULL;
--- blender-3.6.1/source/blender/python/gpu/gpu_py_batch.c.py312	2023-07-31 22:34:10.601661314 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_batch.c	2023-07-31 22:44:12.219263571 +0900
@@ -55,13 +55,12 @@ static PyObject *pygpu_batch__tp_new(PyT
 
   static const char *_keywords[] = {"type", "buf", "elem", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O&" /* `type` */
       "O!" /* `buf` */
       "O!" /* `elem` */
       ":GPUBatch.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -256,13 +255,12 @@ static PyObject *pygpu_batch_draw_instan
 
   static const char *_keywords[] = {"program", "instance_start", "instance_count", NULL};
   static _PyArg_Parser _parser = {
-      "O!" /* `program` */
+      .format = "O!" /* `program` */
       "|$" /* Optional keyword only arguments. */
       "i"  /* `instance_start` */
       "i"  /* `instance_count' */
       ":GPUBatch.draw_instanced",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &BPyGPUShader_Type, &py_program, &instance_start, &instance_count))
@@ -298,13 +296,12 @@ static PyObject *pygpu_batch_draw_range(
 
   static const char *_keywords[] = {"program", "elem_start", "elem_count", NULL};
   static _PyArg_Parser _parser = {
-      "O!" /* `program` */
+      .format = "O!" /* `program` */
       "|$" /* Optional keyword only arguments. */
       "i"  /* `elem_start' */
       "i"  /* `elem_count' */
       ":GPUBatch.draw_range",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &BPyGPUShader_Type, &py_program, &elem_start, &elem_count))
--- blender-3.6.1/source/blender/python/gpu/gpu_py_element.c.py312	2023-07-31 22:34:10.601661314 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_element.c	2023-07-31 22:44:28.707252670 +0900
@@ -38,11 +38,10 @@ static PyObject *pygpu_IndexBuf__tp_new(
 
   static const char *_keywords[] = {"type", "seq", NULL};
   static _PyArg_Parser _parser = {
-      "$O" /* `type` */
+      .format = "$O" /* `type` */
       "&O" /* `seq` */
       ":IndexBuf.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, PyC_ParseStringEnum, &prim_type, &seq)) {
--- blender-3.6.1/source/blender/python/gpu/gpu_py_framebuffer.c.py312	2023-07-31 22:34:10.603661313 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_framebuffer.c	2023-07-31 22:45:05.470228366 +0900
@@ -276,12 +276,11 @@ static PyObject *pygpu_framebuffer__tp_n
   PyObject *color_attachements = NULL;
   static const char *_keywords[] = {"depth_slot", "color_slots", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O"  /* `depth_slot` */
       "O"  /* `color_slots` */
       ":GPUFrameBuffer.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &depth_attachment, &color_attachements))
@@ -371,13 +370,12 @@ static PyObject *pygpu_framebuffer_clear
 
   static const char *_keywords[] = {"color", "depth", "stencil", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O"  /* `color` */
       "O"  /* `depth` */
       "O"  /* `stencil` */
       ":clear",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &py_col, &py_depth, &py_stencil)) {
     return NULL;
@@ -490,7 +488,7 @@ static PyObject *pygpu_framebuffer_read_
   static const char *_keywords[] = {
       "x", "y", "xsize", "ysize", "channels", "slot", "format", "data", NULL};
   static _PyArg_Parser _parser = {
-      "i"  /* `x` */
+      .format = "i"  /* `x` */
       "i"  /* `y` */
       "i"  /* `xsize` */
       "i"  /* `ysize` */
@@ -500,8 +498,7 @@ static PyObject *pygpu_framebuffer_read_
       "|$" /* Optional keyword only arguments. */
       "O!" /* `data` */
       ":read_color",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -589,15 +586,14 @@ static PyObject *pygpu_framebuffer_read_
 
   static const char *_keywords[] = {"x", "y", "xsize", "ysize", "data", NULL};
   static _PyArg_Parser _parser = {
-      "i"  /* `x` */
+      .format = "i"  /* `x` */
       "i"  /* `y` */
       "i"  /* `xsize` */
       "i"  /* `ysize` */
       "|$" /* Optional keyword only arguments. */
       "O!" /* `data` */
       ":read_depth",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &x, &y, &w, &h, &BPyGPU_BufferType, &py_buffer))
--- blender-3.6.1/source/blender/python/gpu/gpu_py_offscreen.c.py312	2023-07-31 22:34:10.604661312 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_offscreen.c	2023-07-31 22:45:39.391205939 +0900
@@ -186,11 +186,10 @@ static PyObject *pygpu_offscreen_unbind(
 
   static const char *_keywords[] = {"restore", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O&" /* `restore` */
       ":unbind",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, PyC_ParseBool, &restore)) {
     return NULL;
@@ -218,13 +217,12 @@ static PyObject *pygpu_offscreen__tp_new
 
   static const char *_keywords[] = {"width", "height", "format", NULL};
   static _PyArg_Parser _parser = {
-      "i"  /* `width` */
+      .format = "i"  /* `width` */
       "i"  /* `height` */
       "|$" /* Optional keyword only arguments. */
       "O&" /* `format` */
       ":GPUOffScreen.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &width, &height, PyC_ParseStringEnum, &pygpu_textureformat))
@@ -339,7 +337,7 @@ static PyObject *pygpu_offscreen_draw_vi
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O"  /* `scene` */
+      .format = "O"  /* `scene` */
       "O"  /* `view_layer` */
       "O"  /* `view3d` */
       "O"  /* `region` */
@@ -349,8 +347,7 @@ static PyObject *pygpu_offscreen_draw_vi
       "O&" /* `do_color_management` */
       "O&" /* `draw_background` */
       ":draw_view3d",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
--- blender-3.6.1/source/blender/python/gpu/gpu_py_shader.c.py312	2023-07-31 22:34:10.605661312 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_shader.c	2023-07-31 22:46:04.128189584 +0900
@@ -107,7 +107,7 @@ static PyObject *pygpu_shader__tp_new(Py
   static const char *_keywords[] = {
       "vertexcode", "fragcode", "geocode", "libcode", "defines", "name", NULL};
   static _PyArg_Parser _parser = {
-      "s"  /* `vertexcode` */
+      .format = "s"  /* `vertexcode` */
       "s"  /* `fragcode` */
       "|$" /* Optional keyword only arguments. */
       "s"  /* `geocode` */
@@ -115,8 +115,7 @@ static PyObject *pygpu_shader__tp_new(Py
       "s"  /* `defines` */
       "s"  /* `name` */
       ":GPUShader.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -841,12 +840,11 @@ static PyObject *pygpu_shader_from_built
 
   static const char *_keywords[] = {"shader_name", "config", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `shader_name` */
+      .format = "O&" /* `shader_name` */
       "|$" /* Optional keyword only arguments. */
       "O&" /* `config` */
       ":from_builtin",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
--- blender-3.6.1/source/blender/python/gpu/gpu_py_shader_create_info.cc.py312	2023-07-31 22:34:10.607661310 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_shader_create_info.cc	2023-07-31 22:46:53.192157144 +0900
@@ -482,14 +482,13 @@ static PyObject *pygpu_shader_info_fragm
 
   static const char *_keywords[] = {"slot", "type", "name", "blend", nullptr};
   static _PyArg_Parser _parser = {
-      "i"  /* `slot` */
+      .format = "i"  /* `slot` */
       "O&" /* `type` */
       "s"  /* `name` */
       "|$" /* Optional keyword only arguments. */
       "O&" /* `blend` */
       ":fragment_out",
-      _keywords,
-      nullptr,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -586,15 +585,14 @@ static PyObject *pygpu_shader_info_image
 
   static const char *_keywords[] = {"slot", "format", "type", "name", "qualifiers", nullptr};
   static _PyArg_Parser _parser = {
-      "i"  /* `slot` */
+      .format = "i"  /* `slot` */
       "O&" /* `format` */
       "O&" /* `type` */
       "s"  /* `name` */
       "|$" /* Optional keyword only arguments. */
       "O"  /* `qualifiers` */
       ":image",
-      _keywords,
-      nullptr,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -769,13 +767,12 @@ static PyObject *pygpu_shader_info_push_
 
   static const char *_keywords[] = {"type", "name", "size", nullptr};
   static _PyArg_Parser _parser = {
-      "O&" /* `type` */
+      .format = "O&" /* `type` */
       "s"  /* `name` */
       "|"  /* Optional arguments. */
       "I"  /* `size` */
       ":push_constant",
-      _keywords,
-      nullptr,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, PyC_ParseStringEnum, &pygpu_type, &name, &array_size))
--- blender-3.6.1/source/blender/python/gpu/gpu_py_texture.c.py312	2023-07-31 22:34:10.607661310 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_texture.c	2023-07-31 22:55:30.710104087 +0900
@@ -121,15 +121,14 @@ static PyObject *pygpu_texture__tp_new(P
 
   static const char *_keywords[] = {"size", "layers", "is_cubemap", "format", "data", NULL};
   static _PyArg_Parser _parser = {
-      "O"  /* `size` */
+      .format = "O"  /* `size` */
       "|$" /* Optional keyword only arguments. */
       "i"  /* `layers` */
       "p"  /* `is_cubemap` */
       "O&" /* `format` */
       "O!" /* `data` */
       ":GPUTexture.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
@@ -294,12 +293,11 @@ static PyObject *pygpu_texture_clear(BPy
 
   static const char *_keywords[] = {"format", "value", NULL};
   static _PyArg_Parser _parser = {
-      "$"  /* Keyword only arguments. */
+      .format = "$"  /* Keyword only arguments. */
       "O&" /* `format` */
       "O"  /* `value` */
       ":clear",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, PyC_ParseStringEnum, &pygpu_dataformat, &py_values))
--- blender-3.6.1/source/blender/python/gpu/gpu_py_uniformbuffer.c.py312	2023-07-31 22:34:10.608661310 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_uniformbuffer.c	2023-07-31 22:58:19.589656161 +0900
@@ -65,10 +65,9 @@ static PyObject *pygpu_uniformbuffer__tp
 
   static const char *_keywords[] = {"data", NULL};
   static _PyArg_Parser _parser = {
-      "O" /* `data` */
+      .format = "O" /* `data` */
       ":GPUUniformBuf.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &pybuffer_obj)) {
     return NULL;
--- blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_buffer.c.py312	2023-07-31 22:34:10.609661309 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_buffer.c	2023-07-31 22:58:39.983722822 +0900
@@ -237,11 +237,10 @@ static PyObject *pygpu_vertbuf__tp_new(P
 
   static const char *_keywords[] = {"format", "len", NULL};
   static _PyArg_Parser _parser = {
-      "O!" /* `format` */
+      .format = "O!" /* `format` */
       "I"  /* `len` */
       ":GPUVertBuf.__new__",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &BPyGPUVertFormat_Type, &params.py_fmt, &params.len))
@@ -273,11 +272,10 @@ static PyObject *pygpu_vertbuf_attr_fill
 
   static const char *_keywords[] = {"id", "data", NULL};
   static _PyArg_Parser _parser = {
-      "O" /* `id` */
+      .format = "O" /* `id` */
       "O" /* `data` */
       ":attr_fill",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &identifier, &data)) {
     return NULL;
--- blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_format.c.py312	2023-07-31 22:34:10.610661308 +0900
+++ blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_format.c	2023-07-31 22:58:53.309766384 +0900
@@ -91,14 +91,13 @@ static PyObject *pygpu_vertformat_attr_a
 
   static const char *_keywords[] = {"id", "comp_type", "len", "fetch_mode", NULL};
   static _PyArg_Parser _parser = {
-      "$"  /* Keyword only arguments. */
+      .format = "$"  /* Keyword only arguments. */
       "s"  /* `id` */
       "O&" /* `comp_type` */
       "I"  /* `len` */
       "O&" /* `fetch_mode` */
       ":attr_add",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
--- blender-3.6.1/source/blender/python/intern/bpy.c.py312	2023-05-18 08:04:45.000000000 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy.c	2023-07-31 22:42:10.505344032 +0900
@@ -118,13 +118,12 @@ static PyObject *bpy_blend_paths(PyObjec
 
   static const char *_keywords[] = {"absolute", "packed", "local", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O&" /* `absolute` */
       "O&" /* `packed` */
       "O&" /* `local` */
       ":blend_paths",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -181,12 +180,11 @@ static PyObject *bpy_flip_name(PyObject
 
   static const char *_keywords[] = {"", "strip_digits", NULL};
   static _PyArg_Parser _parser = {
-      "s#" /* `name` */
+      .format = "s#" /* `name` */
       "|$" /* Optional, keyword only arguments. */
       "O&" /* `strip_digits` */
       ":flip_name",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &name_src, &name_src_len, PyC_ParseBool, &strip_digits))
@@ -225,12 +223,11 @@ static PyObject *bpy_user_resource(PyObj
 
   static const char *_keywords[] = {"type", "path", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `type` */
+      .format = "O&" /* `type` */
       "|$" /* Optional keyword only arguments. */
       "s"  /* `path` */
       ":user_resource",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, PyC_ParseStringEnum, &type, &subdir)) {
     return NULL;
@@ -268,12 +265,11 @@ static PyObject *bpy_system_resource(PyO
 
   static const char *_keywords[] = {"type", "path", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `type` */
+      .format = "O&" /* `type` */
       "|$" /* Optional keyword only arguments. */
       "s"  /* `path` */
       ":system_resource",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, PyC_ParseStringEnum, &type, &subdir)) {
     return NULL;
@@ -313,13 +309,12 @@ static PyObject *bpy_resource_path(PyObj
 
   static const char *_keywords[] = {"type", "major", "minor", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `type` */
+      .format = "O&" /* `type` */
       "|$" /* Optional keyword only arguments. */
       "i"  /* `major` */
       "i"  /* `minor` */
       ":resource_path",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, PyC_ParseStringEnum, &type, &major, &minor))
@@ -353,13 +348,12 @@ static PyObject *bpy_driver_secure_code_
   const bool verbose = false;
   static const char *_keywords[] = {"code", "namespace", "verbose", NULL};
   static _PyArg_Parser _parser = {
-      "O!" /* `expression` */
+      .format = "O!" /* `expression` */
       "|$" /* Optional keyword only arguments. */
       "O!" /* `namespace` */
       "O&" /* `verbose` */
       ":driver_secure_code_test",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
--- blender-3.6.1/source/blender/python/intern/bpy_app.c.py312	2023-05-18 08:04:45.000000000 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_app.c	2023-07-31 22:42:10.506344031 +0900
@@ -502,10 +502,9 @@ static PyObject *bpy_app_is_job_running(
   };
   static const char *_keywords[] = {"job_type", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `job_type` */
+      .format = "O&" /* `job_type` */
       ":is_job_running",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, pyrna_enum_value_parse_string, &job_type_enum))
--- blender-3.6.1/source/blender/python/intern/bpy_app_icons.c.py312	2023-05-18 08:04:45.000000000 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_app_icons.c	2023-07-31 22:42:10.508344030 +0900
@@ -41,12 +41,11 @@ static PyObject *bpy_app_icons_new_trian
 
   static const char *_keywords[] = {"range", "coords", "colors", NULL};
   static _PyArg_Parser _parser = {
-      "(BB)" /* `range` */
+      .format = "(BB)" /* `range` */
       "S"    /* `coords` */
       "S"    /* `colors` */
       ":new_triangles",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &coords_range[0], &coords_range[1], &py_coords, &py_colors))
@@ -102,10 +101,9 @@ static PyObject *bpy_app_icons_new_trian
 
   static const char *_keywords[] = {"filename", NULL};
   static _PyArg_Parser _parser = {
-      "s" /* `filename` */
+      .format = "s" /* `filename` */
       ":new_triangles_from_file",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filename)) {
     return NULL;
@@ -129,10 +127,9 @@ static PyObject *bpy_app_icons_release(P
   int icon_id;
   static const char *_keywords[] = {"icon_id", NULL};
   static _PyArg_Parser _parser = {
-      "i" /* `icon_id` */
+      .format = "i" /* `icon_id` */
       ":release",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &icon_id)) {
     return NULL;
--- blender-3.6.1/source/blender/python/intern/bpy_app_timers.c.py312	2023-07-31 22:34:10.616661304 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_app_timers.c	2023-07-31 22:59:24.192867336 +0900
@@ -94,13 +94,12 @@ static PyObject *bpy_app_timers_register
 
   static const char *_keywords[] = {"function", "first_interval", "persistent", NULL};
   static _PyArg_Parser _parser = {
-      "O"  /* `function` */
+      .format = "O"  /* `function` */
       "|$" /* Optional keyword only arguments. */
       "d"  /* `first_interval` */
       "p"  /* `persistent` */
       ":register",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &function, &first_interval, &persistent)) {
--- blender-3.6.1/source/blender/python/intern/bpy_gizmo_wrap.c.py312	2023-07-31 22:34:10.617661304 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_gizmo_wrap.c	2023-07-31 22:59:34.377900630 +0900
@@ -52,13 +52,12 @@ static bool bpy_gizmotype_target_propert
 
   static const char *const _keywords[] = {"id", "type", "array_length", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "s"  /* `id` */
       "O&" /* `type` */
       "i"  /* `array_length` */
       ":register_class",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(empty_tuple,
                                         item,
--- blender-3.6.1/source/blender/python/intern/bpy_library_load.c.py312	2023-07-31 22:34:10.617661304 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_library_load.c	2023-07-31 23:01:07.290204352 +0900
@@ -191,7 +191,7 @@ static PyObject *bpy_lib_load(BPy_Proper
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "s" /* `filepath` */
+      .format = "s" /* `filepath` */
       /* Optional keyword only arguments. */
       "|$"
       "O&" /* `link` */
@@ -201,8 +201,7 @@ static PyObject *bpy_lib_load(BPy_Proper
       "O&" /* `reuse_liboverrides` */
       "O&" /* `create_liboverrides_runtime` */
       ":load",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
--- blender-3.6.1/source/blender/python/intern/bpy_library_write.c.py312	2023-07-31 22:34:10.620661302 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_library_write.c	2023-07-31 23:01:17.683238325 +0900
@@ -84,15 +84,14 @@ static PyObject *bpy_lib_write(BPy_Prope
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "s"  /* `filepath` */
+      .format = "s"  /* `filepath` */
       "O!" /* `datablocks` */
       "|$" /* Optional keyword only arguments. */
       "O&" /* `path_remap` */
       "O&" /* `fake_user` */
       "O&" /* `compress` */
       ":write",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
--- blender-3.6.1/source/blender/python/intern/bpy_msgbus.c.py312	2023-07-31 22:34:10.620661302 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_msgbus.c	2023-07-31 23:03:48.453731192 +0900
@@ -241,15 +241,14 @@ static PyObject *bpy_msgbus_subscribe_rn
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O"  /* `key` */
+      .format = "O"  /* `key` */
       "O"  /* `owner` */
       "O!" /* `args` */
       "O"  /* `notify` */
       "|$" /* Optional keyword only arguments. */
       "O!" /* `options` */
       ":subscribe_rna",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -342,10 +341,9 @@ static PyObject *bpy_msgbus_publish_rna(
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O" /* `key` */
+      .format = "O" /* `key` */
       ":publish_rna",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &py_sub)) {
     return NULL;
--- blender-3.6.1/source/blender/python/intern/bpy_props.c.py312	2023-07-31 22:34:10.622661300 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_props.c	2023-07-31 23:05:40.195096474 +0900
@@ -1579,11 +1579,10 @@ static bool bpy_prop_string_visit_fn_cal
         NULL,
     };
     static _PyArg_Parser _parser = {
-        "s" /* `text` */
+        .format = "s" /* `text` */
         "s" /* `info` */
         ":search",
-        _keywords,
-        0,
+        .keywords = _keywords,
     };
     if (!_PyArg_ParseTupleAndKeywordsFast(item, NULL, &_parser, &text, &info)) {
       PyC_Err_PrintWithFunc(py_func);
@@ -2819,7 +2818,7 @@ static PyObject *BPy_BoolProperty(PyObje
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -2833,8 +2832,7 @@ static PyObject *BPy_BoolProperty(PyObje
       "O"  /* `get` */
       "O"  /* `set` */
       ":BoolProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -2976,7 +2974,7 @@ static PyObject *BPy_BoolVectorProperty(
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -2991,8 +2989,7 @@ static PyObject *BPy_BoolVectorProperty(
       "O"  /* `get` */
       "O"  /* `set` */
       ":BoolVectorProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -3166,7 +3163,7 @@ static PyObject *BPy_IntProperty(PyObjec
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -3185,8 +3182,7 @@ static PyObject *BPy_IntProperty(PyObjec
       "O"  /* `get` */
       "O"  /* `set` */
       ":IntProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -3335,7 +3331,7 @@ static PyObject *BPy_IntVectorProperty(P
       "get",      "set",     NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -3355,8 +3351,7 @@ static PyObject *BPy_IntVectorProperty(P
       "O"  /* `get` */
       "O"  /* `set` */
       ":IntVectorProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -3533,7 +3528,7 @@ static PyObject *BPy_FloatProperty(PyObj
       "update",   "get",  "set",         NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -3554,8 +3549,7 @@ static PyObject *BPy_FloatProperty(PyObj
       "O"  /* `get` */
       "O"  /* `set` */
       ":FloatProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -3717,7 +3711,7 @@ static PyObject *BPy_FloatVectorProperty
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -3739,8 +3733,7 @@ static PyObject *BPy_FloatVectorProperty
       "O"  /* `get` */
       "O"  /* `set` */
       ":FloatVectorProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -3928,7 +3921,7 @@ static PyObject *BPy_StringProperty(PyOb
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
       "s"  /* `description` */
@@ -3945,8 +3938,7 @@ static PyObject *BPy_StringProperty(PyOb
       "O"  /* `search` */
       "O&" /* `search_options` */
       ":StringProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -4132,7 +4124,7 @@ static PyObject *BPy_EnumProperty(PyObje
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "O"  /* `items` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
@@ -4146,8 +4138,7 @@ static PyObject *BPy_EnumProperty(PyObje
       "O"  /* `get` */
       "O"  /* `set` */
       ":EnumProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -4360,7 +4351,7 @@ PyObject *BPy_PointerProperty(PyObject *
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "O"  /* `type` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
@@ -4372,8 +4363,7 @@ PyObject *BPy_PointerProperty(PyObject *
       "O"  /* `poll` */
       "O"  /* `update` */
       ":PointerProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -4503,7 +4493,7 @@ PyObject *BPy_CollectionProperty(PyObjec
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "O&" /* `attr` */
+      .format = "O&" /* `attr` */
       "O"  /* `type` */
       "|$" /* Optional, keyword only arguments. */
       "s"  /* `name` */
@@ -4513,8 +4503,7 @@ PyObject *BPy_CollectionProperty(PyObjec
       "O&" /* `override` */
       "O&" /* `tags` */
       ":CollectionProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -4621,10 +4610,9 @@ static PyObject *BPy_RemoveProperty(PyOb
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "s" /* `attr` */
+      .format = "s" /* `attr` */
       ":RemoveProperty",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &id)) {
     return NULL;
--- blender-3.6.1/source/blender/python/intern/bpy_rna.c.py312	2023-07-31 22:34:10.624661299 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna.c	2023-07-31 23:06:05.478179124 +0900
@@ -3622,12 +3622,11 @@ static PyObject *pyrna_struct_is_propert
 
   static const char *_keywords[] = {"", "ghost", NULL};
   static _PyArg_Parser _parser = {
-      "s"  /* `name` (positional). */
+      .format = "s"  /* `name` (positional). */
       "|$" /* Optional keyword only arguments. */
       "O&" /* `ghost` */
       ":is_property_set",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &name, PyC_ParseBool, &use_ghost)) {
     return NULL;
--- blender-3.6.1/source/blender/python/intern/bpy_rna_context.c.py312	2023-07-31 22:34:10.624661299 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna_context.c	2023-07-31 23:06:16.302214508 +0900
@@ -239,13 +239,12 @@ static PyObject *bpy_context_temp_overri
 
   static const char *const _keywords[] = {"window", "area", "region", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional, keyword only arguments. */
+      .format = "|$" /* Optional, keyword only arguments. */
       "O&" /* `window` */
       "O&" /* `area` */
       "O&" /* `region` */
       ":temp_override",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   /* Parse known keywords, the remaining keywords are set using #CTX_py_state_push. */
   kwds = kwds ? PyDict_Copy(kwds) : PyDict_New();
--- blender-3.6.1/source/blender/python/intern/bpy_rna_data.c.py312	2023-07-31 22:34:10.625661298 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna_data.c	2023-07-31 23:06:26.121246611 +0900
@@ -130,11 +130,10 @@ static PyObject *bpy_rna_data_temp_data(
   const char *filepath = NULL;
   static const char *_keywords[] = {"filepath", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "z"  /* `filepath` */
       ":temp_data",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filepath)) {
     return NULL;
--- blender-3.6.1/source/blender/python/intern/bpy_rna_gizmo.c.py312	2023-07-31 22:34:10.626661298 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna_gizmo.c	2023-07-31 23:07:04.923373455 +0900
@@ -340,15 +340,14 @@ static PyObject *bpy_gizmo_target_set_ha
    * (see: rna_wm_gizmo_api.c). conventions should match. */
   static const char *const _keywords[] = {"self", "target", "get", "set", "range", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `self` */
+      .format = "O&" /* `self` */
       "O&" /* `target` */
       "|$" /* Optional keyword only arguments. */
       "O"  /* `get` */
       "O"  /* `set` */
       "O"  /* `range` */
       ":target_set_handler",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -438,11 +437,10 @@ static PyObject *bpy_gizmo_target_get_va
 
   static const char *const _keywords[] = {"self", "target", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `self` */
+      .format = "O&" /* `self` */
       "O&" /* `target` */
       ":target_get_value",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -503,12 +501,11 @@ static PyObject *bpy_gizmo_target_set_va
 
   static const char *const _keywords[] = {"self", "target", "value", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `self` */
+      .format = "O&" /* `self` */
       "O&" /* `target` */
       "O"  /* `value` */
       ":target_set_value",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
@@ -581,11 +578,10 @@ static PyObject *bpy_gizmo_target_get_ra
 
   static const char *const _keywords[] = {"self", "target", NULL};
   static _PyArg_Parser _parser = {
-      "O&" /* `self` */
+      .format = "O&" /* `self` */
       "O&" /* `target` */
       ":target_get_range",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,
--- blender-3.6.1/source/blender/python/intern/bpy_rna_id_collection.c.py312	2023-07-31 22:34:10.627661297 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna_id_collection.c	2023-07-31 23:07:35.212455793 +0900
@@ -159,13 +159,12 @@ static PyObject *bpy_user_map(PyObject *
 
   static const char *_keywords[] = {"subset", "key_types", "value_types", NULL};
   static _PyArg_Parser _parser = {
-      "|$" /* Optional keyword only arguments. */
+      .format = "|$" /* Optional keyword only arguments. */
       "O"  /* `subset` */
       "O!" /* `key_types` */
       "O!" /* `value_types` */
       ":user_map",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &subset, &PySet_Type, &key_types, &PySet_Type, &val_types))
@@ -302,10 +301,9 @@ static PyObject *bpy_batch_remove(PyObje
 
   static const char *_keywords[] = {"ids", NULL};
   static _PyArg_Parser _parser = {
-      "O" /* `ids` */
+      .format = "O" /* `ids` */
       ":batch_remove",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &ids)) {
     return ret;
@@ -380,13 +378,12 @@ static PyObject *bpy_orphans_purge(PyObj
 
   static const char *_keywords[] = {"do_local_ids", "do_linked_ids", "do_recursive", NULL};
   static _PyArg_Parser _parser = {
-      "|"  /* Optional arguments. */
+      .format = "|"  /* Optional arguments. */
       "O&" /* `do_local_ids` */
       "O&" /* `do_linked_ids` */
       "O&" /* `do_recursive` */
       ":orphans_purge",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
--- blender-3.6.1/source/blender/python/intern/bpy_rna_text.c.py312	2023-07-31 22:34:10.630661295 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_rna_text.c	2023-07-31 23:07:58.243491337 +0900
@@ -64,11 +64,10 @@ static PyObject *bpy_rna_region_as_strin
 
   static const char *_keywords[] = {"range", NULL};
   static _PyArg_Parser _parser = {
-      "|$"         /* Optional keyword only arguments. */
+      .format = "|$"         /* Optional keyword only arguments. */
       "((ii)(ii))" /* `range` */
       ":region_as_string",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kwds, &_parser, &region.curl, &region.curc, &region.sell, &region.selc))
@@ -122,12 +121,11 @@ static PyObject *bpy_rna_region_from_str
 
   static const char *_keywords[] = {"", "range", NULL};
   static _PyArg_Parser _parser = {
-      "s#"         /* `buf` (positional). */
+      .format = "s#"         /* `buf` (positional). */
       "|$"         /* Optional keyword only arguments. */
       "((ii)(ii))" /* `range` */
       ":region_from_string",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kwds,
--- blender-3.6.1/source/blender/python/intern/bpy_utils_units.c.py312	2023-07-31 22:34:10.631661294 +0900
+++ blender-3.6.1/source/blender/python/intern/bpy_utils_units.c	2023-07-31 23:08:18.178522102 +0900
@@ -176,14 +176,13 @@ static PyObject *bpyunits_to_value(PyObj
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "s"  /* `unit_system` */
+      .format = "s"  /* `unit_system` */
       "s"  /* `unit_category` */
       "s#" /* `str_input` */
       "|$" /* Optional keyword only arguments. */
       "z"  /* `str_ref_unit` */
       ":to_value",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(
           args, kw, &_parser, &usys_str, &ucat_str, &inpt, &str_len, &uref))
@@ -263,7 +262,7 @@ static PyObject *bpyunits_to_string(PyOb
       NULL,
   };
   static _PyArg_Parser _parser = {
-      "s"  /* `unit_system` */
+      .format = "s"  /* `unit_system` */
       "s"  /* `unit_category` */
       "d"  /* `value` */
       "|$" /* Optional keyword only arguments. */
@@ -271,8 +270,7 @@ static PyObject *bpyunits_to_string(PyOb
       "O&" /* `split_unit` */
       "O&" /* `compatible_unit` */
       ":to_string",
-      _keywords,
-      0,
+      .keywords = _keywords,
   };
   if (!_PyArg_ParseTupleAndKeywordsFast(args,
                                         kw,