-
Notifications
You must be signed in to change notification settings - Fork 3
/
dgProgDefaults.py
196 lines (166 loc) · 4.79 KB
/
dgProgDefaults.py
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#!/usr/bin/env python
"""
=================
dgProgDefaults.py
=================
This method handles program defaults.
==========
Background
==========
Programs need to have certain defaults from one run to another.
This file has those functions.
================
Input File Types
================
This method supports the following types of BOMs as inputs:
- DEFAULTS.csv -The defaults file
The defaults file has KEY,Value pairs in clear text
Typical use
- defaultParmsClass = HandleDefault()
- defaultParmsClass.initDefaults()
- defaultPath = defaultParmsClass.getKeyVal('DEFAULT_PATH')
====
Code
====
"""
from __future__ import print_function
from builtins import object
import string
import csv
import os
# import pygtk
# pygtk.require('2.0')
# global program options
dgProgDefaultsModuleName = 'dgProgDefaults.py'
progVer = '0.0.1'
defaultsFileNamePath = '.\\Defaults.csv'
verboseMode = False
class HandleDefault(object):
""""Load and save defaults file
This can be used to save stuff like the default path
The file is a simple list with KEY, value pairs on individual lines
"""
def initDefaults(self):
global defaultPath
global defaultsFileNamePath
global verboseMode
defaultFilePath = os.getcwd()
defaultsFileNamePath = defaultFilePath + '\\Defaults.csv'
if verboseMode:
print('set defaultsFileNamePath to', defaultsFileNamePath)
if self.ifExistsDefaults() == True:
detailParmList = self.loadDefaults()
if verboseMode:
print('loaded defaults file')
else:
if verboseMode:
print('defaults file did not exist')
self.createDefaults()
if verboseMode:
print('created defaults file')
detailParmList = self.loadDefaults()
if verboseMode:
print('loaded defaults file')
if self.getKeyVal('DEFAULT_PATH') == False:
if verboseMode:
print('There was no default path set')
self.storeKeyValuePair('DEFAULT_PATH',defaultPath)
return True
def loadDefaults(self):
"""
:return: the default list of key names and key values
Load the defaults file
"""
defaultFileHdl = open(defaultsFileNamePath, 'rb')
defaultListItem = csv.reader(defaultFileHdl)
defaultList = []
for row in defaultListItem:
defaultList+=row
return defaultList
def getKeyVal(self, keyName):
"""
:param: keyName - the name of the key to look up
:return: the value of that key, blank if there is no corresponding key
Feed it a key name and it returns the corresponding key value
"""
#print 'getKeyVal: got here'
if self.ifExistsDefaults() == False:
if verboseMode:
print('getKeyVal: had to creat defaults')
self.createDefaults()
defaultFileHdl = open(defaultsFileNamePath, 'rb')
defaultListItem = csv.reader(defaultFileHdl)
defaultList = []
for row in defaultListItem:
if row[0] == keyName:
if verboseMode:
print('getKeyVal: found a match for key, match was', row[1])
return row[1]
if verboseMode:
print('getKeyVal: did not find a match for the key',keyName)
return ''
def storeKeyValuePair(self,keyName,valueToWrite):
if verboseMode:
print('storeKeyValuePair: storing value =', valueToWrite, 'to key =', keyName)
if self.ifExistsDefaults() == False:
print('had to create defaults')
self.createDefaults()
defaultFileHdl = open(defaultsFileNamePath, 'rb')
defaultListItem = csv.reader(defaultFileHdl)
newList = []
foundKey = False
for item in defaultListItem:
if verboseMode:
print('item',item)
newLine = []
if item[0] == keyName:
newLine.append(item[0])
newLine.append(valueToWrite)
foundKey = True
if verboseMode:
print('found the key',foundKey)
else:
newLine = item
newList.append(newLine)
if not foundKey:
newLine = []
newLine.append(keyName)
newLine.append(valueToWrite)
newList.append(newLine)
self.storeDefaults(newList)
return True
def storeDefaults(self,defaultList):
"""
:param: feed it the default key name and key value pairs
:return: True if successful
Store the key name and key value pair list to the defaults file
"""
if verboseMode:
print('storing list', defaultList)
defaultFileHdl = open(defaultsFileNamePath, 'wb')
defaultFile = csv.writer(defaultFileHdl)
defaultFile.writerows(defaultList)
return True
def createDefaults(self):
"""
:return: True if successful
Create the defaults file with a single pair
"""
defaultFileHdl = open(defaultsFileNamePath, 'wb')
defaultFile = csv.writer(defaultFileHdl)
defaultArray = ['DEFAULT_PATH','.']
defaultFile.writerow(defaultArray)
return True
def ifExistsDefaults(self):
"""
:return: True if the default file exists, false if the default file does not exist
Check if the defaults file exists
"""
try:
open(defaultsFileNamePath)
except:
return False
return True
def setVerboseMode(self,verboseFlag):
global verboseMode
verboseMode = verboseFlag