aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-09-21 19:43:14 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-09-21 19:51:24 +0300
commit960109135f799dd493e08bef5574187434b993b5 (patch)
tree129cfdfd2da07dac44978b4cd51ffebb38615996
parent3e1c76c643ee8d5657bbecf22188cc720ff41dd9 (diff)
downloadydb-960109135f799dd493e08bef5574187434b993b5.tar.gz
Intermediate changes
commit_hash:6e2ef2caf4e824ea7435d2d9677bade2721a0578
-rw-r--r--contrib/python/cffi/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/cffi/py3/c/_cffi_backend.c2
-rw-r--r--contrib/python/cffi/py3/cffi/__init__.py4
-rw-r--r--contrib/python/cffi/py3/cffi/_embedding.h2
-rw-r--r--contrib/python/cffi/py3/cffi/_shimmed_dist_utils.py6
-rw-r--r--contrib/python/cffi/py3/cffi/api.py6
-rw-r--r--contrib/python/cffi/py3/cffi/recompiler.py25
-rw-r--r--contrib/python/cffi/py3/ya.make2
8 files changed, 36 insertions, 13 deletions
diff --git a/contrib/python/cffi/py3/.dist-info/METADATA b/contrib/python/cffi/py3/.dist-info/METADATA
index a0d90a31e9..60b0779f68 100644
--- a/contrib/python/cffi/py3/.dist-info/METADATA
+++ b/contrib/python/cffi/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: cffi
-Version: 1.17.0
+Version: 1.17.1
Summary: Foreign Function Interface for Python calling C code.
Home-page: http://cffi.readthedocs.org
Author: Armin Rigo, Maciej Fijalkowski
diff --git a/contrib/python/cffi/py3/c/_cffi_backend.c b/contrib/python/cffi/py3/c/_cffi_backend.c
index aa4ec48ba9..4ba773a175 100644
--- a/contrib/python/cffi/py3/c/_cffi_backend.c
+++ b/contrib/python/cffi/py3/c/_cffi_backend.c
@@ -2,7 +2,7 @@
#include <Python.h>
#include "structmember.h"
-#define CFFI_VERSION "1.17.0"
+#define CFFI_VERSION "1.17.1"
#ifdef MS_WIN32
#include <windows.h>
diff --git a/contrib/python/cffi/py3/cffi/__init__.py b/contrib/python/cffi/py3/cffi/__init__.py
index deeacc57cd..2e35a38c9c 100644
--- a/contrib/python/cffi/py3/cffi/__init__.py
+++ b/contrib/python/cffi/py3/cffi/__init__.py
@@ -5,8 +5,8 @@ from .api import FFI
from .error import CDefError, FFIError, VerificationError, VerificationMissing
from .error import PkgConfigError
-__version__ = "1.17.0"
-__version_info__ = (1, 17, 0)
+__version__ = "1.17.1"
+__version_info__ = (1, 17, 1)
# The verifier module file names are based on the CRC32 of a string that
# contains the following version number. It may be older than __version__
diff --git a/contrib/python/cffi/py3/cffi/_embedding.h b/contrib/python/cffi/py3/cffi/_embedding.h
index 0eeeea831d..94d8b30a9e 100644
--- a/contrib/python/cffi/py3/cffi/_embedding.h
+++ b/contrib/python/cffi/py3/cffi/_embedding.h
@@ -225,7 +225,7 @@ static int _cffi_initialize_python(void)
if (f != NULL && f != Py_None) {
PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME
- "\ncompiled with cffi version: 1.17.0"
+ "\ncompiled with cffi version: 1.17.1"
"\n_cffi_backend module: ", f);
modules = PyImport_GetModuleDict();
mod = PyDict_GetItemString(modules, "_cffi_backend");
diff --git a/contrib/python/cffi/py3/cffi/_shimmed_dist_utils.py b/contrib/python/cffi/py3/cffi/_shimmed_dist_utils.py
index 611bf40f40..c3d2312818 100644
--- a/contrib/python/cffi/py3/cffi/_shimmed_dist_utils.py
+++ b/contrib/python/cffi/py3/cffi/_shimmed_dist_utils.py
@@ -30,7 +30,11 @@ try:
from distutils.log import set_threshold, set_verbosity
if sys.platform == 'win32':
- from distutils.msvc9compiler import MSVCCompiler
+ try:
+ # FUTURE: msvc9compiler module was removed in setuptools 74; consider removing, as it's only used by an ancient patch in `recompiler`
+ from distutils.msvc9compiler import MSVCCompiler
+ except ImportError:
+ MSVCCompiler = None
except Exception as ex:
if sys.version_info >= (3, 12):
raise Exception("This CFFI feature requires setuptools on Python >= 3.12. Please install the setuptools package.") from ex
diff --git a/contrib/python/cffi/py3/cffi/api.py b/contrib/python/cffi/py3/cffi/api.py
index edeb792810..5a474f3da9 100644
--- a/contrib/python/cffi/py3/cffi/api.py
+++ b/contrib/python/cffi/py3/cffi/api.py
@@ -693,7 +693,8 @@ class FFI(object):
raise TypeError("emit_c_code() is only for C extension modules, "
"not for dlopen()-style pure Python modules")
recompile(self, module_name, source,
- c_file=filename, call_c_compiler=False, **kwds)
+ c_file=filename, call_c_compiler=False,
+ uses_ffiplatform=False, **kwds)
def emit_python_code(self, filename):
from .recompiler import recompile
@@ -705,7 +706,8 @@ class FFI(object):
raise TypeError("emit_python_code() is only for dlopen()-style "
"pure Python modules, not for C extension modules")
recompile(self, module_name, source,
- c_file=filename, call_c_compiler=False, **kwds)
+ c_file=filename, call_c_compiler=False,
+ uses_ffiplatform=False, **kwds)
def compile(self, tmpdir='.', verbose=0, target=None, debug=None):
"""The 'target' argument gives the final file name of the
diff --git a/contrib/python/cffi/py3/cffi/recompiler.py b/contrib/python/cffi/py3/cffi/recompiler.py
index dd22b21c2c..c236807fe8 100644
--- a/contrib/python/cffi/py3/cffi/recompiler.py
+++ b/contrib/python/cffi/py3/cffi/recompiler.py
@@ -1417,6 +1417,10 @@ else:
s = s.encode('ascii')
super(NativeIO, self).write(s)
+def _is_file_like(maybefile):
+ # compare to xml.etree.ElementTree._get_writer
+ return hasattr(maybefile, 'write')
+
def _make_c_or_py_source(ffi, module_name, preamble, target_file, verbose):
if verbose:
print("generating %s" % (target_file,))
@@ -1424,6 +1428,9 @@ def _make_c_or_py_source(ffi, module_name, preamble, target_file, verbose):
target_is_python=(preamble is None))
recompiler.collect_type_table()
recompiler.collect_step_tables()
+ if _is_file_like(target_file):
+ recompiler.write_source_to_f(target_file, preamble)
+ return True
f = NativeIO()
recompiler.write_source_to_f(f, preamble)
output = f.getvalue()
@@ -1481,9 +1488,12 @@ def _unpatch_meths(patchlist):
def _patch_for_embedding(patchlist):
if sys.platform == 'win32':
# we must not remove the manifest when building for embedding!
+ # FUTURE: this module was removed in setuptools 74; this is likely dead code and should be removed,
+ # since the toolchain it supports (VS2005-2008) is also long dead.
from cffi._shimmed_dist_utils import MSVCCompiler
- _patch_meth(patchlist, MSVCCompiler, '_remove_visual_c_ref',
- lambda self, manifest_file: manifest_file)
+ if MSVCCompiler is not None:
+ _patch_meth(patchlist, MSVCCompiler, '_remove_visual_c_ref',
+ lambda self, manifest_file: manifest_file)
if sys.platform == 'darwin':
# we must not make a '-bundle', but a '-dynamiclib' instead
@@ -1517,12 +1527,16 @@ def _patch_for_target(patchlist, target):
def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True,
c_file=None, source_extension='.c', extradir=None,
- compiler_verbose=1, target=None, debug=None, **kwds):
+ compiler_verbose=1, target=None, debug=None,
+ uses_ffiplatform=True, **kwds):
if not isinstance(module_name, str):
module_name = module_name.encode('ascii')
if ffi._windows_unicode:
ffi._apply_windows_unicode(kwds)
if preamble is not None:
+ if call_c_compiler and _is_file_like(c_file):
+ raise TypeError("Writing to file-like objects is not supported "
+ "with call_c_compiler=True")
embedding = (ffi._embedding is not None)
if embedding:
ffi._apply_embedding_fix(kwds)
@@ -1541,7 +1555,10 @@ def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True,
else:
target = '*'
#
- ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds)
+ if uses_ffiplatform:
+ ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds)
+ else:
+ ext = None
updated = make_c_source(ffi, module_name, preamble, c_file,
verbose=compiler_verbose)
if call_c_compiler:
diff --git a/contrib/python/cffi/py3/ya.make b/contrib/python/cffi/py3/ya.make
index 30e438d17e..90ddf448de 100644
--- a/contrib/python/cffi/py3/ya.make
+++ b/contrib/python/cffi/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(1.17.0)
+VERSION(1.17.1)
LICENSE(MIT)