Improve Python tree-shaking

This commit is contained in:
Justine Tunney 2021-09-06 19:24:10 -07:00
parent 5bb2275788
commit 4f41f2184d
169 changed files with 4182 additions and 2411 deletions

View file

@ -24,6 +24,8 @@
/* clang-format off */
PYTHON_PROVIDE("_asyncio");
PYTHON_PROVIDE("_asyncio.Future");
PYTHON_PROVIDE("_asyncio.Task");
/*[clinic input]
module _asyncio

View file

@ -15,6 +15,12 @@
/* clang-format off */
PYTHON_PROVIDE("_bisect");
PYTHON_PROVIDE("_bisect.bisect");
PYTHON_PROVIDE("_bisect.bisect_left");
PYTHON_PROVIDE("_bisect.bisect_right");
PYTHON_PROVIDE("_bisect.insort");
PYTHON_PROVIDE("_bisect.insort_left");
PYTHON_PROVIDE("_bisect.insort_right");
/* Bisection algorithms. Drop in replacement for bisect.py

View file

@ -1,10 +1,26 @@
/* clang-format off */
/* _bz2 - Low-level Python interface to libbzip2. */
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
vi: set net ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi
Python 3
https://docs.python.org/3/license.html │
*/
#define PY_SSIZE_T_CLEAN
#include "third_party/python/Include/Python.h"
#include "third_party/bzip2/bzlib.h"
#include "third_party/python/Include/abstract.h"
#include "third_party/python/Include/bytesobject.h"
#include "third_party/python/Include/ceval.h"
#include "third_party/python/Include/modsupport.h"
#include "third_party/python/Include/object.h"
#include "third_party/python/Include/pyerrors.h"
#include "third_party/python/Include/pymacro.h"
#include "third_party/python/Include/pymem.h"
#include "third_party/python/Include/structmember.h"
#include "third_party/python/Include/yoink.h"
/* clang-format off */
PYTHON_PROVIDE("_bz2");
PYTHON_PROVIDE("_bz2.BZ2Compressor");
PYTHON_PROVIDE("_bz2.BZ2Decompressor");
#ifdef WITH_THREAD
#include "third_party/python/Include/pythread.h"
@ -17,8 +33,7 @@
#define BZ2_bzDecompress bzDecompress
#define BZ2_bzDecompressInit bzDecompressInit
#define BZ2_bzDecompressEnd bzDecompressEnd
#endif /* ! BZ_CONFIG_ERROR */
#endif /* !BZ_CONFIG_ERROR */
#ifdef WITH_THREAD
#define ACQUIRE_LOCK(obj) do { \
@ -33,7 +48,6 @@
#define RELEASE_LOCK(obj)
#endif
typedef struct {
PyObject_HEAD
bz_stream bzs;
@ -76,7 +90,6 @@ catch_bz2_error(int bzerror)
case BZ_FINISH_OK:
case BZ_STREAM_END:
return 0;
#ifdef BZ_CONFIG_ERROR
case BZ_CONFIG_ERROR:
PyErr_SetString(PyExc_SystemError,

View file

@ -18,6 +18,47 @@
/* clang-format off */
PYTHON_PROVIDE("_codecs");
PYTHON_PROVIDE("_codecs._forget_codec");
PYTHON_PROVIDE("_codecs.ascii_decode");
PYTHON_PROVIDE("_codecs.ascii_encode");
PYTHON_PROVIDE("_codecs.charmap_build");
PYTHON_PROVIDE("_codecs.charmap_decode");
PYTHON_PROVIDE("_codecs.charmap_encode");
PYTHON_PROVIDE("_codecs.decode");
PYTHON_PROVIDE("_codecs.encode");
PYTHON_PROVIDE("_codecs.escape_decode");
PYTHON_PROVIDE("_codecs.escape_encode");
PYTHON_PROVIDE("_codecs.latin_1_decode");
PYTHON_PROVIDE("_codecs.latin_1_encode");
PYTHON_PROVIDE("_codecs.lookup");
PYTHON_PROVIDE("_codecs.lookup_error");
PYTHON_PROVIDE("_codecs.raw_unicode_escape_decode");
PYTHON_PROVIDE("_codecs.raw_unicode_escape_encode");
PYTHON_PROVIDE("_codecs.readbuffer_encode");
PYTHON_PROVIDE("_codecs.register");
PYTHON_PROVIDE("_codecs.register_error");
PYTHON_PROVIDE("_codecs.unicode_escape_decode");
PYTHON_PROVIDE("_codecs.unicode_escape_encode");
PYTHON_PROVIDE("_codecs.unicode_internal_decode");
PYTHON_PROVIDE("_codecs.unicode_internal_encode");
PYTHON_PROVIDE("_codecs.utf_16_be_decode");
PYTHON_PROVIDE("_codecs.utf_16_be_encode");
PYTHON_PROVIDE("_codecs.utf_16_decode");
PYTHON_PROVIDE("_codecs.utf_16_encode");
PYTHON_PROVIDE("_codecs.utf_16_ex_decode");
PYTHON_PROVIDE("_codecs.utf_16_le_decode");
PYTHON_PROVIDE("_codecs.utf_16_le_encode");
PYTHON_PROVIDE("_codecs.utf_32_be_decode");
PYTHON_PROVIDE("_codecs.utf_32_be_encode");
PYTHON_PROVIDE("_codecs.utf_32_decode");
PYTHON_PROVIDE("_codecs.utf_32_encode");
PYTHON_PROVIDE("_codecs.utf_32_ex_decode");
PYTHON_PROVIDE("_codecs.utf_32_le_decode");
PYTHON_PROVIDE("_codecs.utf_32_le_encode");
PYTHON_PROVIDE("_codecs.utf_7_decode");
PYTHON_PROVIDE("_codecs.utf_7_encode");
PYTHON_PROVIDE("_codecs.utf_8_decode");
PYTHON_PROVIDE("_codecs.utf_8_encode");
/* ------------------------------------------------------------------------

View file

@ -17,6 +17,12 @@
/* clang-format off */
PYTHON_PROVIDE("_collections");
PYTHON_PROVIDE("_collections.OrderedDict");
PYTHON_PROVIDE("_collections._count_elements");
PYTHON_PROVIDE("_collections._deque_iterator");
PYTHON_PROVIDE("_collections._deque_reverse_iterator");
PYTHON_PROVIDE("_collections.defaultdict");
PYTHON_PROVIDE("_collections.deque");
/* collections module implementation of a deque() datatype
Written and maintained by Raymond D. Hettinger <python@rcn.com>

View file

@ -11,6 +11,7 @@
/* clang-format off */
PYTHON_PROVIDE("_crypt");
PYTHON_PROVIDE("_crypt.crypt");
/* cryptmodule.c - by Steve Majewski
*/

View file

@ -1,3 +1,9 @@
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
vi: set net ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi
Python 3
https://docs.python.org/3/license.html │
*/
#include "third_party/python/Include/abstract.h"
#include "third_party/python/Include/descrobject.h"
#include "third_party/python/Include/dictobject.h"
@ -14,6 +20,26 @@
/* clang-format off */
PYTHON_PROVIDE("_csv");
PYTHON_PROVIDE("_csv.Dialect");
PYTHON_PROVIDE("_csv.Error");
PYTHON_PROVIDE("_csv.QUOTE_ALL");
PYTHON_PROVIDE("_csv.QUOTE_MINIMAL");
PYTHON_PROVIDE("_csv.QUOTE_NONE");
PYTHON_PROVIDE("_csv.QUOTE_NONNUMERIC");
PYTHON_PROVIDE("_csv.__doc__");
PYTHON_PROVIDE("_csv.__loader__");
PYTHON_PROVIDE("_csv.__name__");
PYTHON_PROVIDE("_csv.__package__");
PYTHON_PROVIDE("_csv.__spec__");
PYTHON_PROVIDE("_csv.__version__");
PYTHON_PROVIDE("_csv._dialects");
PYTHON_PROVIDE("_csv.field_size_limit");
PYTHON_PROVIDE("_csv.get_dialect");
PYTHON_PROVIDE("_csv.list_dialects");
PYTHON_PROVIDE("_csv.reader");
PYTHON_PROVIDE("_csv.register_dialect");
PYTHON_PROVIDE("_csv.unregister_dialect");
PYTHON_PROVIDE("_csv.writer");
/*

View file

@ -8,6 +8,12 @@
/* clang-format off */
PYTHON_PROVIDE("_curses_panel");
PYTHON_PROVIDE("_curses_panel.bottom_panel");
PYTHON_PROVIDE("_curses_panel.error");
PYTHON_PROVIDE("_curses_panel.new_panel");
PYTHON_PROVIDE("_curses_panel.top_panel");
PYTHON_PROVIDE("_curses_panel.update_panels");
PYTHON_PROVIDE("_curses_panel.version");
/*
* Interface to the ncurses panel library

View file

@ -29,6 +29,20 @@
/* clang-format off */
PYTHON_PROVIDE("_datetime");
PYTHON_PROVIDE("_datetime.MAXYEAR");
PYTHON_PROVIDE("_datetime.MINYEAR");
PYTHON_PROVIDE("_datetime.__doc__");
PYTHON_PROVIDE("_datetime.__loader__");
PYTHON_PROVIDE("_datetime.__name__");
PYTHON_PROVIDE("_datetime.__package__");
PYTHON_PROVIDE("_datetime.__spec__");
PYTHON_PROVIDE("_datetime.date");
PYTHON_PROVIDE("_datetime.datetime");
PYTHON_PROVIDE("_datetime.datetime_CAPI");
PYTHON_PROVIDE("_datetime.time");
PYTHON_PROVIDE("_datetime.timedelta");
PYTHON_PROVIDE("_datetime.timezone");
PYTHON_PROVIDE("_datetime.tzinfo");
/* C implementation for the date/time type documented at
* http://www.zope.org/Members/fdrake/DateTimeWiki/FrontPage

View file

@ -51,6 +51,49 @@
/* clang-format off */
PYTHON_PROVIDE("_decimal");
PYTHON_PROVIDE("_decimal.BasicContext");
PYTHON_PROVIDE("_decimal.Clamped");
PYTHON_PROVIDE("_decimal.Context");
PYTHON_PROVIDE("_decimal.ConversionSyntax");
PYTHON_PROVIDE("_decimal.Decimal");
PYTHON_PROVIDE("_decimal.DecimalException");
PYTHON_PROVIDE("_decimal.DecimalTuple");
PYTHON_PROVIDE("_decimal.DefaultContext");
PYTHON_PROVIDE("_decimal.DivisionByZero");
PYTHON_PROVIDE("_decimal.DivisionImpossible");
PYTHON_PROVIDE("_decimal.DivisionUndefined");
PYTHON_PROVIDE("_decimal.ExtendedContext");
PYTHON_PROVIDE("_decimal.FloatOperation");
PYTHON_PROVIDE("_decimal.HAVE_THREADS");
PYTHON_PROVIDE("_decimal.Inexact");
PYTHON_PROVIDE("_decimal.InvalidContext");
PYTHON_PROVIDE("_decimal.InvalidOperation");
PYTHON_PROVIDE("_decimal.MAX_EMAX");
PYTHON_PROVIDE("_decimal.MAX_PREC");
PYTHON_PROVIDE("_decimal.MIN_EMIN");
PYTHON_PROVIDE("_decimal.MIN_ETINY");
PYTHON_PROVIDE("_decimal.Overflow");
PYTHON_PROVIDE("_decimal.ROUND_05UP");
PYTHON_PROVIDE("_decimal.ROUND_CEILING");
PYTHON_PROVIDE("_decimal.ROUND_DOWN");
PYTHON_PROVIDE("_decimal.ROUND_FLOOR");
PYTHON_PROVIDE("_decimal.ROUND_HALF_DOWN");
PYTHON_PROVIDE("_decimal.ROUND_HALF_EVEN");
PYTHON_PROVIDE("_decimal.ROUND_HALF_UP");
PYTHON_PROVIDE("_decimal.ROUND_UP");
PYTHON_PROVIDE("_decimal.Rounded");
PYTHON_PROVIDE("_decimal.Subnormal");
PYTHON_PROVIDE("_decimal.Underflow");
PYTHON_PROVIDE("_decimal.__doc__");
PYTHON_PROVIDE("_decimal.__libmpdec_version__");
PYTHON_PROVIDE("_decimal.__loader__");
PYTHON_PROVIDE("_decimal.__name__");
PYTHON_PROVIDE("_decimal.__package__");
PYTHON_PROVIDE("_decimal.__spec__");
PYTHON_PROVIDE("_decimal.__version__");
PYTHON_PROVIDE("_decimal.getcontext");
PYTHON_PROVIDE("_decimal.localcontext");
PYTHON_PROVIDE("_decimal.setcontext");
asm(".ident\t\"\\n\
libmpdec (BSD-2)\\n\
@ -5948,3 +5991,8 @@ error:
return NULL; /* GCOV_NOT_REACHED */
}
_Section(".rodata.pytab") struct _inittab _PyImport_Inittab__decimal = {
"_decimal",
PyInit__decimal,
};

View file

@ -26,6 +26,11 @@
/* clang-format off */
PYTHON_PROVIDE("_elementtree");
PYTHON_PROVIDE("_elementtree.Element");
PYTHON_PROVIDE("_elementtree.ParseError");
PYTHON_PROVIDE("_elementtree.SubElement");
PYTHON_PROVIDE("_elementtree.TreeBuilder");
PYTHON_PROVIDE("_elementtree.XMLParser");
/*--------------------------------------------------------------------
* Licensed to PSF under a Contributor Agreement.

View file

@ -21,6 +21,10 @@
/* clang-format off */
PYTHON_PROVIDE("_functools");
PYTHON_PROVIDE("_functools._lru_cache_wrapper");
PYTHON_PROVIDE("_functools.cmp_to_key");
PYTHON_PROVIDE("_functools.partial");
PYTHON_PROVIDE("_functools.reduce");
/* _functools module written and maintained
by Hye-Shik Chang <perky@FreeBSD.org>

View file

@ -1,30 +1,33 @@
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
vi: set net ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi
Python 3
https://docs.python.org/3/license.html │
*/
#define PY_SSIZE_T_CLEAN
#include "third_party/mbedtls/md.h"
#include "third_party/python/Include/Python.h"
#include "third_party/python/Include/hashlib.h"
#include "third_party/python/Include/pystrhex.h"
#include "third_party/python/Include/structmember.h"
#include "third_party/python/Include/yoink.h"
#include "third_party/python/Modules/hashlib.h"
/* clang-format off */
PYTHON_PROVIDE("_hashlib");
/* Module that wraps all OpenSSL hash algorithms */
/*
* Copyright (C) 2005-2010 Gregory P. Smith (greg@krypto.org)
* Licensed to PSF under a Contributor Agreement.
*
* Derived from a skeleton of shamodule.c containing work performed by:
*
* Andrew Kuchling (amk@amk.ca)
* Greg Stein (gstein@lyra.org)
*
*/
/* EVP is the preferred interface to hashing in OpenSSL */
#include <openssl/evp.h>
/* We use the object interface to discover what hashes OpenSSL supports. */
#include <openssl/objects.h>
#include "openssl/err.h"
PYTHON_PROVIDE("_hashlib.HASH");
PYTHON_PROVIDE("_hashlib.__doc__");
PYTHON_PROVIDE("_hashlib.__loader__");
PYTHON_PROVIDE("_hashlib.__name__");
PYTHON_PROVIDE("_hashlib.__package__");
PYTHON_PROVIDE("_hashlib.__spec__");
PYTHON_PROVIDE("_hashlib.new");
PYTHON_PROVIDE("_hashlib.openssl_md5");
PYTHON_PROVIDE("_hashlib.openssl_md_meth_names");
PYTHON_PROVIDE("_hashlib.openssl_sha1");
PYTHON_PROVIDE("_hashlib.openssl_sha224");
PYTHON_PROVIDE("_hashlib.openssl_sha256");
PYTHON_PROVIDE("_hashlib.openssl_sha384");
PYTHON_PROVIDE("_hashlib.openssl_sha512");
#include "third_party/python/Modules/clinic/_hashopenssl.inc"
/*[clinic input]
@ -38,34 +41,26 @@ module _hashlib
#define HASH_OBJ_CONSTRUCTOR 0
#endif
#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
/* OpenSSL < 1.1.0 */
#define EVP_MD_CTX_new EVP_MD_CTX_create
#define EVP_MD_CTX_free EVP_MD_CTX_destroy
#define HAS_FAST_PKCS5_PBKDF2_HMAC 0
#include <openssl/hmac.h>
#else
/* OpenSSL >= 1.1.0 */
#define HAS_FAST_PKCS5_PBKDF2_HMAC 1
#endif
typedef struct {
PyObject_HEAD
PyObject *name; /* name of this hash algorithm */
EVP_MD_CTX *ctx; /* OpenSSL message digest context */
PyObject *name;
mbedtls_md_context_t *ctx;
#ifdef WITH_THREAD
PyThread_type_lock lock; /* OpenSSL context lock */
PyThread_type_lock lock;
#endif
} EVPobject;
static PyTypeObject EVPtype;
static PyObject *CONST_md5_name_obj;
static PyObject *CONST_sha1_name_obj;
static PyObject *CONST_sha224_name_obj;
static PyObject *CONST_sha256_name_obj;
static PyObject *CONST_sha384_name_obj;
static PyObject *CONST_sha512_name_obj;
#define DEFINE_CONSTS_FOR_NEW(Name) \
static PyObject *CONST_ ## Name ## _name_obj = NULL; \
static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL;
static mbedtls_md_context_t *CONST_new_ ## Name ## _ctx_p = NULL;
DEFINE_CONSTS_FOR_NEW(md5)
DEFINE_CONSTS_FOR_NEW(sha1)
@ -74,34 +69,31 @@ DEFINE_CONSTS_FOR_NEW(sha256)
DEFINE_CONSTS_FOR_NEW(sha384)
DEFINE_CONSTS_FOR_NEW(sha512)
/* LCOV_EXCL_START */
static PyObject *
_setException(PyObject *exc)
{
unsigned long errcode;
const char *lib, *func, *reason;
errcode = ERR_peek_last_error();
if (!errcode) {
PyErr_SetString(exc, "unknown reasons");
return NULL;
}
ERR_clear_error();
lib = ERR_lib_error_string(errcode);
func = ERR_func_error_string(errcode);
reason = ERR_reason_error_string(errcode);
if (lib && func) {
PyErr_Format(exc, "[%s: %s] %s", lib, func, reason);
}
else if (lib) {
PyErr_Format(exc, "[%s] %s", lib, reason);
}
else {
PyErr_SetString(exc, reason);
}
/* unsigned long errcode; */
/* const char *lib, *func, *reason; */
/* errcode = ERR_peek_last_error(); */
/* if (!errcode) { */
/* PyErr_SetString(exc, "unknown reasons"); */
/* return NULL; */
/* } */
/* ERR_clear_error(); */
/* lib = ERR_lib_error_string(errcode); */
/* func = ERR_func_error_string(errcode); */
/* reason = ERR_reason_error_string(errcode); */
/* if (lib && func) { */
/* PyErr_Format(exc, "[%s: %s] %s", lib, func, reason); */
/* } */
/* else if (lib) { */
/* PyErr_Format(exc, "[%s] %s", lib, reason); */
/* } */
/* else { */
/* PyErr_SetString(exc, reason); */
/* } */
PyErr_SetString(exc, "failhouse");
return NULL;
}
/* LCOV_EXCL_STOP */
@ -113,20 +105,17 @@ newEVPobject(PyObject *name)
if (retval == NULL) {
return NULL;
}
retval->ctx = EVP_MD_CTX_new();
retval->ctx = calloc(1, sizeof(mbedtls_md_context_t));
if (retval->ctx == NULL) {
PyErr_NoMemory();
return NULL;
}
/* save the name for .name to return */
Py_INCREF(name);
retval->name = name;
#ifdef WITH_THREAD
retval->lock = NULL;
#endif
return retval;
}
@ -140,7 +129,7 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
process = MUNCH_SIZE;
else
process = Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int);
if (!EVP_DigestUpdate(self->ctx, (const void*)cp, process)) {
if (!mbedtls_md_update(self->ctx, (const void*)cp, process)) {
_setException(PyExc_ValueError);
break;
}
@ -158,17 +147,19 @@ EVP_dealloc(EVPobject *self)
if (self->lock != NULL)
PyThread_free_lock(self->lock);
#endif
EVP_MD_CTX_free(self->ctx);
mbedtls_md_free(self->ctx);
free(self->ctx);
Py_XDECREF(self->name);
PyObject_Del(self);
}
static int
locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
locked_mbedtls_md_clone(mbedtls_md_context_t *new_ctx_p, EVPobject *self)
{
int result;
ENTER_HASHLIB(self);
result = EVP_MD_CTX_copy(new_ctx_p, self->ctx);
result = mbedtls_md_clone(new_ctx_p, self->ctx);
result = 0;
LEAVE_HASHLIB(self);
return result;
}
@ -177,16 +168,13 @@ locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
PyDoc_STRVAR(EVP_copy__doc__, "Return a copy of the hash object.");
static PyObject *
EVP_copy(EVPobject *self, PyObject *unused)
{
EVPobject *newobj;
if ( (newobj = newEVPobject(self->name))==NULL)
return NULL;
if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) {
if (!locked_mbedtls_md_clone(newobj->ctx, self)) {
return _setException(PyExc_ValueError);
}
return (PyObject *)newobj;
@ -198,28 +186,25 @@ PyDoc_STRVAR(EVP_digest__doc__,
static PyObject *
EVP_digest(EVPobject *self, PyObject *unused)
{
unsigned char digest[EVP_MAX_MD_SIZE];
EVP_MD_CTX *temp_ctx;
unsigned char digest[MBEDTLS_MD_MAX_SIZE];
mbedtls_md_context_t *temp_ctx;
PyObject *retval;
unsigned int digest_size;
temp_ctx = EVP_MD_CTX_new();
temp_ctx = calloc(1, sizeof(mbedtls_md_context_t));
if (temp_ctx == NULL) {
PyErr_NoMemory();
return NULL;
}
if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
if (!locked_mbedtls_md_clone(temp_ctx, self)) {
return _setException(PyExc_ValueError);
}
digest_size = EVP_MD_CTX_size(temp_ctx);
if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {
digest_size = mbedtls_md_get_size(temp_ctx->md_info);
if (!mbedtls_md_finish(temp_ctx, digest)) {
_setException(PyExc_ValueError);
return NULL;
}
retval = PyBytes_FromStringAndSize((const char *)digest, digest_size);
EVP_MD_CTX_free(temp_ctx);
mbedtls_md_free(temp_ctx);
return retval;
}
@ -229,28 +214,24 @@ PyDoc_STRVAR(EVP_hexdigest__doc__,
static PyObject *
EVP_hexdigest(EVPobject *self, PyObject *unused)
{
unsigned char digest[EVP_MAX_MD_SIZE];
EVP_MD_CTX *temp_ctx;
unsigned char digest[MBEDTLS_MD_MAX_SIZE];
mbedtls_md_context_t *temp_ctx;
unsigned int digest_size;
temp_ctx = EVP_MD_CTX_new();
temp_ctx = calloc(1, sizeof(mbedtls_md_context_t));
if (temp_ctx == NULL) {
PyErr_NoMemory();
return NULL;
}
/* Get the raw (binary) digest value */
if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
if (!locked_mbedtls_md_clone(temp_ctx, self)) {
return _setException(PyExc_ValueError);
}
digest_size = EVP_MD_CTX_size(temp_ctx);
if (!EVP_DigestFinal(temp_ctx, digest, NULL)) {
digest_size = mbedtls_md_get_size(temp_ctx->md_info);
if (!mbedtls_md_finish(temp_ctx, digest)) {
_setException(PyExc_ValueError);
return NULL;
}
EVP_MD_CTX_free(temp_ctx);
mbedtls_md_free(temp_ctx);
return _Py_strhex((const char *)digest, digest_size);
}
@ -262,18 +243,14 @@ EVP_update(EVPobject *self, PyObject *args)
{
PyObject *obj;
Py_buffer view;
if (!PyArg_ParseTuple(args, "O:update", &obj))
return NULL;
GET_BUFFER_VIEW_OR_ERROUT(obj, &view);
#ifdef WITH_THREAD
if (self->lock == NULL && view.len >= HASHLIB_GIL_MINSIZE) {
self->lock = PyThread_allocate_lock();
/* fail? lock = NULL and we fail over to non-threaded code. */
}
if (self->lock != NULL) {
Py_BEGIN_ALLOW_THREADS
PyThread_acquire_lock(self->lock, 1);
@ -286,7 +263,6 @@ EVP_update(EVPobject *self, PyObject *args)
#else
EVP_hash(self, view.buf, view.len);
#endif
PyBuffer_Release(&view);
Py_RETURN_NONE;
}
@ -303,7 +279,7 @@ static PyObject *
EVP_get_block_size(EVPobject *self, void *closure)
{
long block_size;
block_size = EVP_MD_CTX_block_size(self->ctx);
block_size = mbedtls_md_get_block_size(self->ctx->md_info);
return PyLong_FromLong(block_size);
}
@ -311,7 +287,7 @@ static PyObject *
EVP_get_digest_size(EVPobject *self, void *closure)
{
long size;
size = EVP_MD_CTX_size(self->ctx);
size = mbedtls_md_get_size(self->ctx->md_info);
return PyLong_FromLong(size);
}
@ -348,24 +324,20 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
PyObject *data_obj = NULL;
Py_buffer view;
char *nameStr;
const EVP_MD *digest;
const mbedtls_md_info_t *digest;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:HASH", kwlist,
&name_obj, &data_obj)) {
return -1;
}
if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
if (!PyArg_Parse(name_obj, "s", &nameStr)) {
PyErr_SetString(PyExc_TypeError, "name must be a string");
if (data_obj)
PyBuffer_Release(&view);
return -1;
}
digest = EVP_get_digestbyname(nameStr);
digest = mbedtls_md_info_from_string(nameStr);
if (!digest) {
PyErr_SetString(PyExc_ValueError, "unknown hash function");
if (data_obj)
@ -378,10 +350,8 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
PyBuffer_Release(&view);
return -1;
}
Py_INCREF(name_obj);
Py_XSETREF(self->name, name_obj);
if (data_obj) {
if (view.len >= HASHLIB_GIL_MINSIZE) {
Py_BEGIN_ALLOW_THREADS
@ -392,12 +362,10 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
}
PyBuffer_Release(&view);
}
return 0;
}
#endif
PyDoc_STRVAR(hashtype_doc,
"A hash represents the object used to calculate a checksum of a\n\
string of information.\n\
@ -460,29 +428,26 @@ static PyTypeObject EVPtype = {
static PyObject *
EVPnew(PyObject *name_obj,
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
const mbedtls_md_info_t *digest,
const mbedtls_md_context_t *initial_ctx,
const unsigned char *cp, Py_ssize_t len)
{
EVPobject *self;
if (!digest && !initial_ctx) {
PyErr_SetString(PyExc_ValueError, "unsupported hash type");
return NULL;
}
if ((self = newEVPobject(name_obj)) == NULL)
return NULL;
if (initial_ctx) {
EVP_MD_CTX_copy(self->ctx, initial_ctx);
mbedtls_md_clone(self->ctx, initial_ctx);
} else {
if (!EVP_DigestInit(self->ctx, digest)) {
if (!mbedtls_md_setup(self->ctx, digest, 0)) {
_setException(PyExc_ValueError);
Py_DECREF(self);
return NULL;
}
}
if (cp && len) {
if (len >= HASHLIB_GIL_MINSIZE) {
Py_BEGIN_ALLOW_THREADS
@ -492,7 +457,6 @@ EVPnew(PyObject *name_obj,
EVP_hash(self, cp, len);
}
}
return (PyObject *)self;
}
@ -515,32 +479,24 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
Py_buffer view = { 0 };
PyObject *ret_obj;
char *name;
const EVP_MD *digest;
const mbedtls_md_info_t *digest;
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "O|O:new", kwlist,
&name_obj, &data_obj)) {
return NULL;
}
if (!PyArg_Parse(name_obj, "s", &name)) {
PyErr_SetString(PyExc_TypeError, "name must be a string");
return NULL;
}
if (data_obj)
GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
digest = EVP_get_digestbyname(name);
digest = mbedtls_md_info_from_string(name);
ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len);
if (data_obj)
PyBuffer_Release(&view);
return ret_obj;
}
#if (OPENSSL_VERSION_NUMBER >= 0x10000000 && !defined(OPENSSL_NO_HMAC) \
&& !defined(OPENSSL_NO_SHA))
@ -560,15 +516,15 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
static int
PKCS5_PBKDF2_HMAC_fast(const char *pass, int passlen,
const unsigned char *salt, int saltlen,
int iter, const EVP_MD *digest,
int iter, const mbedtls_md_info_t *digest,
int keylen, unsigned char *out)
{
unsigned char digtmp[EVP_MAX_MD_SIZE], *p, itmp[4];
unsigned char digtmp[MBEDTLS_MD_MAX_SIZE], *p, itmp[4];
int cplen, j, k, tkeylen, mdlen;
unsigned long i = 1;
HMAC_CTX hctx_tpl, hctx;
mdlen = EVP_MD_size(digest);
mdlen = mbedtls_md_get_size(digest);
if (mdlen < 0)
return 0;
@ -647,7 +603,7 @@ pbkdf2_hmac(PyObject *self, PyObject *args, PyObject *kwdict)
Py_buffer password, salt;
long iterations, dklen;
int retval;
const EVP_MD *digest;
const mbedtls_md_info_t *digest;
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "sy*y*l|O:pbkdf2_hmac",
kwlist, &name, &password, &salt,
@ -655,7 +611,7 @@ pbkdf2_hmac(PyObject *self, PyObject *args, PyObject *kwdict)
return NULL;
}
digest = EVP_get_digestbyname(name);
digest = mbedtls_md_info_from_string(name);
if (digest == NULL) {
PyErr_SetString(PyExc_ValueError, "unsupported hash type");
goto end;
@ -685,7 +641,7 @@ pbkdf2_hmac(PyObject *self, PyObject *args, PyObject *kwdict)
}
if (dklen_obj == Py_None) {
dklen = EVP_MD_size(digest);
dklen = mbedtls_md_get_size(digest);
} else {
dklen = PyLong_AsLong(dklen_obj);
if ((dklen == -1) && PyErr_Occurred()) {
@ -740,7 +696,6 @@ pbkdf2_hmac(PyObject *self, PyObject *args, PyObject *kwdict)
#if OPENSSL_VERSION_NUMBER > 0x10100000L && !defined(OPENSSL_NO_SCRYPT) && !defined(LIBRESSL_VERSION_NUMBER)
#define PY_SCRYPT 1
/* XXX: Parameters salt, n, r and p should be required keyword-only parameters.
They are optional in the Argument Clinic declaration only due to a
limitation of PyArg_ParseTupleAndKeywords. */
@ -760,7 +715,6 @@ _hashlib.scrypt
scrypt password-based key derivation function.
[clinic start generated code]*/
static PyObject *
_hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
PyObject *n_obj, PyObject *r_obj, PyObject *p_obj,
@ -771,13 +725,11 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
char *key;
int retval;
unsigned long n, r, p;
if (password->len > INT_MAX) {
PyErr_SetString(PyExc_OverflowError,
"password is too long.");
return NULL;
}
if (salt->buf == NULL) {
PyErr_SetString(PyExc_TypeError,
"salt is required");
@ -788,7 +740,6 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
"salt is too long.");
return NULL;
}
n = PyLong_AsUnsignedLong(n_obj);
if (n == (unsigned long) -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_TypeError,
@ -800,21 +751,18 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
"n must be a power of 2.");
return NULL;
}
r = PyLong_AsUnsignedLong(r_obj);
if (r == (unsigned long) -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_TypeError,
"r is required and must be an unsigned int");
return NULL;
}
p = PyLong_AsUnsignedLong(p_obj);
if (p == (unsigned long) -1 && PyErr_Occurred()) {
PyErr_SetString(PyExc_TypeError,
"p is required and must be an unsigned int");
return NULL;
}
if (maxmem < 0 || maxmem > INT_MAX) {
/* OpenSSL 1.1.0 restricts maxmem to 32MB. It may change in the
future. The maxmem constant is private to OpenSSL. */
@ -823,14 +771,12 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
INT_MAX);
return NULL;
}
if (dklen < 1 || dklen > INT_MAX) {
PyErr_Format(PyExc_ValueError,
"dklen must be greater than 0 and smaller than %d",
INT_MAX);
return NULL;
}
/* let OpenSSL validate the rest */
retval = EVP_PBE_scrypt(NULL, 0, NULL, 0, n, r, p, maxmem, NULL, 0);
if (!retval) {
@ -839,13 +785,11 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
"Invalid paramemter combination for n, r, p, maxmem.");
return NULL;
}
key_obj = PyBytes_FromStringAndSize(NULL, dklen);
if (key_obj == NULL) {
return NULL;
}
key = PyBytes_AS_STRING(key_obj);
Py_BEGIN_ALLOW_THREADS
retval = EVP_PBE_scrypt(
(const char*)password->buf, (size_t)password->len,
@ -854,7 +798,6 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
(unsigned char *)key, (size_t)dklen
);
Py_END_ALLOW_THREADS
if (!retval) {
Py_CLEAR(key_obj);
_setException(PyExc_ValueError);
@ -864,61 +807,21 @@ _hashlib_scrypt_impl(PyObject *module, Py_buffer *password, Py_buffer *salt,
}
#endif
/* State for our callback function so that it can accumulate a result. */
typedef struct _internal_name_mapper_state {
PyObject *set;
int error;
} _InternalNameMapperState;
/* A callback function to pass to OpenSSL's OBJ_NAME_do_all(...) */
static void
_openssl_hash_name_mapper(const OBJ_NAME *openssl_obj_name, void *arg)
{
_InternalNameMapperState *state = (_InternalNameMapperState *)arg;
PyObject *py_name;
assert(state != NULL);
if (openssl_obj_name == NULL)
return;
/* Ignore aliased names, they pollute the list and OpenSSL appears to
* have its own definition of alias as the resulting list still
* contains duplicate and alternate names for several algorithms. */
if (openssl_obj_name->alias)
return;
py_name = PyUnicode_FromString(openssl_obj_name->name);
if (py_name == NULL) {
state->error = 1;
} else {
if (PySet_Add(state->set, py_name) != 0) {
state->error = 1;
}
Py_DECREF(py_name);
}
}
/* Ask OpenSSL for a list of supported ciphers, filling in a Python set. */
static PyObject*
static PyObject *
generate_hash_name_list(void)
{
_InternalNameMapperState state;
state.set = PyFrozenSet_New(NULL);
if (state.set == NULL)
return NULL;
state.error = 0;
OBJ_NAME_do_all(OBJ_NAME_TYPE_MD_METH, &_openssl_hash_name_mapper, &state);
if (state.error) {
Py_DECREF(state.set);
return NULL;
uint8_t *p;
PyObject *set, *name;
if ((set = PyFrozenSet_New(0))) {
for (p = mbedtls_md_list(); *p != MBEDTLS_MD_NONE; ++p) {
name = PyUnicode_FromString(mbedtls_md_info_from_type(*p)->name);
PySet_Add(set, name);
Py_DECREF(name);
}
}
return state.set;
return set;
}
/*
* This macro generates constructor function definitions for specific
* hash algorithms. These constructors are much faster than calling
@ -941,11 +844,11 @@ generate_hash_name_list(void)
} \
\
if (CONST_new_ ## NAME ## _ctx_p == NULL) { \
EVP_MD_CTX *ctx_p = EVP_MD_CTX_new(); \
if (!EVP_get_digestbyname(#NAME) || \
!EVP_DigestInit(ctx_p, EVP_get_digestbyname(#NAME))) { \
mbedtls_md_context_t *ctx_p = calloc(1, sizeof(mbedtls_md_context_t)); \
if (!mbedtls_md_info_from_string(#NAME) || \
!mbedtls_md_setup(ctx_p, mbedtls_md_info_from_string(#NAME), 0)) { \
_setException(PyExc_ValueError); \
EVP_MD_CTX_free(ctx_p); \
mbedtls_md_free(ctx_p); \
return NULL; \
} \
CONST_new_ ## NAME ## _ctx_p = ctx_p; \
@ -975,11 +878,10 @@ generate_hash_name_list(void)
/* used in the init function to setup a constructor: initialize OpenSSL
constructor constants if they haven't been initialized already. */
#define INIT_CONSTRUCTOR_CONSTANTS(NAME) do { \
#define INIT_CONSTRUCTOR_CONSTANTS(NAME) \
if (CONST_ ## NAME ## _name_obj == NULL) { \
CONST_ ## NAME ## _name_obj = PyUnicode_FromString(#NAME); \
} \
} while (0);
CONST_ ## NAME ## _name_obj = PyUnicode_FromString(#NAME);\
}
GEN_CONSTRUCTOR(md5)
GEN_CONSTRUCTOR(sha1)
@ -1006,10 +908,6 @@ static struct PyMethodDef EVP_functions[] = {
{NULL, NULL} /* Sentinel */
};
/* Initialize this module. */
static struct PyModuleDef _hashlibmodule = {
PyModuleDef_HEAD_INIT,
"_hashlib",
@ -1026,26 +924,16 @@ PyMODINIT_FUNC
PyInit__hashlib(void)
{
PyObject *m, *openssl_md_meth_names;
#ifndef OPENSSL_VERSION_1_1
/* Load all digest algorithms and initialize cpuid */
OPENSSL_add_all_algorithms_noconf();
ERR_load_crypto_strings();
#endif
/* TODO build EVP_functions openssl_* entries dynamically based
* on what hashes are supported rather than listing many
* but having some be unsupported. Only init appropriate
* constants. */
Py_TYPE(&EVPtype) = &PyType_Type;
if (PyType_Ready(&EVPtype) < 0)
return NULL;
m = PyModule_Create(&_hashlibmodule);
if (m == NULL)
return NULL;
openssl_md_meth_names = generate_hash_name_list();
if (openssl_md_meth_names == NULL) {
Py_DECREF(m);
@ -1055,16 +943,14 @@ PyInit__hashlib(void)
Py_DECREF(m);
return NULL;
}
Py_INCREF((PyObject *)&EVPtype);
PyModule_AddObject(m, "HASH", (PyObject *)&EVPtype);
/* these constants are used by the convenience constructors */
INIT_CONSTRUCTOR_CONSTANTS(md5);
INIT_CONSTRUCTOR_CONSTANTS(sha1);
INIT_CONSTRUCTOR_CONSTANTS(sha224);
INIT_CONSTRUCTOR_CONSTANTS(sha256);
INIT_CONSTRUCTOR_CONSTANTS(sha384);
INIT_CONSTRUCTOR_CONSTANTS(sha512);
INIT_CONSTRUCTOR_CONSTANTS(md5)
INIT_CONSTRUCTOR_CONSTANTS(sha1)
INIT_CONSTRUCTOR_CONSTANTS(sha224)
INIT_CONSTRUCTOR_CONSTANTS(sha256)
INIT_CONSTRUCTOR_CONSTANTS(sha384)
INIT_CONSTRUCTOR_CONSTANTS(sha512)
return m;
}

View file

@ -13,6 +13,14 @@
/* clang-format off */
PYTHON_PROVIDE("_heapq");
PYTHON_PROVIDE("_heapq._heapify_max");
PYTHON_PROVIDE("_heapq._heappop_max");
PYTHON_PROVIDE("_heapq._heapreplace_max");
PYTHON_PROVIDE("_heapq.heapify");
PYTHON_PROVIDE("_heapq.heappop");
PYTHON_PROVIDE("_heapq.heappush");
PYTHON_PROVIDE("_heapq.heappushpop");
PYTHON_PROVIDE("_heapq.heapreplace");
/* Drop in replacement for heapq.py

View file

@ -24,6 +24,23 @@
/* clang-format off */
PYTHON_PROVIDE("_io");
PYTHON_PROVIDE("_io.BlockingIOError");
PYTHON_PROVIDE("_io.BufferedRWPair");
PYTHON_PROVIDE("_io.BufferedRandom");
PYTHON_PROVIDE("_io.BufferedReader");
PYTHON_PROVIDE("_io.BufferedWriter");
PYTHON_PROVIDE("_io.BytesIO");
PYTHON_PROVIDE("_io.DEFAULT_BUFFER_SIZE");
PYTHON_PROVIDE("_io.FileIO");
PYTHON_PROVIDE("_io.IncrementalNewlineDecoder");
PYTHON_PROVIDE("_io.StringIO");
PYTHON_PROVIDE("_io.TextIOWrapper");
PYTHON_PROVIDE("_io.UnsupportedOperation");
PYTHON_PROVIDE("_io._BufferedIOBase");
PYTHON_PROVIDE("_io._IOBase");
PYTHON_PROVIDE("_io._RawIOBase");
PYTHON_PROVIDE("_io._TextIOBase");
PYTHON_PROVIDE("_io.open");
/*
An implementation of the new I/O lib as defined by PEP 3116 - "New I/O"

View file

@ -21,6 +21,11 @@
/* clang-format off */
PYTHON_PROVIDE("_json");
PYTHON_PROVIDE("_json.encode_basestring");
PYTHON_PROVIDE("_json.encode_basestring_ascii");
PYTHON_PROVIDE("_json.make_encoder");
PYTHON_PROVIDE("_json.make_scanner");
PYTHON_PROVIDE("_json.scanstring");
#ifdef __GNUC__
#define UNUSED __attribute__((__unused__))

View file

@ -20,6 +20,17 @@
/* clang-format off */
PYTHON_PROVIDE("_locale");
PYTHON_PROVIDE("_locale.CHAR_MAX");
PYTHON_PROVIDE("_locale.Error");
PYTHON_PROVIDE("_locale.LC_ALL");
PYTHON_PROVIDE("_locale.LC_COLLATE");
PYTHON_PROVIDE("_locale.LC_CTYPE");
PYTHON_PROVIDE("_locale.LC_MESSAGES");
PYTHON_PROVIDE("_locale.LC_MONETARY");
PYTHON_PROVIDE("_locale.LC_NUMERIC");
PYTHON_PROVIDE("_locale.LC_TIME");
PYTHON_PROVIDE("_locale.localeconv");
PYTHON_PROVIDE("_locale.setlocale");
/***********************************************************
Copyright (C) 1997, 2002, 2003, 2007, 2008 Martin von Loewis

View file

@ -18,6 +18,9 @@
/* clang-format off */
PYTHON_PROVIDE("_lsprof");
PYTHON_PROVIDE("_lsprof.Profiler");
PYTHON_PROVIDE("_lsprof.profiler_entry");
PYTHON_PROVIDE("_lsprof.profiler_subentry");
/*** Selection of a high-precision timer ***/

View file

@ -10,6 +10,40 @@
/* clang-format off */
PYTHON_PROVIDE("_lzma");
PYTHON_PROVIDE("_lzma.CHECK_CRC32");
PYTHON_PROVIDE("_lzma.CHECK_CRC64");
PYTHON_PROVIDE("_lzma.CHECK_ID_MAX");
PYTHON_PROVIDE("_lzma.CHECK_NONE");
PYTHON_PROVIDE("_lzma.CHECK_SHA256");
PYTHON_PROVIDE("_lzma.CHECK_UNKNOWN");
PYTHON_PROVIDE("_lzma.FILTER_ARM");
PYTHON_PROVIDE("_lzma.FILTER_ARMTHUMB");
PYTHON_PROVIDE("_lzma.FILTER_DELTA");
PYTHON_PROVIDE("_lzma.FILTER_IA64");
PYTHON_PROVIDE("_lzma.FILTER_LZMA1");
PYTHON_PROVIDE("_lzma.FILTER_LZMA2");
PYTHON_PROVIDE("_lzma.FILTER_POWERPC");
PYTHON_PROVIDE("_lzma.FILTER_SPARC");
PYTHON_PROVIDE("_lzma.FILTER_X86");
PYTHON_PROVIDE("_lzma.FORMAT_ALONE");
PYTHON_PROVIDE("_lzma.FORMAT_AUTO");
PYTHON_PROVIDE("_lzma.FORMAT_RAW");
PYTHON_PROVIDE("_lzma.FORMAT_XZ");
PYTHON_PROVIDE("_lzma.LZMACompressor");
PYTHON_PROVIDE("_lzma.LZMADecompressor");
PYTHON_PROVIDE("_lzma.LZMAError");
PYTHON_PROVIDE("_lzma.MF_BT2");
PYTHON_PROVIDE("_lzma.MF_BT3");
PYTHON_PROVIDE("_lzma.MF_BT4");
PYTHON_PROVIDE("_lzma.MF_HC3");
PYTHON_PROVIDE("_lzma.MF_HC4");
PYTHON_PROVIDE("_lzma.MODE_FAST");
PYTHON_PROVIDE("_lzma.MODE_NORMAL");
PYTHON_PROVIDE("_lzma.PRESET_DEFAULT");
PYTHON_PROVIDE("_lzma.PRESET_EXTREME");
PYTHON_PROVIDE("_lzma._decode_filter_properties");
PYTHON_PROVIDE("_lzma._encode_filter_properties");
PYTHON_PROVIDE("_lzma.is_check_supported");
/* _lzma - Low-level Python interface to liblzma.

View file

@ -1,3 +1,9 @@
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
vi: set net ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi
Python 3
https://docs.python.org/3/license.html │
*/
#include "libc/errno.h"
#include "third_party/python/Include/pymath.h"
#include "third_party/python/Modules/_math.h"

View file

@ -9,6 +9,7 @@
/* clang-format off */
PYTHON_PROVIDE("_multiprocessing");
PYTHON_PROVIDE("_multiprocessing.flags");
/*
* Extension module used by multiprocessing package

View file

@ -15,6 +15,7 @@
/* clang-format off */
PYTHON_PROVIDE("_opcode");
PYTHON_PROVIDE("_opcode.stack_effect");
/*[clinic input]
module _opcode

View file

@ -18,6 +18,66 @@
/* clang-format off */
PYTHON_PROVIDE("_operator");
PYTHON_PROVIDE("_operator.__doc__");
PYTHON_PROVIDE("_operator.__loader__");
PYTHON_PROVIDE("_operator.__name__");
PYTHON_PROVIDE("_operator.__package__");
PYTHON_PROVIDE("_operator.__spec__");
PYTHON_PROVIDE("_operator._compare_digest");
PYTHON_PROVIDE("_operator.abs");
PYTHON_PROVIDE("_operator.add");
PYTHON_PROVIDE("_operator.and_");
PYTHON_PROVIDE("_operator.attrgetter");
PYTHON_PROVIDE("_operator.concat");
PYTHON_PROVIDE("_operator.contains");
PYTHON_PROVIDE("_operator.countOf");
PYTHON_PROVIDE("_operator.delitem");
PYTHON_PROVIDE("_operator.eq");
PYTHON_PROVIDE("_operator.floordiv");
PYTHON_PROVIDE("_operator.ge");
PYTHON_PROVIDE("_operator.getitem");
PYTHON_PROVIDE("_operator.gt");
PYTHON_PROVIDE("_operator.iadd");
PYTHON_PROVIDE("_operator.iand");
PYTHON_PROVIDE("_operator.iconcat");
PYTHON_PROVIDE("_operator.ifloordiv");
PYTHON_PROVIDE("_operator.ilshift");
PYTHON_PROVIDE("_operator.imatmul");
PYTHON_PROVIDE("_operator.imod");
PYTHON_PROVIDE("_operator.imul");
PYTHON_PROVIDE("_operator.index");
PYTHON_PROVIDE("_operator.indexOf");
PYTHON_PROVIDE("_operator.inv");
PYTHON_PROVIDE("_operator.invert");
PYTHON_PROVIDE("_operator.ior");
PYTHON_PROVIDE("_operator.ipow");
PYTHON_PROVIDE("_operator.irshift");
PYTHON_PROVIDE("_operator.is_");
PYTHON_PROVIDE("_operator.is_not");
PYTHON_PROVIDE("_operator.isub");
PYTHON_PROVIDE("_operator.itemgetter");
PYTHON_PROVIDE("_operator.itruediv");
PYTHON_PROVIDE("_operator.ixor");
PYTHON_PROVIDE("_operator.le");
PYTHON_PROVIDE("_operator.length_hint");
PYTHON_PROVIDE("_operator.lshift");
PYTHON_PROVIDE("_operator.lt");
PYTHON_PROVIDE("_operator.matmul");
PYTHON_PROVIDE("_operator.methodcaller");
PYTHON_PROVIDE("_operator.mod");
PYTHON_PROVIDE("_operator.mul");
PYTHON_PROVIDE("_operator.ne");
PYTHON_PROVIDE("_operator.neg");
PYTHON_PROVIDE("_operator.not_");
PYTHON_PROVIDE("_operator.or_");
PYTHON_PROVIDE("_operator.pos");
PYTHON_PROVIDE("_operator.pow");
PYTHON_PROVIDE("_operator.rshift");
PYTHON_PROVIDE("_operator.setitem");
PYTHON_PROVIDE("_operator.sub");
PYTHON_PROVIDE("_operator.truediv");
PYTHON_PROVIDE("_operator.truth");
PYTHON_PROVIDE("_operator.xor");
PyDoc_STRVAR(operator_doc,
"Operator interface.\n\

View file

@ -34,6 +34,15 @@
/* clang-format off */
PYTHON_PROVIDE("_pickle");
PYTHON_PROVIDE("_pickle.PickleError");
PYTHON_PROVIDE("_pickle.Pickler");
PYTHON_PROVIDE("_pickle.PicklingError");
PYTHON_PROVIDE("_pickle.Unpickler");
PYTHON_PROVIDE("_pickle.UnpicklingError");
PYTHON_PROVIDE("_pickle.dump");
PYTHON_PROVIDE("_pickle.dumps");
PYTHON_PROVIDE("_pickle.load");
PYTHON_PROVIDE("_pickle.loads");
PyDoc_STRVAR(pickle_module_doc,
"Optimized C implementation for the Python pickle module.");

View file

@ -28,6 +28,7 @@
/* clang-format off */
PYTHON_PROVIDE("_posixsubprocess");
PYTHON_PROVIDE("_posixsubprocess.fork_exec");
/* Authors: Gregory P. Smith & Jeffrey Yasskin */

View file

@ -19,6 +19,7 @@
/* clang-format off */
PYTHON_PROVIDE("_random");
PYTHON_PROVIDE("_random.Random");
/* ------------------------------------------------------------------
The code in this module was based on a download from:

View file

@ -25,6 +25,19 @@
/* clang-format off */
PYTHON_PROVIDE("_sre");
PYTHON_PROVIDE("_sre.CODESIZE");
PYTHON_PROVIDE("_sre.MAGIC");
PYTHON_PROVIDE("_sre.MAXGROUPS");
PYTHON_PROVIDE("_sre.MAXREPEAT");
PYTHON_PROVIDE("_sre.__doc__");
PYTHON_PROVIDE("_sre.__loader__");
PYTHON_PROVIDE("_sre.__name__");
PYTHON_PROVIDE("_sre.__package__");
PYTHON_PROVIDE("_sre.__spec__");
PYTHON_PROVIDE("_sre.compile");
PYTHON_PROVIDE("_sre.copyright");
PYTHON_PROVIDE("_sre.getcodesize");
PYTHON_PROVIDE("_sre.getlower");
/*
* Secret Labs' Regular Expression Engine

View file

@ -20,6 +20,70 @@
/* clang-format off */
PYTHON_PROVIDE("_stat");
PYTHON_PROVIDE("_stat.SF_APPEND");
PYTHON_PROVIDE("_stat.SF_ARCHIVED");
PYTHON_PROVIDE("_stat.SF_IMMUTABLE");
PYTHON_PROVIDE("_stat.SF_NOUNLINK");
PYTHON_PROVIDE("_stat.SF_SNAPSHOT");
PYTHON_PROVIDE("_stat.ST_ATIME");
PYTHON_PROVIDE("_stat.ST_CTIME");
PYTHON_PROVIDE("_stat.ST_DEV");
PYTHON_PROVIDE("_stat.ST_GID");
PYTHON_PROVIDE("_stat.ST_INO");
PYTHON_PROVIDE("_stat.ST_MODE");
PYTHON_PROVIDE("_stat.ST_MTIME");
PYTHON_PROVIDE("_stat.ST_NLINK");
PYTHON_PROVIDE("_stat.ST_SIZE");
PYTHON_PROVIDE("_stat.ST_UID");
PYTHON_PROVIDE("_stat.S_ENFMT");
PYTHON_PROVIDE("_stat.S_IEXEC");
PYTHON_PROVIDE("_stat.S_IFBLK");
PYTHON_PROVIDE("_stat.S_IFCHR");
PYTHON_PROVIDE("_stat.S_IFDIR");
PYTHON_PROVIDE("_stat.S_IFDOOR");
PYTHON_PROVIDE("_stat.S_IFIFO");
PYTHON_PROVIDE("_stat.S_IFLNK");
PYTHON_PROVIDE("_stat.S_IFMT");
PYTHON_PROVIDE("_stat.S_IFPORT");
PYTHON_PROVIDE("_stat.S_IFREG");
PYTHON_PROVIDE("_stat.S_IFSOCK");
PYTHON_PROVIDE("_stat.S_IFWHT");
PYTHON_PROVIDE("_stat.S_IMODE");
PYTHON_PROVIDE("_stat.S_IREAD");
PYTHON_PROVIDE("_stat.S_IRGRP");
PYTHON_PROVIDE("_stat.S_IROTH");
PYTHON_PROVIDE("_stat.S_IRUSR");
PYTHON_PROVIDE("_stat.S_IRWXG");
PYTHON_PROVIDE("_stat.S_IRWXO");
PYTHON_PROVIDE("_stat.S_IRWXU");
PYTHON_PROVIDE("_stat.S_ISBLK");
PYTHON_PROVIDE("_stat.S_ISCHR");
PYTHON_PROVIDE("_stat.S_ISDIR");
PYTHON_PROVIDE("_stat.S_ISDOOR");
PYTHON_PROVIDE("_stat.S_ISFIFO");
PYTHON_PROVIDE("_stat.S_ISGID");
PYTHON_PROVIDE("_stat.S_ISLNK");
PYTHON_PROVIDE("_stat.S_ISPORT");
PYTHON_PROVIDE("_stat.S_ISREG");
PYTHON_PROVIDE("_stat.S_ISSOCK");
PYTHON_PROVIDE("_stat.S_ISUID");
PYTHON_PROVIDE("_stat.S_ISVTX");
PYTHON_PROVIDE("_stat.S_ISWHT");
PYTHON_PROVIDE("_stat.S_IWGRP");
PYTHON_PROVIDE("_stat.S_IWOTH");
PYTHON_PROVIDE("_stat.S_IWRITE");
PYTHON_PROVIDE("_stat.S_IWUSR");
PYTHON_PROVIDE("_stat.S_IXGRP");
PYTHON_PROVIDE("_stat.S_IXOTH");
PYTHON_PROVIDE("_stat.S_IXUSR");
PYTHON_PROVIDE("_stat.UF_APPEND");
PYTHON_PROVIDE("_stat.UF_COMPRESSED");
PYTHON_PROVIDE("_stat.UF_HIDDEN");
PYTHON_PROVIDE("_stat.UF_IMMUTABLE");
PYTHON_PROVIDE("_stat.UF_NODUMP");
PYTHON_PROVIDE("_stat.UF_NOUNLINK");
PYTHON_PROVIDE("_stat.UF_OPAQUE");
PYTHON_PROVIDE("_stat.filemode");
/* stat.h interface
*

View file

@ -25,6 +25,20 @@
/* clang-format off */
PYTHON_PROVIDE("_struct");
PYTHON_PROVIDE("_struct.Struct");
PYTHON_PROVIDE("_struct.__doc__");
PYTHON_PROVIDE("_struct.__loader__");
PYTHON_PROVIDE("_struct.__name__");
PYTHON_PROVIDE("_struct.__package__");
PYTHON_PROVIDE("_struct.__spec__");
PYTHON_PROVIDE("_struct._clearcache");
PYTHON_PROVIDE("_struct.calcsize");
PYTHON_PROVIDE("_struct.error");
PYTHON_PROVIDE("_struct.iter_unpack");
PYTHON_PROVIDE("_struct.pack");
PYTHON_PROVIDE("_struct.pack_into");
PYTHON_PROVIDE("_struct.unpack");
PYTHON_PROVIDE("_struct.unpack_from");
/* struct module -- pack values into and (out of) bytes objects */

View file

@ -23,6 +23,43 @@
/* clang-format off */
PYTHON_PROVIDE("_testbuffer");
PYTHON_PROVIDE("_testbuffer.ND_FORTRAN");
PYTHON_PROVIDE("_testbuffer.ND_GETBUF_FAIL");
PYTHON_PROVIDE("_testbuffer.ND_GETBUF_UNDEFINED");
PYTHON_PROVIDE("_testbuffer.ND_MAX_NDIM");
PYTHON_PROVIDE("_testbuffer.ND_PIL");
PYTHON_PROVIDE("_testbuffer.ND_REDIRECT");
PYTHON_PROVIDE("_testbuffer.ND_SCALAR");
PYTHON_PROVIDE("_testbuffer.ND_VAREXPORT");
PYTHON_PROVIDE("_testbuffer.ND_WRITABLE");
PYTHON_PROVIDE("_testbuffer.PyBUF_ANY_CONTIGUOUS");
PYTHON_PROVIDE("_testbuffer.PyBUF_CONTIG");
PYTHON_PROVIDE("_testbuffer.PyBUF_CONTIG_RO");
PYTHON_PROVIDE("_testbuffer.PyBUF_C_CONTIGUOUS");
PYTHON_PROVIDE("_testbuffer.PyBUF_FORMAT");
PYTHON_PROVIDE("_testbuffer.PyBUF_FULL");
PYTHON_PROVIDE("_testbuffer.PyBUF_FULL_RO");
PYTHON_PROVIDE("_testbuffer.PyBUF_F_CONTIGUOUS");
PYTHON_PROVIDE("_testbuffer.PyBUF_INDIRECT");
PYTHON_PROVIDE("_testbuffer.PyBUF_ND");
PYTHON_PROVIDE("_testbuffer.PyBUF_READ");
PYTHON_PROVIDE("_testbuffer.PyBUF_RECORDS");
PYTHON_PROVIDE("_testbuffer.PyBUF_RECORDS_RO");
PYTHON_PROVIDE("_testbuffer.PyBUF_SIMPLE");
PYTHON_PROVIDE("_testbuffer.PyBUF_STRIDED");
PYTHON_PROVIDE("_testbuffer.PyBUF_STRIDED_RO");
PYTHON_PROVIDE("_testbuffer.PyBUF_STRIDES");
PYTHON_PROVIDE("_testbuffer.PyBUF_WRITABLE");
PYTHON_PROVIDE("_testbuffer.PyBUF_WRITE");
PYTHON_PROVIDE("_testbuffer.cmp_contig");
PYTHON_PROVIDE("_testbuffer.get_contiguous");
PYTHON_PROVIDE("_testbuffer.get_pointer");
PYTHON_PROVIDE("_testbuffer.get_sizeof_void_p");
PYTHON_PROVIDE("_testbuffer.is_contiguous");
PYTHON_PROVIDE("_testbuffer.ndarray");
PYTHON_PROVIDE("_testbuffer.py_buffer_to_contiguous");
PYTHON_PROVIDE("_testbuffer.slice_indices");
PYTHON_PROVIDE("_testbuffer.staticarray");
/* C Extension module to test all aspects of PEP-3118.
Written by Stefan Krah. */

View file

@ -46,6 +46,189 @@
/* clang-format off */
PYTHON_PROVIDE("_testcapi");
PYTHON_PROVIDE("_testcapi.CHAR_MAX");
PYTHON_PROVIDE("_testcapi.CHAR_MIN");
PYTHON_PROVIDE("_testcapi.DBL_MAX");
PYTHON_PROVIDE("_testcapi.DBL_MIN");
PYTHON_PROVIDE("_testcapi.FLT_MAX");
PYTHON_PROVIDE("_testcapi.FLT_MIN");
PYTHON_PROVIDE("_testcapi.INT_MAX");
PYTHON_PROVIDE("_testcapi.INT_MIN");
PYTHON_PROVIDE("_testcapi.LLONG_MAX");
PYTHON_PROVIDE("_testcapi.LLONG_MIN");
PYTHON_PROVIDE("_testcapi.LONG_MAX");
PYTHON_PROVIDE("_testcapi.LONG_MIN");
PYTHON_PROVIDE("_testcapi.PY_SSIZE_T_MAX");
PYTHON_PROVIDE("_testcapi.PY_SSIZE_T_MIN");
PYTHON_PROVIDE("_testcapi.PyTime_AsMicroseconds");
PYTHON_PROVIDE("_testcapi.PyTime_AsMilliseconds");
PYTHON_PROVIDE("_testcapi.PyTime_AsSecondsDouble");
PYTHON_PROVIDE("_testcapi.PyTime_AsTimespec");
PYTHON_PROVIDE("_testcapi.PyTime_AsTimeval");
PYTHON_PROVIDE("_testcapi.PyTime_FromSeconds");
PYTHON_PROVIDE("_testcapi.PyTime_FromSecondsObject");
PYTHON_PROVIDE("_testcapi.RecursingInfinitelyError");
PYTHON_PROVIDE("_testcapi.SHRT_MAX");
PYTHON_PROVIDE("_testcapi.SHRT_MIN");
PYTHON_PROVIDE("_testcapi.SIZEOF_PYGC_HEAD");
PYTHON_PROVIDE("_testcapi.SIZEOF_TIME_T");
PYTHON_PROVIDE("_testcapi.UCHAR_MAX");
PYTHON_PROVIDE("_testcapi.UINT_MAX");
PYTHON_PROVIDE("_testcapi.ULLONG_MAX");
PYTHON_PROVIDE("_testcapi.ULONG_MAX");
PYTHON_PROVIDE("_testcapi.USHRT_MAX");
PYTHON_PROVIDE("_testcapi.W_STOPCODE");
PYTHON_PROVIDE("_testcapi._test_structmembersType");
PYTHON_PROVIDE("_testcapi.argparsing");
PYTHON_PROVIDE("_testcapi.awaitType");
PYTHON_PROVIDE("_testcapi.code_newempty");
PYTHON_PROVIDE("_testcapi.codec_incrementaldecoder");
PYTHON_PROVIDE("_testcapi.codec_incrementalencoder");
PYTHON_PROVIDE("_testcapi.crash_no_current_thread");
PYTHON_PROVIDE("_testcapi.create_cfunction");
PYTHON_PROVIDE("_testcapi.dict_get_version");
PYTHON_PROVIDE("_testcapi.dict_getitem_knownhash");
PYTHON_PROVIDE("_testcapi.dict_hassplittable");
PYTHON_PROVIDE("_testcapi.docstring_empty");
PYTHON_PROVIDE("_testcapi.docstring_no_signature");
PYTHON_PROVIDE("_testcapi.docstring_with_invalid_signature");
PYTHON_PROVIDE("_testcapi.docstring_with_invalid_signature2");
PYTHON_PROVIDE("_testcapi.docstring_with_signature");
PYTHON_PROVIDE("_testcapi.docstring_with_signature_and_extra_newlines");
PYTHON_PROVIDE("_testcapi.docstring_with_signature_but_no_doc");
PYTHON_PROVIDE("_testcapi.docstring_with_signature_with_defaults");
PYTHON_PROVIDE("_testcapi.error");
PYTHON_PROVIDE("_testcapi.exception_print");
PYTHON_PROVIDE("_testcapi.get_args");
PYTHON_PROVIDE("_testcapi.get_kwargs");
PYTHON_PROVIDE("_testcapi.get_recursion_depth");
PYTHON_PROVIDE("_testcapi.getargs_B");
PYTHON_PROVIDE("_testcapi.getargs_C");
PYTHON_PROVIDE("_testcapi.getargs_D");
PYTHON_PROVIDE("_testcapi.getargs_H");
PYTHON_PROVIDE("_testcapi.getargs_I");
PYTHON_PROVIDE("_testcapi.getargs_K");
PYTHON_PROVIDE("_testcapi.getargs_L");
PYTHON_PROVIDE("_testcapi.getargs_S");
PYTHON_PROVIDE("_testcapi.getargs_U");
PYTHON_PROVIDE("_testcapi.getargs_Y");
PYTHON_PROVIDE("_testcapi.getargs_Z");
PYTHON_PROVIDE("_testcapi.getargs_Z_hash");
PYTHON_PROVIDE("_testcapi.getargs_b");
PYTHON_PROVIDE("_testcapi.getargs_c");
PYTHON_PROVIDE("_testcapi.getargs_d");
PYTHON_PROVIDE("_testcapi.getargs_es");
PYTHON_PROVIDE("_testcapi.getargs_es_hash");
PYTHON_PROVIDE("_testcapi.getargs_et");
PYTHON_PROVIDE("_testcapi.getargs_et_hash");
PYTHON_PROVIDE("_testcapi.getargs_f");
PYTHON_PROVIDE("_testcapi.getargs_h");
PYTHON_PROVIDE("_testcapi.getargs_i");
PYTHON_PROVIDE("_testcapi.getargs_k");
PYTHON_PROVIDE("_testcapi.getargs_keyword_only");
PYTHON_PROVIDE("_testcapi.getargs_keywords");
PYTHON_PROVIDE("_testcapi.getargs_l");
PYTHON_PROVIDE("_testcapi.getargs_n");
PYTHON_PROVIDE("_testcapi.getargs_p");
PYTHON_PROVIDE("_testcapi.getargs_positional_only_and_keywords");
PYTHON_PROVIDE("_testcapi.getargs_s");
PYTHON_PROVIDE("_testcapi.getargs_s_hash");
PYTHON_PROVIDE("_testcapi.getargs_s_star");
PYTHON_PROVIDE("_testcapi.getargs_tuple");
PYTHON_PROVIDE("_testcapi.getargs_u");
PYTHON_PROVIDE("_testcapi.getargs_u_hash");
PYTHON_PROVIDE("_testcapi.getargs_w_star");
PYTHON_PROVIDE("_testcapi.getargs_y");
PYTHON_PROVIDE("_testcapi.getargs_y_hash");
PYTHON_PROVIDE("_testcapi.getargs_y_star");
PYTHON_PROVIDE("_testcapi.getargs_z");
PYTHON_PROVIDE("_testcapi.getargs_z_hash");
PYTHON_PROVIDE("_testcapi.getargs_z_star");
PYTHON_PROVIDE("_testcapi.getbuffer_with_null_view");
PYTHON_PROVIDE("_testcapi.instancemethod");
PYTHON_PROVIDE("_testcapi.make_exception_with_doc");
PYTHON_PROVIDE("_testcapi.make_memoryview_from_NULL_pointer");
PYTHON_PROVIDE("_testcapi.matmulType");
PYTHON_PROVIDE("_testcapi.no_docstring");
PYTHON_PROVIDE("_testcapi.parse_tuple_and_keywords");
PYTHON_PROVIDE("_testcapi.profile_int");
PYTHON_PROVIDE("_testcapi.pymarshal_read_last_object_from_file");
PYTHON_PROVIDE("_testcapi.pymarshal_read_long_from_file");
PYTHON_PROVIDE("_testcapi.pymarshal_read_object_from_file");
PYTHON_PROVIDE("_testcapi.pymarshal_read_short_from_file");
PYTHON_PROVIDE("_testcapi.pymarshal_write_long_to_file");
PYTHON_PROVIDE("_testcapi.pymarshal_write_object_to_file");
PYTHON_PROVIDE("_testcapi.pymem_api_misuse");
PYTHON_PROVIDE("_testcapi.pymem_buffer_overflow");
PYTHON_PROVIDE("_testcapi.pymem_malloc_without_gil");
PYTHON_PROVIDE("_testcapi.pyobject_fastcall");
PYTHON_PROVIDE("_testcapi.pyobject_fastcalldict");
PYTHON_PROVIDE("_testcapi.pyobject_fastcallkeywords");
PYTHON_PROVIDE("_testcapi.pyobject_malloc_without_gil");
PYTHON_PROVIDE("_testcapi.pytime_object_to_time_t");
PYTHON_PROVIDE("_testcapi.pytime_object_to_timespec");
PYTHON_PROVIDE("_testcapi.pytime_object_to_timeval");
PYTHON_PROVIDE("_testcapi.raise_SIGINT_then_send_None");
PYTHON_PROVIDE("_testcapi.raise_exception");
PYTHON_PROVIDE("_testcapi.raise_memoryerror");
PYTHON_PROVIDE("_testcapi.raise_signal");
PYTHON_PROVIDE("_testcapi.remove_mem_hooks");
PYTHON_PROVIDE("_testcapi.return_null_without_error");
PYTHON_PROVIDE("_testcapi.return_result_with_error");
PYTHON_PROVIDE("_testcapi.run_in_subinterp");
PYTHON_PROVIDE("_testcapi.set_errno");
PYTHON_PROVIDE("_testcapi.set_exc_info");
PYTHON_PROVIDE("_testcapi.set_nomemory");
PYTHON_PROVIDE("_testcapi.test_L_code");
PYTHON_PROVIDE("_testcapi.test_Z_code");
PYTHON_PROVIDE("_testcapi.test_buildvalue_N");
PYTHON_PROVIDE("_testcapi.test_capsule");
PYTHON_PROVIDE("_testcapi.test_config");
PYTHON_PROVIDE("_testcapi.test_datetime_capi");
PYTHON_PROVIDE("_testcapi.test_decref_doesnt_leak");
PYTHON_PROVIDE("_testcapi.test_dict_iteration");
PYTHON_PROVIDE("_testcapi.test_empty_argparse");
PYTHON_PROVIDE("_testcapi.test_from_contiguous");
PYTHON_PROVIDE("_testcapi.test_incref_decref_API");
PYTHON_PROVIDE("_testcapi.test_incref_doesnt_leak");
PYTHON_PROVIDE("_testcapi.test_k_code");
PYTHON_PROVIDE("_testcapi.test_lazy_hash_inheritance");
PYTHON_PROVIDE("_testcapi.test_list_api");
PYTHON_PROVIDE("_testcapi.test_long_and_overflow");
PYTHON_PROVIDE("_testcapi.test_long_api");
PYTHON_PROVIDE("_testcapi.test_long_as_double");
PYTHON_PROVIDE("_testcapi.test_long_as_size_t");
PYTHON_PROVIDE("_testcapi.test_long_long_and_overflow");
PYTHON_PROVIDE("_testcapi.test_long_numbits");
PYTHON_PROVIDE("_testcapi.test_longlong_api");
PYTHON_PROVIDE("_testcapi.test_null_strings");
PYTHON_PROVIDE("_testcapi.test_pymem_alloc0");
PYTHON_PROVIDE("_testcapi.test_pymem_setallocators");
PYTHON_PROVIDE("_testcapi.test_pymem_setrawallocators");
PYTHON_PROVIDE("_testcapi.test_pyobject_setallocators");
PYTHON_PROVIDE("_testcapi.test_s_code");
PYTHON_PROVIDE("_testcapi.test_sizeof_c_types");
PYTHON_PROVIDE("_testcapi.test_string_from_format");
PYTHON_PROVIDE("_testcapi.test_string_to_double");
PYTHON_PROVIDE("_testcapi.test_u_code");
PYTHON_PROVIDE("_testcapi.test_unicode_compare_with_ascii");
PYTHON_PROVIDE("_testcapi.test_widechar");
PYTHON_PROVIDE("_testcapi.test_with_docstring");
PYTHON_PROVIDE("_testcapi.test_xdecref_doesnt_leak");
PYTHON_PROVIDE("_testcapi.test_xincref_doesnt_leak");
PYTHON_PROVIDE("_testcapi.the_number_three");
PYTHON_PROVIDE("_testcapi.traceback_print");
PYTHON_PROVIDE("_testcapi.tracemalloc_get_traceback");
PYTHON_PROVIDE("_testcapi.tracemalloc_track");
PYTHON_PROVIDE("_testcapi.tracemalloc_untrack");
PYTHON_PROVIDE("_testcapi.unicode_asucs4");
PYTHON_PROVIDE("_testcapi.unicode_aswidechar");
PYTHON_PROVIDE("_testcapi.unicode_aswidecharstring");
PYTHON_PROVIDE("_testcapi.unicode_copycharacters");
PYTHON_PROVIDE("_testcapi.unicode_encodedecimal");
PYTHON_PROVIDE("_testcapi.unicode_legacy_string");
PYTHON_PROVIDE("_testcapi.unicode_transformdecimaltoascii");
PYTHON_PROVIDE("_testcapi.with_tp_del");
/*
* C Extension module to test Python interpreter C APIs.

View file

@ -17,6 +17,13 @@
/* clang-format off */
PYTHON_PROVIDE("_testmultiphase");
PYTHON_PROVIDE("_testmultiphase.Example");
PYTHON_PROVIDE("_testmultiphase.Str");
PYTHON_PROVIDE("_testmultiphase.call_state_registration_func");
PYTHON_PROVIDE("_testmultiphase.error");
PYTHON_PROVIDE("_testmultiphase.foo");
PYTHON_PROVIDE("_testmultiphase.int_const");
PYTHON_PROVIDE("_testmultiphase.str_const");
/* Testing module for multi-phase initialization of extension modules (PEP 489)
*/

View file

@ -9,6 +9,22 @@
/* clang-format off */
PYTHON_PROVIDE("_thread");
PYTHON_PROVIDE("_thread.LockType");
PYTHON_PROVIDE("_thread.RLock");
PYTHON_PROVIDE("_thread.TIMEOUT_MAX");
PYTHON_PROVIDE("_thread._count");
PYTHON_PROVIDE("_thread._local");
PYTHON_PROVIDE("_thread._set_sentinel");
PYTHON_PROVIDE("_thread.allocate");
PYTHON_PROVIDE("_thread.allocate_lock");
PYTHON_PROVIDE("_thread.error");
PYTHON_PROVIDE("_thread.exit");
PYTHON_PROVIDE("_thread.exit_thread");
PYTHON_PROVIDE("_thread.get_ident");
PYTHON_PROVIDE("_thread.interrupt_main");
PYTHON_PROVIDE("_thread.stack_size");
PYTHON_PROVIDE("_thread.start_new");
PYTHON_PROVIDE("_thread.start_new_thread");
/* Thread module */
/* Interface to Sjoerd's portable C thread library */

View file

@ -30,6 +30,15 @@
/* clang-format off */
PYTHON_PROVIDE("_tracemalloc");
PYTHON_PROVIDE("_tracemalloc._get_object_traceback");
PYTHON_PROVIDE("_tracemalloc._get_traces");
PYTHON_PROVIDE("_tracemalloc.clear_traces");
PYTHON_PROVIDE("_tracemalloc.get_traceback_limit");
PYTHON_PROVIDE("_tracemalloc.get_traced_memory");
PYTHON_PROVIDE("_tracemalloc.get_tracemalloc_memory");
PYTHON_PROVIDE("_tracemalloc.is_tracing");
PYTHON_PROVIDE("_tracemalloc.start");
PYTHON_PROVIDE("_tracemalloc.stop");
/* Trace memory blocks allocated by PyMem_RawMalloc() */
#define TRACE_RAW_MALLOC

View file

@ -16,6 +16,14 @@
/* clang-format off */
PYTHON_PROVIDE("_weakref");
PYTHON_PROVIDE("_weakref.CallableProxyType");
PYTHON_PROVIDE("_weakref.ProxyType");
PYTHON_PROVIDE("_weakref.ReferenceType");
PYTHON_PROVIDE("_weakref._remove_dead_weakref");
PYTHON_PROVIDE("_weakref.getweakrefcount");
PYTHON_PROVIDE("_weakref.getweakrefs");
PYTHON_PROVIDE("_weakref.proxy");
PYTHON_PROVIDE("_weakref.ref");
#define GET_WEAKREFS_LISTPTR(o) \
((PyWeakReference **) PyObject_GET_WEAKREFS_LISTPTR(o))

View file

@ -25,6 +25,10 @@
/* clang-format off */
PYTHON_PROVIDE("array");
PYTHON_PROVIDE("array.ArrayType");
PYTHON_PROVIDE("array._array_reconstructor");
PYTHON_PROVIDE("array.array");
PYTHON_PROVIDE("array.typecodes");
/* Array object implementation */

View file

@ -21,6 +21,11 @@
/* clang-format off */
PYTHON_PROVIDE("atexit");
PYTHON_PROVIDE("atexit._clear");
PYTHON_PROVIDE("atexit._ncallbacks");
PYTHON_PROVIDE("atexit._run_exitfuncs");
PYTHON_PROVIDE("atexit.register");
PYTHON_PROVIDE("atexit.unregister");
/*
* atexit - allow programmer to define multiple exit functions to be executed

View file

@ -19,6 +19,33 @@
/* clang-format off */
PYTHON_PROVIDE("audioop");
PYTHON_PROVIDE("audioop.add");
PYTHON_PROVIDE("audioop.adpcm2lin");
PYTHON_PROVIDE("audioop.alaw2lin");
PYTHON_PROVIDE("audioop.avg");
PYTHON_PROVIDE("audioop.avgpp");
PYTHON_PROVIDE("audioop.bias");
PYTHON_PROVIDE("audioop.byteswap");
PYTHON_PROVIDE("audioop.cross");
PYTHON_PROVIDE("audioop.error");
PYTHON_PROVIDE("audioop.findfactor");
PYTHON_PROVIDE("audioop.findfit");
PYTHON_PROVIDE("audioop.findmax");
PYTHON_PROVIDE("audioop.getsample");
PYTHON_PROVIDE("audioop.lin2adpcm");
PYTHON_PROVIDE("audioop.lin2alaw");
PYTHON_PROVIDE("audioop.lin2lin");
PYTHON_PROVIDE("audioop.lin2ulaw");
PYTHON_PROVIDE("audioop.max");
PYTHON_PROVIDE("audioop.maxpp");
PYTHON_PROVIDE("audioop.minmax");
PYTHON_PROVIDE("audioop.mul");
PYTHON_PROVIDE("audioop.ratecv");
PYTHON_PROVIDE("audioop.reverse");
PYTHON_PROVIDE("audioop.rms");
PYTHON_PROVIDE("audioop.tomono");
PYTHON_PROVIDE("audioop.tostereo");
PYTHON_PROVIDE("audioop.ulaw2lin");
/* audioopmodule - Module to detect peak values in arrays */

View file

@ -21,6 +21,24 @@
/* clang-format off */
PYTHON_PROVIDE("binascii");
PYTHON_PROVIDE("binascii.Error");
PYTHON_PROVIDE("binascii.Incomplete");
PYTHON_PROVIDE("binascii.a2b_base64");
PYTHON_PROVIDE("binascii.a2b_hex");
PYTHON_PROVIDE("binascii.a2b_hqx");
PYTHON_PROVIDE("binascii.a2b_qp");
PYTHON_PROVIDE("binascii.a2b_uu");
PYTHON_PROVIDE("binascii.b2a_base64");
PYTHON_PROVIDE("binascii.b2a_hex");
PYTHON_PROVIDE("binascii.b2a_hqx");
PYTHON_PROVIDE("binascii.b2a_qp");
PYTHON_PROVIDE("binascii.b2a_uu");
PYTHON_PROVIDE("binascii.crc32");
PYTHON_PROVIDE("binascii.crc_hqx");
PYTHON_PROVIDE("binascii.hexlify");
PYTHON_PROVIDE("binascii.rlecode_hqx");
PYTHON_PROVIDE("binascii.rledecode_hqx");
PYTHON_PROVIDE("binascii.unhexlify");
/*
** Routines to represent binary data in ASCII and vice-versa

View file

@ -10,6 +10,11 @@
/* clang-format off */
PYTHON_PROVIDE("_codecs_cn");
PYTHON_PROVIDE("_codecs_cn.__map_gb18030ext");
PYTHON_PROVIDE("_codecs_cn.__map_gb2312");
PYTHON_PROVIDE("_codecs_cn.__map_gbcommon");
PYTHON_PROVIDE("_codecs_cn.__map_gbkext");
PYTHON_PROVIDE("_codecs_cn.getcodec");
/*
* _codecs_cn.c: Codecs collection for Mainland Chinese encodings

View file

@ -11,6 +11,10 @@
/* clang-format off */
PYTHON_PROVIDE("_codecs_hk");
PYTHON_PROVIDE("_codecs_hk.__map_big5hkscs");
PYTHON_PROVIDE("_codecs_hk.__map_big5hkscs_bmp");
PYTHON_PROVIDE("_codecs_hk.__map_big5hkscs_nonbmp");
PYTHON_PROVIDE("_codecs_hk.getcodec");
/*
* _codecs_hk.c: Codecs collection for encodings from Hong Kong

View file

@ -25,6 +25,7 @@
#include "third_party/python/Modules/cjkcodecs/mappings_jisx0213_pair.inc"
PYTHON_PROVIDE("_codecs_iso2022");
PYTHON_PROVIDE("_codecs_iso2022.getcodec");
/* STATE

View file

@ -22,6 +22,18 @@
#include "third_party/python/Modules/cjkcodecs/emu_jisx0213_2000.inc"
PYTHON_PROVIDE("_codecs_jp");
PYTHON_PROVIDE("_codecs_jp.__map_cp932ext");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0208");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0212");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_1_bmp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_1_emp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_2_bmp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_2_emp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_bmp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_emp");
PYTHON_PROVIDE("_codecs_jp.__map_jisx0213_pair");
PYTHON_PROVIDE("_codecs_jp.__map_jisxcommon");
PYTHON_PROVIDE("_codecs_jp.getcodec");
/*
* CP932 codec

View file

@ -17,6 +17,10 @@
#include "third_party/python/Modules/cjkcodecs/mappings_kr.inc"
PYTHON_PROVIDE("_codecs_kr");
PYTHON_PROVIDE("_codecs_kr.__map_cp949");
PYTHON_PROVIDE("_codecs_kr.__map_cp949ext");
PYTHON_PROVIDE("_codecs_kr.__map_ksx1001");
PYTHON_PROVIDE("_codecs_kr.getcodec");
/*
* EUC-KR codec

View file

@ -10,6 +10,9 @@
#include "third_party/python/Modules/cjkcodecs/mappings_tw.inc"
PYTHON_PROVIDE("_codecs_tw");
PYTHON_PROVIDE("_codecs_tw.__map_big5");
PYTHON_PROVIDE("_codecs_tw.__map_cp950ext");
PYTHON_PROVIDE("_codecs_tw.getcodec");
/*
* BIG5 codec

View file

@ -22,6 +22,11 @@
/* clang-format off */
PYTHON_PROVIDE("_multibytecodec");
PYTHON_PROVIDE("_multibytecodec.MultibyteIncrementalDecoder");
PYTHON_PROVIDE("_multibytecodec.MultibyteIncrementalEncoder");
PYTHON_PROVIDE("_multibytecodec.MultibyteStreamReader");
PYTHON_PROVIDE("_multibytecodec.MultibyteStreamWriter");
PYTHON_PROVIDE("_multibytecodec.__create_codec");
#include "third_party/python/Modules/cjkcodecs/clinic/multibytecodec.inc"

View file

@ -23,6 +23,36 @@
/* clang-format off */
PYTHON_PROVIDE("cmath");
PYTHON_PROVIDE("cmath.acos");
PYTHON_PROVIDE("cmath.acosh");
PYTHON_PROVIDE("cmath.asin");
PYTHON_PROVIDE("cmath.asinh");
PYTHON_PROVIDE("cmath.atan");
PYTHON_PROVIDE("cmath.atanh");
PYTHON_PROVIDE("cmath.cos");
PYTHON_PROVIDE("cmath.cosh");
PYTHON_PROVIDE("cmath.e");
PYTHON_PROVIDE("cmath.exp");
PYTHON_PROVIDE("cmath.inf");
PYTHON_PROVIDE("cmath.infj");
PYTHON_PROVIDE("cmath.isclose");
PYTHON_PROVIDE("cmath.isfinite");
PYTHON_PROVIDE("cmath.isinf");
PYTHON_PROVIDE("cmath.isnan");
PYTHON_PROVIDE("cmath.log");
PYTHON_PROVIDE("cmath.log10");
PYTHON_PROVIDE("cmath.nan");
PYTHON_PROVIDE("cmath.nanj");
PYTHON_PROVIDE("cmath.phase");
PYTHON_PROVIDE("cmath.pi");
PYTHON_PROVIDE("cmath.polar");
PYTHON_PROVIDE("cmath.rect");
PYTHON_PROVIDE("cmath.sin");
PYTHON_PROVIDE("cmath.sinh");
PYTHON_PROVIDE("cmath.sqrt");
PYTHON_PROVIDE("cmath.tan");
PYTHON_PROVIDE("cmath.tanh");
PYTHON_PROVIDE("cmath.tau");
/* Complex math module */

View file

@ -27,6 +27,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#include "third_party/python/Include/pyport.h"
#include "third_party/python/Include/pyport.h"
#include "third_party/python/Include/Python.h"
#include "third_party/python/Include/import.h"
#include "third_party/python/Include/cosmo.h"
PyObject* PyInit__decimal(void);
@ -48,6 +49,7 @@ PyObject* PyInit__locale(void);
PyObject* PyInit__io(void);
PyObject* PyInit_zipimport(void);
PyObject* PyInit_faulthandler(void);
PyObject* PyInit__hashlib(void);
#ifdef MODE_DBG
PyObject* PyInit__tracemalloc(void);
#endif
@ -66,6 +68,7 @@ PyObject* PyInit__bisect(void);
PyObject* PyInit__heapq(void);
PyObject* PyInit_unicodedata(void);
PyObject* PyInit_fcntl(void);
PyObject* PyInit__bz2(void);
PyObject* PyInit_grp(void);
PyObject* PyInit_select(void);
PyObject* PyInit_mmap(void);
@ -131,6 +134,8 @@ struct _inittab _PyImport_Inittab[] = {
{"_tracemalloc", PyInit__tracemalloc},
#endif
{"_symtable", PyInit__symtable},
{"_hashlib", PyInit__hashlib},
{"_bz2module", PyInit__bz2},
{"array", PyInit_array},
{"cmath", PyInit_cmath},
{"math", PyInit_math},

View file

@ -19,6 +19,138 @@
/* clang-format off */
PYTHON_PROVIDE("errno");
PYTHON_PROVIDE("errno.E2BIG");
PYTHON_PROVIDE("errno.EACCES");
PYTHON_PROVIDE("errno.EADDRINUSE");
PYTHON_PROVIDE("errno.EADDRNOTAVAIL");
PYTHON_PROVIDE("errno.EADV");
PYTHON_PROVIDE("errno.EAFNOSUPPORT");
PYTHON_PROVIDE("errno.EAGAIN");
PYTHON_PROVIDE("errno.EALREADY");
PYTHON_PROVIDE("errno.EBADE");
PYTHON_PROVIDE("errno.EBADF");
PYTHON_PROVIDE("errno.EBADFD");
PYTHON_PROVIDE("errno.EBADMSG");
PYTHON_PROVIDE("errno.EBADR");
PYTHON_PROVIDE("errno.EBADRQC");
PYTHON_PROVIDE("errno.EBADSLT");
PYTHON_PROVIDE("errno.EBUSY");
PYTHON_PROVIDE("errno.ECANCELED");
PYTHON_PROVIDE("errno.ECHILD");
PYTHON_PROVIDE("errno.ECHRNG");
PYTHON_PROVIDE("errno.ECOMM");
PYTHON_PROVIDE("errno.ECONNABORTED");
PYTHON_PROVIDE("errno.ECONNREFUSED");
PYTHON_PROVIDE("errno.ECONNRESET");
PYTHON_PROVIDE("errno.EDEADLK");
PYTHON_PROVIDE("errno.EDESTADDRREQ");
PYTHON_PROVIDE("errno.EDOM");
PYTHON_PROVIDE("errno.EDOTDOT");
PYTHON_PROVIDE("errno.EDQUOT");
PYTHON_PROVIDE("errno.EEXIST");
PYTHON_PROVIDE("errno.EFAULT");
PYTHON_PROVIDE("errno.EFBIG");
PYTHON_PROVIDE("errno.EHOSTDOWN");
PYTHON_PROVIDE("errno.EHOSTUNREACH");
PYTHON_PROVIDE("errno.EIDRM");
PYTHON_PROVIDE("errno.EILSEQ");
PYTHON_PROVIDE("errno.EINPROGRESS");
PYTHON_PROVIDE("errno.EINTR");
PYTHON_PROVIDE("errno.EINVAL");
PYTHON_PROVIDE("errno.EIO");
PYTHON_PROVIDE("errno.EISCONN");
PYTHON_PROVIDE("errno.EISDIR");
PYTHON_PROVIDE("errno.EISNAM");
PYTHON_PROVIDE("errno.EKEYEXPIRED");
PYTHON_PROVIDE("errno.EKEYREJECTED");
PYTHON_PROVIDE("errno.EKEYREVOKED");
PYTHON_PROVIDE("errno.EL2HLT");
PYTHON_PROVIDE("errno.EL2NSYNC");
PYTHON_PROVIDE("errno.EL3HLT");
PYTHON_PROVIDE("errno.EL3RST");
PYTHON_PROVIDE("errno.ELIBACC");
PYTHON_PROVIDE("errno.ELIBBAD");
PYTHON_PROVIDE("errno.ELIBEXEC");
PYTHON_PROVIDE("errno.ELIBMAX");
PYTHON_PROVIDE("errno.ELIBSCN");
PYTHON_PROVIDE("errno.ELNRNG");
PYTHON_PROVIDE("errno.ELOOP");
PYTHON_PROVIDE("errno.EMEDIUMTYPE");
PYTHON_PROVIDE("errno.EMFILE");
PYTHON_PROVIDE("errno.EMLINK");
PYTHON_PROVIDE("errno.EMSGSIZE");
PYTHON_PROVIDE("errno.EMULTIHOP");
PYTHON_PROVIDE("errno.ENAMETOOLONG");
PYTHON_PROVIDE("errno.ENAVAIL");
PYTHON_PROVIDE("errno.ENETDOWN");
PYTHON_PROVIDE("errno.ENETRESET");
PYTHON_PROVIDE("errno.ENETUNREACH");
PYTHON_PROVIDE("errno.ENFILE");
PYTHON_PROVIDE("errno.ENOANO");
PYTHON_PROVIDE("errno.ENOBUFS");
PYTHON_PROVIDE("errno.ENOCSI");
PYTHON_PROVIDE("errno.ENODATA");
PYTHON_PROVIDE("errno.ENODEV");
PYTHON_PROVIDE("errno.ENOENT");
PYTHON_PROVIDE("errno.ENOEXEC");
PYTHON_PROVIDE("errno.ENOKEY");
PYTHON_PROVIDE("errno.ENOLCK");
PYTHON_PROVIDE("errno.ENOLINK");
PYTHON_PROVIDE("errno.ENOMEDIUM");
PYTHON_PROVIDE("errno.ENOMEM");
PYTHON_PROVIDE("errno.ENOMSG");
PYTHON_PROVIDE("errno.ENONET");
PYTHON_PROVIDE("errno.ENOPKG");
PYTHON_PROVIDE("errno.ENOPROTOOPT");
PYTHON_PROVIDE("errno.ENOSPC");
PYTHON_PROVIDE("errno.ENOSR");
PYTHON_PROVIDE("errno.ENOSTR");
PYTHON_PROVIDE("errno.ENOSYS");
PYTHON_PROVIDE("errno.ENOTBLK");
PYTHON_PROVIDE("errno.ENOTCONN");
PYTHON_PROVIDE("errno.ENOTDIR");
PYTHON_PROVIDE("errno.ENOTEMPTY");
PYTHON_PROVIDE("errno.ENOTNAM");
PYTHON_PROVIDE("errno.ENOTRECOVERABLE");
PYTHON_PROVIDE("errno.ENOTSOCK");
PYTHON_PROVIDE("errno.ENOTSUP");
PYTHON_PROVIDE("errno.ENOTTY");
PYTHON_PROVIDE("errno.ENOTUNIQ");
PYTHON_PROVIDE("errno.ENXIO");
PYTHON_PROVIDE("errno.EOPNOTSUPP");
PYTHON_PROVIDE("errno.EOVERFLOW");
PYTHON_PROVIDE("errno.EOWNERDEAD");
PYTHON_PROVIDE("errno.EPERM");
PYTHON_PROVIDE("errno.EPFNOSUPPORT");
PYTHON_PROVIDE("errno.EPIPE");
PYTHON_PROVIDE("errno.EPROTO");
PYTHON_PROVIDE("errno.EPROTONOSUPPORT");
PYTHON_PROVIDE("errno.EPROTOTYPE");
PYTHON_PROVIDE("errno.ERANGE");
PYTHON_PROVIDE("errno.EREMCHG");
PYTHON_PROVIDE("errno.EREMOTE");
PYTHON_PROVIDE("errno.EREMOTEIO");
PYTHON_PROVIDE("errno.ERESTART");
PYTHON_PROVIDE("errno.ERFKILL");
PYTHON_PROVIDE("errno.EROFS");
PYTHON_PROVIDE("errno.ESHUTDOWN");
PYTHON_PROVIDE("errno.ESOCKTNOSUPPORT");
PYTHON_PROVIDE("errno.ESPIPE");
PYTHON_PROVIDE("errno.ESRCH");
PYTHON_PROVIDE("errno.ESRMNT");
PYTHON_PROVIDE("errno.ESTALE");
PYTHON_PROVIDE("errno.ESTRPIPE");
PYTHON_PROVIDE("errno.ETIME");
PYTHON_PROVIDE("errno.ETIMEDOUT");
PYTHON_PROVIDE("errno.ETOOMANYREFS");
PYTHON_PROVIDE("errno.ETXTBSY");
PYTHON_PROVIDE("errno.EUCLEAN");
PYTHON_PROVIDE("errno.EUNATCH");
PYTHON_PROVIDE("errno.EUSERS");
PYTHON_PROVIDE("errno.EWOULDBLOCK");
PYTHON_PROVIDE("errno.EXDEV");
PYTHON_PROVIDE("errno.EXFULL");
PYTHON_PROVIDE("errno.errorcode");
static PyMethodDef errno_methods[] = {
{NULL, NULL}

View file

@ -33,6 +33,21 @@
/* clang-format off */
PYTHON_PROVIDE("faulthandler");
PYTHON_PROVIDE("faulthandler._fatal_error");
PYTHON_PROVIDE("faulthandler._fatal_error_c_thread");
PYTHON_PROVIDE("faulthandler._read_null");
PYTHON_PROVIDE("faulthandler._sigabrt");
PYTHON_PROVIDE("faulthandler._sigfpe");
PYTHON_PROVIDE("faulthandler._sigsegv");
PYTHON_PROVIDE("faulthandler._stack_overflow");
PYTHON_PROVIDE("faulthandler.cancel_dump_traceback_later");
PYTHON_PROVIDE("faulthandler.disable");
PYTHON_PROVIDE("faulthandler.dump_traceback");
PYTHON_PROVIDE("faulthandler.dump_traceback_later");
PYTHON_PROVIDE("faulthandler.enable");
PYTHON_PROVIDE("faulthandler.is_enabled");
PYTHON_PROVIDE("faulthandler.register");
PYTHON_PROVIDE("faulthandler.unregister");
/* Allocate at maximum 100 MB of the stack to raise the stack overflow */
#define STACK_OVERFLOW_MAX_SIZE (100*1024*1024)

View file

@ -25,6 +25,37 @@
/* clang-format off */
PYTHON_PROVIDE("fcntl");
PYTHON_PROVIDE("fcntl.FD_CLOEXEC");
PYTHON_PROVIDE("fcntl.F_DUPFD");
PYTHON_PROVIDE("fcntl.F_DUPFD_CLOEXEC");
PYTHON_PROVIDE("fcntl.F_GETFD");
PYTHON_PROVIDE("fcntl.F_GETFL");
PYTHON_PROVIDE("fcntl.F_GETLEASE");
PYTHON_PROVIDE("fcntl.F_GETLK");
PYTHON_PROVIDE("fcntl.F_GETLK64");
PYTHON_PROVIDE("fcntl.F_GETOWN");
PYTHON_PROVIDE("fcntl.F_GETSIG");
PYTHON_PROVIDE("fcntl.F_NOTIFY");
PYTHON_PROVIDE("fcntl.F_RDLCK");
PYTHON_PROVIDE("fcntl.F_SETFD");
PYTHON_PROVIDE("fcntl.F_SETFL");
PYTHON_PROVIDE("fcntl.F_SETLEASE");
PYTHON_PROVIDE("fcntl.F_SETLK");
PYTHON_PROVIDE("fcntl.F_SETLK64");
PYTHON_PROVIDE("fcntl.F_SETLKW");
PYTHON_PROVIDE("fcntl.F_SETLKW64");
PYTHON_PROVIDE("fcntl.F_SETOWN");
PYTHON_PROVIDE("fcntl.F_SETSIG");
PYTHON_PROVIDE("fcntl.F_UNLCK");
PYTHON_PROVIDE("fcntl.F_WRLCK");
PYTHON_PROVIDE("fcntl.LOCK_EX");
PYTHON_PROVIDE("fcntl.LOCK_NB");
PYTHON_PROVIDE("fcntl.LOCK_SH");
PYTHON_PROVIDE("fcntl.LOCK_UN");
PYTHON_PROVIDE("fcntl.fcntl");
PYTHON_PROVIDE("fcntl.flock");
PYTHON_PROVIDE("fcntl.ioctl");
PYTHON_PROVIDE("fcntl.lockf");
/* fcntl module */

View file

@ -26,6 +26,27 @@
/* clang-format off */
PYTHON_PROVIDE("gc");
PYTHON_PROVIDE("gc.DEBUG_COLLECTABLE");
PYTHON_PROVIDE("gc.DEBUG_LEAK");
PYTHON_PROVIDE("gc.DEBUG_SAVEALL");
PYTHON_PROVIDE("gc.DEBUG_STATS");
PYTHON_PROVIDE("gc.DEBUG_UNCOLLECTABLE");
PYTHON_PROVIDE("gc.callbacks");
PYTHON_PROVIDE("gc.collect");
PYTHON_PROVIDE("gc.disable");
PYTHON_PROVIDE("gc.enable");
PYTHON_PROVIDE("gc.garbage");
PYTHON_PROVIDE("gc.get_count");
PYTHON_PROVIDE("gc.get_debug");
PYTHON_PROVIDE("gc.get_objects");
PYTHON_PROVIDE("gc.get_referents");
PYTHON_PROVIDE("gc.get_referrers");
PYTHON_PROVIDE("gc.get_stats");
PYTHON_PROVIDE("gc.get_threshold");
PYTHON_PROVIDE("gc.is_tracked");
PYTHON_PROVIDE("gc.isenabled");
PYTHON_PROVIDE("gc.set_debug");
PYTHON_PROVIDE("gc.set_threshold");
/*

View file

@ -22,6 +22,10 @@
/* clang-format off */
PYTHON_PROVIDE("grp");
PYTHON_PROVIDE("grp.getgrall");
PYTHON_PROVIDE("grp.getgrgid");
PYTHON_PROVIDE("grp.getgrnam");
PYTHON_PROVIDE("grp.struct_group");
/* UNIX group file access module */

View file

@ -17,6 +17,27 @@
/* clang-format off */
PYTHON_PROVIDE("itertools");
PYTHON_PROVIDE("itertools._grouper");
PYTHON_PROVIDE("itertools._tee");
PYTHON_PROVIDE("itertools._tee_dataobject");
PYTHON_PROVIDE("itertools.accumulate");
PYTHON_PROVIDE("itertools.chain");
PYTHON_PROVIDE("itertools.combinations");
PYTHON_PROVIDE("itertools.combinations_with_replacement");
PYTHON_PROVIDE("itertools.compress");
PYTHON_PROVIDE("itertools.count");
PYTHON_PROVIDE("itertools.cycle");
PYTHON_PROVIDE("itertools.dropwhile");
PYTHON_PROVIDE("itertools.filterfalse");
PYTHON_PROVIDE("itertools.groupby");
PYTHON_PROVIDE("itertools.islice");
PYTHON_PROVIDE("itertools.permutations");
PYTHON_PROVIDE("itertools.product");
PYTHON_PROVIDE("itertools.repeat");
PYTHON_PROVIDE("itertools.starmap");
PYTHON_PROVIDE("itertools.takewhile");
PYTHON_PROVIDE("itertools.tee");
PYTHON_PROVIDE("itertools.zip_longest");
/* Itertools module written and maintained
by Raymond D. Hettinger <python@rcn.com>

View file

@ -47,8 +47,9 @@ PYTHON_YOINK("struct"); // for memoryobject.o
PYTHON_YOINK("_bootlocale");
PYTHON_YOINK("_locale");
PYTHON_YOINK("locale");
PYTHON_YOINK("_sysconfigdata_m_cosmo_x86_64-cosmo");
PYTHON_YOINK("locale");
PYTHON_YOINK("runpy");
PYTHON_YOINK("sysconfig");
/* Python interpreter main program */

View file

@ -25,6 +25,55 @@
/* clang-format off */
PYTHON_PROVIDE("math");
PYTHON_PROVIDE("math.acos");
PYTHON_PROVIDE("math.acosh");
PYTHON_PROVIDE("math.asin");
PYTHON_PROVIDE("math.asinh");
PYTHON_PROVIDE("math.atan");
PYTHON_PROVIDE("math.atan2");
PYTHON_PROVIDE("math.atanh");
PYTHON_PROVIDE("math.ceil");
PYTHON_PROVIDE("math.copysign");
PYTHON_PROVIDE("math.cos");
PYTHON_PROVIDE("math.cosh");
PYTHON_PROVIDE("math.degrees");
PYTHON_PROVIDE("math.e");
PYTHON_PROVIDE("math.erf");
PYTHON_PROVIDE("math.erfc");
PYTHON_PROVIDE("math.exp");
PYTHON_PROVIDE("math.expm1");
PYTHON_PROVIDE("math.fabs");
PYTHON_PROVIDE("math.factorial");
PYTHON_PROVIDE("math.floor");
PYTHON_PROVIDE("math.fmod");
PYTHON_PROVIDE("math.frexp");
PYTHON_PROVIDE("math.fsum");
PYTHON_PROVIDE("math.gamma");
PYTHON_PROVIDE("math.gcd");
PYTHON_PROVIDE("math.hypot");
PYTHON_PROVIDE("math.inf");
PYTHON_PROVIDE("math.isclose");
PYTHON_PROVIDE("math.isfinite");
PYTHON_PROVIDE("math.isinf");
PYTHON_PROVIDE("math.isnan");
PYTHON_PROVIDE("math.ldexp");
PYTHON_PROVIDE("math.lgamma");
PYTHON_PROVIDE("math.log");
PYTHON_PROVIDE("math.log10");
PYTHON_PROVIDE("math.log1p");
PYTHON_PROVIDE("math.log2");
PYTHON_PROVIDE("math.modf");
PYTHON_PROVIDE("math.nan");
PYTHON_PROVIDE("math.pi");
PYTHON_PROVIDE("math.pow");
PYTHON_PROVIDE("math.radians");
PYTHON_PROVIDE("math.sin");
PYTHON_PROVIDE("math.sinh");
PYTHON_PROVIDE("math.sqrt");
PYTHON_PROVIDE("math.tan");
PYTHON_PROVIDE("math.tanh");
PYTHON_PROVIDE("math.tau");
PYTHON_PROVIDE("math.trunc");
/* Math module -- standard C math library functions, pi and e */

View file

@ -18,6 +18,8 @@
/* clang-format off */
PYTHON_PROVIDE("_md5");
PYTHON_PROVIDE("_md5.MD5Type");
PYTHON_PROVIDE("_md5.md5");
/* See below for information about the original code this module was
based upon. Additional work performed by:

View file

@ -30,6 +30,22 @@
/* clang-format off */
PYTHON_PROVIDE("mmap");
PYTHON_PROVIDE("mmap.ACCESS_COPY");
PYTHON_PROVIDE("mmap.ACCESS_READ");
PYTHON_PROVIDE("mmap.ACCESS_WRITE");
PYTHON_PROVIDE("mmap.ALLOCATIONGRANULARITY");
PYTHON_PROVIDE("mmap.MAP_ANON");
PYTHON_PROVIDE("mmap.MAP_ANONYMOUS");
PYTHON_PROVIDE("mmap.MAP_DENYWRITE");
PYTHON_PROVIDE("mmap.MAP_EXECUTABLE");
PYTHON_PROVIDE("mmap.MAP_PRIVATE");
PYTHON_PROVIDE("mmap.MAP_SHARED");
PYTHON_PROVIDE("mmap.PAGESIZE");
PYTHON_PROVIDE("mmap.PROT_EXEC");
PYTHON_PROVIDE("mmap.PROT_READ");
PYTHON_PROVIDE("mmap.PROT_WRITE");
PYTHON_PROVIDE("mmap.error");
PYTHON_PROVIDE("mmap.mmap");
/*
/ Author: Sam Rushing <rushing@nightmare.com>

View file

@ -11,6 +11,124 @@
/* clang-format off */
PYTHON_PROVIDE("ossaudiodev");
PYTHON_PROVIDE("ossaudiodev.AFMT_AC3");
PYTHON_PROVIDE("ossaudiodev.AFMT_A_LAW");
PYTHON_PROVIDE("ossaudiodev.AFMT_IMA_ADPCM");
PYTHON_PROVIDE("ossaudiodev.AFMT_MPEG");
PYTHON_PROVIDE("ossaudiodev.AFMT_MU_LAW");
PYTHON_PROVIDE("ossaudiodev.AFMT_QUERY");
PYTHON_PROVIDE("ossaudiodev.AFMT_S16_BE");
PYTHON_PROVIDE("ossaudiodev.AFMT_S16_LE");
PYTHON_PROVIDE("ossaudiodev.AFMT_S16_NE");
PYTHON_PROVIDE("ossaudiodev.AFMT_S8");
PYTHON_PROVIDE("ossaudiodev.AFMT_U16_BE");
PYTHON_PROVIDE("ossaudiodev.AFMT_U16_LE");
PYTHON_PROVIDE("ossaudiodev.AFMT_U8");
PYTHON_PROVIDE("ossaudiodev.OSSAudioError");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_HALT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_LOAD");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_RCODE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_RCVMSG");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_RDATA");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_RESET");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_RUN");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_SENDMSG");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_WCODE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_COPR_WDATA");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_BIND_CHANNEL");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_CHANNELS");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETBLKSIZE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETCAPS");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETCHANNELMASK");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETFMTS");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETIPTR");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETISPACE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETODELAY");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETOPTR");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETOSPACE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETSPDIF");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_GETTRIGGER");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_MAPINBUF");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_MAPOUTBUF");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_NONBLOCK");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_POST");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_PROFILE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_RESET");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SAMPLESIZE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETDUPLEX");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETFMT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETFRAGMENT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETSPDIF");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETSYNCRO");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SETTRIGGER");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SPEED");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_STEREO");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SUBDIVIDE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_DSP_SYNC");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_FM_4OP_ENABLE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_FM_LOAD_INSTR");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_MIDI_INFO");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_MIDI_MPUCMD");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_MIDI_MPUMODE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_MIDI_PRETIME");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_CTRLRATE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_GETINCOUNT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_GETOUTCOUNT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_GETTIME");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_NRMIDIS");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_NRSYNTHS");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_OUTOFBAND");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_PANIC");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_PERCMODE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_RESET");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_RESETSAMPLES");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_SYNC");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_TESTMIDI");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SEQ_THRESHOLD");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SYNTH_CONTROL");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SYNTH_ID");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SYNTH_INFO");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SYNTH_MEMAVL");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_SYNTH_REMOVESAMPLE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_CONTINUE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_METRONOME");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_SELECT");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_SOURCE");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_START");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_STOP");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_TEMPO");
PYTHON_PROVIDE("ossaudiodev.SNDCTL_TMR_TIMEBASE");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_ALTPCM");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_BASS");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_CD");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_DIGITAL1");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_DIGITAL2");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_DIGITAL3");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_IGAIN");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_IMIX");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_LINE");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_LINE1");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_LINE2");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_LINE3");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_MIC");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_MONITOR");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_NRDEVICES");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_OGAIN");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_PCM");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_PHONEIN");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_PHONEOUT");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_RADIO");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_RECLEV");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_SPEAKER");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_SYNTH");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_TREBLE");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_VIDEO");
PYTHON_PROVIDE("ossaudiodev.SOUND_MIXER_VOLUME");
PYTHON_PROVIDE("ossaudiodev.control_labels");
PYTHON_PROVIDE("ossaudiodev.control_names");
PYTHON_PROVIDE("ossaudiodev.error");
PYTHON_PROVIDE("ossaudiodev.open");
PYTHON_PROVIDE("ossaudiodev.openmixer");
/*
* ossaudiodev -- Python interface to the OSS (Open Sound System) API.

View file

@ -28,6 +28,18 @@
/* clang-format off */
PYTHON_PROVIDE("parser");
PYTHON_PROVIDE("parser.ParserError");
PYTHON_PROVIDE("parser.STType");
PYTHON_PROVIDE("parser._pickler");
PYTHON_PROVIDE("parser.compilest");
PYTHON_PROVIDE("parser.expr");
PYTHON_PROVIDE("parser.isexpr");
PYTHON_PROVIDE("parser.issuite");
PYTHON_PROVIDE("parser.sequence2st");
PYTHON_PROVIDE("parser.st2list");
PYTHON_PROVIDE("parser.st2tuple");
PYTHON_PROVIDE("parser.suite");
PYTHON_PROVIDE("parser.tuple2st");
/* parsermodule.c
*

View file

@ -19,6 +19,10 @@
/* clang-format off */
PYTHON_PROVIDE("pwd");
PYTHON_PROVIDE("pwd.getpwall");
PYTHON_PROVIDE("pwd.getpwnam");
PYTHON_PROVIDE("pwd.getpwuid");
PYTHON_PROVIDE("pwd.struct_passwd");
/* UNIX password file access module */

