Skip to content

Commit 7f14060

Browse files
cardermyellowcap
authored andcommitted
Fixes for temporary file locks and windows implementation.
1 parent 395e491 commit 7f14060

File tree

3 files changed

+44
-34
lines changed

3 files changed

+44
-34
lines changed

.gitignore

100755100644
Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1-
# Compiled python code
2-
*.pyc
3-
4-
# osx files
5-
.DS_Store
6-
7-
# sass cache
8-
.sass-cache
9-
.elasticbeanstalk
10-
11-
# Distribution
12-
dist
13-
django_raster.egg-info
14-
15-
# Docs build
16-
docs/_build
17-
18-
# Coverage output
19-
.coverage
1+
# Compiled python code
2+
*.pyc
3+
4+
# osx files
5+
.DS_Store
6+
7+
# sass cache
8+
.sass-cache
9+
.elasticbeanstalk
10+
11+
# Distribution
12+
dist
13+
django_raster.egg-info
14+
15+
# Docs build
16+
docs/_build
17+
18+
# Coverage output
19+
.coverage
20+
21+
.idea/
22+
.idea

raster/tasks.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ def create_tiles(rasterlayer_id, zoom, extract_metadata=False):
4545
raise
4646
finally:
4747
if hasattr(parser, 'tmpdir'):
48-
shutil.rmtree(parser.tmpdir)
48+
tmpdir = parser.tmpdir
49+
parser.dataset = None
50+
parser = None
51+
shutil.rmtree(tmpdir)
4952

5053

5154
@task

raster/tiles/parser.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -201,19 +201,23 @@ def reproject_rasterfile(self):
201201

202202
# Compress reprojected raster file and store it
203203
if self.rasterlayer.store_reprojected:
204-
with tempfile.NamedTemporaryFile(dir=self.tmpdir, suffix='.zip') as dest:
205-
with zipfile.ZipFile(dest.name, 'w', allowZip64=True) as dest_zip:
206-
dest_zip.write(
207-
filename=self.dataset.name,
208-
arcname=os.path.basename(self.dataset.name),
209-
compress_type=zipfile.ZIP_DEFLATED,
210-
)
211-
# Store zip file in reprojected raster model
212-
self.rasterlayer.reprojected.rasterfile = File(
213-
open(dest.name, 'rb'),
214-
name=os.path.basename(dest_zip.filename)
215-
)
216-
self.rasterlayer.reprojected.save()
204+
dest = tempfile.NamedTemporaryFile(dir=self.tmpdir, suffix='.zip', delete=False)
205+
dest.close()
206+
dest_zip = zipfile.ZipFile(dest.name, 'w', allowZip64=True)
207+
dest_zip.write(
208+
filename=self.dataset.name,
209+
arcname=os.path.basename(self.dataset.name),
210+
compress_type=zipfile.ZIP_DEFLATED,
211+
)
212+
dest_zip.close()
213+
# Store zip file in reprojected raster model
214+
self.rasterlayer.reprojected.rasterfile = File(
215+
open(dest.name, 'rb'),
216+
name=os.path.basename(dest_zip.filename)
217+
)
218+
self.rasterlayer.reprojected.save()
219+
# Remove tmp file
220+
os.unlink(dest.name)
217221

218222
self.log('Finished transforming raster.')
219223

@@ -408,7 +412,7 @@ def process_quadrant(self, indexrange, zoom):
408412
RasterTile.objects.bulk_create(batch)
409413

410414
# Remove quadrant raster tempfile.
411-
os.remove(dest_file_name)
415+
# os.remove(dest_file_name)
412416

413417
def push_histogram(self, data):
414418
"""

0 commit comments

Comments
 (0)