[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