]> granicus.if.org Git - python/commitdiff
- Issue #27332: Fixed the type of the first argument of module-level functions
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 7 Jul 2016 15:20:03 +0000 (18:20 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Thu, 7 Jul 2016 15:20:03 +0000 (18:20 +0300)
  generated by Argument Clinic.  Patch by Petr Viktorin.

59 files changed:
1  2 
Misc/NEWS
Modules/_codecsmodule.c
Modules/_dbmmodule.c
Modules/_gdbmmodule.c
Modules/_io/_iomodule.c
Modules/_io/clinic/_iomodule.c.h
Modules/_lzmamodule.c
Modules/_pickle.c
Modules/_sre.c
Modules/_ssl.c
Modules/_tkinter.c
Modules/_winapi.c
Modules/arraymodule.c
Modules/audioop.c
Modules/binascii.c
Modules/clinic/_codecsmodule.c.h
Modules/clinic/_cryptmodule.c.h
Modules/clinic/_dbmmodule.c.h
Modules/clinic/_gdbmmodule.c.h
Modules/clinic/_lzmamodule.c.h
Modules/clinic/_opcode.c.h
Modules/clinic/_pickle.c.h
Modules/clinic/_sre.c.h
Modules/clinic/_ssl.c.h
Modules/clinic/_tkinter.c.h
Modules/clinic/_weakref.c.h
Modules/clinic/_winapi.c.h
Modules/clinic/arraymodule.c.h
Modules/clinic/audioop.c.h
Modules/clinic/binascii.c.h
Modules/clinic/cmathmodule.c.h
Modules/clinic/fcntlmodule.c.h
Modules/clinic/grpmodule.c.h
Modules/clinic/md5module.c.h
Modules/clinic/posixmodule.c.h
Modules/clinic/pwdmodule.c.h
Modules/clinic/pyexpat.c.h
Modules/clinic/sha1module.c.h
Modules/clinic/sha256module.c.h
Modules/clinic/sha512module.c.h
Modules/clinic/signalmodule.c.h
Modules/clinic/spwdmodule.c.h
Modules/clinic/zlibmodule.c.h
Modules/grpmodule.c
Modules/posixmodule.c
Modules/pwdmodule.c
Modules/pyexpat.c
Modules/spwdmodule.c
Modules/zlibmodule.c
PC/clinic/msvcrtmodule.c.h
PC/clinic/winreg.c.h
PC/clinic/winsound.c.h
PC/msvcrtmodule.c
PC/winreg.c
Python/bltinmodule.c
Python/clinic/bltinmodule.c.h
Python/clinic/import.c.h
Python/import.c
Tools/clinic/clinic.py

diff --cc Misc/NEWS
Simple merge
index 611ca82cac86cca44fc77bb4d0c4961517de9946,9b1194eae8cdf2740871b8905aa1434271014eb6..4e75995bbfb9e25aeecc243e58caeb2b7130b242
@@@ -720,12 -724,21 +720,12 @@@ _codecs.utf_7_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_7_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_7_encode_impl(PyObject *module, PyObject *str,
                            const char *errors)
- /*[clinic end generated code: output=a7accc496a32b759 input=d1a47579e79cbe15]*/
 -/*[clinic end generated code: output=0feda21ffc921bc8 input=fd91a78f103b0421]*/
++/*[clinic end generated code: output=0feda21ffc921bc8 input=d1a47579e79cbe15]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF7(str, 0, 0, errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF7(str, 0, 0, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -736,12 -749,21 +736,12 @@@ _codecs.utf_8_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_8_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_8_encode_impl(PyObject *module, PyObject *str,
                            const char *errors)
- /*[clinic end generated code: output=ec831d80e7aedede input=42e3ba73c4392eef]*/
 -/*[clinic end generated code: output=02bf47332b9c796c input=2c22d40532f071f3]*/
++/*[clinic end generated code: output=02bf47332b9c796c input=42e3ba73c4392eef]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(PyUnicode_AsEncodedString(str, "utf-8", errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_AsUTF8String(str, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /* This version provides access to the byteorder parameter of the
@@@ -760,12 -782,21 +760,12 @@@ _codecs.utf_16_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_16_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_16_encode_impl(PyObject *module, PyObject *str,
                             const char *errors, int byteorder)
- /*[clinic end generated code: output=93ac58e960a9ee4d input=ff46416b04edb944]*/
 -/*[clinic end generated code: output=c654e13efa2e64e4 input=3935a489b2d5385e]*/
++/*[clinic end generated code: output=c654e13efa2e64e4 input=ff46416b04edb944]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF16(str, errors, byteorder),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, byteorder),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -776,12 -807,21 +776,12 @@@ _codecs.utf_16_le_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_16_le_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_16_le_encode_impl(PyObject *module, PyObject *str,
                                const char *errors)
- /*[clinic end generated code: output=422bedb8da34fb66 input=cb385455ea8f2fe0]*/
 -/*[clinic end generated code: output=431b01e55f2d4995 input=bc27df05d1d20dfe]*/
++/*[clinic end generated code: output=431b01e55f2d4995 input=cb385455ea8f2fe0]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF16(str, errors, -1),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, -1),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -792,12 -832,21 +792,12 @@@ _codecs.utf_16_be_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_16_be_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_16_be_encode_impl(PyObject *module, PyObject *str,
                                const char *errors)
- /*[clinic end generated code: output=3aa7ee9502acdd77 input=9119997066bdaefd]*/
 -/*[clinic end generated code: output=96886a6fd54dcae3 input=5a69d4112763462b]*/
++/*[clinic end generated code: output=96886a6fd54dcae3 input=9119997066bdaefd]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF16(str, errors, +1),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF16(str, errors, +1),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /* This version provides access to the byteorder parameter of the
@@@ -816,12 -865,21 +816,12 @@@ _codecs.utf_32_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_32_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_32_encode_impl(PyObject *module, PyObject *str,
                             const char *errors, int byteorder)
- /*[clinic end generated code: output=3e7d5a003b02baed input=c5e77da82fbe5c2a]*/
 -/*[clinic end generated code: output=5c760da0c09a8b83 input=434a1efa492b8d58]*/
++/*[clinic end generated code: output=5c760da0c09a8b83 input=c5e77da82fbe5c2a]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF32(str, errors, byteorder),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, byteorder),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -832,12 -890,21 +832,12 @@@ _codecs.utf_32_le_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_32_le_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_32_le_encode_impl(PyObject *module, PyObject *str,
                                const char *errors)
- /*[clinic end generated code: output=5dda641cd33dbfc2 input=9993b25fe0877848]*/
 -/*[clinic end generated code: output=b65cd176de8e36d6 input=dfa2d7dc78b99422]*/
++/*[clinic end generated code: output=b65cd176de8e36d6 input=9993b25fe0877848]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF32(str, errors, -1),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, -1),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -848,12 -915,21 +848,12 @@@ _codecs.utf_32_be_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_utf_32_be_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_utf_32_be_encode_impl(PyObject *module, PyObject *str,
                                const char *errors)
- /*[clinic end generated code: output=ccca8b44d91a7c7a input=d3e0ccaa02920431]*/
 -/*[clinic end generated code: output=1d9e71a9358709e9 input=4595617b18169002]*/
++/*[clinic end generated code: output=1d9e71a9358709e9 input=d3e0ccaa02920431]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_EncodeUTF32(str, errors, +1),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_EncodeUTF32(str, errors, +1),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -864,12 -940,21 +864,12 @@@ _codecs.unicode_escape_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_unicode_escape_encode_impl(PyObject *module, PyObject *str,
                                     const char *errors)
- /*[clinic end generated code: output=389f23d2b8f8d80b input=65d9eefca65b455a]*/
 -/*[clinic end generated code: output=66271b30bc4f7a3c input=8273506f14076912]*/
++/*[clinic end generated code: output=66271b30bc4f7a3c input=65d9eefca65b455a]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(PyUnicode_AsUnicodeEscapeString(str),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(PyUnicode_AsUnicodeEscapeString(str),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -880,12 -965,21 +880,12 @@@ _codecs.raw_unicode_escape_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_raw_unicode_escape_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_raw_unicode_escape_encode_impl(PyObject *module, PyObject *str,
                                         const char *errors)
- /*[clinic end generated code: output=fec4e39d6ec37a62 input=5aa33e4a133391ab]*/
 -/*[clinic end generated code: output=a66a806ed01c830a input=181755d5dfacef3c]*/
++/*[clinic end generated code: output=a66a806ed01c830a input=5aa33e4a133391ab]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(PyUnicode_AsRawUnicodeEscapeString(str),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(PyUnicode_AsRawUnicodeEscapeString(str),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -896,12 -990,21 +896,12 @@@ _codecs.latin_1_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_latin_1_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_latin_1_encode_impl(PyObject *module, PyObject *str,
                              const char *errors)
- /*[clinic end generated code: output=ecf00eb8e48c889c input=30b11c9e49a65150]*/
 -/*[clinic end generated code: output=2c28c83a27884e08 input=f03f6dcf1d84bee4]*/
++/*[clinic end generated code: output=2c28c83a27884e08 input=30b11c9e49a65150]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_AsLatin1String(str, errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_AsLatin1String(str, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -912,12 -1015,21 +912,12 @@@ _codecs.ascii_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_ascii_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_ascii_encode_impl(PyObject *module, PyObject *str,
                            const char *errors)
- /*[clinic end generated code: output=a9d18fc6b6b91cfb input=843a1d268e6dfa8e]*/
 -/*[clinic end generated code: output=b5e035182d33befc input=d87e25a10a593fee]*/
++/*[clinic end generated code: output=b5e035182d33befc input=843a1d268e6dfa8e]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(_PyUnicode_AsASCIIString(str, errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(_PyUnicode_AsASCIIString(str, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -929,10 -1041,12 +929,10 @@@ _codecs.charmap_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_charmap_encode_impl(PyModuleDef *module, PyObject *str,
+ _codecs_charmap_encode_impl(PyObject *module, PyObject *str,
                              const char *errors, PyObject *mapping)
- /*[clinic end generated code: output=14ca42b83853c643 input=0752cde07a6d6d00]*/
 -/*[clinic end generated code: output=047476f48495a9e9 input=85f4172661e8dad9]*/
++/*[clinic end generated code: output=047476f48495a9e9 input=0752cde07a6d6d00]*/
  {
 -    PyObject *v;
 -
      if (mapping == Py_None)
          mapping = NULL;
  
@@@ -963,12 -1084,20 +963,11 @@@ _codecs.mbcs_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_mbcs_encode_impl(PyModuleDef *module, PyObject *str,
-                          const char *errors)
- /*[clinic end generated code: output=d1a013bc68798bd7 input=de471e0815947553]*/
+ _codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors)
 -/*[clinic end generated code: output=76e2e170c966c080 input=65c09ee1e4203263]*/
++/*[clinic end generated code: output=76e2e170c966c080 input=de471e0815947553]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(PyUnicode_EncodeCodePage(CP_ACP, str, errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(PyUnicode_EncodeCodePage(CP_ACP, str, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  /*[clinic input]
@@@ -980,12 -1109,23 +979,12 @@@ _codecs.code_page_encod
  [clinic start generated code]*/
  
  static PyObject *
- _codecs_code_page_encode_impl(PyModuleDef *module, int code_page,
-                               PyObject *str, const char *errors)
- /*[clinic end generated code: output=3b406618dbfbce25 input=786421ae617d680b]*/
+ _codecs_code_page_encode_impl(PyObject *module, int code_page, PyObject *str,
+                               const char *errors)
 -/*[clinic end generated code: output=45673f6085657a9e input=c8562ec460c2e309]*/
++/*[clinic end generated code: output=45673f6085657a9e input=786421ae617d680b]*/
  {
 -    PyObject *v;
 -
 -    str = PyUnicode_FromObject(str);
 -    if (str == NULL || PyUnicode_READY(str) < 0) {
 -        Py_XDECREF(str);
 -        return NULL;
 -    }
 -    v = codec_tuple(PyUnicode_EncodeCodePage(code_page,
 -                                             str,
 -                                             errors),
 -                    PyUnicode_GET_LENGTH(str));
 -    Py_DECREF(str);
 -    return v;
 +    return codec_tuple(PyUnicode_EncodeCodePage(code_page, str, errors),
 +                       PyUnicode_GET_LENGTH(str));
  }
  
  #endif /* HAVE_MBCS */
Simple merge
Simple merge
Simple merge
index 6dcfc0812d25453371cb3169e4200ca2a5dcc614,6c88e32e5ac0ef03d15ab552d731b78427377f92..ee01cfb7b387d94b6a0e67ffbc78dc27e31f1687
@@@ -157,4 -156,4 +157,4 @@@ _io_open(PyObject *module, PyObject *ar
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=079f597e71e9f0c6 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=bc2c003cb7daeafe input=a9049054013a1b77]*/
++/*[clinic end generated code: output=ae2facf262cf464e input=a9049054013a1b77]*/
Simple merge
Simple merge
diff --cc Modules/_sre.c
Simple merge
diff --cc Modules/_ssl.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index a306acde32d0f24ba67cc7affff844c3883b62bb,13780b28995bd0dc418938b91b494e2cb8787c40..623c298767a8a9d21a2fd4e61301ffd317daaea6
@@@ -253,11 -253,10 +253,11 @@@ Decode a line of uuencoded data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_a2b_uu_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=5779f39b0b48459f input=7cafeaf73df63d1c]*/
+ binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=e027f8e0b0598742 input=7cafeaf73df63d1c]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    const unsigned char *ascii_data;
 +    unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -340,11 -339,10 +340,11 @@@ Uuencode line of data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_b2a_uu_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=181021b69bb9a414 input=00fdf458ce8b465b]*/
