Skip to content

Commit b29ee81

Browse files
Remove another feature deprecated since v0.13.0
1 parent 1a39cd3 commit b29ee81

File tree

4 files changed

+3
-103
lines changed

4 files changed

+3
-103
lines changed

CHANGELOG.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Changes in v0.18.0:
2020
1/ Removed features deprecated in v0.13.0:
2121
Value (and derived types) copy constructors
2222
Single value (such as DateValue) index methods
23+
DataBuf indexing.
2324
2/ Deprecated many BasicIo methods (read, write, seek, etc.) that should not
2425
be needed in Python scripts. Please let me know if this is a problem.
2526
3/ Deprecated copy, write, and read(buffer) methods of Value (and

src/interface/types.i

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,11 @@ if os.path.isdir(_dir):
109109

110110
// Make various enums more Pythonic
111111
DEFINE_ENUM(AccessMode, 2)
112-
113112
DEFINE_ENUM(ByteOrder,)
114-
115113
DEFINE_ENUM(MetadataId, 2)
116-
117114
DEFINE_ENUM(TypeId,)
118115

119116
// Make Exiv2::DataBuf behave more like a tuple of ints
120-
%feature("python:slot", "mp_subscript", functype="binaryfunc")
121-
Exiv2::DataBuf::__getitem__;
122117
%extend Exiv2::DataBuf {
123118
#if EXIV2_VERSION_HEX >= 0x001c0000
124119
bool __eq__(const Exiv2::byte *pData, size_t size) {
@@ -142,36 +137,6 @@ DEFINE_ENUM(TypeId,)
142137
return true;
143138
return std::memcmp($self->pData_, pData, size) != 0;
144139
}
145-
PyObject* __getitem__(PyObject* idx) {
146-
// deprecated since 2022-12-20
147-
PyErr_WarnEx(PyExc_DeprecationWarning,
148-
"use 'DataBuf.data()' to get a memoryview", 1);
149-
if (PySlice_Check(idx)) {
150-
Py_ssize_t i1, i2, di, sl;
151-
if (PySlice_GetIndicesEx(idx, $self->size_, &i1, &i2, &di, &sl))
152-
return NULL;
153-
PyObject* result = PyTuple_New(sl);
154-
Exiv2::byte* ptr = $self->pData_ + i1;
155-
for (Py_ssize_t i = 0; i < sl; ++i) {
156-
PyTuple_SetItem(result, i, PyLong_FromLong((long)*ptr));
157-
ptr += di;
158-
}
159-
return result;
160-
}
161-
if (PyLong_Check(idx)) {
162-
long i = PyLong_AsLong(idx);
163-
if (i < 0)
164-
i += $self->size_;
165-
if ((i < 0) || (i >= $self->size_)) {
166-
PyErr_SetString(PyExc_IndexError, "index out of range");
167-
return NULL;
168-
}
169-
return PyLong_FromLong((long)*($self->pData_ + i));
170-
}
171-
return PyErr_Format(PyExc_TypeError,
172-
"indices must be integers or slices, not %s",
173-
Py_TYPE(idx)->tp_name);
174-
}
175140
#endif
176141
}
177142
SQ_LENGTH(Exiv2::DataBuf, self->DATABUF_SIZE)

src/swig-0_27_7/types_wrap.cxx

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4862,36 +4862,6 @@ SWIGINTERN bool Exiv2_DataBuf___ne__(Exiv2::DataBuf *self,Exiv2::byte const *pDa
48624862
return true;
48634863
return std::memcmp(self->pData_, pData, size) != 0;
48644864
}
4865-
SWIGINTERN PyObject *Exiv2_DataBuf___getitem__(Exiv2::DataBuf *self,PyObject *idx){
4866-
// deprecated since 2022-12-20
4867-
PyErr_WarnEx(PyExc_DeprecationWarning,
4868-
"use 'DataBuf.data()' to get a memoryview", 1);
4869-
if (PySlice_Check(idx)) {
4870-
Py_ssize_t i1, i2, di, sl;
4871-
if (PySlice_GetIndicesEx(idx, self->size_, &i1, &i2, &di, &sl))
4872-
return NULL;
4873-
PyObject* result = PyTuple_New(sl);
4874-
Exiv2::byte* ptr = self->pData_ + i1;
4875-
for (Py_ssize_t i = 0; i < sl; ++i) {
4876-
PyTuple_SetItem(result, i, PyLong_FromLong((long)*ptr));
4877-
ptr += di;
4878-
}
4879-
return result;
4880-
}
4881-
if (PyLong_Check(idx)) {
4882-
long i = PyLong_AsLong(idx);
4883-
if (i < 0)
4884-
i += self->size_;
4885-
if ((i < 0) || (i >= self->size_)) {
4886-
PyErr_SetString(PyExc_IndexError, "index out of range");
4887-
return NULL;
4888-
}
4889-
return PyLong_FromLong((long)*(self->pData_ + i));
4890-
}
4891-
return PyErr_Format(PyExc_TypeError,
4892-
"indices must be integers or slices, not %s",
4893-
Py_TYPE(idx)->tp_name);
4894-
}
48954865
SWIGINTERN void Exiv2_DataBuf__view_deleted_cb(Exiv2::DataBuf *self,PyObject *ref){}
48964866
SWIGINTERN Exiv2::byte *Exiv2_DataBuf_data(Exiv2::DataBuf const *self){ return self->pData_; }
48974867
SWIGINTERN size_t Exiv2_DataBuf_size(Exiv2::DataBuf const *self){ return self->size_; }
@@ -6192,39 +6162,6 @@ SWIGINTERN PyObject *_wrap_DataBuf___ne__(PyObject *self, PyObject *args) {
61926162
}
61936163

61946164

6195-
SWIGINTERN PyObject *_wrap_DataBuf___getitem__(PyObject *self, PyObject *args) {
6196-
PyObject *resultobj = 0;
6197-
Exiv2::DataBuf *arg1 = (Exiv2::DataBuf *) 0 ;
6198-
PyObject *arg2 = (PyObject *) 0 ;
6199-
void *argp1 = 0 ;
6200-
int res1 = 0 ;
6201-
PyObject *swig_obj[2] ;
6202-
PyObject *result = 0 ;
6203-
6204-
if (!args) SWIG_fail;
6205-
swig_obj[0] = args;
6206-
res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Exiv2__DataBuf, 0 | 0 );
6207-
if (!SWIG_IsOK(res1)) {
6208-
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "DataBuf___getitem__" "', argument " "1"" of type '" "Exiv2::DataBuf *""'");
6209-
}
6210-
arg1 = reinterpret_cast< Exiv2::DataBuf * >(argp1);
6211-
arg2 = swig_obj[0];
6212-
{
6213-
try {
6214-
result = (PyObject *)Exiv2_DataBuf___getitem__(arg1,arg2);
6215-
}
6216-
catch(std::exception const& e) {
6217-
_set_python_exception();
6218-
SWIG_fail;
6219-
}
6220-
}
6221-
resultobj = result;
6222-
return resultobj;
6223-
fail:
6224-
return NULL;
6225-
}
6226-
6227-
62286165
SWIGINTERN PyObject *_wrap_DataBuf__view_deleted_cb(PyObject *self, PyObject *args) {
62296166
PyObject *resultobj = 0;
62306167
Exiv2::DataBuf *arg1 = (Exiv2::DataBuf *) 0 ;
@@ -7284,7 +7221,6 @@ SWIGINTERN PyMethodDef SwigPyBuiltin__Exiv2__DataBuf_methods[] = {
72847221
{ "reset", _wrap_DataBuf_reset, METH_NOARGS, "Reset value" },
72857222
{ "__eq__", _wrap_DataBuf___eq__, METH_O, "" },
72867223
{ "__ne__", _wrap_DataBuf___ne__, METH_O, "" },
7287-
{ "__getitem__", _wrap_DataBuf___getitem__, METH_O, "" },
72887224
{ "_view_deleted_cb", _wrap_DataBuf__view_deleted_cb, METH_O, "" },
72897225
{ "data", _wrap_DataBuf_data, METH_NOARGS, "\n"
72907226
"Returns a temporary Python memoryview of the object's data.\n"
@@ -7459,7 +7395,7 @@ static PyHeapTypeObject SwigPyBuiltin__Exiv2__DataBuf_type = {
74597395
},
74607396
{
74617397
(lenfunc) 0, /* mp_length */
7462-
_wrap_DataBuf___getitem__, /* mp_subscript */
7398+
(binaryfunc) 0, /* mp_subscript */
74637399
(objobjargproc) 0, /* mp_ass_subscript */
74647400
},
74657401
{
@@ -7565,7 +7501,7 @@ static PyTypeObject *SwigPyBuiltin__Exiv2__DataBuf_type_create(PyTypeObject *typ
75657501
{ Py_tp_descr_get, (void *)(descrgetfunc) 0 },
75667502
{ Py_tp_descr_set, (void *)(descrsetfunc) 0 },
75677503
{ Py_mp_length, (void *)(lenfunc) 0 },
7568-
{ Py_mp_subscript, (void *)_wrap_DataBuf___getitem__ },
7504+
{ Py_mp_subscript, (void *)(binaryfunc) 0 },
75697505
{ Py_mp_ass_subscript, (void *)(objobjargproc) 0 },
75707506
{ Py_tp_iter, (void *)(getiterfunc) 0 },
75717507
{ Py_tp_iternext, (void *)(iternextfunc) 0 },

tests/test_types.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ def test_DataBuf(self):
6666
buf.resize(0)
6767
self.assertEqual(buf.empty(), True)
6868
else:
69-
with self.assertWarns(DeprecationWarning):
70-
result = buf[23]
7169
with self.assertWarns(DeprecationWarning):
7270
self.check_result(buf.pData_, memoryview, data)
7371
with self.assertWarns(DeprecationWarning):

0 commit comments

Comments
 (0)