[ismrmrd] 03/16: updating cython bindings

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:02:30 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag v1.2.0
in repository ismrmrd.

commit 7bebb38ef6e41b3604f46ad252ad4cee4758b1b5
Author: Joseph Naegele <joseph.naegele at gmail.com>
Date:   Wed Nov 19 16:05:20 2014 -0500

    updating cython bindings
---
 bindings/python/Makefile     | 13 +++++++---
 bindings/python/cismrmrd.pxd | 13 ++++++----
 bindings/python/ismrmrd.pyx  | 60 ++++++++++++++++++++++++++++++++++++++++++--
 3 files changed, 75 insertions(+), 11 deletions(-)

diff --git a/bindings/python/Makefile b/bindings/python/Makefile
index c2543a2..d88609c 100644
--- a/bindings/python/Makefile
+++ b/bindings/python/Makefile
@@ -1,9 +1,14 @@
-CPPFLAGS = -I$(ISMRMRD_HOME)/include
-LDFLAGS = -I$(ISMRMRD_HOME)/lib
+ISMRMRD_HOME ?= /usr/local
 
-# CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" python setup.py build_ext -i
+CPPFLAGS = -I$(ISMRMRD_HOME)/include
+LDFLAGS = -L$(ISMRMRD_HOME)/lib
 
-ismrmrd: ismrmrd.pyx cismrmrd.pxd setup.py
+ismrmrd.so: ismrmrd.pyx cismrmrd.pxd setup.py
 	python setup.py build_ext -i
+
+install: ismrmrd.so
+	install -d $(ISMRMRD_HOME)/python
+	install $< $(ISMRMRD_HOME)/python/
+
 clean:
 	rm ismrmrd.c ismrmrd.so
diff --git a/bindings/python/cismrmrd.pxd b/bindings/python/cismrmrd.pxd
index 2925aea..83ca6c6 100644
--- a/bindings/python/cismrmrd.pxd
+++ b/bindings/python/cismrmrd.pxd
@@ -1,8 +1,14 @@
 from libc.stdint cimport uint16_t, uint32_t, uint64_t, int32_t
 
+cdef extern from "ismrmrd/version.h":
+    cdef enum:
+        ISMRMRD_VERSION_MAJOR = 1
+        ISMRMRD_VERSION_MINOR = 1
+        ISMRMRD_VERSION_PATCH = 0
+        ISMRMRD_XMLHDR_VERSION = 1
+
 cdef extern from "ismrmrd/ismrmrd.h":
     cdef enum:
-        ISMRMRD_VERSION = 1
         ISMRMRD_USER_INTS = 8
         ISMRMRD_USER_FLOATS = 8
         ISMRMRD_PHYS_STAMPS = 3
@@ -172,6 +178,7 @@ cdef extern from "ismrmrd/ismrmrd.h":
         uint16_t image_series_index             # e.g. series number
         int32_t user_int[ISMRMRD_USER_INTS]     # Free user parameters
         float user_float[ISMRMRD_USER_FLOATS]   # Free user parameters
+        uint32_t attribute_string_len           # Length of attributes string
 
     ctypedef struct ISMRMRD_Image:
         ISMRMRD_ImageHeader head
@@ -218,10 +225,6 @@ cdef extern from "ismrmrd/ismrmrd.h":
             float read_dir[3], float phase_dir[3], float slice_dir[3])
 
 cdef extern from "ismrmrd/dataset.h":
-    cdef enum BlockModes:
-        BLOCKMODE_ARRAY
-        BLOCKMODE_BLOB
-
     ctypedef struct ISMRMRD_Dataset:
         char *filename
         char *groupname
diff --git a/bindings/python/ismrmrd.pyx b/bindings/python/ismrmrd.pyx
index 02e93c4..e1a9105 100644
--- a/bindings/python/ismrmrd.pyx
+++ b/bindings/python/ismrmrd.pyx
@@ -41,8 +41,49 @@ cdef dict ismrmrd_typenum_to_numpy_dtype = {
     cismrmrd.ISMRMRD_CXDOUBLE:  numpy.complex128,
 }
 
