|
|
@@ -260,7 +260,7 @@ class Table(object): |
|
|
|
fmt = { "rows_per_file": rows_per_file, |
|
|
|
"files_per_dir": files_per_dir, |
|
|
|
"layout": layout, |
|
|
|
"version": 2 } |
|
|
|
"version": 3 } |
|
|
|
with open(os.path.join(root, "_format"), "wb") as f: |
|
|
|
pickle.dump(fmt, f, 2) |
|
|
|
|
|
|
@@ -273,21 +273,11 @@ class Table(object): |
|
|
|
with open(os.path.join(self.root, "_format"), "rb") as f: |
|
|
|
fmt = pickle.load(f) |
|
|
|
|
|
|
|
if fmt["version"] == 1: # pragma: no cover |
|
|
|
# We can handle this old version by converting from |
|
|
|
# struct_fmt back to layout name. |
|
|
|
compat = { "<dHHHHHH": "uint16_6", |
|
|
|
"<dHHHHHHHHH": "uint16_9", |
|
|
|
"<dffffffff": "float32_8" } |
|
|
|
if fmt["struct_fmt"] in compat: |
|
|
|
fmt["version"] = 2 |
|
|
|
fmt["layout"] = compat[fmt["struct_fmt"]] |
|
|
|
else: |
|
|
|
raise NotImplementedError("old version 1 data with format " |
|
|
|
+ fmt["struct_fmt"] + " is no good") |
|
|
|
elif fmt["version"] != 2: # pragma: no cover (just future proofing) |
|
|
|
raise NotImplementedError("version " + str(fmt["version"]) + |
|
|
|
" bulk data store not supported") |
|
|
|
if fmt["version"] != 3: # pragma: no cover |
|
|
|
# Old versions used floating point timestamps, which aren't |
|
|
|
# valid anymore. |
|
|
|
raise NotImplementedError("old version " + str(fmt["version"]) + |
|
|
|
" bulk data store is not supported") |
|
|
|
|
|
|
|
self.rows_per_file = fmt["rows_per_file"] |
|
|
|
self.files_per_dir = fmt["files_per_dir"] |
|
|
|