View file

@ -25,6 +25,26 @@
/* clang-format off */
PYTHON_PROVIDE("pyexpat");
PYTHON_PROVIDE("pyexpat.EXPAT_VERSION");
PYTHON_PROVIDE("pyexpat.ErrorString");
PYTHON_PROVIDE("pyexpat.ExpatError");
PYTHON_PROVIDE("pyexpat.ParserCreate");
PYTHON_PROVIDE("pyexpat.XMLParserType");
PYTHON_PROVIDE("pyexpat.XML_PARAM_ENTITY_PARSING_ALWAYS");
PYTHON_PROVIDE("pyexpat.XML_PARAM_ENTITY_PARSING_NEVER");
PYTHON_PROVIDE("pyexpat.XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE");
PYTHON_PROVIDE("pyexpat.__doc__");
PYTHON_PROVIDE("pyexpat.__loader__");
PYTHON_PROVIDE("pyexpat.__name__");
PYTHON_PROVIDE("pyexpat.__package__");
PYTHON_PROVIDE("pyexpat.__spec__");
PYTHON_PROVIDE("pyexpat.error");
PYTHON_PROVIDE("pyexpat.errors");
PYTHON_PROVIDE("pyexpat.expat_CAPI");
PYTHON_PROVIDE("pyexpat.features");
PYTHON_PROVIDE("pyexpat.model");
PYTHON_PROVIDE("pyexpat.native_encoding");
PYTHON_PROVIDE("pyexpat.version_info");
/* Do not emit Clinic output to a file as that wreaks havoc with conditionally
included methods. */

