4823: Files now fall under collection's lock. Add tests for merge conflicts.
[arvados.git] / sdk / python / arvados / ranges.py
index 8c377e26e7f14dfd40b4aa6b61bf666155f8a6c4..12941a1fc199d1e59b83b74b109e22e93a4c4293 100644 (file)
@@ -6,7 +6,13 @@ class Range(object):
         self.segment_offset = segment_offset
 
     def __repr__(self):
-        return "[\"%s\", %i, %i, %i]" % (self.locator, self.range_start, self.range_size, self.segment_offset)
+        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
@@ -55,7 +61,7 @@ class LocatorAndRange(object):
                  self.segment_size == other.segment_size)
 
     def __repr__(self):
-        return "[\"%s\", %i, %i, %i]" % (self.locator, self.block_size, self.segment_offset, self.segment_size)
+        return "LocatorAndRange(\"%s\", %i, %i, %i)" % (self.locator, self.block_size, self.segment_offset, self.segment_size)
 
 def locators_and_ranges(data_locators, range_start, range_size, debug=False):
     '''
@@ -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: