Python ctypes.Array() Examples
The following are 30
code examples of ctypes.Array().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ctypes
, or try the search function
.
Example #1
Source File: sharedctypes.py From PokemonGo-DesktopMap with MIT License | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #2
Source File: sharedctypes.py From ironpython2 with Apache License 2.0 | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #3
Source File: sharedctypes.py From oss-ftp with MIT License | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #4
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 6 votes |
def test_indices(self): a = self.a self.assertEqual(a[0, 0], 0) self.assertEqual(a[19, 0], 0) self.assertEqual(a[0, 14], 0) self.assertEqual(a[19, 14], 0) self.assertEqual(a[5, 8], 0) a[0, 0] = 12 a[5, 8] = 99 self.assertEqual(a[0, 0], 12) self.assertEqual(a[5, 8], 99) self.assertRaises(IndexError, a.__getitem__, (-1, 0)) self.assertRaises(IndexError, a.__getitem__, (0, -1)) self.assertRaises(IndexError, a.__getitem__, (20, 0)) self.assertRaises(IndexError, a.__getitem__, (0, 15)) self.assertRaises(ValueError, a.__getitem__, 0) self.assertRaises(ValueError, a.__getitem__, (0, 0, 0)) a = Array((3,), 'i', 4) a[1] = 333 self.assertEqual(a[1], 333)
Example #5
Source File: sharedctypes.py From BinderFilter with MIT License | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #6
Source File: sharedctypes.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def synchronized(obj, lock=None, ctx=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' ctx = ctx or get_context() if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock, ctx) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock, ctx) return SynchronizedArray(obj, lock, ctx) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock, ctx) # # Functions for pickling/unpickling #
Example #7
Source File: sharedctypes.py From Imogen with MIT License | 6 votes |
def synchronized(obj, lock=None, ctx=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' ctx = ctx or get_context() if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock, ctx) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock, ctx) return SynchronizedArray(obj, lock, ctx) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = {name: make_property(name) for name in names} classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock, ctx) # # Functions for pickling/unpickling #
Example #8
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 6 votes |
def test_indices(self): a = self.a self.assertEqual(a[0, 0], 0) self.assertEqual(a[19, 0], 0) self.assertEqual(a[0, 14], 0) self.assertEqual(a[19, 14], 0) self.assertEqual(a[5, 8], 0) a[0, 0] = 12 a[5, 8] = 99 self.assertEqual(a[0, 0], 12) self.assertEqual(a[5, 8], 99) self.assertRaises(IndexError, a.__getitem__, (-1, 0)) self.assertRaises(IndexError, a.__getitem__, (0, -1)) self.assertRaises(IndexError, a.__getitem__, (20, 0)) self.assertRaises(IndexError, a.__getitem__, (0, 15)) self.assertRaises(ValueError, a.__getitem__, 0) self.assertRaises(ValueError, a.__getitem__, (0, 0, 0)) a = Array((3,), 'i', 4) a[1] = 333 self.assertEqual(a[1], 333)
Example #9
Source File: render.py From kitty with GNU General Public License v3.0 | 6 votes |
def add_dline(buf: ctypes.Array, cell_width: int, position: int, thickness: int, cell_height: int) -> None: a = min(position - thickness, cell_height - 1) b = min(position, cell_height - 1) top, bottom = min(a, b), max(a, b) deficit = 2 - (bottom - top) if deficit > 0: if bottom + deficit < cell_height: bottom += deficit elif bottom < cell_height - 1: bottom += 1 if deficit > 1: top -= deficit - 1 else: top -= deficit top = max(0, min(top, cell_height - 1)) bottom = max(0, min(bottom, cell_height - 1)) for y in {top, bottom}: ctypes.memset(ctypes.addressof(buf) + (cell_width * y), 255, cell_width)
Example #10
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 6 votes |
def test_indices(self): a = self.a self.assertEqual(a[0, 0], 0) self.assertEqual(a[19, 0], 0) self.assertEqual(a[0, 14], 0) self.assertEqual(a[19, 14], 0) self.assertEqual(a[5, 8], 0) a[0, 0] = 12 a[5, 8] = 99 self.assertEqual(a[0, 0], 12) self.assertEqual(a[5, 8], 99) self.assertRaises(IndexError, a.__getitem__, (-1, 0)) self.assertRaises(IndexError, a.__getitem__, (0, -1)) self.assertRaises(IndexError, a.__getitem__, (20, 0)) self.assertRaises(IndexError, a.__getitem__, (0, 15)) self.assertRaises(ValueError, a.__getitem__, 0) self.assertRaises(ValueError, a.__getitem__, (0, 0, 0)) a = Array((3,), 'i', 4) a[1] = 333 self.assertEqual(a[1], 333)
Example #11
Source File: sharedctypes.py From ironpython3 with Apache License 2.0 | 6 votes |
def synchronized(obj, lock=None, ctx=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' ctx = ctx or get_context() if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock, ctx) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock, ctx) return SynchronizedArray(obj, lock, ctx) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock, ctx) # # Functions for pickling/unpickling #
Example #12
Source File: test_clusapi_utils.py From os-win with Apache License 2.0 | 6 votes |
def test_create_cluster_notify_port(self, notif_filters, exp_notif_filters_len=1, notif_port_h=None, notif_key=None): self._mock_ctypes() self._ctypes.Array = ctypes.Array self._clusapi_utils.create_cluster_notify_port_v2( mock.sentinel.cluster_handle, notif_filters, notif_port_h, notif_key) exp_notif_key_p = self._ctypes.byref(notif_key) if notif_key else None exp_notif_port_h = notif_port_h or w_const.INVALID_HANDLE_VALUE self._mock_run.assert_called_once_with( self._clusapi.CreateClusterNotifyPortV2, exp_notif_port_h, mock.sentinel.cluster_handle, self._ctypes.byref(notif_filters), self._ctypes.c_ulong(exp_notif_filters_len), exp_notif_key_p, **self._clusapi_utils._open_handle_check_flags)
Example #13
Source File: sharedctypes.py From unity-python with MIT License | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #14
Source File: _raw_api.py From FODI with GNU General Public License v3.0 | 6 votes |
def c_uint8_ptr(data): if byte_string(data) or isinstance(data, _Array): return data elif isinstance(data, _buffer_type): obj = _py_object(data) buf = _Py_buffer() _PyObject_GetBuffer(obj, byref(buf), _PyBUF_SIMPLE) try: buffer_type = c_ubyte * buf.len return buffer_type.from_address(buf.buf) finally: _PyBuffer_Release(byref(buf)) else: raise TypeError("Object type %s cannot be passed to C code" % type(data)) # ---
Example #15
Source File: sharedctypes.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def synchronized(obj, lock=None, ctx=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' ctx = ctx or get_context() if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock, ctx) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock, ctx) return SynchronizedArray(obj, lock, ctx) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock, ctx) # # Functions for pickling/unpickling #
Example #16
Source File: sharedctypes.py From Splunking-Crime with GNU Affero General Public License v3.0 | 6 votes |
def synchronized(obj, lock=None): assert not isinstance(obj, SynchronizedBase), 'object already synchronized' if isinstance(obj, ctypes._SimpleCData): return Synchronized(obj, lock) elif isinstance(obj, ctypes.Array): if obj._type_ is ctypes.c_char: return SynchronizedString(obj, lock) return SynchronizedArray(obj, lock) else: cls = type(obj) try: scls = class_cache[cls] except KeyError: names = [field[0] for field in cls._fields_] d = dict((name, make_property(name)) for name in names) classname = 'Synchronized' + cls.__name__ scls = class_cache[cls] = type(classname, (SynchronizedBase,), d) return scls(obj, lock) # # Functions for pickling/unpickling #
Example #17
Source File: buffer.py From rlpyt with MIT License | 6 votes |
def __new__(cls, shape, dtype=None, buffer=None, offset=None, strides=None, order=None): # init buffer if buffer is None: assert offset is None assert strides is None size = int(np.prod(shape)) nbytes = size * np.dtype(dtype).itemsize # this is the part that can be passed between processes shmem = mp.RawArray(ctypes.c_char, nbytes) offset = 0 elif isinstance(buffer, ctypes.Array): # restoring from a pickle shmem = buffer else: raise ValueError( f"{cls.__name__} does not support specifying custom " f" buffers, but was given {buffer!r}") # init array obj = np.ndarray.__new__(cls, shape, dtype=dtype, buffer=shmem, offset=offset, strides=strides, order=order) obj._shmem = shmem return obj
Example #18
Source File: render.py From kitty with GNU General Public License v3.0 | 6 votes |
def add_curl(buf: ctypes.Array, cell_width: int, position: int, thickness: int, cell_height: int) -> None: max_x, max_y = cell_width - 1, cell_height - 1 xfactor = 2.0 * pi / max_x half_height = max(thickness // 2, 1) def add_intensity(x: int, y: int, val: int) -> None: y += position y = min(y, max_y) idx = cell_width * y + x buf[idx] = min(255, buf[idx] + val) # Ensure all space at bottom of cell is used if position + half_height < max_y: position += max_y - (position + half_height) if position + half_height > max_y: position -= position + half_height - max_y # Use the Wu antialias algorithm to draw the curve # cosine waves always have slope <= 1 so are never steep for x in range(cell_width): y = half_height * cos(x * xfactor) y1, y2 = floor(y), ceil(y) i1 = int(255 * abs(y - y1)) add_intensity(x, y1, 255 - i1) add_intensity(x, y2, i1)
Example #19
Source File: _raw_api.py From android_universal with MIT License | 5 votes |
def c_uint8_ptr(data): if byte_string(data) or isinstance(data, _Array): return data elif isinstance(data, _buffer_type): obj = _py_object(data) buf = _Py_buffer() _PyObject_GetBuffer(obj, byref(buf), _PyBUF_SIMPLE) buffer_type = c_ubyte * buf.len return buffer_type.from_address(buf.buf) else: raise TypeError("Object type %s cannot be passed to C code" % type(data)) # ---
Example #20
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 5 votes |
def __init__(self, *args, **kwds): unittest.TestCase.__init__(self, *args, **kwds) self.a = Array((20, 15), 'i', 4)
Example #21
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 5 votes |
def test_typekind(self): a = Array((1,), 'i', 4) self.assertTrue(a._ctype is c_int32) self.assertTrue(a._ctype_p is POINTER(c_int32)) a = Array((1,), 'u', 4) self.assertTrue(a._ctype is c_uint32) self.assertTrue(a._ctype_p is POINTER(c_uint32)) a = Array((1,), 'f', 4) # float types unsupported: size system dependent ct = a._ctype self.assertTrue(issubclass(ct, ctypes.Array)) self.assertEqual(sizeof(ct), 4)
Example #22
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 5 votes |
def __init__(self, *args, **kwds): super(Array, self).__init__(*args, **kwds) try: if self.flags & PAI_NOTSWAPPED: ct = self._ctypes[self.typekind, self.itemsize] elif c_int.__ctype_le__ is c_int: ct = self._ctypes[self.typekind, self.itemsize].__ctype_be__ else: ct = self._ctypes[self.typekind, self.itemsize].__ctype_le__ except KeyError: ct = c_uint8 * self.itemsize self._ctype = ct self._ctype_p = POINTER(ct)
Example #23
Source File: execution.py From PsyNeuLink with Apache License 2.0 | 5 votes |
def _convert_ctype_to_python(x): if isinstance(x, ctypes.Structure): return [_convert_ctype_to_python(getattr(x, field_name)) for field_name, _ in x._fields_] if isinstance(x, ctypes.Array): return [_convert_ctype_to_python(num) for num in x] if isinstance(x, ctypes.c_double): return x.value if isinstance(x, (float, int)): return x assert False, "Don't know how to convert: {}".format(x)
Example #24
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 5 votes |
def test_itemsize(self): for size in [1, 2, 4, 8]: a = Array((1,), 'i', size) ct = a._ctype self.assertTrue(issubclass(ct, ctypes._SimpleCData)) self.assertEqual(sizeof(ct), size)
Example #25
Source File: sharedctypes.py From unity-python with MIT License | 5 votes |
def Array(typecode_or_type, size_or_initializer, **kwds): ''' Return a synchronization wrapper for a RawArray ''' lock = kwds.pop('lock', None) if kwds: raise ValueError('unrecognized keyword argument(s): %s' % kwds.keys()) obj = RawArray(typecode_or_type, size_or_initializer) if lock is False: return obj if lock in (True, None): lock = RLock() if not hasattr(lock, 'acquire'): raise AttributeError("'%r' has no method 'acquire'" % lock) return synchronized(obj, lock)
Example #26
Source File: test_cookbook.py From zugbruecke with GNU Lesser General Public License v2.1 | 5 votes |
def from_param(self, param): typename = type(param).__name__ if hasattr(self, 'from_' + typename): return getattr(self, 'from_' + typename)(param) elif isinstance(param, ctypes.Array): return param else: raise TypeError('Can\'t convert %s' % typename) # Cast from array.array objects
Example #27
Source File: sharedctypes.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def reduce_ctype(obj): assert_spawning(obj) if isinstance(obj, ctypes.Array): return rebuild_ctype, (obj._type_, obj._wrapper, obj._length_) else: return rebuild_ctype, (type(obj), obj._wrapper, None)
Example #28
Source File: arrinter.py From fxxkpython with GNU General Public License v3.0 | 5 votes |
def test_byteswapped(self): a = Array((1,), 'u', 4, flags=(PAI_ALIGNED | PAI_WRITEABLE)) ct = a._ctype self.assertTrue(ct is not c_uint32) if sys.byteorder == 'little': self.assertTrue(ct is c_uint32.__ctype_be__) else: self.assertTrue(ct is c_uint32.__ctype_le__) i = 0xa0b0c0d n = c_uint32(i) a[0] = i self.assertEqual(a[0], i) self.assertEqual(a._data[0:4], cast(addressof(n), POINTER(c_uint8))[3:-1:-1])
Example #29
Source File: sharedctypes.py From unity-python with MIT License | 5 votes |
def reduce_ctype(obj): assert_spawning(obj) if isinstance(obj, ctypes.Array): return rebuild_ctype, (obj._type_, obj._wrapper, obj._length_) else: return rebuild_ctype, (type(obj), obj._wrapper, None)
Example #30
Source File: _raw_api.py From android_universal with MIT License | 5 votes |
def c_uint8_ptr(data): if isinstance(data, _buffer_type): # This only works for cffi >= 1.7 return ffi.cast(uint8_t_type, ffi.from_buffer(data)) elif byte_string(data) or isinstance(data, _Array): return data else: raise TypeError("Object type %s cannot be passed to C code" % type(data))