diff options
| author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2017-11-24 17:52:13 +0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-11-24 07:52:13 -0500 |
| commit | 31425f71bc08dc8b13a18de530dfd68b7f26916c (patch) | |
| tree | ae1d96556120f15dcc07f8d4726ae811ee7a4ab2 | |
| parent | e283c1a2675d1336aba0e8141ed94efa3ac68b04 (diff) | |
Used bytes.hex() and bytes.fromhex() in postgis.pgraster to simplify.
This was missed in 93cdd07e8fb08d7bb3f1e4a7117aa9d0d76581cd.
| -rw-r--r-- | django/contrib/gis/db/backends/postgis/pgraster.py | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/django/contrib/gis/db/backends/postgis/pgraster.py b/django/contrib/gis/db/backends/postgis/pgraster.py index ff06f11895..e6c1b2247c 100644 --- a/django/contrib/gis/db/backends/postgis/pgraster.py +++ b/django/contrib/gis/db/backends/postgis/pgraster.py @@ -1,4 +1,3 @@ -import binascii import struct from django.forms import ValidationError @@ -13,14 +12,14 @@ def pack(structure, data): """ Pack data into hex string with little endian format. """ - return binascii.hexlify(struct.pack('<' + structure, *data)).upper() + return struct.pack('<' + structure, *data) def unpack(structure, data): """ Unpack little endian hexlified binary string into a list. """ - return struct.unpack('<' + structure, binascii.unhexlify(data)) + return struct.unpack('<' + structure, bytes.fromhex(data)) def chunk(data, index): @@ -67,7 +66,7 @@ def from_pgraster(data): # Chunk and unpack band data (pack size times nr of pixels) band, data = chunk(data, pack_size * header[10] * header[11]) - band_result = {'data': binascii.unhexlify(band)} + band_result = {'data': bytes.fromhex(band)} # If the nodata flag is True, set the nodata value. if has_nodata: @@ -109,7 +108,7 @@ def to_pgraster(rast): rast.srs.srid, rast.width, rast.height, ) - # Hexlify raster header + # Pack raster header. result = pack(POSTGIS_HEADER_STRUCTURE, rasterheader) for band in rast.bands: @@ -135,11 +134,8 @@ def to_pgraster(rast): # Pack band header bandheader = pack(structure, (pixeltype, band.nodata_value or 0)) - # Hexlify band data - band_data_hex = binascii.hexlify(band.data(as_memoryview=True)).upper() - # Add packed header and band data to result - result += bandheader + band_data_hex + result += bandheader + band.data(as_memoryview=True) - # Cast raster to string before passing it to the DB - return result.decode() + # Convert raster to hex string before passing it to the DB. + return result.hex() |
