aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/matplotlib/py2/src/file_compat.h
diff options
context:
space:
mode:
authormaxim-yurchuk <maxim-yurchuk@yandex-team.com>2025-02-11 13:26:52 +0300
committermaxim-yurchuk <maxim-yurchuk@yandex-team.com>2025-02-11 13:57:59 +0300
commitf895bba65827952ed934b2b46f9a45e30a191fd2 (patch)
tree03260c906d9ec41cdc03e2a496b15d407459cec0 /contrib/python/matplotlib/py2/src/file_compat.h
parent5f7060466f7b9707818c2091e1a25c14f33c3474 (diff)
downloadydb-f895bba65827952ed934b2b46f9a45e30a191fd2.tar.gz
Remove deps on pandas
<https://github.com/ydb-platform/ydb/pull/14418> <https://github.com/ydb-platform/ydb/pull/14419> \-- аналогичные правки в gh Хочу залить в обход синка, чтобы посмотреть удалится ли pandas в нашей gh репе через piglet commit_hash:abca127aa37d4dbb94b07e1e18cdb8eb5b711860
Diffstat (limited to 'contrib/python/matplotlib/py2/src/file_compat.h')
-rw-r--r--contrib/python/matplotlib/py2/src/file_compat.h240
1 files changed, 0 insertions, 240 deletions
diff --git a/contrib/python/matplotlib/py2/src/file_compat.h b/contrib/python/matplotlib/py2/src/file_compat.h
deleted file mode 100644
index 114279fb1a1..00000000000
--- a/contrib/python/matplotlib/py2/src/file_compat.h
+++ /dev/null
@@ -1,240 +0,0 @@
-#ifndef __FILE_COMPAT_H__
-#define __FILE_COMPAT_H__
-#define PY_SSIZE_T_CLEAN
-#include <Python.h>
-#include <stdio.h>
-#include "numpy/npy_common.h"
-#include "numpy/ndarrayobject.h"
-#include "mplutils.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if defined(_MSC_VER) && defined(_WIN64) && (_MSC_VER > 1400)
- #include <io.h>
- #define mpl_fseek _fseeki64
- #define mpl_ftell _ftelli64
- #define mpl_lseek _lseeki64
- #define mpl_off_t npy_int64
-
- #if NPY_SIZEOF_INT == 8
- #define MPL_OFF_T_PYFMT "i"
- #elif NPY_SIZEOF_LONG == 8
- #define MPL_OFF_T_PYFMT "l"
- #elif NPY_SIZEOF_LONGLONG == 8
- #define MPL_OFF_T_PYFMT "L"
- #else
- #error Unsupported size for type off_t
- #endif
-#else
- #define mpl_fseek fseek
- #define mpl_ftell ftell
- #define mpl_lseek lseek
- #define mpl_off_t off_t
-
- #if NPY_SIZEOF_INT == NPY_SIZEOF_SHORT
- #define MPL_OFF_T_PYFMT "h"
- #elif NPY_SIZEOF_INT == NPY_SIZEOF_INT
- #define MPL_OFF_T_PYFMT "i"
- #elif NPY_SIZEOF_INT == NPY_SIZEOF_LONG
- #define MPL_OFF_T_PYFMT "l"
- #elif NPY_SIZEOF_INT == NPY_SIZEOF_LONGLONG
- #define MPL_OFF_T_PYFMT "L"
- #else
- #error Unsupported size for type off_t
- #endif
-#endif
-
-/*
- * PyFile_* compatibility
- */
-#if PY3K | defined(PYPY_VERSION)
-
-/*
- * Get a FILE* handle to the file represented by the Python object
- */
-static NPY_INLINE FILE *mpl_PyFile_Dup(PyObject *file, char *mode, mpl_off_t *orig_pos)
-{
- int fd, fd2;
- PyObject *ret, *os;
- mpl_off_t pos;
- FILE *handle;
-
- if (mode[0] != 'r') {
- /* Flush first to ensure things end up in the file in the correct order */
- ret = PyObject_CallMethod(file, (char *)"flush", (char *)"");
- if (ret == NULL) {
- return NULL;
- }
- Py_DECREF(ret);
- }
-
- fd = PyObject_AsFileDescriptor(file);
- if (fd == -1) {
- return NULL;
- }
-
- /* The handle needs to be dup'd because we have to call fclose
- at the end */
- os = PyImport_ImportModule("os");
- if (os == NULL) {
- return NULL;
- }
- ret = PyObject_CallMethod(os, (char *)"dup", (char *)"i", fd);
- Py_DECREF(os);
- if (ret == NULL) {
- return NULL;
- }
- fd2 = PyNumber_AsSsize_t(ret, NULL);
- Py_DECREF(ret);
-
-/* Convert to FILE* handle */
-#ifdef _WIN32
- handle = _fdopen(fd2, mode);
-#else
- handle = fdopen(fd2, mode);
-#endif
- if (handle == NULL) {
- PyErr_SetString(PyExc_IOError, "Getting a FILE* from a Python file object failed");
- }
-
- /* Record the original raw file handle position */
- *orig_pos = mpl_ftell(handle);
- if (*orig_pos == -1) {
- // handle is a stream, so we don't have to worry about this
- return handle;
- }
-
- /* Seek raw handle to the Python-side position */
- ret = PyObject_CallMethod(file, (char *)"tell", (char *)"");
- if (ret == NULL) {
- fclose(handle);
- return NULL;
- }
- pos = PyNumber_AsSsize_t(ret, PyExc_OverflowError);
- Py_DECREF(ret);
- if (PyErr_Occurred()) {
- fclose(handle);
- return NULL;
- }
- if (mpl_fseek(handle, pos, SEEK_SET) == -1) {
- PyErr_SetString(PyExc_IOError, "seeking file failed");
- return NULL;
- }
- return handle;
-}
-
-/*
- * Close the dup-ed file handle, and seek the Python one to the current position
- */
-static NPY_INLINE int mpl_PyFile_DupClose(PyObject *file, FILE *handle, mpl_off_t orig_pos)
-{
- PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL;
- PyErr_Fetch(&exc_type, &exc_value, &exc_tb);
-
- int fd;
- PyObject *ret;
- mpl_off_t position;
-
- position = mpl_ftell(handle);
-
- /* Close the FILE* handle */
- fclose(handle);
-
- /* Restore original file handle position, in order to not confuse
- Python-side data structures. Note that this would fail if an exception
- is currently set, which can happen as this function is called in cleanup
- code, so we need to carefully fetch and restore the exception state. */
- fd = PyObject_AsFileDescriptor(file);
- if (fd == -1) {
- goto fail;
- }
- if (mpl_lseek(fd, orig_pos, SEEK_SET) != -1) {
- if (position == -1) {
- PyErr_SetString(PyExc_IOError, "obtaining file position failed");
- goto fail;
- }
-
- /* Seek Python-side handle to the FILE* handle position */
- ret = PyObject_CallMethod(file, (char *)"seek", (char *)(MPL_OFF_T_PYFMT "i"), position, 0);
- if (ret == NULL) {
- goto fail;
- }
- Py_DECREF(ret);
- }
- PyErr_Restore(exc_type, exc_value, exc_tb);
- return 0;
-fail:
- Py_XDECREF(exc_type);
- Py_XDECREF(exc_value);
- Py_XDECREF(exc_tb);
- return -1;
-}
-
-static NPY_INLINE int mpl_PyFile_Check(PyObject *file)
-{
- int fd;
- fd = PyObject_AsFileDescriptor(file);
- if (fd == -1) {
- PyErr_Clear();
- return 0;
- }
- return 1;
-}
-
-#else
-
-static NPY_INLINE FILE *mpl_PyFile_Dup(PyObject *file, const char *mode, mpl_off_t *orig_pos)
-{
- return PyFile_AsFile(file);
-}
-
-static NPY_INLINE int mpl_PyFile_DupClose(PyObject *file, FILE *handle, mpl_off_t orig_pos)
-{
- // deliberately nothing
- return 0;
-}
-
-static NPY_INLINE int mpl_PyFile_Check(PyObject *file)
-{
- return PyFile_Check(file);
-}
-
-#endif
-
-static NPY_INLINE PyObject *mpl_PyFile_OpenFile(PyObject *filename, const char *mode)
-{
- PyObject *open;
- open = PyDict_GetItemString(PyEval_GetBuiltins(), "open");
- if (open == NULL) {
- return NULL;
- }
- return PyObject_CallFunction(open, (char *)"Os", filename, mode);
-}
-
-static NPY_INLINE int mpl_PyFile_CloseFile(PyObject *file)
-{
- PyObject *type, *value, *tb;
- PyErr_Fetch(&type, &value, &tb);
-
- PyObject *ret;
-
- ret = PyObject_CallMethod(file, (char *)"close", NULL);
- if (ret == NULL) {
- goto fail;
- }
- Py_DECREF(ret);
- PyErr_Restore(type, value, tb);
- return 0;
-fail:
- Py_XDECREF(type);
- Py_XDECREF(value);
- Py_XDECREF(tb);
- return -1;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ifndef __FILE_COMPAT_H__ */