Skip to content

Commit 342fc84

Browse files
committed
Create Assignment4.py
1 parent a816c8e commit 342fc84

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Assignments/Assignment4.py

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import os
2+
3+
class ConfigkeyError(Exception):
4+
def __init__(self,this,key):
5+
self.key = key
6+
self.keys = this.keys()
7+
8+
def __str__(self):
9+
return 'key "{0}" not found. Available keys: ({1})'.format(self.key,', '.join(self.keys))
10+
11+
class ConfigDict(dict):
12+
13+
def __init__(self,filename):
14+
self._file = filename
15+
if not os.path.isfile(self._file):
16+
try:
17+
open(self._file,'r+').close()
18+
except IOError:
19+
raise IOError('arg to ConfigDict must be a valid pathname')
20+
with open(self._file) as file:
21+
lines = file.readlines()
22+
for line in lines:
23+
line.rstrip()
24+
key, value = line.split("=",1)
25+
dict.__setitem__(self, key, value)
26+
27+
28+
def __setitem__(self, key, value):
29+
dict.__setitem__(self, key, value)
30+
with open(self._file,'w') as file:
31+
for key,value in self.items():
32+
file.write('{0}={1}\n'.format(key,value))
33+
34+
def __getitem__(self, key):
35+
if not key in self:
36+
raise ConfigkeyError(self, key)
37+
return dict.__getitem__(self, key)
38+

0 commit comments

Comments
 (0)