Metadata-Version: 1.1
Name: magicmemoryview
Version: 0.1.5
Summary: Magic memoryview() style casting for Cython
Home-page: http://github.com/cuspaceflight/magicmemoryview
Author: Cambridge University Spaceflight
Author-email: contact@cusf.co.uk
License: GPLv3+
Description: A helper / hack to allow us to cast a ``mmap.mmap`` or other buffer to
        a Cython pointer of the correct type.
        
        Cython is capable of casting a lot of things to a C pointer of the
        correct type, especially with the aid of ``memoryview``. However,
        in Python 2, ``memoryview`` lacks the ``memoryview.cast`` method
        (so Cython won't let us change the dimensions of the array). Further,
        both Python 2 and 3 require the memory map to be writable (making
        the pointer type ``const`` does not seem to help here either).
        
        This class takes a (possibly read-only) memmap object, and produces a
        Python object with a ``__getbuffer__`` method that returns The Right Thing.
        *It pretends that the underlying buffer is writable* to make Cython
        happy. If you give it a read-only buffer, and try to write to the result,
        then you will have a bad time.
        
        When a Python object is cast by Cython to a pointer, it holds a
        reference to the underlying Python object in order to prevent the
        memory to which it refers being garbage collected. The ``MagicMemoryView``
        in turn keeps a reference to the underlying data, so everything should
        behave as expected.
        
        Usage::
        
            from magicmemoryview import MagicMemoryView
        
            cdef double data[:, :, :]
        
            data = MagicMemoryView(source_buffer, (24, 12, 25), "d")
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3.3
