diff options
| author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-02-17 16:18:23 +0100 | 
|---|---|---|
| committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-02-17 16:19:54 +0100 | 
| commit | 0884a3928395dd368aea61eeef768677018f9095 (patch) | |
| tree | bb3103d6fadaf2aaa1c2e964f15ba97787bcfae2 /python/astra/astra_c.pyx | |
| parent | 7b6d74bd403f5bb0e4c8ba451eefa13193e7ed34 (diff) | |
| download | astra-0884a3928395dd368aea61eeef768677018f9095.tar.gz astra-0884a3928395dd368aea61eeef768677018f9095.tar.bz2 astra-0884a3928395dd368aea61eeef768677018f9095.tar.xz astra-0884a3928395dd368aea61eeef768677018f9095.zip  | |
Add python astra.astra delete/info based on index manager
Diffstat (limited to 'python/astra/astra_c.pyx')
| -rw-r--r-- | python/astra/astra_c.pyx | 30 | 
1 files changed, 28 insertions, 2 deletions
diff --git a/python/astra/astra_c.pyx b/python/astra/astra_c.pyx index 2a9c816..c70bb8e 100644 --- a/python/astra/astra_c.pyx +++ b/python/astra/astra_c.pyx @@ -33,6 +33,9 @@ from .utils import wrap_from_bytes  from libcpp.string cimport string  from libcpp.vector cimport vector  from libcpp cimport bool +cimport PyIndexManager +from .PyIndexManager cimport CAstraObjectManagerBase +  cdef extern from "astra/Globals.h" namespace "astra":      int getVersion()      string getVersionString() @@ -51,6 +54,7 @@ cdef extern from "astra/CompositeGeometryManager.h" namespace "astra":  cdef extern from "astra/CompositeGeometryManager.h" namespace "astra::CCompositeGeometryManager":      void setGlobalGPUParams(SGPUParams&) +  def credits():      six.print_("""The ASTRA Toolbox has been developed at the University of Antwerp and CWI, Amsterdam by   * Prof. dr. Joost Batenburg @@ -78,11 +82,10 @@ def version(printToScreen=False):          return getVersion()  def set_gpu_index(idx, memory=0): -    import types      import collections      cdef SGPUParams params      if use_cuda()==True: -        if not isinstance(idx, collections.Iterable) or isinstance(idx, types.StringTypes): +        if not isinstance(idx, collections.Iterable) or isinstance(idx, six.string_types + (six.text_type,six.binary_type)):              idx = (idx,)          params.memory = memory          params.GPUIndices = idx @@ -90,3 +93,26 @@ def set_gpu_index(idx, memory=0):          ret = setGPUIndex(params.GPUIndices[0])          if not ret:              six.print_("Failed to set GPU " + str(params.GPUIndices[0])) + +def delete(ids): +    import collections +    cdef CAstraObjectManagerBase* ptr +    if not isinstance(ids, collections.Iterable) or isinstance(ids, six.string_types + (six.text_type,six.binary_type)): +        ids = (ids,) +    for i in ids: +        ptr = PyIndexManager.getSingletonPtr().get(i) +        if ptr: +            ptr.remove(i) + +def info(ids): +    import collections +    cdef CAstraObjectManagerBase* ptr +    if not isinstance(ids, collections.Iterable) or isinstance(ids, six.string_types + (six.text_type,six.binary_type)): +        ids = (ids,) +    for i in ids: +        ptr = PyIndexManager.getSingletonPtr().get(i) +        if ptr: +            s = ptr.getType() + six.b("\t") + ptr.getInfo(i) +            six.print_(wrap_from_bytes(s)) + +  | 
