1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
# Copyright (C) 2001-2023 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
# implied.
#
# This software is distributed under license and may not be copied,
# modified or distributed except as expressly authorized under the terms
# of the license contained in the file LICENSE in this distribution.
#
# Refer to licensing information at http://www.artifex.com or contact
# Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
# CA 94129, USA, for further information.
#
# rasterdb.py
#
# methods to put and retrieve files to and from the raster database
import os, gzip
from stat import *
import gsconf
def exists(file, dbdir=gsconf.rasterdbdir):
x = 0
filename=dbdir + file + '.gz'
try:
mode = os.stat(dbdir + file + '.gz')[ST_MODE]
if S_ISREG(mode):
x = 1
except:
pass
return x
def get_file(file, dbdir=gsconf.rasterdbdir, output=None):
if exists(file, dbdir):
if output:
ofile = output
else:
ofile = file
zf = gzip.open(dbdir + file + '.gz')
f = open(ofile, 'w')
data = zf.read(1024)
while data:
f.write(data)
data = zf.read(1024)
zf.close()
f.close()
else:
print "rasterdb.get_file: does not exist",file
def put_file(file, dbdir=gsconf.rasterdbdir):
mode = os.stat(file)[ST_MODE]
if S_ISREG(mode):
f = open(file)
zf = gzip.open(dbdir + file + '.gz', 'w')
data = f.read(1024)
while data:
zf.write(data)
data = f.read(1024)
f.close()
zf.close()
|