Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 11 additions & 17 deletions comtypes/_npsupport.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,27 +92,21 @@ def _make_variant_dtype(self):

return self.numpy.dtype(tagVARIANT_format)

def _check_ctypeslib_typecodes(self):
def _build_typecodes(self):
if not self.enabled:
return {}
import numpy as np
from numpy import ctypeslib
from numpy.ctypeslib import as_ctypes_type

try:
from numpy.ctypeslib import _typecodes
except ImportError:
from numpy.ctypeslib import as_ctypes_type
dtypes_to_ctypes = {}

dtypes_to_ctypes = {}

for tp in set(np.sctypeDict.values()):
try:
ctype_for = as_ctypes_type(tp)
dtypes_to_ctypes[np.dtype(tp).str] = ctype_for
except NotImplementedError:
continue
ctypeslib._typecodes = dtypes_to_ctypes
return ctypeslib._typecodes
for tp in set(np.sctypeDict.values()):
try:
ctype_for = as_ctypes_type(tp)
dtypes_to_ctypes[np.dtype(tp).str] = ctype_for
except NotImplementedError:
continue
return dtypes_to_ctypes

def isndarray(self, value):
"""Check if a value is an ndarray.
Expand Down Expand Up @@ -168,7 +162,7 @@ def enable(self):
# if that succeeded we can be enabled
self.enabled = True
self.VARIANT_dtype = self._make_variant_dtype()
self.typecodes = self._check_ctypeslib_typecodes()
self.typecodes = self._build_typecodes()
self.datetime64 = self.numpy.datetime64
self.com_null_date64 = self.numpy.datetime64("1899-12-30T00:00:00", "ns")

Expand Down