View file

@ -24,6 +24,33 @@
/* clang-format off */
PYTHON_PROVIDE("resource");
PYTHON_PROVIDE("resource.RLIMIT_AS");
PYTHON_PROVIDE("resource.RLIMIT_CORE");
PYTHON_PROVIDE("resource.RLIMIT_CPU");
PYTHON_PROVIDE("resource.RLIMIT_DATA");
PYTHON_PROVIDE("resource.RLIMIT_FSIZE");
PYTHON_PROVIDE("resource.RLIMIT_MEMLOCK");
PYTHON_PROVIDE("resource.RLIMIT_MSGQUEUE");
PYTHON_PROVIDE("resource.RLIMIT_NICE");
PYTHON_PROVIDE("resource.RLIMIT_NOFILE");
PYTHON_PROVIDE("resource.RLIMIT_NPROC");
PYTHON_PROVIDE("resource.RLIMIT_RSS");
PYTHON_PROVIDE("resource.RLIMIT_RTPRIO");
PYTHON_PROVIDE("resource.RLIMIT_RTTIME");
PYTHON_PROVIDE("resource.RLIMIT_SIGPENDING");
PYTHON_PROVIDE("resource.RLIMIT_STACK");
PYTHON_PROVIDE("resource.RLIMIT_VMEM");
PYTHON_PROVIDE("resource.RLIM_INFINITY");
PYTHON_PROVIDE("resource.RUSAGE_BOTH");
PYTHON_PROVIDE("resource.RUSAGE_CHILDREN");
PYTHON_PROVIDE("resource.RUSAGE_SELF");
PYTHON_PROVIDE("resource.RUSAGE_THREAD");
PYTHON_PROVIDE("resource.error");
PYTHON_PROVIDE("resource.getpagesize");
PYTHON_PROVIDE("resource.getrlimit");
PYTHON_PROVIDE("resource.getrusage");
PYTHON_PROVIDE("resource.setrlimit");
PYTHON_PROVIDE("resource.struct_rusage");
/* On some systems, these aren't in any header file.
On others they are, with inconsistent prototypes.

View file

@ -34,6 +34,36 @@
/* clang-format off */
PYTHON_PROVIDE("select");
PYTHON_PROVIDE("select.EPOLLERR");
PYTHON_PROVIDE("select.EPOLLET");
PYTHON_PROVIDE("select.EPOLLEXCLUSIVE");
PYTHON_PROVIDE("select.EPOLLHUP");
PYTHON_PROVIDE("select.EPOLLIN");
PYTHON_PROVIDE("select.EPOLLMSG");
PYTHON_PROVIDE("select.EPOLLONESHOT");
PYTHON_PROVIDE("select.EPOLLOUT");
PYTHON_PROVIDE("select.EPOLLPRI");
PYTHON_PROVIDE("select.EPOLLRDBAND");
PYTHON_PROVIDE("select.EPOLLRDHUP");
PYTHON_PROVIDE("select.EPOLLRDNORM");
PYTHON_PROVIDE("select.EPOLLWRBAND");
PYTHON_PROVIDE("select.EPOLLWRNORM");
PYTHON_PROVIDE("select.EPOLL_CLOEXEC");
PYTHON_PROVIDE("select.POLLERR");
PYTHON_PROVIDE("select.POLLHUP");
PYTHON_PROVIDE("select.POLLIN");
PYTHON_PROVIDE("select.POLLNVAL");
PYTHON_PROVIDE("select.POLLOUT");
PYTHON_PROVIDE("select.POLLPRI");
PYTHON_PROVIDE("select.POLLRDBAND");
PYTHON_PROVIDE("select.POLLRDHUP");
PYTHON_PROVIDE("select.POLLRDNORM");
PYTHON_PROVIDE("select.POLLWRBAND");
PYTHON_PROVIDE("select.POLLWRNORM");
PYTHON_PROVIDE("select.epoll");
PYTHON_PROVIDE("select.error");
PYTHON_PROVIDE("select.poll");
PYTHON_PROVIDE("select.select");
/* select - Module containing unix select(2) call.
Under Unix, the file descriptors are small integers.

View file

@ -18,6 +18,8 @@
/* clang-format off */
PYTHON_PROVIDE("_sha1");
PYTHON_PROVIDE("_sha1.SHA1Type");
PYTHON_PROVIDE("_sha1.sha1");
/* SHA1 module */

