1
1
# -*- coding:utf-8 -*-
2
-
3
2
import os
4
3
import json
5
4
6
5
from .checkdeps import HAS_GDAL , HAS_PYPROJ , HAS_IMGIO , HAS_PIL
7
- #from .proj import EPSGIO #WARN this one causes circular import because proj.reproj is imported in proj.__init__ and it also import settings.py
8
-
9
- cfgFile = os .path .dirname (os .path .abspath (__file__ )) + '/settings.json'
10
- #cfgFile = os.path.join(os.path.dirname(__file__), "settings.json")
11
-
12
- def getSettings ():
13
- with open (cfgFile , 'r' ) as cfg :
14
- prefs = json .load (cfg )
15
- return prefs
16
-
17
- def setSettings (prefs ):
18
- with open (cfgFile , 'w' ) as cfg :
19
- json .dump (prefs , cfg , indent = '\t ' )
20
-
21
- def getSetting (k ):
22
- prefs = getSettings ()
23
- return prefs .get (k , None )
24
6
25
7
def getAvailableProjEngines ():
26
8
engines = ['AUTO' , 'BUILTIN' ]
@@ -42,18 +24,40 @@ def getAvailableImgEngines():
42
24
engines .append ('PIL' )
43
25
return engines
44
26
45
- def setImgEngine (engine ):
46
- if engine not in getAvailableImgEngines ():
47
- raise IOError
48
- else :
49
- cfg = getSettings ()
50
- cfg ['img_engine' ] = engine
51
- setSettings (cfg )
52
-
53
- def setProjEngine (engine ):
54
- if engine not in getAvailableProjEngines ():
55
- raise IOError
56
- else :
57
- cfg = getSettings ()
58
- cfg ['proj_engine' ] = engine
59
- setSettings (cfg )
27
+
28
+ class Settings ():
29
+
30
+ def __init__ (self , ** kwargs ):
31
+ self ._proj_engine = kwargs ['proj_engine' ]
32
+ self ._img_engine = kwargs ['img_engine' ]
33
+ self .user_agent = kwargs ['user_agent' ]
34
+
35
+ @property
36
+ def proj_engine (self ):
37
+ return self ._proj_engine
38
+
39
+ @proj_engine .setter
40
+ def proj_engine (self , engine ):
41
+ if engine not in getAvailableProjEngines ():
42
+ raise IOError
43
+ else :
44
+ self ._proj_engine = engine
45
+
46
+ @property
47
+ def img_engine (self ):
48
+ return self ._img_engine
49
+
50
+ @img_engine .setter
51
+ def img_engine (self , engine ):
52
+ if engine not in getAvailableImgEngines ():
53
+ raise IOError
54
+ else :
55
+ self ._img_engine = engine
56
+
57
+
58
+ cfgFile = os .path .join (os .path .dirname (__file__ ), "settings.json" )
59
+
60
+ with open (cfgFile , 'r' ) as cfg :
61
+ prefs = json .load (cfg )
62
+
63
+ settings = Settings (** prefs )
0 commit comments