forked from CodeMouse92/DeadSimplePython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmixins.py
More file actions
47 lines (33 loc) · 1.11 KB
/
mixins.py
File metadata and controls
47 lines (33 loc) · 1.11 KB
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
import configparser
from pathlib import Path
class SettingsFileMixin:
settings_path = Path('livesettings.ini')
config = configparser.ConfigParser()
def read_setting(self, key):
self.config.read(self.settings_path)
try:
return self.config[self.settings_section][key]
except KeyError:
raise KeyError("invalid section in settings file.")
class Greeter(SettingsFileMixin):
def __init__(self, greeting):
self.settings_section = 'MAGIC'
self.greeting = greeting
def __str__(self):
try:
name = self.read_setting('UserName')
except KeyError:
name = "user"
return f"{self.greeting} {name}!"
class MagicNumberPrinter(SettingsFileMixin):
def __init__(self, greeting):
self.settings_section = 'MAGIC'
def __str__(self):
try:
magic_number = self.read_setting('MagicNumber')
except KeyError:
magic_number = "unknown"
return f"The magic number is {magic_number}!"
greeter = Greeter("Salutations,")
for i in range(100000):
print(greeter)