+ binascii_b2a_uu_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=0070670e52e4aa6b input=00fdf458ce8b465b]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    unsigned char *ascii_data;
 +    const unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -425,11 -426,10 +425,11 @@@ Decode a line of base64 data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_a2b_base64_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=3e351b702bed56d2 input=5872acf6e1cac243]*/
+ binascii_a2b_base64_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=0628223f19fd3f9b input=5872acf6e1cac243]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    const unsigned char *ascii_data;
 +    unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -522,11 -534,10 +522,11 @@@ Base64-code line of data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_b2a_base64_impl(PyModuleDef *module, Py_buffer *data, int newline)
- /*[clinic end generated code: output=19e1dd719a890b50 input=7b2ea6fa38d8924c]*/
 -binascii_b2a_base64_impl(PyObject *module, Py_buffer *data)
 -/*[clinic end generated code: output=4d96663170778dc3 input=14ec4e47371174a9]*/
++binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline)
++/*[clinic end generated code: output=4ad62c8e8485d3b3 input=7b2ea6fa38d8924c]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    unsigned char *ascii_data;
 +    const unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -590,11 -601,10 +590,11 @@@ Decode .hqx coding
  [clinic start generated code]*/
  
  static PyObject *
- binascii_a2b_hqx_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=60bcdbbd28b105cd input=0d914c680e0eed55]*/
+ binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=4d6d8c54d54ea1c1 input=0d914c680e0eed55]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    const unsigned char *ascii_data;
 +    unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -669,16 -684,14 +669,16 @@@ Binhex RLE-code binary data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_rlecode_hqx_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=0905da344dbf0648 input=e1f1712447a82b09]*/
+ binascii_rlecode_hqx_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=393d79338f5f5629 input=e1f1712447a82b09]*/
  {
 -    unsigned char *in_data, *out_data;
 -    PyObject *rv;
 +    const unsigned char *in_data;
 +    unsigned char *out_data;
      unsigned char ch;
      Py_ssize_t in, inend, len;
 +    _PyBytesWriter writer;
  
 +    _PyBytesWriter_Init(&writer);
      in_data = data->buf;
      len = data->len;
  
@@@ -731,11 -748,10 +731,11 @@@ Encode .hqx data
  [clinic start generated code]*/
  
  static PyObject *
- binascii_b2a_hqx_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=5a987810d5e3cdbb input=9596ebe019fe12ba]*/
+ binascii_b2a_hqx_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=d0aa5a704bc9f7de input=9596ebe019fe12ba]*/
  {
 -    unsigned char *ascii_data, *bin_data;
 +    unsigned char *ascii_data;
 +    const unsigned char *bin_data;
      int leftbits = 0;
      unsigned char this_ch;
      unsigned int leftchar = 0;
@@@ -786,14 -805,13 +786,14 @@@ Decode hexbin RLE-coded string
  [clinic start generated code]*/
  
  static PyObject *
- binascii_rledecode_hqx_impl(PyModuleDef *module, Py_buffer *data)
- /*[clinic end generated code: output=f7afd89b789946ab input=54cdd49fc014402c]*/
+ binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)
+ /*[clinic end generated code: output=9826619565de1c6c input=54cdd49fc014402c]*/
  {
 -    unsigned char *in_data, *out_data;
 +    const unsigned char *in_data;
 +    unsigned char *out_data;
      unsigned char in_byte, in_repeat;
 -    PyObject *rv;
 -    Py_ssize_t in_len, out_len, out_len_left;
 +    Py_ssize_t in_len;
 +    _PyBytesWriter writer;
  
      in_data = data->buf;
      in_len = data->len;
@@@ -904,10 -919,10 +904,10 @@@ Compute hqx CRC incrementally
  [clinic start generated code]*/
  
  static unsigned int
- binascii_crc_hqx_impl(PyModuleDef *module, Py_buffer *data, unsigned int crc)
- /*[clinic end generated code: output=167c2dac62625717 input=add8c53712ccceda]*/
+ binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)
+ /*[clinic end generated code: output=8ec2a78590d19170 input=add8c53712ccceda]*/
  {
 -    unsigned char *bin_data;
 +    const unsigned char *bin_data;
      Py_ssize_t len;
  
      crc &= 0xffff;
@@@ -1149,10 -1164,10 +1149,10 @@@ This function is also available as "unh
  [clinic start generated code]*/
  
  static PyObject *
- binascii_a2b_hex_impl(PyModuleDef *module, Py_buffer *hexstr)
- /*[clinic end generated code: output=d61da452b5c6d290 input=9e1e7f2f94db24fd]*/
+ binascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr)
+ /*[clinic end generated code: output=0cc1a139af0eeecb input=9e1e7f2f94db24fd]*/
  {
 -    char* argbuf;
 +    const char* argbuf;
      Py_ssize_t arglen;
      PyObject *retval;
      char* retbuf;
@@@ -1342,13 -1356,12 +1342,13 @@@ are both encoded.  When quotetabs is se
  [clinic start generated code]*/
  
  static PyObject *
- binascii_b2a_qp_impl(PyModuleDef *module, Py_buffer *data, int quotetabs,
+ binascii_b2a_qp_impl(PyObject *module, Py_buffer *data, int quotetabs,
                       int istext, int header)
- /*[clinic end generated code: output=a87ca9ccb94e2a9f input=7f2a9aaa008e92b2]*/
+ /*[clinic end generated code: output=e9884472ebb1a94c input=7f2a9aaa008e92b2]*/
  {
      Py_ssize_t in, out;
 -    unsigned char *databuf, *odata;
 +    const unsigned char *databuf;
 +    unsigned char *odata;
      Py_ssize_t datalen = 0, odatalen = 0;
      PyObject *rv;
      unsigned int linelen = 0;
index a7ca79e1bf0856cd66109631aefa370d988337fd,af06c6d9e0f1ddb68cd1ad27fe151a9af26fd97c..52c61c597a877264a24e98ea0b1da18e6f4e5e55
@@@ -1456,4 -1392,4 +1455,4 @@@ exit
  #ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
      #define _CODECS_CODE_PAGE_ENCODE_METHODDEF
  #endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
- /*[clinic end generated code: output=120320fe2ac32085 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=42fed94e2ab765ba input=a9049054013a1b77]*/
++/*[clinic end generated code: output=6e89ff4423c12a9b input=a9049054013a1b77]*/
index 664cba8dfbdade0460804c7baf0b871a264eaea8,a3c371cbaa826b4b499e4a30cdd3e5865a766514..412c6fe8a1b18b0d132a1889b01d377d9a900dd2
@@@ -35,4 -34,4 +35,4 @@@ crypt_crypt(PyObject *module, PyObject 
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=6977cf9917d9a684 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=e0493a9691537690 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=8dfc88264e662df4 input=a9049054013a1b77]*/
index b31da71eb91b385d537fac7d9fa621f471b59afc,49cbceb1efff8e653a4ec86908e6166324d3c3d1..06cf7e6741144cb5537fca6c8b7c8b34d607364b
@@@ -141,4 -138,4 +141,4 @@@ dbmopen(PyObject *module, PyObject *arg
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=97f8b6f542973b71 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=fff12f168cdf8b43 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=99adf966ef0475ff input=a9049054013a1b77]*/
index 23182c8712ff5f87fc8dde28ae4991fb09bc47d9,2d87cfc7608263333dd23d8c8a80de85d3a05ef9..fdd589c07a4e6b1b9fe45c4788d844180a49f2e7
@@@ -254,4 -249,4 +253,4 @@@ dbmopen(PyObject *module, PyObject *arg
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=418849fb5dbe69a5 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=9ac7a89858a9765f input=a9049054013a1b77]*/
++/*[clinic end generated code: output=ed0f5d4e3d79b80c input=a9049054013a1b77]*/
index b78dbcd06cd957f751ddec37470ab3bbb6ced628,f8d38ea1fc91d1780cb742be5b24975393adbcb4..899d5c0e33c98695b0b4ce59dea933d577fe52c3
@@@ -254,4 -245,4 +254,4 @@@ exit
  
      return return_value;
  }
- /*[clinic end generated code: output=804aed7d196ba52e input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=fada06020fd318cc input=a9049054013a1b77]*/
++/*[clinic end generated code: output=25bf57a0845d147a input=a9049054013a1b77]*/
index 68652b0388434f7968fd9db009048133edbd9a4e,a5f644265a9a920ec4ed7342a7abb288ccde3fc3..513cbfdad8fcf09307017dc31b9000381d3b0f8d
@@@ -35,4 -33,4 +35,4 @@@ _opcode_stack_effect(PyObject *module, 
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=5bd7c1c113e6526a input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=984d6de140303d10 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=4d91c6a765097853 input=a9049054013a1b77]*/
index 11299e97e627d0c7d09cead1d45dc6c58433dc3b,bd12d2a0c4b7b064005957c546fa9c75af02ab24..0528615bbe2fa68176141477a7d6bcdf41fa18a8
@@@ -554,4 -545,4 +554,4 @@@ _pickle_loads(PyObject *module, PyObjec
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=5e972f339d197760 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=93657e55d6a748af input=a9049054013a1b77]*/
++/*[clinic end generated code: output=5c5f9149df292ce4 input=a9049054013a1b77]*/
index 448d8afbc10de2490fce48798d8659deafe84163,328171721814b72b499d0251990b6b412fe1fb91..2a8b22037744d6a1248080e444da9def384d6c1c
@@@ -713,4 -690,4 +713,4 @@@ _sre_SRE_Scanner_search(ScannerObject *
  {
      return _sre_SRE_Scanner_search_impl(self);
  }
- /*[clinic end generated code: output=00f7bf869b3283bc input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=a4ce9e5b748ce532 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=af9455cb54b2a907 input=a9049054013a1b77]*/
index 1d9f91d58d9510ee461ceed3eee91cebd76b997e,852e3658b602681d99f2c6daca1a52d9e2c59572..fd184d5f0ff724bf5d0311fbf58bdd248f3195d8
@@@ -1135,4 -1102,4 +1135,4 @@@ exit
  #ifndef _SSL_ENUM_CRLS_METHODDEF
      #define _SSL_ENUM_CRLS_METHODDEF
  #endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */
- /*[clinic end generated code: output=df99659ec790e573 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=6fb10594d8351dc5 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=02444732c19722b3 input=a9049054013a1b77]*/
index 73527fc90128e804f9f2e5531ceb79abe525b81c,77af083c06163143971ff0da5b644a2552e34c5d..edd53800058dab55336ec39ccaf63bcbb13108ea
@@@ -638,4 -621,4 +638,4 @@@ exit
  #ifndef _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
      #define _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
  #endif /* !defined(_TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF) */
- /*[clinic end generated code: output=13be3f8313bba3c7 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=f9057c8bf288633d input=a9049054013a1b77]*/
++/*[clinic end generated code: output=836c578b71d69097 input=a9049054013a1b77]*/
index b93343b079bd2905243ce34e432b8d3453a63dc1,b83b33e4a18efdebe4beab345c5fb62acb64b689..c192e72193f0e2dded181593726ca271c5c1e544
@@@ -29,4 -28,4 +29,4 @@@ _weakref_getweakrefcount(PyObject *modu
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=00e317cda5359ea3 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=d9086c8576d46933 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=e1ad587147323e19 input=a9049054013a1b77]*/
index 2b8deeab2ba1cf4ae2ad15fa717efc867e09e231,ac38d374a22cb1499d52e05ce57f1f877e7e4252..e0c7d6c62dc761010c80afa4d3f5aaf9733e5394
@@@ -889,4 -848,4 +886,4 @@@ _winapi_WriteFile(PyObject *module, PyO
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=d099ee4fbcdd5bc0 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=a4c4b2a9fcb0bea1 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=8032f3371c14749e input=a9049054013a1b77]*/
index ced17aaf884aab1d9bdc7a69d0b0f0a0e8741fe7,0c7061a1d2c3d26fb1a8400f45b730818b8f524a..3b9fcdab0a1a2f843cf103bcab3ddcb37a56015e
@@@ -505,4 -496,4 +505,4 @@@ PyDoc_STRVAR(array_arrayiterator___sets
  
  #define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF    \
      {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
- /*[clinic end generated code: output=0b99c89275eda265 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=305df3f5796039e4 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=b2054fb764c8cc64 input=a9049054013a1b77]*/
index 4baba27cfdde1bd93173fb1f597b49ccf64fccf3,62e313b5bfbe97857390c2f71f6bcbc6da9e58bb..be4b718843abcca46c7a79d13ed547c5414cabc9
@@@ -929,4 -873,4 +928,4 @@@ exit
  
      return return_value;
  }
- /*[clinic end generated code: output=af5b025f0241fee2 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=385fb09fa21a62c0 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=e0ab74c3fa57c39c input=a9049054013a1b77]*/
index e297f1d53e7baff47ca8a5b176e9d239c2e8909c,e20cac24ba6fc708d7200a4c00ead306741408f1..68c34f97509d4ab0ded5001fa346d0c602a9950c
@@@ -103,24 -99,20 +103,24 @@@ PyDoc_STRVAR(binascii_b2a_base64__doc__
  "Base64-code line of data.");
  
  #define BINASCII_B2A_BASE64_METHODDEF    \
 -    {"b2a_base64", (PyCFunction)binascii_b2a_base64, METH_O, binascii_b2a_base64__doc__},
 +    {"b2a_base64", (PyCFunction)binascii_b2a_base64, METH_VARARGS|METH_KEYWORDS, binascii_b2a_base64__doc__},
  
  static PyObject *
- binascii_b2a_base64_impl(PyModuleDef *module, Py_buffer *data, int newline);
 -binascii_b2a_base64_impl(PyObject *module, Py_buffer *data);
++binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline);
  
  static PyObject *
- binascii_b2a_base64(PyModuleDef *module, PyObject *args, PyObject *kwargs)
 -binascii_b2a_base64(PyObject *module, PyObject *arg)
++binascii_b2a_base64(PyObject *module, PyObject *args, PyObject *kwargs)
  {
      PyObject *return_value = NULL;
 +    static char *_keywords[] = {"data", "newline", NULL};
      Py_buffer data = {NULL, NULL};
 +    int newline = 1;
  
 -    if (!PyArg_Parse(arg, "y*:b2a_base64", &data))
 +    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|$i:b2a_base64", _keywords,
 +        &data, &newline)) {
          goto exit;
 -    return_value = binascii_b2a_base64_impl(module, &data);
 +    }
 +    return_value = binascii_b2a_base64_impl(module, &data, newline);
  
  exit:
      /* Cleanup for data */
@@@ -547,4 -516,4 +547,4 @@@ exit
  
      return return_value;
  }
- /*[clinic end generated code: output=7fb420392d78ac4d input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=51173fc9718a5edc input=a9049054013a1b77]*/
++/*[clinic end generated code: output=d91d1058dc0590e1 input=a9049054013a1b77]*/
index 5899348c871ef9b12f02284bed7f7db41276df3d,a255353d4ae31124bf356ccbf585633dc17a6db2..cba035f150f57f272e6561bde93b6346a15276a2
@@@ -881,4 -857,4 +881,4 @@@ cmath_isclose(PyObject *module, PyObjec
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=f166205b4beb1826 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=732194029b7fb1e7 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=0f49dd11b50175bc input=a9049054013a1b77]*/
index 104b4823f9dcc62ff62f36fd13e4e4baa19d4ab0,67660ebdcbf3aea084b1f3ac94b3281d4eff0ddc..84a004bb59686caabafc2de9619daa99987b20a6
@@@ -186,4 -182,4 +186,4 @@@ fcntl_lockf(PyObject *module, PyObject 
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=b08537e9adc04ca2 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=97b1306b864c01c8 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=36cff76a8fb2c9a6 input=a9049054013a1b77]*/
index cd111aa4d64d4c4aeb19c012d4f0ece504cf176b,2c47a4236b3f9c73c787f07dd350e5617d75a217..82dcd53780f9f335796d7ba68b9cd29d4f1729e2
@@@ -84,4 -82,4 +84,4 @@@ grp_getgrall(PyObject *module, PyObjec
  {
      return grp_getgrall_impl(module);
  }
- /*[clinic end generated code: output=a8a097520206ccd6 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=bee09feefc54a2cb input=a9049054013a1b77]*/
++/*[clinic end generated code: output=8b7502970a29e7f1 input=a9049054013a1b77]*/
index 9c8987eb5e75b48669af741d94cf1cba7133b9c0,0bd958ac6eadf2829f0d33fa0e2bfa79c095d915..25dc7bb46204016ff527e40b1472bf2f4530b915
@@@ -93,4 -92,4 +93,4 @@@ _md5_md5(PyObject *module, PyObject *ar
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=d701d041d387b081 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=4cd3cc96e35563d2 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=8f640a98761daffe input=a9049054013a1b77]*/
index 33621d80d9f8404006805a5e6fcabf461c2084ce,be2e5a6d1a1ffc11e9631efd044c327d0964f32e..c550b9ddc7f17f7141368e551a2d55da9d574f0c
@@@ -5480,39 -5313,6 +5476,39 @@@ exit
  
  #endif /* defined(MS_WINDOWS) */
  
- os_fspath_impl(PyModuleDef *module, PyObject *path);
 +PyDoc_STRVAR(os_fspath__doc__,
 +"fspath($module, /, path)\n"
 +"--\n"
 +"\n"
 +"Return the file system path representation of the object.\n"
 +"\n"
 +"If the object is str or bytes, then allow it to pass through as-is. If the\n"
 +"object defines __fspath__(), then return the result of that method. All other\n"
 +"types raise a TypeError.");
 +
 +#define OS_FSPATH_METHODDEF    \
 +    {"fspath", (PyCFunction)os_fspath, METH_VARARGS|METH_KEYWORDS, os_fspath__doc__},
 +
 +static PyObject *
- os_fspath(PyModuleDef *module, PyObject *args, PyObject *kwargs)
++os_fspath_impl(PyObject *module, PyObject *path);
 +
 +static PyObject *
++os_fspath(PyObject *module, PyObject *args, PyObject *kwargs)
 +{
 +    PyObject *return_value = NULL;
 +    static char *_keywords[] = {"path", NULL};
 +    PyObject *path;
 +
 +    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:fspath", _keywords,
 +        &path)) {
 +        goto exit;
 +    }
 +    return_value = os_fspath_impl(module, path);
 +
 +exit:
 +    return return_value;
 +}
 +
  #ifndef OS_TTYNAME_METHODDEF
      #define OS_TTYNAME_METHODDEF
  #endif /* !defined(OS_TTYNAME_METHODDEF) */
  #ifndef OS_SET_HANDLE_INHERITABLE_METHODDEF
      #define OS_SET_HANDLE_INHERITABLE_METHODDEF
  #endif /* !defined(OS_SET_HANDLE_INHERITABLE_METHODDEF) */
