4823: Files now fall under collection's lock. Add tests for merge conflicts.
[arvados.git] / sdk / python / arvados / ranges.py
index eeb37e2978db38883e29addb43c6deee982f30cd..12941a1fc199d1e59b83b74b109e22e93a4c4293 100644 (file)
@@ -8,6 +8,12 @@ class Range(object):
     def __repr__(self):
         return "Range(\"%s\", %i, %i, %i)" % (self.locator, self.range_start, self.range_size, self.segment_offset)
 
+    def __eq__(self, other):
+        return (self.locator == other.locator and
+                self.range_start == other.range_start and
+                self.range_size == other.range_size and
+                self.segment_offset == other.segment_offset)
+
 def first_block(data_locators, range_start, range_size, debug=False):
     block_start = 0L
 
@@ -111,10 +117,19 @@ def locators_and_ranges(data_locators, range_start, range_size, debug=False):
 def replace_range(data_locators, new_range_start, new_range_size, new_locator, new_segment_offset, debug=False):
     '''
     Replace a file segment range with a new segment.
+
     data_locators: list of Range objects, assumes that segments are in order and contigous
-    range_start: start of range
-    range_size: size of range
+
+    new_range_start: start of range to replace in data_locators
+
+    new_range_size: size of range to replace in data_locators
+
     new_locator: locator for new segment to be inserted
+
+    new_segment_offset: segment offset within the locator
+
+    debug: print debugging details.
+
     !!! data_locators will be updated in place !!!
     '''
     if new_range_size == 0: