mailr27774 - /trunk/pipe_control/align_tensor.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on March 04, 2015 - 14:47:
Author: bugman
Date: Wed Mar  4 14:47:21 2015
New Revision: 27774

URL: http://svn.gna.org/viewcvs/relax?rev=27774&view=rev
Log:
Improvement for the align_tensor.copy user function.

The user function has been modified to allow all alignment tensors to be 
copied between two data
pipes.  This allows the Align_tensor.test_copy_pipes system test to pass.


Modified:
    trunk/pipe_control/align_tensor.py

Modified: trunk/pipe_control/align_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/align_tensor.py?rev=27774&r1=27773&r2=27774&view=diff
==============================================================================
--- trunk/pipe_control/align_tensor.py  (original)
+++ trunk/pipe_control/align_tensor.py  Wed Mar  4 14:47:21 2015
@@ -136,29 +136,49 @@
         dp_to.align_tensors = AlignTensorList()
 
     # Add the tensor if it doesn't already exist.
-    if tensor_to not in dp_to.align_tensors.names():
+    if tensor_to != None and tensor_to not in dp_to.align_tensors.names():
         dp_to.align_tensors.add_item(tensor_to)
 
-    # Find the tensor index.
-    index_from = get_tensor_index(tensor=tensor_from, pipe=pipe_from)
-    index_to = get_tensor_index(tensor=tensor_to, pipe=pipe_to)
-
-    # Copy the data.
-    if index_to == None:
-        
dp_to.align_tensors.append(deepcopy(dp_from.align_tensors[index_from]))
-        index_to = len(dp_to.align_tensors) - 1
+    # Copy all data.
+    if tensor_from == None:
+        # Check.
+        if tensor_to != tensor_from:
+            raise RelaxError("The tensor_to argument '%s' should not be 
supplied when tensor_from is None." % tensor_to)
+
+        # The align IDs.
+        align_ids = []
+
+        # Loop over and copy all tensors.
+        for i in range(len(dp_from.align_tensors)):
+            dp_to.align_tensors.append(deepcopy(dp_from.align_tensors[i]))
+            align_ids.append(dp_from.align_tensors[i].align_id)
+
+    # Copy a single tensor.
     else:
-        dp_to.align_tensors[index_to] = 
deepcopy(dp_from.align_tensors[index_from])
-
-    # Update the tensor's name.
-    dp_to.align_tensors[index_to].set('name', tensor_to)
-
-    # Add the align ID to the target data pipe if needed.
-    align_id = dp_from.align_tensors[index_from].align_id
+        # Find the tensor index.
+        index_from = get_tensor_index(tensor=tensor_from, pipe=pipe_from)
+        index_to = get_tensor_index(tensor=tensor_to, pipe=pipe_to)
+
+        # Copy the tensor.
+        tensor = deepcopy(dp_from.align_tensors[index_from])
+        if index_to == None:
+            dp_to.align_tensors.append(tensor)
+            index_to = len(dp_to.align_tensors) - 1
+        else:
+            dp_to.align_tensors[index_to] = tensor
+
+        # Update the tensor's name.
+        dp_to.align_tensors[index_to].set('name', tensor_to)
+
+        # The align IDs.
+        align_ids = [dp_from.align_tensors[index_from].align_id]
+
+    # Add the align IDs to the target data pipe if needed.
     if not hasattr(dp_to, 'align_ids'):
         dp_to.align_ids = []
-    if align_id not in dp_to.align_ids:
-        dp_to.align_ids.append(align_id)
+    for align_id in align_ids:
+        if align_id not in dp_to.align_ids:
+            dp_to.align_ids.append(align_id)
 
 
 def delete(tensor=None):




Related Messages


Powered by MHonArc, Updated Wed Mar 04 15:00:02 2015