View file

@ -20,6 +20,10 @@
/* clang-format off */
PYTHON_PROVIDE("_sha256");
PYTHON_PROVIDE("_sha256.SHA224Type");
PYTHON_PROVIDE("_sha256.SHA256Type");
PYTHON_PROVIDE("_sha256.sha224");
PYTHON_PROVIDE("_sha256.sha256");
/* This module provides an interface to NIST's SHA-256 and SHA-224 Algorithms */

View file

@ -19,6 +19,10 @@
/* clang-format off */
PYTHON_PROVIDE("_sha512");
PYTHON_PROVIDE("_sha512.SHA384Type");
PYTHON_PROVIDE("_sha512.SHA512Type");
PYTHON_PROVIDE("_sha512.sha384");
PYTHON_PROVIDE("_sha512.sha512");
/* This module provides an interface to NIST's SHA-512 and SHA-384 Algorithms */

View file

@ -32,6 +32,66 @@
/* clang-format off */
PYTHON_PROVIDE("_signal");
PYTHON_PROVIDE("_signal.ITIMER_PROF");
PYTHON_PROVIDE("_signal.ITIMER_REAL");
PYTHON_PROVIDE("_signal.ITIMER_VIRTUAL");
PYTHON_PROVIDE("_signal.ItimerError");
PYTHON_PROVIDE("_signal.NSIG");
PYTHON_PROVIDE("_signal.SIGABRT");
PYTHON_PROVIDE("_signal.SIGALRM");
PYTHON_PROVIDE("_signal.SIGBUS");
PYTHON_PROVIDE("_signal.SIGCHLD");
PYTHON_PROVIDE("_signal.SIGCONT");
PYTHON_PROVIDE("_signal.SIGFPE");
PYTHON_PROVIDE("_signal.SIGHUP");
PYTHON_PROVIDE("_signal.SIGILL");
PYTHON_PROVIDE("_signal.SIGINT");
PYTHON_PROVIDE("_signal.SIGIO");
PYTHON_PROVIDE("_signal.SIGIOT");
PYTHON_PROVIDE("_signal.SIGKILL");
PYTHON_PROVIDE("_signal.SIGPIPE");
PYTHON_PROVIDE("_signal.SIGPOLL");
PYTHON_PROVIDE("_signal.SIGPROF");
PYTHON_PROVIDE("_signal.SIGPWR");
PYTHON_PROVIDE("_signal.SIGQUIT");
PYTHON_PROVIDE("_signal.SIGRTMAX");
PYTHON_PROVIDE("_signal.SIGRTMIN");
PYTHON_PROVIDE("_signal.SIGSEGV");
PYTHON_PROVIDE("_signal.SIGSTOP");
PYTHON_PROVIDE("_signal.SIGSYS");
PYTHON_PROVIDE("_signal.SIGTERM");
PYTHON_PROVIDE("_signal.SIGTRAP");
PYTHON_PROVIDE("_signal.SIGTSTP");
PYTHON_PROVIDE("_signal.SIGTTIN");
PYTHON_PROVIDE("_signal.SIGTTOU");
PYTHON_PROVIDE("_signal.SIGURG");
PYTHON_PROVIDE("_signal.SIGUSR1");
PYTHON_PROVIDE("_signal.SIGUSR2");
PYTHON_PROVIDE("_signal.SIGVTALRM");
PYTHON_PROVIDE("_signal.SIGWINCH");
PYTHON_PROVIDE("_signal.SIGXCPU");
PYTHON_PROVIDE("_signal.SIGXFSZ");
PYTHON_PROVIDE("_signal.SIG_BLOCK");
PYTHON_PROVIDE("_signal.SIG_DFL");
PYTHON_PROVIDE("_signal.SIG_IGN");
PYTHON_PROVIDE("_signal.SIG_SETMASK");
PYTHON_PROVIDE("_signal.SIG_UNBLOCK");
PYTHON_PROVIDE("_signal.alarm");
PYTHON_PROVIDE("_signal.default_int_handler");
PYTHON_PROVIDE("_signal.getitimer");
PYTHON_PROVIDE("_signal.getsignal");
PYTHON_PROVIDE("_signal.pause");
PYTHON_PROVIDE("_signal.pthread_kill");
PYTHON_PROVIDE("_signal.pthread_sigmask");
PYTHON_PROVIDE("_signal.set_wakeup_fd");
PYTHON_PROVIDE("_signal.setitimer");
PYTHON_PROVIDE("_signal.siginterrupt");
PYTHON_PROVIDE("_signal.signal");
PYTHON_PROVIDE("_signal.sigpending");
PYTHON_PROVIDE("_signal.sigtimedwait");
PYTHON_PROVIDE("_signal.sigwait");
PYTHON_PROVIDE("_signal.sigwaitinfo");
PYTHON_PROVIDE("_signal.struct_siginfo");
/* Signal module -- many thanks to Lance Ellinghaus */