- /*[clinic end generated code: output=1b91c3a100e75a4d input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=c27221987f987cf3 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=e91e62d8e8f1b6ac input=a9049054013a1b77]*/
index 6b50464b003aaca35cdfe8978e46fd824bd6119c,cb191a0b776d1a712d6752a84f019ae1da896e2f..f9e0644f264d880953f3fed2a957c890dfc176e9
@@@ -69,4 -68,4 +69,4 @@@ pwd_getpwall(PyObject *module, PyObjec
  #ifndef PWD_GETPWALL_METHODDEF
      #define PWD_GETPWALL_METHODDEF
  #endif /* !defined(PWD_GETPWALL_METHODDEF) */
- /*[clinic end generated code: output=f807c89b44be0fde input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=d0ea1c5c832f0c1a input=a9049054013a1b77]*/
++/*[clinic end generated code: output=fc41d8d88ec206d8 input=a9049054013a1b77]*/
index 0c1f3fc0fc39975f02a58ce5c1b15c67c72f3dc2,c5b5c71c995c1c3f217d111826ff2c835643919f..d9cf73dc6e9b4d6710872ce3cb4d56fd4c50c28f
@@@ -288,4 -281,4 +288,4 @@@ exit
  #ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
      #define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
  #endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
- /*[clinic end generated code: output=71a60d709647fbe3 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=d479cfab607e9dc8 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=9de21f46734b1311 input=a9049054013a1b77]*/
index 6d3fa64334a747a047272d22ba95cf8fb4563bb4,5b8db8079be3f1f182484c053b90da847de3bd83..8030fbde0028f2f9682f61f0fc5e243441bc4315
@@@ -93,4 -92,4 +93,4 @@@ _sha1_sha1(PyObject *module, PyObject *
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=40df3f8955919e72 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=0b6a194fbb0b94f2 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=475c4cc749ab31b1 input=a9049054013a1b77]*/
index c429800118e99f9b15cc1bbded0fc49a952afad8,661569c4fe6081223dbf91a07f414dd9da8c7f0a..483109f936791fe8235425335ebe46d2944354f6
@@@ -122,4 -120,4 +122,4 @@@ _sha256_sha224(PyObject *module, PyObje
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=e85cc4a223371d84 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=5a1fc5480e399f95 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=a41a21c08fcddd70 input=a9049054013a1b77]*/
index 94fb15ca844f13a2aed1001fd9eff972dcca0251,d64c2a413f5ee77828a2fea56a73d3aa2b1ed152..ec5a0c340233797694741c4130988005e6604bba
@@@ -170,4 -168,4 +170,4 @@@ exit
  #ifndef _SHA512_SHA384_METHODDEF
      #define _SHA512_SHA384_METHODDEF
  #endif /* !defined(_SHA512_SHA384_METHODDEF) */
- /*[clinic end generated code: output=845af47cea22e2a1 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=bb87f494df50ffc0 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=e314c0f773abd5d7 input=a9049054013a1b77]*/
index e0aaab67a6c643d3ad9065f6d3f27f66f31e1e3f,c8f4cd5c41bea4f470f1c14d40905c3ee340fa04..f8d5bd942bd4ff607d51fb6bd4ee3d31e4868b77
@@@ -439,4 -429,4 +439,4 @@@ exit
  #ifndef SIGNAL_PTHREAD_KILL_METHODDEF
      #define SIGNAL_PTHREAD_KILL_METHODDEF
  #endif /* !defined(SIGNAL_PTHREAD_KILL_METHODDEF) */
- /*[clinic end generated code: output=4b9519180a091536 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=dafa598412bfb8d2 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=c6990ef0d0ba72b6 input=a9049054013a1b77]*/
index 51bda962c2893fbebc04033c983fb75d9a762b1a,e26acf1863a202d4b23ec50c62a82ae4acdd766e..b2479ff245b825e4b05d6e1fbfddbc7c3b49090c
@@@ -66,4 -65,4 +66,4 @@@ spwd_getspall(PyObject *module, PyObjec
  #ifndef SPWD_GETSPALL_METHODDEF
      #define SPWD_GETSPALL_METHODDEF
  #endif /* !defined(SPWD_GETSPALL_METHODDEF) */
- /*[clinic end generated code: output=2b7a384447e5f1e3 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=510f681b36f54c30 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=07cd8af0afd77fe7 input=a9049054013a1b77]*/
index dcaeef81e6c8edbd1ddea34b90c32449a37e9225,71da0273a70687bd08b8c0499f2bd4c0223a149d..1b2b7fed46f383dcdd782b695ddeab7a89470b36
@@@ -8,36 -8,33 +8,36 @@@ PyDoc_STRVAR(zlib_compress__doc__
  "\n"
  "Returns a bytes object containing compressed data.\n"
  "\n"
 -"  bytes\n"
 +"  data\n"
  "    Binary data to be compressed.\n"
  "  level\n"
 -"    Compression level, in 0-9.");
 +"    Compression level, in 0-9 or -1.");
  
  #define ZLIB_COMPRESS_METHODDEF    \
 -    {"compress", (PyCFunction)zlib_compress, METH_VARARGS, zlib_compress__doc__},
 +    {"compress", (PyCFunction)zlib_compress, METH_VARARGS|METH_KEYWORDS, zlib_compress__doc__},
  
  static PyObject *
- zlib_compress_impl(PyModuleDef *module, Py_buffer *data, int level);
 -zlib_compress_impl(PyObject *module, Py_buffer *bytes, int level);
++zlib_compress_impl(PyObject *module, Py_buffer *data, int level);
  
  static PyObject *
- zlib_compress(PyModuleDef *module, PyObject *args, PyObject *kwargs)
 -zlib_compress(PyObject *module, PyObject *args)
++zlib_compress(PyObject *module, PyObject *args, PyObject *kwargs)
  {
      PyObject *return_value = NULL;
 -    Py_buffer bytes = {NULL, NULL};
 +    static char *_keywords[] = {"", "level", NULL};
 +    Py_buffer data = {NULL, NULL};
      int level = Z_DEFAULT_COMPRESSION;
  
 -    if (!PyArg_ParseTuple(args, "y*|i:compress",
 -        &bytes, &level))
 +    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|i:compress", _keywords,
 +        &data, &level)) {
          goto exit;
 -    return_value = zlib_compress_impl(module, &bytes, level);
 +    }
 +    return_value = zlib_compress_impl(module, &data, level);
  
  exit:
 -    /* Cleanup for bytes */
 -    if (bytes.obj)
 -       PyBuffer_Release(&bytes);
 +    /* Cleanup for data */
 +    if (data.obj) {
 +       PyBuffer_Release(&data);
 +    }
  
      return return_value;
  }
