Skip to content

Commit 15dff27

Browse files
Added support for the Cython 3.1 release (#493).
1 parent 9a9e454 commit 15dff27

File tree

2 files changed

+21
-28
lines changed

2 files changed

+21
-28
lines changed

doc/src/release_notes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Thick Mode Changes
3030
Common Changes
3131
++++++++++++++
3232

33+
#) Added support for using the Cython 3.1 release
34+
(`issue 493 <https://github.com/oracle/python-oracledb/issues/493>`__).
3335
#) Miscellaneous grammar and spelling fixes by John Bampton
3436
(`PR 479 <https://github.com/oracle/python-oracledb/pull/479>`__).
3537

src/oracledb/interchange/column.py

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,8 @@
4141
)
4242

4343
from .nanoarrow_bridge import (
44-
NANOARROW_TIME_UNIT_SECOND,
45-
NANOARROW_TIME_UNIT_MILLI,
46-
NANOARROW_TIME_UNIT_MICRO,
47-
NANOARROW_TIME_UNIT_NANO,
48-
NANOARROW_TYPE_BINARY,
49-
NANOARROW_TYPE_DOUBLE,
50-
NANOARROW_TYPE_FLOAT,
51-
NANOARROW_TYPE_INT64,
52-
NANOARROW_TYPE_LARGE_BINARY,
53-
NANOARROW_TYPE_LARGE_STRING,
54-
NANOARROW_TYPE_STRING,
55-
NANOARROW_TYPE_TIMESTAMP,
56-
NANOARROW_TYPE_DECIMAL128,
44+
ArrowTimeUnit,
45+
ArrowType,
5746
)
5847

5948

@@ -92,8 +81,8 @@ def _offsets_buffer(self):
9281
size_in_bytes=size_bytes, address=address, buffer_type="offsets"
9382
)
9483
if self.ora_arrow_array.arrow_type in (
95-
NANOARROW_TYPE_LARGE_STRING,
96-
NANOARROW_TYPE_LARGE_BINARY,
84+
ArrowType.NANOARROW_TYPE_LARGE_STRING,
85+
ArrowType.NANOARROW_TYPE_LARGE_BINARY,
9786
):
9887
dtype = (DtypeKind.INT, 64, "l", "=")
9988
else:
@@ -133,36 +122,38 @@ def dtype(self) -> Dtype:
133122
Returns the data type of the column. The returned dtype provides
134123
information on the storage format and the type of data in the column.
135124
"""
136-
if self.ora_arrow_array.arrow_type == NANOARROW_TYPE_INT64:
125+
arrow_type = self.ora_arrow_array.arrow_type
126+
if arrow_type == ArrowType.NANOARROW_TYPE_INT64:
137127
return (DtypeKind.INT, 64, "l", "=")
138-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_DOUBLE:
128+
elif arrow_type == ArrowType.NANOARROW_TYPE_DOUBLE:
139129
return (DtypeKind.FLOAT, 64, "g", "=")
140-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_FLOAT:
130+
elif arrow_type == ArrowType.NANOARROW_TYPE_FLOAT:
141131
return (DtypeKind.FLOAT, 64, "g", "=")
142-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_STRING:
132+
elif arrow_type == ArrowType.NANOARROW_TYPE_STRING:
143133
return (DtypeKind.STRING, 8, "u", "=")
144-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_TIMESTAMP:
145-
if self.ora_arrow_array.time_unit == NANOARROW_TIME_UNIT_MICRO:
134+
elif arrow_type == ArrowType.NANOARROW_TYPE_TIMESTAMP:
135+
time_unit = self.ora_arrow_array.time_unit
136+
if time_unit == ArrowTimeUnit.NANOARROW_TIME_UNIT_MICRO:
146137
return (DtypeKind.DATETIME, 64, "tsu:", "=")
147-
elif self.ora_arrow_array.time_unit == NANOARROW_TIME_UNIT_SECOND:
138+
elif time_unit == ArrowTimeUnit.NANOARROW_TIME_UNIT_SECOND:
148139
return (DtypeKind.DATETIME, 64, "tss:", "=")
149-
elif self.ora_arrow_array.time_unit == NANOARROW_TIME_UNIT_MILLI:
140+
elif time_unit == ArrowTimeUnit.NANOARROW_TIME_UNIT_MILLI:
150141
return (DtypeKind.DATETIME, 64, "tsm:", "=")
151-
elif self.ora_arrow_array.time_unit == NANOARROW_TIME_UNIT_NANO:
142+
elif time_unit == ArrowTimeUnit.NANOARROW_TIME_UNIT_NANO:
152143
return (DtypeKind.DATETIME, 64, "tsn:", "=")
153-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_DECIMAL128:
144+
elif arrow_type == ArrowType.NANOARROW_TYPE_DECIMAL128:
154145
array = self.ora_arrow_array
155146
return (
156147
DtypeKind.DECIMAL,
157148
128,
158149
f"d:{array.precision}.{array.scale}",
159150
"=",
160151
)
161-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_BINARY:
152+
elif arrow_type == ArrowType.NANOARROW_TYPE_BINARY:
162153
return (DtypeKind.STRING, 8, "z", "=")
163-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_LARGE_BINARY:
154+
elif arrow_type == ArrowType.NANOARROW_TYPE_LARGE_BINARY:
164155
return (DtypeKind.STRING, 8, "Z", "=")
165-
elif self.ora_arrow_array.arrow_type == NANOARROW_TYPE_LARGE_STRING:
156+
elif arrow_type == ArrowType.NANOARROW_TYPE_LARGE_STRING:
166157
return (DtypeKind.STRING, 8, "U", "=")
167158

168159
def get_buffers(self) -> ColumnBuffers:

0 commit comments

Comments
 (0)