(self, z, x, y)
| 42 | return json.loads(metadata) |
| 43 | |
| 44 | def get(self, z, x, y): |
| 45 | tile_id = zxy_to_tileid(z, x, y) |
| 46 | header = self.header() |
| 47 | dir_offset = header["root_offset"] |
| 48 | dir_length = header["root_length"] |
| 49 | for depth in range(0, 4): # max depth |
| 50 | directory = deserialize_directory(self.get_bytes(dir_offset, dir_length)) |
| 51 | result = find_tile(directory, tile_id) |
| 52 | if result: |
| 53 | if result.run_length == 0: |
| 54 | dir_offset = header["leaf_directory_offset"] + result.offset |
| 55 | dir_length = result.length |
| 56 | else: |
| 57 | return self.get_bytes( |
| 58 | header["tile_data_offset"] + result.offset, result.length |
| 59 | ) |
| 60 | |
| 61 | |
| 62 | def traverse(get_bytes, header, dir_offset, dir_length): |
nothing calls this directly
no test coverage detected