View file

@ -56,6 +56,217 @@
/* clang-format off */
PYTHON_PROVIDE("_socket");
PYTHON_PROVIDE("_socket.AF_APPLETALK");
PYTHON_PROVIDE("_socket.AF_ASH");
PYTHON_PROVIDE("_socket.AF_ATMPVC");
PYTHON_PROVIDE("_socket.AF_ATMSVC");
PYTHON_PROVIDE("_socket.AF_AX25");
PYTHON_PROVIDE("_socket.AF_BRIDGE");
PYTHON_PROVIDE("_socket.AF_CAN");
PYTHON_PROVIDE("_socket.AF_ECONET");
PYTHON_PROVIDE("_socket.AF_INET");
PYTHON_PROVIDE("_socket.AF_INET6");
PYTHON_PROVIDE("_socket.AF_IPX");
PYTHON_PROVIDE("_socket.AF_IRDA");
PYTHON_PROVIDE("_socket.AF_KEY");
PYTHON_PROVIDE("_socket.AF_LLC");
PYTHON_PROVIDE("_socket.AF_NETBEUI");
PYTHON_PROVIDE("_socket.AF_NETROM");
PYTHON_PROVIDE("_socket.AF_PACKET");
PYTHON_PROVIDE("_socket.AF_PPPOX");
PYTHON_PROVIDE("_socket.AF_RDS");
PYTHON_PROVIDE("_socket.AF_ROSE");
PYTHON_PROVIDE("_socket.AF_ROUTE");
PYTHON_PROVIDE("_socket.AF_SECURITY");
PYTHON_PROVIDE("_socket.AF_SNA");
PYTHON_PROVIDE("_socket.AF_UNIX");
PYTHON_PROVIDE("_socket.AF_UNSPEC");
PYTHON_PROVIDE("_socket.AF_X25");
PYTHON_PROVIDE("_socket.AI_ADDRCONFIG");
PYTHON_PROVIDE("_socket.AI_ALL");
PYTHON_PROVIDE("_socket.AI_CANONNAME");
PYTHON_PROVIDE("_socket.AI_NUMERICHOST");
PYTHON_PROVIDE("_socket.AI_NUMERICSERV");
PYTHON_PROVIDE("_socket.AI_PASSIVE");
PYTHON_PROVIDE("_socket.AI_V4MAPPED");
PYTHON_PROVIDE("_socket.CAPI");
PYTHON_PROVIDE("_socket.EAI_ADDRFAMILY");
PYTHON_PROVIDE("_socket.EAI_AGAIN");
PYTHON_PROVIDE("_socket.EAI_BADFLAGS");
PYTHON_PROVIDE("_socket.EAI_FAIL");
PYTHON_PROVIDE("_socket.EAI_FAMILY");
PYTHON_PROVIDE("_socket.EAI_MEMORY");
PYTHON_PROVIDE("_socket.EAI_NODATA");
PYTHON_PROVIDE("_socket.EAI_NONAME");
PYTHON_PROVIDE("_socket.EAI_OVERFLOW");
PYTHON_PROVIDE("_socket.EAI_SERVICE");
PYTHON_PROVIDE("_socket.EAI_SOCKTYPE");
PYTHON_PROVIDE("_socket.EAI_SYSTEM");
PYTHON_PROVIDE("_socket.INADDR_ALLHOSTS_GROUP");
PYTHON_PROVIDE("_socket.INADDR_ANY");
PYTHON_PROVIDE("_socket.INADDR_BROADCAST");
PYTHON_PROVIDE("_socket.INADDR_LOOPBACK");
PYTHON_PROVIDE("_socket.INADDR_MAX_LOCAL_GROUP");
PYTHON_PROVIDE("_socket.INADDR_NONE");
PYTHON_PROVIDE("_socket.INADDR_UNSPEC_GROUP");
PYTHON_PROVIDE("_socket.IPPORT_RESERVED");
PYTHON_PROVIDE("_socket.IPPORT_USERRESERVED");
PYTHON_PROVIDE("_socket.IPPROTO_AH");
PYTHON_PROVIDE("_socket.IPPROTO_DSTOPTS");
PYTHON_PROVIDE("_socket.IPPROTO_EGP");
PYTHON_PROVIDE("_socket.IPPROTO_ESP");
PYTHON_PROVIDE("_socket.IPPROTO_FRAGMENT");
PYTHON_PROVIDE("_socket.IPPROTO_GRE");
PYTHON_PROVIDE("_socket.IPPROTO_HOPOPTS");
PYTHON_PROVIDE("_socket.IPPROTO_ICMP");
PYTHON_PROVIDE("_socket.IPPROTO_ICMPV6");
PYTHON_PROVIDE("_socket.IPPROTO_IDP");
PYTHON_PROVIDE("_socket.IPPROTO_IGMP");
PYTHON_PROVIDE("_socket.IPPROTO_IP");
PYTHON_PROVIDE("_socket.IPPROTO_IPIP");
PYTHON_PROVIDE("_socket.IPPROTO_IPV6");
PYTHON_PROVIDE("_socket.IPPROTO_MAX");
PYTHON_PROVIDE("_socket.IPPROTO_NONE");
PYTHON_PROVIDE("_socket.IPPROTO_PIM");
PYTHON_PROVIDE("_socket.IPPROTO_PUP");
PYTHON_PROVIDE("_socket.IPPROTO_RAW");
PYTHON_PROVIDE("_socket.IPPROTO_ROUTING");
PYTHON_PROVIDE("_socket.IPPROTO_RSVP");
PYTHON_PROVIDE("_socket.IPPROTO_SCTP");
PYTHON_PROVIDE("_socket.IPPROTO_TCP");
PYTHON_PROVIDE("_socket.IPPROTO_TP");
PYTHON_PROVIDE("_socket.IPPROTO_UDP");
PYTHON_PROVIDE("_socket.IP_ADD_MEMBERSHIP");
PYTHON_PROVIDE("_socket.IP_DEFAULT_MULTICAST_LOOP");
PYTHON_PROVIDE("_socket.IP_DEFAULT_MULTICAST_TTL");
PYTHON_PROVIDE("_socket.IP_DROP_MEMBERSHIP");
PYTHON_PROVIDE("_socket.IP_HDRINCL");
PYTHON_PROVIDE("_socket.IP_MAX_MEMBERSHIPS");
PYTHON_PROVIDE("_socket.IP_MULTICAST_IF");
PYTHON_PROVIDE("_socket.IP_MULTICAST_LOOP");
PYTHON_PROVIDE("_socket.IP_MULTICAST_TTL");
PYTHON_PROVIDE("_socket.IP_OPTIONS");
PYTHON_PROVIDE("_socket.IP_RECVOPTS");
PYTHON_PROVIDE("_socket.IP_RECVRETOPTS");
PYTHON_PROVIDE("_socket.IP_RETOPTS");
PYTHON_PROVIDE("_socket.IP_TOS");
PYTHON_PROVIDE("_socket.IP_TRANSPARENT");
PYTHON_PROVIDE("_socket.IP_TTL");
PYTHON_PROVIDE("_socket.MSG_CMSG_CLOEXEC");
PYTHON_PROVIDE("_socket.MSG_CONFIRM");
PYTHON_PROVIDE("_socket.MSG_CTRUNC");
PYTHON_PROVIDE("_socket.MSG_DONTROUTE");
PYTHON_PROVIDE("_socket.MSG_DONTWAIT");
PYTHON_PROVIDE("_socket.MSG_EOF");
PYTHON_PROVIDE("_socket.MSG_EOR");
PYTHON_PROVIDE("_socket.MSG_ERRQUEUE");
PYTHON_PROVIDE("_socket.MSG_FASTOPEN");
PYTHON_PROVIDE("_socket.MSG_MORE");
PYTHON_PROVIDE("_socket.MSG_NOSIGNAL");
PYTHON_PROVIDE("_socket.MSG_NOTIFICATION");
PYTHON_PROVIDE("_socket.MSG_OOB");
PYTHON_PROVIDE("_socket.MSG_PEEK");
PYTHON_PROVIDE("_socket.MSG_TRUNC");
PYTHON_PROVIDE("_socket.MSG_WAITALL");
PYTHON_PROVIDE("_socket.NI_DGRAM");
PYTHON_PROVIDE("_socket.NI_MAXHOST");
PYTHON_PROVIDE("_socket.NI_MAXSERV");
PYTHON_PROVIDE("_socket.NI_NAMEREQD");
PYTHON_PROVIDE("_socket.NI_NOFQDN");
PYTHON_PROVIDE("_socket.NI_NUMERICHOST");
PYTHON_PROVIDE("_socket.NI_NUMERICSERV");
PYTHON_PROVIDE("_socket.PF_CAN");
PYTHON_PROVIDE("_socket.PF_PACKET");
PYTHON_PROVIDE("_socket.PF_RDS");
PYTHON_PROVIDE("_socket.SHUT_RD");
PYTHON_PROVIDE("_socket.SHUT_RDWR");
PYTHON_PROVIDE("_socket.SHUT_WR");
PYTHON_PROVIDE("_socket.SOCK_CLOEXEC");
PYTHON_PROVIDE("_socket.SOCK_DGRAM");
PYTHON_PROVIDE("_socket.SOCK_NONBLOCK");
PYTHON_PROVIDE("_socket.SOCK_RAW");
PYTHON_PROVIDE("_socket.SOCK_RDM");
PYTHON_PROVIDE("_socket.SOCK_SEQPACKET");
PYTHON_PROVIDE("_socket.SOCK_STREAM");
PYTHON_PROVIDE("_socket.SOL_IP");
PYTHON_PROVIDE("_socket.SOL_RDS");
PYTHON_PROVIDE("_socket.SOL_SOCKET");
PYTHON_PROVIDE("_socket.SOL_TCP");
PYTHON_PROVIDE("_socket.SOL_UDP");
PYTHON_PROVIDE("_socket.SOMAXCONN");
PYTHON_PROVIDE("_socket.SO_ACCEPTCONN");
PYTHON_PROVIDE("_socket.SO_BINDTODEVICE");
PYTHON_PROVIDE("_socket.SO_BROADCAST");
PYTHON_PROVIDE("_socket.SO_DEBUG");
PYTHON_PROVIDE("_socket.SO_DOMAIN");
PYTHON_PROVIDE("_socket.SO_DONTROUTE");
PYTHON_PROVIDE("_socket.SO_ERROR");
PYTHON_PROVIDE("_socket.SO_KEEPALIVE");
PYTHON_PROVIDE("_socket.SO_LINGER");
PYTHON_PROVIDE("_socket.SO_MARK");
PYTHON_PROVIDE("_socket.SO_OOBINLINE");
PYTHON_PROVIDE("_socket.SO_PASSCRED");
PYTHON_PROVIDE("_socket.SO_PASSSEC");
PYTHON_PROVIDE("_socket.SO_PEERCRED");
PYTHON_PROVIDE("_socket.SO_PEERSEC");
PYTHON_PROVIDE("_socket.SO_PRIORITY");
PYTHON_PROVIDE("_socket.SO_PROTOCOL");
PYTHON_PROVIDE("_socket.SO_RCVBUF");
PYTHON_PROVIDE("_socket.SO_RCVLOWAT");
PYTHON_PROVIDE("_socket.SO_RCVTIMEO");
PYTHON_PROVIDE("_socket.SO_REUSEADDR");
PYTHON_PROVIDE("_socket.SO_REUSEPORT");
PYTHON_PROVIDE("_socket.SO_SNDBUF");
PYTHON_PROVIDE("_socket.SO_SNDLOWAT");
PYTHON_PROVIDE("_socket.SO_SNDTIMEO");
PYTHON_PROVIDE("_socket.SO_TYPE");
PYTHON_PROVIDE("_socket.SocketType");
PYTHON_PROVIDE("_socket.TCP_CONGESTION");
PYTHON_PROVIDE("_socket.TCP_CORK");
PYTHON_PROVIDE("_socket.TCP_DEFER_ACCEPT");
PYTHON_PROVIDE("_socket.TCP_FASTOPEN");
PYTHON_PROVIDE("_socket.TCP_FASTOPEN_CONNECT");
PYTHON_PROVIDE("_socket.TCP_INFO");
PYTHON_PROVIDE("_socket.TCP_KEEPCNT");
PYTHON_PROVIDE("_socket.TCP_KEEPIDLE");
PYTHON_PROVIDE("_socket.TCP_KEEPINTVL");
PYTHON_PROVIDE("_socket.TCP_LINGER2");
PYTHON_PROVIDE("_socket.TCP_MAXSEG");
PYTHON_PROVIDE("_socket.TCP_NODELAY");
PYTHON_PROVIDE("_socket.TCP_QUICKACK");
PYTHON_PROVIDE("_socket.TCP_SAVED_SYN");
PYTHON_PROVIDE("_socket.TCP_SAVE_SYN");
PYTHON_PROVIDE("_socket.TCP_SYNCNT");
PYTHON_PROVIDE("_socket.TCP_USER_TIMEOUT");
PYTHON_PROVIDE("_socket.TCP_WINDOW_CLAMP");
PYTHON_PROVIDE("_socket.dup");
PYTHON_PROVIDE("_socket.error");
PYTHON_PROVIDE("_socket.gaierror");
PYTHON_PROVIDE("_socket.getaddrinfo");
PYTHON_PROVIDE("_socket.getdefaulttimeout");
PYTHON_PROVIDE("_socket.gethostbyaddr");
PYTHON_PROVIDE("_socket.gethostbyname");
PYTHON_PROVIDE("_socket.gethostbyname_ex");
PYTHON_PROVIDE("_socket.gethostname");
PYTHON_PROVIDE("_socket.getnameinfo");
PYTHON_PROVIDE("_socket.getprotobyname");
PYTHON_PROVIDE("_socket.getservbyname");
PYTHON_PROVIDE("_socket.getservbyport");
PYTHON_PROVIDE("_socket.has_ipv6");
PYTHON_PROVIDE("_socket.herror");
PYTHON_PROVIDE("_socket.htonl");
PYTHON_PROVIDE("_socket.htons");
PYTHON_PROVIDE("_socket.inet_aton");
PYTHON_PROVIDE("_socket.inet_ntoa");
PYTHON_PROVIDE("_socket.inet_ntop");
PYTHON_PROVIDE("_socket.inet_pton");
PYTHON_PROVIDE("_socket.ntohl");
PYTHON_PROVIDE("_socket.ntohs");
PYTHON_PROVIDE("_socket.setdefaulttimeout");
PYTHON_PROVIDE("_socket.sethostname");
PYTHON_PROVIDE("_socket.socket");
PYTHON_PROVIDE("_socket.socketpair");
PYTHON_PROVIDE("_socket.timeout");
/*

View file

@ -13,6 +13,9 @@
/* clang-format off */
PYTHON_PROVIDE("spwd");
PYTHON_PROVIDE("spwd.getspall");
PYTHON_PROVIDE("spwd.getspnam");
PYTHON_PROVIDE("spwd.struct_spwd");
/* UNIX shadow password file access module */
/* A lot of code has been taken from pwdmodule.c */