@@@ -460,4 -442,4 +460,4 @@@ exit
  #ifndef ZLIB_COMPRESS_COPY_METHODDEF
      #define ZLIB_COMPRESS_COPY_METHODDEF
  #endif /* !defined(ZLIB_COMPRESS_COPY_METHODDEF) */
- /*[clinic end generated code: output=ba904dec30cc1a1a input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=8545565b1a1822de input=a9049054013a1b77]*/
++/*[clinic end generated code: output=519446af912f4e72 input=a9049054013a1b77]*/
Simple merge
index 4dc7c494657e0ce0f06f77cf22228e98490a6819,3c3f80660c8adc53f99127c721fa6c6e40717cfd..4c0f26e89c1e6af8af977b909cdb034dbb8a43d7
@@@ -3918,12 -3902,11 +3917,12 @@@ A helper function for ismount on Win32
  [clinic start generated code]*/
  
  static PyObject *
- os__getvolumepathname_impl(PyModuleDef *module, PyObject *path)
- /*[clinic end generated code: output=79a0ba729f956dbe input=7eacadc40acbda6b]*/
+ os__getvolumepathname_impl(PyObject *module, PyObject *path)
+ /*[clinic end generated code: output=cbdcbd1059ceef4c input=7eacadc40acbda6b]*/
  {
      PyObject *result;
 -    wchar_t *path_wchar, *mountpath=NULL;
 +    const wchar_t *path_wchar;
 +    wchar_t *mountpath=NULL;
      size_t buflen;
      BOOL ret;
  
@@@ -4297,11 -4280,11 +4296,11 @@@ Execute the command in a subshell
  [clinic start generated code]*/
  
  static long
- os_system_impl(PyModuleDef *module, PyObject *command)
- /*[clinic end generated code: output=800f775e10b7be55 input=86a58554ba6094af]*/
+ os_system_impl(PyObject *module, PyObject *command)
+ /*[clinic end generated code: output=290fc437dd4f33a0 input=86a58554ba6094af]*/
  {
      long result;
 -    char *bytes = PyBytes_AsString(command);
 +    const char *bytes = PyBytes_AsString(command);
      Py_BEGIN_ALLOW_THREADS
      result = system(bytes);
      Py_END_ALLOW_THREADS
@@@ -5053,10 -5035,10 +5052,10 @@@ Execute an executable path with argumen
  [clinic start generated code]*/
  
  static PyObject *
- os_execv_impl(PyModuleDef *module, PyObject *path, PyObject *argv)
- /*[clinic end generated code: output=9221f08143146fff input=96041559925e5229]*/
+ os_execv_impl(PyObject *module, PyObject *path, PyObject *argv)
+ /*[clinic end generated code: output=b21dc34deeb5b004 input=96041559925e5229]*/
  {
 -    char *path_char;
 +    const char *path_char;
      char **argvlist;
      Py_ssize_t argc;
  
@@@ -5174,10 -5155,10 +5172,10 @@@ Execute the program specified by path i
  [clinic start generated code]*/
  
  static PyObject *
- os_spawnv_impl(PyModuleDef *module, int mode, PyObject *path, PyObject *argv)
- /*[clinic end generated code: output=140a7945484c8cc5 input=042c91dfc1e6debc]*/
+ os_spawnv_impl(PyObject *module, int mode, PyObject *path, PyObject *argv)
+ /*[clinic end generated code: output=c427c0ce40f10638 input=042c91dfc1e6debc]*/
  {
 -    char *path_char;
 +    const char *path_char;
      char **argvlist;
      int i;
      Py_ssize_t argc;
@@@ -5251,11 -5232,11 +5249,11 @@@ Execute the program specified by path i
  [clinic start generated code]*/
  
  static PyObject *
- os_spawnve_impl(PyModuleDef *module, int mode, PyObject *path,
-                 PyObject *argv, PyObject *env)
- /*[clinic end generated code: output=e7f5f0703610531f input=02362fd937963f8f]*/
+ os_spawnve_impl(PyObject *module, int mode, PyObject *path, PyObject *argv,
+                 PyObject *env)
+ /*[clinic end generated code: output=ebcfa5f7ba2f4219 input=02362fd937963f8f]*/
  {
 -    char *path_char;
 +    const char *path_char;
      char **argvlist;
      char **envlist;
      PyObject *res = NULL;
@@@ -5781,8 -5762,8 +5779,8 @@@ The affinity is returned as a set of CP
  [clinic start generated code]*/
  
  static PyObject *
- os_sched_getaffinity_impl(PyModuleDef *module, pid_t pid)
- /*[clinic end generated code: output=b431a8f310e369e7 input=983ce7cb4a565980]*/
+ os_sched_getaffinity_impl(PyObject *module, pid_t pid)
 -/*[clinic end generated code: output=f726f2c193c17a4f input=eaf161936874b8a1]*/
++/*[clinic end generated code: output=f726f2c193c17a4f input=983ce7cb4a565980]*/
  {
      int cpu, ncpus, count;
      size_t setsize;
@@@ -9031,10 -9010,10 +9027,10 @@@ Change or add an environment variable
  [clinic start generated code]*/
  
  static PyObject *
- os_putenv_impl(PyModuleDef *module, PyObject *name, PyObject *value)
- /*[clinic end generated code: output=a2438cf95e5a0c1c input=ba586581c2e6105f]*/
+ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
+ /*[clinic end generated code: output=d29a567d6b2327d2 input=ba586581c2e6105f]*/
  {
 -    wchar_t *env;
 +    const wchar_t *env;
  
      PyObject *unicode = PyUnicode_FromFormat("%U=%U", name, value);
      if (unicode == NULL) {
@@@ -11228,8 -11200,8 +11224,8 @@@ use.  The number of usable CPUs can be 
  [clinic start generated code]*/
  
  static PyObject *
- os_cpu_count_impl(PyModuleDef *module)
- /*[clinic end generated code: output=c59ee7f6bce832b8 input=e7c8f4ba6dbbadd3]*/
+ os_cpu_count_impl(PyObject *module)
 -/*[clinic end generated code: output=5fc29463c3936a9c input=d55e2f8f3823a628]*/
++/*[clinic end generated code: output=5fc29463c3936a9c input=e7c8f4ba6dbbadd3]*/
  {
      int ncpu = 0;
  #ifdef MS_WINDOWS
      return NULL;
  }
  
- os_fspath_impl(PyModuleDef *module, PyObject *path)
- /*[clinic end generated code: output=51ef0c2772c1932a input=e357165f7b22490f]*/
 +/*
 +    Return the file system path representation of the object.
 +
 +    If the object is str or bytes, then allow it to pass through with
 +    an incremented refcount. If the object defines __fspath__(), then
 +    return the result of that method. All other types raise a TypeError.
 +*/
 +PyObject *
 +PyOS_FSPath(PyObject *path)
 +{
 +    _Py_IDENTIFIER(__fspath__);
 +    PyObject *func = NULL;
 +    PyObject *path_repr = NULL;
 +
 +    if (PyUnicode_Check(path) || PyBytes_Check(path)) {
 +        Py_INCREF(path);
 +        return path;
 +    }
 +
 +    func = _PyObject_LookupSpecial(path, &PyId___fspath__);
 +    if (NULL == func) {
 +        return PyErr_Format(PyExc_TypeError,
 +                            "expected str, bytes or os.PathLike object, "
 +                            "not %.200s",
 +                            Py_TYPE(path)->tp_name);
 +    }
 +
 +    path_repr = PyObject_CallFunctionObjArgs(func, NULL);
 +    Py_DECREF(func);
 +    if (!(PyUnicode_Check(path_repr) || PyBytes_Check(path_repr))) {
 +        PyErr_Format(PyExc_TypeError,
 +                     "expected %.200s.__fspath__() to return str or bytes, "
 +                     "not %.200s", Py_TYPE(path)->tp_name,
 +                     Py_TYPE(path_repr)->tp_name);
 +        Py_DECREF(path_repr);
 +        return NULL;
 +    }
 +
 +    return path_repr;
 +}
 +
 +/*[clinic input]
 +os.fspath
 +
 +    path: object
 +
 +Return the file system path representation of the object.
 +
 +If the object is str or bytes, then allow it to pass through as-is. If the
 +object defines __fspath__(), then return the result of that method. All other
 +types raise a TypeError.
 +[clinic start generated code]*/
 +
 +static PyObject *
++os_fspath_impl(PyObject *module, PyObject *path)
++/*[clinic end generated code: output=c3c3b78ecff2914f input=e357165f7b22490f]*/
 +{
 +    return PyOS_FSPath(path);
 +}
  
  #include "clinic/posixmodule.c.h"
  
Simple merge
Simple merge
Simple merge
index 3a459a58f45f5ff92c3f0df59044e9176b6c47c1,ab5b65d264db933a9d066a9554d7e0bc21326bdb..28f7f151ac7ef31432f21f97ffa2b66f6eb74089
@@@ -151,8 -151,8 +151,8 @@@ Returns a bytes object containing compr
  [clinic start generated code]*/
  
  static PyObject *
- zlib_compress_impl(PyModuleDef *module, Py_buffer *data, int level)
- /*[clinic end generated code: output=1b97589132b203b4 input=638d54b6315dbed3]*/
 -zlib_compress_impl(PyObject *module, Py_buffer *bytes, int level)
 -/*[clinic end generated code: output=ae64c2c3076321a0 input=be3abe9934bda4b3]*/
++zlib_compress_impl(PyObject *module, Py_buffer *data, int level)
++/*[clinic end generated code: output=d80906d73f6294c8 input=638d54b6315dbed3]*/
  {
      PyObject *ReturnVal = NULL;
      Byte *input, *output = NULL;
index 24e18cd5fbf71c4e018453f83a0884ce239af20d,e7a72c47f6db739cf24e500f740c268c87b1af62..a5b4ccf37928508bf161aaa9b0addc9e70391653
@@@ -570,4 -550,4 +569,4 @@@ exit
  #ifndef MSVCRT_SET_ERROR_MODE_METHODDEF
      #define MSVCRT_SET_ERROR_MODE_METHODDEF
  #endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */
- /*[clinic end generated code: output=636de3460aecbca7 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=2a794c520d6ae887 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=ece8106c0592ff1f input=a9049054013a1b77]*/
index f3a4cd1f69af8fdd0ee768c00088ded824a735d6,f6ae2c0b92171f565347d213e190387aad30e41e..264dcf0c61c789ac5288a5becfe2e6d11b0b614a
@@@ -1086,4 -1056,4 +1086,4 @@@ winreg_QueryReflectionKey(PyObject *mod
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=ca128bfa212d8d1f input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=7b8940a23f605ddc input=a9049054013a1b77]*/
++/*[clinic end generated code: output=c35ce71f825424d1 input=a9049054013a1b77]*/
index e649363fe2913ae2fae08f0731c91943a80de8af,b00b442362db474c01a95ac706a558aa4d707e5c..cdb20454a5505643c63ab09a8db5958bca87495a
@@@ -100,4 -97,4 +100,4 @@@ winsound_MessageBeep(PyObject *module, 
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=a5f53e42d4396bb4 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=c0b290daf2330dc9 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=1044b2adf3c67014 input=a9049054013a1b77]*/
Simple merge
diff --cc PC/winreg.c
index 293825dbb46881b99be760bb63eade18c85e8ec5,f08d9a47ffab154dda060aaa1a37c514e011fdc4..9524838c087f75d6449646d48c10e4ea9063b75e
@@@ -1655,9 -1629,9 +1655,9 @@@ the configuration registry to help the 
  [clinic start generated code]*/
  
  static PyObject *
- winreg_SetValueEx_impl(PyModuleDef *module, HKEY key, Py_UNICODE *value_name,
+ winreg_SetValueEx_impl(PyObject *module, HKEY key, Py_UNICODE *value_name,
                         PyObject *reserved, DWORD type, PyObject *value)
- /*[clinic end generated code: output=ea092a935c361582 input=900a9e3990bfb196]*/
 -/*[clinic end generated code: output=c88c8426b6c00ec7 input=f1b16cbcc3ed4101]*/
++/*[clinic end generated code: output=c88c8426b6c00ec7 input=900a9e3990bfb196]*/
  {
      BYTE *data;
      DWORD len;
Simple merge
index 6df3ef583975558d3bf3a635a9c0fbff8059a53c,4e2b1f1fe8105edf9d1e145b3af63dcaed24645c..529274fd5ceb5c5cb523b42a7f293cc02f28c09d
@@@ -674,4 -659,4 +673,4 @@@ builtin_issubclass(PyObject *module, Py
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=940f25126caf8166 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=9031270b64c794b8 input=a9049054013a1b77]*/
++/*[clinic end generated code: output=6ab37e6c6d2e7b19 input=a9049054013a1b77]*/
index 9b9f812cedb79dc854587d56549c71edab1f8bba,05d79ac41b4e540e618d760fa25cc07e31dcb0e6..b3460b061d6e694308c00000d20cf4c9525938b2
@@@ -361,4 -352,4 +361,4 @@@ exit
  #ifndef _IMP_EXEC_DYNAMIC_METHODDEF
      #define _IMP_EXEC_DYNAMIC_METHODDEF
  #endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
- /*[clinic end generated code: output=22a7225925755674 input=a9049054013a1b77]*/
 -/*[clinic end generated code: output=90ad6e5833e6170d input=a9049054013a1b77]*/
++/*[clinic end generated code: output=d24d7f73702a907f input=a9049054013a1b77]*/
diff --cc Python/import.c
Simple merge
Simple merge