-# expose acquisition flags to Python namespace
-# TODO: encapsulate that to a class and let set_flag / clear_flag be the 
+# Expose ISMRMRD constants to python
+VERSION_MAJOR = cismrmrd.ISMRMRD_VERSION_MAJOR
+VERSION_MINOR = cismrmrd.ISMRMRD_VERSION_MINOR
+VERSION_PATCH = cismrmrd.ISMRMRD_VERSION_PATCH
+XMLHDR_VERSION = cismrmrd.ISMRMRD_XMLHDR_VERSION
+
+USER_INTS = cismrmrd.ISMRMRD_USER_INTS
+USER_FLOATS = cismrmrd.ISMRMRD_USER_FLOATS
+PHYS_STAMPS = cismrmrd.ISMRMRD_PHYS_STAMPS
+CHANNEL_MASKS = cismrmrd.ISMRMRD_CHANNEL_MASKS
+NDARRAY_MAXDIM = cismrmrd.ISMRMRD_NDARRAY_MAXDIM
+POSITION_LENGTH = cismrmrd.ISMRMRD_POSITION_LENGTH
+DIRECTION_LENGTH = cismrmrd.ISMRMRD_DIRECTION_LENGTH
+
+# Error codes
+BEGINERROR = cismrmrd.ISMRMRD_BEGINERROR
+NOERROR = cismrmrd.ISMRMRD_NOERROR
+MEMORYERROR = cismrmrd.ISMRMRD_MEMORYERROR
+FILEERROR = cismrmrd.ISMRMRD_FILEERROR
+TYPEERROR = cismrmrd.ISMRMRD_TYPEERROR
+RUNTIMEERROR = cismrmrd.ISMRMRD_RUNTIMEERROR
+HDF5ERROR = cismrmrd.ISMRMRD_HDF5ERROR
+ENDERROR = cismrmrd.ISMRMRD_ENDERROR
+
+# Data types
+USHORT = cismrmrd.ISMRMRD_USHORT
+SHORT = cismrmrd.ISMRMRD_SHORT
+UINT = cismrmrd.ISMRMRD_UINT
+INT = cismrmrd.ISMRMRD_INT
+FLOAT = cismrmrd.ISMRMRD_FLOAT
+DOUBLE = cismrmrd.ISMRMRD_DOUBLE
+CXFLOAT = cismrmrd.ISMRMRD_CXFLOAT
+CXDOUBLE = cismrmrd.ISMRMRD_CXDOUBLE
+
+# Image types
+IMTYPE_MAGNITUDE = cismrmrd.ISMRMRD_IMTYPE_MAGNITUDE
+IMTYPE_PHASE = cismrmrd.ISMRMRD_IMTYPE_PHASE
+IMTYPE_REAL = cismrmrd.ISMRMRD_IMTYPE_REAL
+IMTYPE_IMAG = cismrmrd.ISMRMRD_IMTYPE_IMAG
+IMTYPE_COMPLEX = cismrmrd.ISMRMRD_IMTYPE_COMPLEX
+
+# Acquisition flags
+# TODO: encapsulate that to a class and let set_flag / clear_flag be the
 # only interface
 ACQ_FIRST_IN_ENCODE_STEP1 = cismrmrd.ISMRMRD_ACQ_FIRST_IN_ENCODE_STEP1
 ACQ_LAST_IN_ENCODE_STEP1 = cismrmrd.ISMRMRD_ACQ_LAST_IN_ENCODE_STEP1
@@ -82,6 +123,17 @@ ACQ_USER6 = cismrmrd.ISMRMRD_ACQ_USER6
 ACQ_USER7 = cismrmrd.ISMRMRD_ACQ_USER7
 ACQ_USER8 = cismrmrd.ISMRMRD_ACQ_USER8
 
+# Image flags
+IMAGE_IS_NAVIGATION_DATA = cismrmrd.ISMRMRD_IMAGE_IS_NAVIGATION_DATA
+IMAGE_USER1 = cismrmrd.ISMRMRD_IMAGE_USER1
+IMAGE_USER2 = cismrmrd.ISMRMRD_IMAGE_USER2
+IMAGE_USER3 = cismrmrd.ISMRMRD_IMAGE_USER3
+IMAGE_USER4 = cismrmrd.ISMRMRD_IMAGE_USER4
+IMAGE_USER5 = cismrmrd.ISMRMRD_IMAGE_USER5
+IMAGE_USER6 = cismrmrd.ISMRMRD_IMAGE_USER6
+IMAGE_USER7 = cismrmrd.ISMRMRD_IMAGE_USER7
+IMAGE_USER8 = cismrmrd.ISMRMRD_IMAGE_USER8
+
 
 cdef bytes build_exception_string():
     cdef char *pfile = NULL
@@ -552,6 +604,10 @@ cdef class ImageHeader:
             for i in range(cismrmrd.ISMRMRD_USER_FLOATS):
                 self.thisptr.user_int[i] = val[i]
 
+    property attribute_string_len:
+        def __get__(self): return self.thisptr.attribute_string_len
+        def __set__(self, val): self.thisptr.attribute_string_len = val
+
 
 cdef class Image:
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list