View file

@ -16,6 +16,26 @@
/* clang-format off */
PYTHON_PROVIDE("_symtable");
PYTHON_PROVIDE("_symtable.CELL");
PYTHON_PROVIDE("_symtable.DEF_ANNOT");
PYTHON_PROVIDE("_symtable.DEF_BOUND");
PYTHON_PROVIDE("_symtable.DEF_FREE");
PYTHON_PROVIDE("_symtable.DEF_FREE_CLASS");
PYTHON_PROVIDE("_symtable.DEF_GLOBAL");
PYTHON_PROVIDE("_symtable.DEF_IMPORT");
PYTHON_PROVIDE("_symtable.DEF_LOCAL");
PYTHON_PROVIDE("_symtable.DEF_PARAM");
PYTHON_PROVIDE("_symtable.FREE");
PYTHON_PROVIDE("_symtable.GLOBAL_EXPLICIT");
PYTHON_PROVIDE("_symtable.GLOBAL_IMPLICIT");
PYTHON_PROVIDE("_symtable.LOCAL");
PYTHON_PROVIDE("_symtable.SCOPE_MASK");
PYTHON_PROVIDE("_symtable.SCOPE_OFF");
PYTHON_PROVIDE("_symtable.TYPE_CLASS");
PYTHON_PROVIDE("_symtable.TYPE_FUNCTION");
PYTHON_PROVIDE("_symtable.TYPE_MODULE");
PYTHON_PROVIDE("_symtable.USE");
PYTHON_PROVIDE("_symtable.symtable");
static PyObject *
symtable_symtable(PyObject *self, PyObject *args)

