mirror of https://github.com/python/cpython
gh-106320: Remove more private _PyUnicode C API functions (#106382)
Remove more private _PyUnicode C API functions: move them to the internal C API (pycore_unicodeobject.h). No longer export most pycore_unicodeobject.h functions.
This commit is contained in:
parent
b24479dcba
commit
506cfdf141
|
@ -394,11 +394,6 @@ static inline int PyUnicode_READY(PyObject* Py_UNUSED(op))
|
||||||
}
|
}
|
||||||
#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op))
|
#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op))
|
||||||
|
|
||||||
/* Get a copy of a Unicode string. */
|
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
|
|
||||||
PyObject *unicode
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Copy character from one unicode object into another, this function performs
|
/* Copy character from one unicode object into another, this function performs
|
||||||
character conversion when necessary and falls back to memcpy() if possible.
|
character conversion when necessary and falls back to memcpy() if possible.
|
||||||
|
|
||||||
|
@ -425,17 +420,6 @@ PyAPI_FUNC(Py_ssize_t) PyUnicode_CopyCharacters(
|
||||||
Py_ssize_t how_many
|
Py_ssize_t how_many
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so
|
|
||||||
may crash if parameters are invalid (e.g. if the output string
|
|
||||||
is too short). */
|
|
||||||
PyAPI_FUNC(void) _PyUnicode_FastCopyCharacters(
|
|
||||||
PyObject *to,
|
|
||||||
Py_ssize_t to_start,
|
|
||||||
PyObject *from,
|
|
||||||
Py_ssize_t from_start,
|
|
||||||
Py_ssize_t how_many
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Fill a string with a character: write fill_char into
|
/* Fill a string with a character: write fill_char into
|
||||||
unicode[start:start+length].
|
unicode[start:start+length].
|
||||||
|
|
||||||
|
@ -451,15 +435,6 @@ PyAPI_FUNC(Py_ssize_t) PyUnicode_Fill(
|
||||||
Py_UCS4 fill_char
|
Py_UCS4 fill_char
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
|
|
||||||
if parameters are invalid (e.g. if length is longer than the string). */
|
|
||||||
PyAPI_FUNC(void) _PyUnicode_FastFill(
|
|
||||||
PyObject *unicode,
|
|
||||||
Py_ssize_t start,
|
|
||||||
Py_ssize_t length,
|
|
||||||
Py_UCS4 fill_char
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.
|
/* Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.
|
||||||
Scan the string to find the maximum character. */
|
Scan the string to find the maximum character. */
|
||||||
PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
|
PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
|
||||||
|
@ -467,19 +442,6 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromKindAndData(
|
||||||
const void *buffer,
|
const void *buffer,
|
||||||
Py_ssize_t size);
|
Py_ssize_t size);
|
||||||
|
|
||||||
/* Create a new string from a buffer of ASCII characters.
|
|
||||||
WARNING: Don't check if the string contains any non-ASCII character. */
|
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_FromASCII(
|
|
||||||
const char *buffer,
|
|
||||||
Py_ssize_t size);
|
|
||||||
|
|
||||||
/* Compute the maximum character of the substring unicode[start:end].
|
|
||||||
Return 127 for an empty string. */
|
|
||||||
PyAPI_FUNC(Py_UCS4) _PyUnicode_FindMaxChar (
|
|
||||||
PyObject *unicode,
|
|
||||||
Py_ssize_t start,
|
|
||||||
Py_ssize_t end);
|
|
||||||
|
|
||||||
/* --- Manage the default encoding ---------------------------------------- */
|
/* --- Manage the default encoding ---------------------------------------- */
|
||||||
|
|
||||||
/* Returns a pointer to the default encoding (UTF-8) of the
|
/* Returns a pointer to the default encoding (UTF-8) of the
|
||||||
|
@ -618,37 +580,6 @@ PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
|
||||||
PyObject *unicode /* Unicode object */
|
PyObject *unicode /* Unicode object */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* --- Methods & Slots ---------------------------------------------------- */
|
|
||||||
|
|
||||||
PyAPI_FUNC(PyObject *) _PyUnicode_JoinArray(
|
|
||||||
PyObject *separator,
|
|
||||||
PyObject *const *items,
|
|
||||||
Py_ssize_t seqlen
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Test whether a unicode is equal to ASCII identifier. Return 1 if true,
|
|
||||||
0 otherwise. The right argument must be ASCII identifier.
|
|
||||||
Any error occurs inside will be cleared before return. */
|
|
||||||
PyAPI_FUNC(int) _PyUnicode_EqualToASCIIId(
|
|
||||||
PyObject *left, /* Left string */
|
|
||||||
_Py_Identifier *right /* Right identifier */
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Test whether a unicode is equal to ASCII string. Return 1 if true,
|
|
||||||
0 otherwise. The right argument must be ASCII-encoded string.
|
|
||||||
Any error occurs inside will be cleared before return. */
|
|
||||||
PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
|
|
||||||
PyObject *left,
|
|
||||||
const char *right /* ASCII-encoded string */
|
|
||||||
);
|
|
||||||
|
|
||||||
/* Externally visible for str.strip(unicode) */
|
|
||||||
PyAPI_FUNC(PyObject *) _PyUnicode_XStrip(
|
|
||||||
PyObject *self,
|
|
||||||
int striptype,
|
|
||||||
PyObject *sepobj
|
|
||||||
);
|
|
||||||
|
|
||||||
/* === Characters Type APIs =============================================== */
|
/* === Characters Type APIs =============================================== */
|
||||||
|
|
||||||
/* These should not be used directly. Use the Py_UNICODE_IS* and
|
/* These should not be used directly. Use the Py_UNICODE_IS* and
|
||||||
|
|
|
@ -14,6 +14,44 @@ extern "C" {
|
||||||
void _PyUnicode_ExactDealloc(PyObject *op);
|
void _PyUnicode_ExactDealloc(PyObject *op);
|
||||||
Py_ssize_t _PyUnicode_InternedSize(void);
|
Py_ssize_t _PyUnicode_InternedSize(void);
|
||||||
|
|
||||||
|
/* Get a copy of a Unicode string. */
|
||||||
|
PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
|
||||||
|
PyObject *unicode
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
|
||||||
|
if parameters are invalid (e.g. if length is longer than the string). */
|
||||||
|
extern void _PyUnicode_FastFill(
|
||||||
|
PyObject *unicode,
|
||||||
|
Py_ssize_t start,
|
||||||
|
Py_ssize_t length,
|
||||||
|
Py_UCS4 fill_char
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so
|
||||||
|
may crash if parameters are invalid (e.g. if the output string
|
||||||
|
is too short). */
|
||||||
|
extern void _PyUnicode_FastCopyCharacters(
|
||||||
|
PyObject *to,
|
||||||
|
Py_ssize_t to_start,
|
||||||
|
PyObject *from,
|
||||||
|
Py_ssize_t from_start,
|
||||||
|
Py_ssize_t how_many
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Create a new string from a buffer of ASCII characters.
|
||||||
|
WARNING: Don't check if the string contains any non-ASCII character. */
|
||||||
|
extern PyObject* _PyUnicode_FromASCII(
|
||||||
|
const char *buffer,
|
||||||
|
Py_ssize_t size);
|
||||||
|
|
||||||
|
/* Compute the maximum character of the substring unicode[start:end].
|
||||||
|
Return 127 for an empty string. */
|
||||||
|
extern Py_UCS4 _PyUnicode_FindMaxChar (
|
||||||
|
PyObject *unicode,
|
||||||
|
Py_ssize_t start,
|
||||||
|
Py_ssize_t end);
|
||||||
|
|
||||||
/* --- _PyUnicodeWriter API ----------------------------------------------- */
|
/* --- _PyUnicodeWriter API ----------------------------------------------- */
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -141,10 +179,40 @@ PyAPI_FUNC(int) _PyUnicode_FormatAdvancedWriter(
|
||||||
|
|
||||||
/* --- Methods & Slots ---------------------------------------------------- */
|
/* --- Methods & Slots ---------------------------------------------------- */
|
||||||
|
|
||||||
|
extern PyObject* _PyUnicode_JoinArray(
|
||||||
|
PyObject *separator,
|
||||||
|
PyObject *const *items,
|
||||||
|
Py_ssize_t seqlen
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Test whether a unicode is equal to ASCII identifier. Return 1 if true,
|
||||||
|
0 otherwise. The right argument must be ASCII identifier.
|
||||||
|
Any error occurs inside will be cleared before return. */
|
||||||
|
extern int _PyUnicode_EqualToASCIIId(
|
||||||
|
PyObject *left, /* Left string */
|
||||||
|
_Py_Identifier *right /* Right identifier */
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Test whether a unicode is equal to ASCII string. Return 1 if true,
|
||||||
|
0 otherwise. The right argument must be ASCII-encoded string.
|
||||||
|
Any error occurs inside will be cleared before return. */
|
||||||
|
PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
|
||||||
|
PyObject *left,
|
||||||
|
const char *right /* ASCII-encoded string */
|
||||||
|
);
|
||||||
|
|
||||||
|
/* Externally visible for str.strip(unicode) */
|
||||||
|
extern PyObject* _PyUnicode_XStrip(
|
||||||
|
PyObject *self,
|
||||||
|
int striptype,
|
||||||
|
PyObject *sepobj
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/* Using explicit passed-in values, insert the thousands grouping
|
/* Using explicit passed-in values, insert the thousands grouping
|
||||||
into the string pointed to by buffer. For the argument descriptions,
|
into the string pointed to by buffer. For the argument descriptions,
|
||||||
see Objects/stringlib/localeutil.h */
|
see Objects/stringlib/localeutil.h */
|
||||||
PyAPI_FUNC(Py_ssize_t) _PyUnicode_InsertThousandsGrouping(
|
extern Py_ssize_t _PyUnicode_InsertThousandsGrouping(
|
||||||
_PyUnicodeWriter *writer,
|
_PyUnicodeWriter *writer,
|
||||||
Py_ssize_t n_buffer,
|
Py_ssize_t n_buffer,
|
||||||
PyObject *digits,
|
PyObject *digits,
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
#include "pycore_ast.h" // _PyAST_GetDocString()
|
#include "pycore_ast.h" // _PyAST_GetDocString()
|
||||||
|
#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString()
|
||||||
|
|
||||||
#define UNDEFINED_FUTURE_FEATURE "future feature %.100s is not defined"
|
#define UNDEFINED_FUTURE_FEATURE "future feature %.100s is not defined"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue