projects
/
cumulus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use posixpath to join remote storage paths.
[cumulus.git]
/
python
/
cumulus
/
__init__.py
diff --git
a/python/cumulus/__init__.py
b/python/cumulus/__init__.py
index
c5961c7
..
ed641ff
100644
(file)
--- a/
python/cumulus/__init__.py
+++ b/
python/cumulus/__init__.py
@@
-32,6
+32,7
@@
import codecs
import hashlib
import itertools
import os
import hashlib
import itertools
import os
+import posixpath
import re
import sqlite3
import subprocess
import re
import sqlite3
import subprocess
@@
-168,7
+169,7
@@
class SearchPathEntry(object):
and context is any additional data associated with this search entry
(if any).
"""
and context is any additional data associated with this search entry
(if any).
"""
- return (
os.
path.join(self._directory_prefix, basename + self._suffix),
+ return (
posix
path.join(self._directory_prefix, basename + self._suffix),
self._context)
class SearchPath(object):
self._context)
class SearchPath(object):
@@
-233,7
+234,7
@@
class SearchPath(object):
for f in backend.list(d):
success = True
m = self.match(f)
for f in backend.list(d):
success = True
m = self.match(f)
- if m: yield (
os.
path.join(d, f), m)
+ if m: yield (
posix
path.join(d, f), m)
except cumulus.store.NotFoundError:
pass
if not success:
except cumulus.store.NotFoundError:
pass
if not success:
@@
-343,7
+344,7
@@
class CumulusStore:
if m:
return ("zero", None, None, (0, int(m.group(1)), False))
if m:
return ("zero", None, None, (0, int(m.group(1)), False))
- m = re.match(r"^([-0-9a-f]+)\/([0-9a-f]+)(\(\S+\))?(\[(
((\d+)\+)?(\d+)|=
(\d+))\])?$", refstr)
+ m = re.match(r"^([-0-9a-f]+)\/([0-9a-f]+)(\(\S+\))?(\[(
=?(\d+)|(\d+)\+
(\d+))\])?$", refstr)
if not m: return
segment = m.group(1)
if not m: return
segment = m.group(1)
@@
-355,12
+356,9
@@
class CumulusStore:
checksum = checksum.lstrip("(").rstrip(")")
if slice is not None:
checksum = checksum.lstrip("(").rstrip(")")
if slice is not None:
- if m.group(
9
) is not None:
+ if m.group(
6
) is not None:
# Size-assertion slice
# Size-assertion slice
- slice = (0, int(m.group(9)), True)
- elif m.group(6) is None:
- # Abbreviated slice
- slice = (0, int(m.group(8)), False)
+ slice = (0, int(m.group(6)), True)
else:
slice = (int(m.group(7)), int(m.group(8)), False)
else:
slice = (int(m.group(7)), int(m.group(8)), False)
@@
-451,6
+449,9
@@
class CumulusStore:
if slice is not None:
(start, length, exact) = slice
if slice is not None:
(start, length, exact) = slice
+ # Note: The following assertion check may need to be commented out
+ # to restore from pre-v0.8 snapshots, as the syntax for
+ # size-assertion slices has changed.
if exact and len(data) != length: raise ValueError
data = data[start:start+length]
if len(data) != length: raise IndexError
if exact and len(data) != length: raise ValueError
data = data[start:start+length]
if len(data) != length: raise IndexError