View file

@ -20,6 +20,44 @@
/* clang-format off */
PYTHON_PROVIDE("syslog");
PYTHON_PROVIDE("syslog.LOG_ALERT");
PYTHON_PROVIDE("syslog.LOG_AUTH");
PYTHON_PROVIDE("syslog.LOG_CONS");
PYTHON_PROVIDE("syslog.LOG_CRIT");
PYTHON_PROVIDE("syslog.LOG_CRON");
PYTHON_PROVIDE("syslog.LOG_DAEMON");
PYTHON_PROVIDE("syslog.LOG_DEBUG");
PYTHON_PROVIDE("syslog.LOG_EMERG");
PYTHON_PROVIDE("syslog.LOG_ERR");
PYTHON_PROVIDE("syslog.LOG_INFO");
PYTHON_PROVIDE("syslog.LOG_KERN");
PYTHON_PROVIDE("syslog.LOG_LOCAL0");
PYTHON_PROVIDE("syslog.LOG_LOCAL1");
PYTHON_PROVIDE("syslog.LOG_LOCAL2");
PYTHON_PROVIDE("syslog.LOG_LOCAL3");
PYTHON_PROVIDE("syslog.LOG_LOCAL4");
PYTHON_PROVIDE("syslog.LOG_LOCAL5");
PYTHON_PROVIDE("syslog.LOG_LOCAL6");
PYTHON_PROVIDE("syslog.LOG_LOCAL7");
PYTHON_PROVIDE("syslog.LOG_LPR");
PYTHON_PROVIDE("syslog.LOG_MAIL");
PYTHON_PROVIDE("syslog.LOG_MASK");
PYTHON_PROVIDE("syslog.LOG_NDELAY");
PYTHON_PROVIDE("syslog.LOG_NEWS");
PYTHON_PROVIDE("syslog.LOG_NOTICE");
PYTHON_PROVIDE("syslog.LOG_NOWAIT");
PYTHON_PROVIDE("syslog.LOG_ODELAY");
PYTHON_PROVIDE("syslog.LOG_PERROR");
PYTHON_PROVIDE("syslog.LOG_PID");
PYTHON_PROVIDE("syslog.LOG_SYSLOG");
PYTHON_PROVIDE("syslog.LOG_UPTO");
PYTHON_PROVIDE("syslog.LOG_USER");
PYTHON_PROVIDE("syslog.LOG_UUCP");
PYTHON_PROVIDE("syslog.LOG_WARNING");
PYTHON_PROVIDE("syslog.closelog");
PYTHON_PROVIDE("syslog.openlog");
PYTHON_PROVIDE("syslog.setlogmask");
PYTHON_PROVIDE("syslog.syslog");
/***********************************************************
Copyright 1994 by Lance Ellinghouse,

View file

@ -26,6 +26,204 @@
/* clang-format off */
PYTHON_PROVIDE("termios");
PYTHON_PROVIDE("termios.B1000000");
PYTHON_PROVIDE("termios.B110");
PYTHON_PROVIDE("termios.B115200");
PYTHON_PROVIDE("termios.B1152000");
PYTHON_PROVIDE("termios.B1200");
PYTHON_PROVIDE("termios.B134");
PYTHON_PROVIDE("termios.B150");
PYTHON_PROVIDE("termios.B1500000");
PYTHON_PROVIDE("termios.B1800");
PYTHON_PROVIDE("termios.B19200");
PYTHON_PROVIDE("termios.B200");
PYTHON_PROVIDE("termios.B2000000");
PYTHON_PROVIDE("termios.B230400");
PYTHON_PROVIDE("termios.B2400");
PYTHON_PROVIDE("termios.B2500000");
PYTHON_PROVIDE("termios.B300");
PYTHON_PROVIDE("termios.B3000000");
PYTHON_PROVIDE("termios.B3500000");
PYTHON_PROVIDE("termios.B38400");
PYTHON_PROVIDE("termios.B4000000");
PYTHON_PROVIDE("termios.B4800");
PYTHON_PROVIDE("termios.B50");
PYTHON_PROVIDE("termios.B500000");
PYTHON_PROVIDE("termios.B57600");
PYTHON_PROVIDE("termios.B576000");
PYTHON_PROVIDE("termios.B600");
PYTHON_PROVIDE("termios.B75");
PYTHON_PROVIDE("termios.B9600");
PYTHON_PROVIDE("termios.BRKINT");
PYTHON_PROVIDE("termios.BS0");
PYTHON_PROVIDE("termios.BS1");
PYTHON_PROVIDE("termios.BSDLY");
PYTHON_PROVIDE("termios.CBAUD");
PYTHON_PROVIDE("termios.CBAUDEX");
PYTHON_PROVIDE("termios.CDSUSP");
PYTHON_PROVIDE("termios.CEOF");
PYTHON_PROVIDE("termios.CEOL");
PYTHON_PROVIDE("termios.CEOT");
PYTHON_PROVIDE("termios.CERASE");
PYTHON_PROVIDE("termios.CFLUSH");
PYTHON_PROVIDE("termios.CIBAUD");
PYTHON_PROVIDE("termios.CINTR");
PYTHON_PROVIDE("termios.CKILL");
PYTHON_PROVIDE("termios.CLNEXT");
PYTHON_PROVIDE("termios.CLOCAL");
PYTHON_PROVIDE("termios.CQUIT");
PYTHON_PROVIDE("termios.CR0");
PYTHON_PROVIDE("termios.CR1");
PYTHON_PROVIDE("termios.CR2");
PYTHON_PROVIDE("termios.CR3");
PYTHON_PROVIDE("termios.CRDLY");
PYTHON_PROVIDE("termios.CREAD");
PYTHON_PROVIDE("termios.CRPRNT");
PYTHON_PROVIDE("termios.CS5");
PYTHON_PROVIDE("termios.CS6");
PYTHON_PROVIDE("termios.CS7");
PYTHON_PROVIDE("termios.CS8");
PYTHON_PROVIDE("termios.CSIZE");
PYTHON_PROVIDE("termios.CSTART");
PYTHON_PROVIDE("termios.CSTOP");
PYTHON_PROVIDE("termios.CSTOPB");
PYTHON_PROVIDE("termios.CSUSP");
PYTHON_PROVIDE("termios.CWERASE");
PYTHON_PROVIDE("termios.ECHO");
PYTHON_PROVIDE("termios.ECHOCTL");
PYTHON_PROVIDE("termios.ECHOE");
PYTHON_PROVIDE("termios.ECHOK");
PYTHON_PROVIDE("termios.ECHOKE");
PYTHON_PROVIDE("termios.ECHONL");
PYTHON_PROVIDE("termios.ECHOPRT");
PYTHON_PROVIDE("termios.EXTA");
PYTHON_PROVIDE("termios.EXTB");
PYTHON_PROVIDE("termios.FF0");
PYTHON_PROVIDE("termios.FF1");
PYTHON_PROVIDE("termios.FFDLY");
PYTHON_PROVIDE("termios.FIOASYNC");
PYTHON_PROVIDE("termios.FIOCLEX");
PYTHON_PROVIDE("termios.FIONBIO");
PYTHON_PROVIDE("termios.FIONCLEX");
PYTHON_PROVIDE("termios.FIONREAD");
PYTHON_PROVIDE("termios.FLUSHO");
PYTHON_PROVIDE("termios.HUPCL");
PYTHON_PROVIDE("termios.ICANON");
PYTHON_PROVIDE("termios.ICRNL");
PYTHON_PROVIDE("termios.IEXTEN");
PYTHON_PROVIDE("termios.IGNBRK");
PYTHON_PROVIDE("termios.IGNCR");
PYTHON_PROVIDE("termios.IGNPAR");
PYTHON_PROVIDE("termios.IMAXBEL");
PYTHON_PROVIDE("termios.INLCR");
PYTHON_PROVIDE("termios.INPCK");
PYTHON_PROVIDE("termios.ISIG");
PYTHON_PROVIDE("termios.ISTRIP");
PYTHON_PROVIDE("termios.IUCLC");
PYTHON_PROVIDE("termios.IXANY");
PYTHON_PROVIDE("termios.IXOFF");
PYTHON_PROVIDE("termios.IXON");
PYTHON_PROVIDE("termios.NCCS");
PYTHON_PROVIDE("termios.NL0");
PYTHON_PROVIDE("termios.NL1");
PYTHON_PROVIDE("termios.NLDLY");
PYTHON_PROVIDE("termios.NOFLSH");
PYTHON_PROVIDE("termios.OCRNL");
PYTHON_PROVIDE("termios.OFDEL");
PYTHON_PROVIDE("termios.OFILL");
PYTHON_PROVIDE("termios.OLCUC");
PYTHON_PROVIDE("termios.ONLCR");
PYTHON_PROVIDE("termios.ONLRET");
PYTHON_PROVIDE("termios.ONOCR");
PYTHON_PROVIDE("termios.OPOST");
PYTHON_PROVIDE("termios.PARENB");
PYTHON_PROVIDE("termios.PARMRK");
PYTHON_PROVIDE("termios.PARODD");
PYTHON_PROVIDE("termios.PENDIN");
PYTHON_PROVIDE("termios.TAB0");
PYTHON_PROVIDE("termios.TAB1");
PYTHON_PROVIDE("termios.TAB2");
PYTHON_PROVIDE("termios.TAB3");
PYTHON_PROVIDE("termios.TABDLY");
PYTHON_PROVIDE("termios.TCFLSH");
PYTHON_PROVIDE("termios.TCGETS");
PYTHON_PROVIDE("termios.TCIFLUSH");
PYTHON_PROVIDE("termios.TCIOFF");
PYTHON_PROVIDE("termios.TCIOFLUSH");
PYTHON_PROVIDE("termios.TCION");
PYTHON_PROVIDE("termios.TCOFLUSH");
PYTHON_PROVIDE("termios.TCOOFF");
PYTHON_PROVIDE("termios.TCOON");
PYTHON_PROVIDE("termios.TCSADRAIN");
PYTHON_PROVIDE("termios.TCSAFLUSH");
PYTHON_PROVIDE("termios.TCSANOW");
PYTHON_PROVIDE("termios.TCSBRK");
PYTHON_PROVIDE("termios.TCSETS");
PYTHON_PROVIDE("termios.TCSETSF");
PYTHON_PROVIDE("termios.TCSETSW");
PYTHON_PROVIDE("termios.TCXONC");
PYTHON_PROVIDE("termios.TIOCCONS");
PYTHON_PROVIDE("termios.TIOCGETD");
PYTHON_PROVIDE("termios.TIOCGPGRP");
PYTHON_PROVIDE("termios.TIOCGWINSZ");
PYTHON_PROVIDE("termios.TIOCMBIC");
PYTHON_PROVIDE("termios.TIOCMBIS");
PYTHON_PROVIDE("termios.TIOCMGET");
PYTHON_PROVIDE("termios.TIOCMSET");
PYTHON_PROVIDE("termios.TIOCM_CAR");
PYTHON_PROVIDE("termios.TIOCM_CD");
PYTHON_PROVIDE("termios.TIOCM_CTS");
PYTHON_PROVIDE("termios.TIOCM_DSR");
PYTHON_PROVIDE("termios.TIOCM_DTR");
PYTHON_PROVIDE("termios.TIOCM_LE");
PYTHON_PROVIDE("termios.TIOCM_RI");
PYTHON_PROVIDE("termios.TIOCM_RNG");
PYTHON_PROVIDE("termios.TIOCM_RTS");
PYTHON_PROVIDE("termios.TIOCM_SR");
PYTHON_PROVIDE("termios.TIOCM_ST");
PYTHON_PROVIDE("termios.TIOCNOTTY");
PYTHON_PROVIDE("termios.TIOCNXCL");
PYTHON_PROVIDE("termios.TIOCOUTQ");
PYTHON_PROVIDE("termios.TIOCPKT");
PYTHON_PROVIDE("termios.TIOCSCTTY");
PYTHON_PROVIDE("termios.TIOCSERGETLSR");
PYTHON_PROVIDE("termios.TIOCSERGETMULTI");
PYTHON_PROVIDE("termios.TIOCSERSETMULTI");
PYTHON_PROVIDE("termios.TIOCSER_TEMT");
PYTHON_PROVIDE("termios.TIOCSETD");
PYTHON_PROVIDE("termios.TIOCSPGRP");
PYTHON_PROVIDE("termios.TIOCSTI");
PYTHON_PROVIDE("termios.TIOCSWINSZ");
PYTHON_PROVIDE("termios.TOSTOP");
PYTHON_PROVIDE("termios.VDISCARD");
PYTHON_PROVIDE("termios.VEOF");
PYTHON_PROVIDE("termios.VEOL");
PYTHON_PROVIDE("termios.VEOL2");
PYTHON_PROVIDE("termios.VERASE");
PYTHON_PROVIDE("termios.VINTR");
PYTHON_PROVIDE("termios.VKILL");
PYTHON_PROVIDE("termios.VLNEXT");
PYTHON_PROVIDE("termios.VMIN");
PYTHON_PROVIDE("termios.VQUIT");
PYTHON_PROVIDE("termios.VREPRINT");
PYTHON_PROVIDE("termios.VSTART");
PYTHON_PROVIDE("termios.VSTOP");
PYTHON_PROVIDE("termios.VSUSP");
PYTHON_PROVIDE("termios.VSWTC");
PYTHON_PROVIDE("termios.VT0");
PYTHON_PROVIDE("termios.VT1");
PYTHON_PROVIDE("termios.VTDLY");
PYTHON_PROVIDE("termios.VTIME");
PYTHON_PROVIDE("termios.VWERASE");
PYTHON_PROVIDE("termios.XCASE");
PYTHON_PROVIDE("termios.XTABS");
PYTHON_PROVIDE("termios.error");
PYTHON_PROVIDE("termios.tcdrain");
PYTHON_PROVIDE("termios.tcflow");
PYTHON_PROVIDE("termios.tcflush");
PYTHON_PROVIDE("termios.tcgetattr");
PYTHON_PROVIDE("termios.tcsendbreak");
PYTHON_PROVIDE("termios.tcsetattr");
/* termiosmodule.c -- POSIX terminal I/O module implementation. */

View file

@ -39,6 +39,34 @@
/* clang-format off */
PYTHON_PROVIDE("time");
PYTHON_PROVIDE("time.CLOCK_MONOTONIC");
PYTHON_PROVIDE("time.CLOCK_MONOTONIC_RAW");
PYTHON_PROVIDE("time.CLOCK_PROCESS_CPUTIME_ID");
PYTHON_PROVIDE("time.CLOCK_REALTIME");
PYTHON_PROVIDE("time.CLOCK_THREAD_CPUTIME_ID");
PYTHON_PROVIDE("time._STRUCT_TM_ITEMS");
PYTHON_PROVIDE("time.altzone");
PYTHON_PROVIDE("time.asctime");
PYTHON_PROVIDE("time.clock");
PYTHON_PROVIDE("time.clock_getres");
PYTHON_PROVIDE("time.clock_gettime");
PYTHON_PROVIDE("time.ctime");
PYTHON_PROVIDE("time.daylight");
PYTHON_PROVIDE("time.get_clock_info");
PYTHON_PROVIDE("time.gmtime");
PYTHON_PROVIDE("time.localtime");
PYTHON_PROVIDE("time.mktime");
PYTHON_PROVIDE("time.monotonic");
PYTHON_PROVIDE("time.perf_counter");
PYTHON_PROVIDE("time.process_time");
PYTHON_PROVIDE("time.sleep");
PYTHON_PROVIDE("time.strftime");
PYTHON_PROVIDE("time.strptime");
PYTHON_PROVIDE("time.struct_time");
PYTHON_PROVIDE("time.time");
PYTHON_PROVIDE("time.timezone");
PYTHON_PROVIDE("time.tzname");
PYTHON_PROVIDE("time.tzset");
typedef int clockid_t;
#undef HAVE_CLOCK_SETTIME

View file

@ -20,6 +20,22 @@
/* clang-format off */
PYTHON_PROVIDE("unicodedata");
PYTHON_PROVIDE("unicodedata.UCD");
PYTHON_PROVIDE("unicodedata.bidirectional");
PYTHON_PROVIDE("unicodedata.category");
PYTHON_PROVIDE("unicodedata.combining");
PYTHON_PROVIDE("unicodedata.decimal");
PYTHON_PROVIDE("unicodedata.decomposition");
PYTHON_PROVIDE("unicodedata.digit");
PYTHON_PROVIDE("unicodedata.east_asian_width");
PYTHON_PROVIDE("unicodedata.lookup");
PYTHON_PROVIDE("unicodedata.mirrored");
PYTHON_PROVIDE("unicodedata.name");
PYTHON_PROVIDE("unicodedata.normalize");
PYTHON_PROVIDE("unicodedata.numeric");
PYTHON_PROVIDE("unicodedata.ucd_3_2_0");
PYTHON_PROVIDE("unicodedata.ucnhash_CAPI");
PYTHON_PROVIDE("unicodedata.unidata_version");
/* ------------------------------------------------------------------------

View file

@ -16,6 +16,13 @@
/* clang-format off */
PYTHON_PROVIDE("xxlimited");
PYTHON_PROVIDE("xxlimited.Null");
PYTHON_PROVIDE("xxlimited.Str");
PYTHON_PROVIDE("xxlimited.Xxo");
PYTHON_PROVIDE("xxlimited.error");
PYTHON_PROVIDE("xxlimited.foo");
PYTHON_PROVIDE("xxlimited.new");
PYTHON_PROVIDE("xxlimited.roj");
/* Use this file as a template to start implementing a module that
also declares object types. All occurrences of 'Xxo' should be changed

View file

@ -19,6 +19,9 @@
/* clang-format off */
PYTHON_PROVIDE("xxsubtype");
PYTHON_PROVIDE("xxsubtype.bench");
PYTHON_PROVIDE("xxsubtype.spamdict");
PYTHON_PROVIDE("xxsubtype.spamlist");
PyDoc_STRVAR(xxsubtype__doc__,
"xxsubtype is an example module showing how to subtype builtin types from C.\n"

View file

@ -36,6 +36,9 @@
/* clang-format off */
PYTHON_PROVIDE("zipimport");
PYTHON_PROVIDE("zipimport.ZipImportError");
PYTHON_PROVIDE("zipimport._zip_directory_cache");
PYTHON_PROVIDE("zipimport.zipimporter");
#define IS_SOURCE 0x0
#define IS_BYTECODE 0x1

View file

@ -18,6 +18,35 @@
/* clang-format off */
PYTHON_PROVIDE("zlib");
PYTHON_PROVIDE("zlib.DEFLATED");
PYTHON_PROVIDE("zlib.DEF_BUF_SIZE");
PYTHON_PROVIDE("zlib.DEF_MEM_LEVEL");
PYTHON_PROVIDE("zlib.MAX_WBITS");
PYTHON_PROVIDE("zlib.ZLIB_RUNTIME_VERSION");
PYTHON_PROVIDE("zlib.ZLIB_VERSION");
PYTHON_PROVIDE("zlib.Z_BEST_COMPRESSION");
PYTHON_PROVIDE("zlib.Z_BEST_SPEED");
PYTHON_PROVIDE("zlib.Z_BLOCK");
PYTHON_PROVIDE("zlib.Z_DEFAULT_COMPRESSION");
PYTHON_PROVIDE("zlib.Z_DEFAULT_STRATEGY");
PYTHON_PROVIDE("zlib.Z_FILTERED");
PYTHON_PROVIDE("zlib.Z_FINISH");
PYTHON_PROVIDE("zlib.Z_FIXED");
PYTHON_PROVIDE("zlib.Z_FULL_FLUSH");
PYTHON_PROVIDE("zlib.Z_HUFFMAN_ONLY");
PYTHON_PROVIDE("zlib.Z_NO_COMPRESSION");
PYTHON_PROVIDE("zlib.Z_NO_FLUSH");
PYTHON_PROVIDE("zlib.Z_PARTIAL_FLUSH");
PYTHON_PROVIDE("zlib.Z_RLE");
PYTHON_PROVIDE("zlib.Z_SYNC_FLUSH");
PYTHON_PROVIDE("zlib.Z_TREES");
PYTHON_PROVIDE("zlib.adler32");
PYTHON_PROVIDE("zlib.compress");
PYTHON_PROVIDE("zlib.compressobj");
PYTHON_PROVIDE("zlib.crc32");
PYTHON_PROVIDE("zlib.decompress");
PYTHON_PROVIDE("zlib.decompressobj");
PYTHON_PROVIDE("zlib.error");
/* zlibmodule.c -- gzip-compatible data compression */
/* See http://zlib.net/ */